327 |
object=self.getObjectAt(x,y) |
object=self.getObjectAt(x,y) |
328 |
menu = wxMenu() |
menu = wxMenu() |
329 |
|
|
330 |
popup_NEWTABLE =1 |
popup_NEWTABLE =1 |
331 |
popup_NEWFIELD =2 |
popup_NEWSTRFIELD =2 |
332 |
popup_NEWINDEX =3 |
popup_NEWNUMFIELD =3 |
333 |
popup_NEWUINDEX=4 |
popup_NEWINDEX =4 |
334 |
popup_EDIT =5 |
popup_NEWUINDEX =5 |
335 |
popup_RENAME =6 |
popup_EDIT =6 |
336 |
popup_DUPPL =7 |
popup_RENAME =7 |
337 |
popup_DEL =8 |
popup_DUPPL =8 |
338 |
|
popup_DEL =9 |
339 |
|
|
340 |
# TODO: Use a generalized popup menu like in the forms designer |
# TODO: Use a generalized popup menu like in the forms designer |
341 |
# instead of this one. the popup menu in the treeview and |
# instead of this one. the popup menu in the treeview and |
347 |
self.dispatchEvent('ObjectSelected', object=object, originator=__name__) |
self.dispatchEvent('ObjectSelected', object=object, originator=__name__) |
348 |
|
|
349 |
if object._type=='VisualTable' or object._type=="GSTable": |
if object._type=='VisualTable' or object._type=="GSTable": |
350 |
menu.Append(popup_NEWFIELD, "Add Field") |
menu.Append(popup_NEWSTRFIELD, "Add Field (String)") |
351 |
EVT_MENU(self,popup_NEWFIELD,self.onAddField) |
EVT_MENU(self,popup_NEWSTRFIELD,self.onAddStringField) |
352 |
|
menu.Append(popup_NEWNUMFIELD, "Add Field (Number)") |
353 |
|
EVT_MENU(self,popup_NEWNUMFIELD,self.onAddNumberField) |
354 |
|
|
355 |
elif object._type=="GSField": |
elif object._type=="GSField": |
356 |
menu.Append(popup_NEWINDEX, "Add Index") |
menu.Append(popup_NEWINDEX, "Add Index") |
397 |
|
|
398 |
dialog.Destroy() |
dialog.Destroy() |
399 |
|
|
400 |
def onAddField(self,event): |
def onAddNumberField(self,event): |
401 |
|
self.onAddField(event,'number') |
402 |
|
|
403 |
|
def onAddStringField(self,event): |
404 |
|
self.onAddField(event,'string') |
405 |
|
|
406 |
|
def onAddField(self,event,type='string'): |
407 |
dialog = wxTextEntryDialog(self.diagram,'Name of the new field:') |
dialog = wxTextEntryDialog(self.diagram,'Name of the new field:') |
408 |
|
|
409 |
if dialog.ShowModal() == wxID_OK: |
if dialog.ShowModal() == wxID_OK: |
413 |
fields=self.instance.incubator.createObject( |
fields=self.instance.incubator.createObject( |
414 |
self.rootObject,'fields', tbl) |
self.rootObject,'fields', tbl) |
415 |
|
|
416 |
|
params = {"name":dialog.GetValue()} |
417 |
|
if type=='string': |
418 |
|
params.update({"type":"string","size":20}) |
419 |
|
else: |
420 |
|
params.update({"type":type,"size":4}) |
421 |
|
|
422 |
self.instance.incubator.createObject(self.rootObject, 'field', |
self.instance.incubator.createObject(self.rootObject, 'field', |
423 |
fields,{"name":dialog.GetValue(), |
fields,params) |
|
"type":"varchar", |
|
|
"size":20}) |
|
424 |
|
|
425 |
dialog.Destroy() |
dialog.Destroy() |
426 |
|
|