| Home | Trees | Indices | Help |
|
|---|
|
|
1 """GNUMed GUI element brokerage
2
3 This module provides wrappers for the equivalent of global
4 variables needed for a gnumed GUI client interface
5
6 @author: Dr. Horst Herb
7 @version: 0.2
8 @copyright: GPL v2 or later
9 """
10 #-----------------------------------------------------------
11 # $Source: /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/client/pycommon/gmGuiBroker.py,v $
12 # $Id: gmGuiBroker.py,v 1.4 2004-06-20 15:44:28 ncq Exp $
13 __version__ = "$Revision: 1.4 $"
14 __author__ = "H.Herb <hherb@gnumed.net>, H.Berger <Hilmar.Berger@gmx.de>"
15 #===========================================================
16 if __name__ == '__main__':
17 _ = lambda x:x
18
19 # FIXME !!! hack moved here from gmConf. This definitely must be replaced by some
20 # structure getting data from the backend
21 # FIXME: hardcoded color/width !?! move to DB (?)
22 config = {'main.use_notebook':1, 'main.shadow.colour':(131, 129, 131), 'main.shadow.width':10}
23
24 #===========================================================
26 "Wrapper for global objects needed by GNUMmed GUI clients"
27
28 #This class wraps all global gui objects (variables)for a gnumed
29 #application. The static (at application level)dictionary
30 #__objects can be accessed through the method addobject
31 #and getobject.
32 #So, if you need to access the main window frame, you would
33 #query an instance of GuiBroker for it.
34
35 __objects = {}
36 __keycounter=0
37
38
41
42
44 "Add an object to the gnumed gui object dictionary"
45
46 #An object can be anything (class, variable, widget)
47 #The "key" is a key expression (number, text) that
48 #allows you to retrieve the object.
49 #Convention for keys is the widget or variable name
50 #as a text string
51 #If key is not passed as parameter, a unique serial
52 #number is allocated as key and returned
53
54 if not key:
55 # create a new sequential key that doesn't exist yet
56 key = GuiBroker.__keycounter + 1
57 while GuiBroker.__objects.has_key(key):
58 key +=1
59 GuiBroker.__keycounter = key
60 GuiBroker.__objects[key]=widget
61 return key
62
63
64
66 "allows to retrieve a gnumed gui element; see addobject() regarding the key parameter"
67 return GuiBroker.__objects[key]
68
71
72
73
75 " returns a list of all keys; see documentation for the dictionary data type"
76 return GuiBroker.__objects.keys()
77
78
79
81 "returns a list of all values; see documentation for the dictionary data type"
82 return GuiBroker.__objects.values()
83
84
85
87 "returns a list of all key:value pairs; see documentation for the dictionary data type"
88 return GuiBroker.__objects.items()
89
90
91
95
96
97
101
102 #===========================================================
103 # you can test this module by invoking it as main program
104 if __name__ == "__main__":
105 print '>>> gmGuiBroker.GuiBroker test'
106 test = GuiBroker()
107
108 print '>>> test.addobject("something", 3)'
109 var = test.addobject("something", 3)
110 print var, "\n"
111
112 print '>>> test.addobject("something else without a specified key")'
113 var = test.addobject("something else without a specified key")
114 print var, "\n"
115
116 print '>>> test.addobject(test)'
117 testreference = test.addobject(test)
118 print testreference, "\n"
119
120 print '>>> test.addobject(100, "hundred)'
121 var = test.addobject(100, "hundred")
122 print var, "\n"
123
124 print ">>> test.keylist()"
125 var = test.keylist()
126 print var, "\n"
127
128 print ">>> test.valuelist()"
129 var = test.valuelist()
130 print var, "\n"
131
132 print ">>> test.itemlist()"
133 var = test.itemlist()
134 print var, "\n"
135
136 print ">>> test[3]"
137 var = test[3]
138 print var, "\n"
139
140 print ">>> test[testreference].getobject('hundred')"
141 var = test[testreference].getobject('hundred')
142 print var, "\n"
143
144 print ">>> var = test[testreference]"
145 var = test[testreference]
146 print var, "\n"
147
148 print ">>> var = var['hundred']"
149 var = var['hundred']
150 print var, "\n"
151
152 print '>>> try: test.addobject["duplicate key", 3]'
153 print '>>> except KeyError: print "Duplicate keys not allowed!"'
154 try: test["duplicate key", 3]
155 except KeyError: print "Duplicate keys not allowed!"
156
157 print ">>> test['key']='value'"
158 test['key']='value'
159 print test['key']
160
161 #===========================================================
162 # $Log: gmGuiBroker.py,v $
163 # Revision 1.4 2004-06-20 15:44:28 ncq
164 # - we need to be more careful in pleasing epydoc
165 #
166 # Revision 1.3 2004/06/20 06:49:21 ihaywood
167 # changes required due to Epydoc's OCD
168 #
169 # Revision 1.2 2004/03/10 00:14:04 ncq
170 # - fix imports
171 #
172 # Revision 1.1 2004/02/25 09:30:13 ncq
173 # - moved here from python-common
174 #
175 # Revision 1.8 2003/11/17 10:56:36 sjtan
176 #
177 # synced and commiting.
178 #
179 # Revision 1.1 2003/10/23 06:02:39 sjtan
180 #
181 # manual edit areas modelled after r.terry's specs.
182 #
183 # Revision 1.7 2003/02/09 11:48:59 ncq
184 # - just some silly cvs keyword
185 #
186 # Revision 1.6 2003/02/09 09:41:57 sjtan
187 #
188 # clean up new code, make it less intrusive.
189 #
190 # Revision 1.5 2003/01/16 14:45:03 ncq
191 # - debianized
192 #
193 # Revision 1.4 2003/01/12 00:20:04 ncq
194 # - fixed __author__
195 #
196 # Revision 1.3 2003/01/12 00:17:44 ncq
197 # - fixed typo, added CVS keywords
198 #
199
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Mon Jun 25 03:58:27 2012 | http://epydoc.sourceforge.net |