treeview: title of required columns are in bold
[openerp-client.git] / bin / widget_search / reference.py
blob59b193bd35c12ede83cdbaa8adfd997a05222156
1 # -*- encoding: utf-8 -*-
2 ##############################################################################
4 # Copyright (c) 2004-2008 TINY SPRL. (http://tiny.be) All Rights Reserved.
6 # $Id$
8 # WARNING: This program as such is intended to be used by professional
9 # programmers who take the whole responsability of assessing all potential
10 # consequences resulting from its eventual inadequacies and bugs
11 # End users who are looking for a ready-to-use solution with commercial
12 # garantees and support are strongly adviced to contract a Free Software
13 # Service Company
15 # This program is Free Software; you can redistribute it and/or
16 # modify it under the terms of the GNU General Public License
17 # as published by the Free Software Foundation; either version 2
18 # of the License, or (at your option) any later version.
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
25 # You should have received a copy of the GNU General Public License
26 # along with this program; if not, write to the Free Software
27 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 ##############################################################################
31 import gtk
32 from gtk import glade
33 import gettext
35 import common
36 import wid_int
37 import rpc
39 class reference(wid_int.wid_int):
40 def __init__(self, name, parent, attrs={}):
41 wid_int.wid_int.__init__(self, name, parent, attrs)
43 self.widget = gtk.combo_box_entry_new_text()
44 self.widget.child.set_editable(False)
46 self.set_popdown(attrs.get('selection', []))
48 def get_model(self):
49 res = self.widget.child.get_text()
50 return self._selection.get(res, False)
52 def set_popdown(self, selection):
53 model = self.widget.get_model()
54 model.clear()
55 self._selection={}
56 lst = []
57 for (i,j) in selection:
58 name = str(j)
59 if type(i)==type(1):
60 name+=' ('+str(i)+')'
61 lst.append(name)
62 self._selection[name]=i
63 self.widget.append_text('')
64 for l in lst:
65 self.widget.append_text(l)
66 return lst
68 def _value_get(self):
69 if self.get_model():
70 return [(self.name, 'like', self.get_model()+',')]
71 else:
72 return []
74 def _value_set(self, value):
75 if value==False:
76 value=''
77 for s in self._selection:
78 if self._selection[s]==value:
79 self.widget.child.set_text(s)
82 value = property(_value_get, _value_set, None, _('The content of the widget or ValueError if not valid'))
84 def clear(self, widget=None):
85 self.value = ''
87 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: