1
2
3
4 """
5 Module implementing the default services dialog.
6 """
7
8 import wx
9
10
11
12
13
14
15
16
17 import arc
18
20 """
21 Class implementing the service dialog box.
22 """
24
25 kwds["style"] = wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.THICK_FRAME
26 wx.Dialog.__init__(self, *args, **kwds)
27 self.selectedServicesLabel = wx.StaticText(self, -1, "Selected services")
28 self.defaultServicesList = wx.ListBox(self, -1, choices=[])
29 self.addServiceButton = wx.Button(self, -1, "Add...")
30 self.modifyServiceButton = wx.Button(self, -1, "Modify...")
31 self.removeServiceButton = wx.Button(self, -1, "Remove")
32 self.moveToRejectedButton = wx.Button(self, -1, ">>")
33 self.moveToSelectedButton = wx.Button(self, -1, "<<")
34 self.clearServicesButton = wx.Button(self, -1, "Clear")
35 self.rejectedServicesLabel = wx.StaticText(self, -1, "Rejected services")
36 self.rejectedServicesList = wx.ListBox(self, -1, choices=[])
37 self.okButton = wx.Button(self, -1, "OK")
38 self.cancelButton = wx.Button(self, -1, "Cancel")
39
40 self.__set_properties()
41 self.__do_layout()
42
43 self.Bind(wx.EVT_LISTBOX, self.onSelectedList, self.defaultServicesList)
44 self.Bind(wx.EVT_BUTTON, self.onAddService, self.addServiceButton)
45 self.Bind(wx.EVT_BUTTON, self.onModifyService, self.modifyServiceButton)
46 self.Bind(wx.EVT_BUTTON, self.onRemoveService, self.removeServiceButton)
47 self.Bind(wx.EVT_BUTTON, self.onMoveToRejected, self.moveToRejectedButton)
48 self.Bind(wx.EVT_BUTTON, self.onMoveToSelected, self.moveToSelectedButton)
49 self.Bind(wx.EVT_BUTTON, self.onClearServices, self.clearServicesButton)
50 self.Bind(wx.EVT_LISTBOX, self.onRejectedList, self.rejectedServicesList)
51 self.Bind(wx.EVT_BUTTON, self.onOK, self.okButton)
52 self.Bind(wx.EVT_BUTTON, self.onCancel, self.cancelButton)
53
54
55 self.__initDialog()
56
58
59 self.SetTitle("Default services")
60 self.SetSize((647, 315))
61
62
64
65 sizer_28 = wx.BoxSizer(wx.VERTICAL)
66 sizer_31 = wx.BoxSizer(wx.HORIZONTAL)
67 sizer_29 = wx.BoxSizer(wx.HORIZONTAL)
68 sizer_9 = wx.BoxSizer(wx.VERTICAL)
69 sizer_30 = wx.BoxSizer(wx.VERTICAL)
70 sizer_2 = wx.BoxSizer(wx.VERTICAL)
71 sizer_2.Add(self.selectedServicesLabel, 0, wx.LEFT|wx.TOP|wx.ADJUST_MINSIZE, 4)
72 sizer_2.Add(self.defaultServicesList, 1, wx.ALL|wx.EXPAND, 4)
73 sizer_29.Add(sizer_2, 1, wx.EXPAND, 0)
74 sizer_30.Add(self.addServiceButton, 0, 0, 0)
75 sizer_30.Add(self.modifyServiceButton, 0, 0, 0)
76 sizer_30.Add(self.removeServiceButton, 0, 0, 0)
77 sizer_30.Add(self.moveToRejectedButton, 0, wx.ADJUST_MINSIZE, 0)
78 sizer_30.Add(self.moveToSelectedButton, 0, wx.ADJUST_MINSIZE, 0)
79 sizer_30.Add(self.clearServicesButton, 0, 0, 0)
80 sizer_29.Add(sizer_30, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
81 sizer_9.Add(self.rejectedServicesLabel, 0, wx.LEFT|wx.TOP|wx.ADJUST_MINSIZE, 4)
82 sizer_9.Add(self.rejectedServicesList, 1, wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE, 4)
83 sizer_29.Add(sizer_9, 1, wx.EXPAND, 0)
84 sizer_28.Add(sizer_29, 1, wx.EXPAND, 0)
85 sizer_31.Add(self.okButton, 0, 0, 0)
86 sizer_31.Add(self.cancelButton, 0, 0, 0)
87 sizer_28.Add(sizer_31, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 4)
88 self.SetSizer(sizer_28)
89 self.Layout()
90 self.Centre()
91
92
94 """
95 Initialise dialog variables.
96 """
97 self.__arcGuiConfig = None
98 self.__serviceList = []
99 self.__selectedListActive = False
100 self.__rejectedListActive = False
101
103 """
104 Update contents of list boxes.
105 """
106 if self.__arcGuiConfig!=None:
107 self.defaultServicesList.Clear()
108 for serviceName in self.__serviceList:
109 self.defaultServicesList.Append(str(serviceName))
110 self.rejectedServicesList.Clear()
111 for serviceName in self.__rejectedList:
112 self.rejectedServicesList.Append(str(serviceName))
113
115 """
116 Assign arcgui config instance.
117 """
118 self.__arcGuiConfig = arcGuiConfig
119 self.__serviceList = list(self.__arcGuiConfig.defaultServices)
120 self.__rejectedList = list(self.__arcGuiConfig.rejectedServices)
121 self.__updateListBox()
122
124 """
125 Return arcgui config instance.
126 """
127 return self.__arcGuiConfig
128
130 """
131 Add a service to the selected services.
132 """
133 serviceUrl = wx.GetTextFromUser("Add new service", "Default services", "", centre = True)
134 if serviceUrl!="":
135 self.__serviceList.append(str(serviceUrl))
136 self.__updateListBox()
137 else:
138 wx.MessageBox("Not a valid URL", "Default services")
139
141 """
142 Remove a service from selected or rejected lists.
143 """
144 if self.__selectedListActive:
145 if self.defaultServicesList.GetSelection()>=0:
146 del self.__serviceList[self.defaultServicesList.GetSelection()]
147 self.defaultServicesList.Delete(self.defaultServicesList.GetSelection())
148 self.__updateListBox()
149 else:
150 wx.MessageBox("Please select a service in the list.")
151 else:
152 if self.rejectedServicesList.GetSelection()>=0:
153 del self.__rejectedList[self.rejectedServicesList.GetSelection()]
154 self.rejectedServicesList.Delete(self.rejectedServicesList.GetSelection())
155 self.__updateListBox()
156 else:
157 wx.MessageBox("Please select a service in the list.")
158
160 """
161 Clear all services.
162 """
163 self.defaultServicesList.Clear()
164 self.rejectedServicesList.Clear()
165 self.__serviceList = []
166 self.__updateListBox()
167
169 """
170 Modify selected or rejected service.
171 """
172 if self.__selectedListActive:
173 selectedItem = self.defaultServicesList.GetSelection()
174 serviceUrl = self.defaultServicesList.GetString(selectedItem)
175 serviceUrl = wx.GetTextFromUser("Modify service", "Default services", serviceUrl, centre = True)
176 if serviceUrl!="":
177 self.defaultServicesList.SetString(selectedItem, str(serviceUrl))
178 self.__serviceList[selectedItem] = str(serviceUrl)
179 else:
180 selectedItem = self.rejectedServicesList.GetSelection()
181 serviceUrl = self.rejectedServicesList.GetString(selectedItem)
182 serviceUrl = wx.GetTextFromUser("Modify rejected service", "Rejected services", serviceUrl, centre = True)
183 if serviceUrl!="":
184 self.rejectedServicesList.SetString(selectedItem, serviceUrl)
185 self.__serviceList[selectedItem] = serviceUrl
186
188 """
189 Return service list.
190 """
191 return self.defaultServicesList.GetStrings()
192
193 - def onOK(self, event):
194 """
195 Assign updates lists of services to the arcgui config instance and
196 close the dialog.
197 """
198 self.__arcGuiConfig.defaultServices = self.__serviceList
199 self.__arcGuiConfig.rejectedServices = self.__rejectedList
200 self.__arcGuiConfig.update()
201 self.Close()
202
204 """
205 Close dialog without saving any changes.
206 """
207 self.Close()
208
210 """
211 Move selected service to rejected list.
212 """
213 if self.__selectedListActive:
214 if self.defaultServicesList.GetSelection()>=0:
215 serviceToMove = self.__serviceList[self.defaultServicesList.GetSelection()]
216 del self.__serviceList[self.defaultServicesList.GetSelection()]
217 self.defaultServicesList.Delete(self.defaultServicesList.GetSelection())
218 self.__rejectedList.append(serviceToMove)
219 self.__updateListBox()
220 else:
221 wx.MessageBox("Please select a service in the list.")
222
224 """
225 Move rejected service to selected list.
226 """
227 if self.__rejectedListActive:
228 if self.rejectedServicesList.GetSelection()>=0:
229 serviceToMove = self.__rejectedList[self.rejectedServicesList.GetSelection()]
230 del self.__rejectedList[self.rejectedServicesList.GetSelection()]
231 self.rejectedServicesList.Delete(self.rejectedServicesList.GetSelection())
232 self.__serviceList.append(serviceToMove)
233 self.__updateListBox()
234 else:
235 wx.MessageBox("Please select a service in the list.")
236
238 """
239 Update the current list box selection.
240 """
241 self.__selectedListActive = True
242 self.__rejectedListActive = False
243
245 """
246 Update the current list box selection.
247 """
248 self.__selectedListActive = False
249 self.__rejectedListActive = True
250
251 arcGuiConfig = property(getArcGuiConfig, setArcGuiConfig)
252
253
254
255
256