[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/designer/src/schema Incubator.py Instance....
From: |
Jan Ischebeck |
Subject: |
gnue/designer/src/schema Incubator.py Instance.... |
Date: |
Wed, 18 Dec 2002 17:49:47 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jan Ischebeck <address@hidden> 02/12/18 17:49:47
Modified files:
designer/src/schema: Incubator.py Instance.py
designer/src/schema/DiaEditor: VisualEditor.py
Log message:
modify VisualEditor to work with new event model
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/Incubator.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/Instance.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/DiaEditor/VisualEditor.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: gnue/designer/src/schema/DiaEditor/VisualEditor.py
diff -c gnue/designer/src/schema/DiaEditor/VisualEditor.py:1.5
gnue/designer/src/schema/DiaEditor/VisualEditor.py:1.6
*** gnue/designer/src/schema/DiaEditor/VisualEditor.py:1.5 Mon Nov 25
00:41:42 2002
--- gnue/designer/src/schema/DiaEditor/VisualEditor.py Wed Dec 18 17:49:47 2002
***************
*** 30,62 ****
from wxPython.wx import *
from VisualTable import *
from gnue.common.schema.Objects import *
! from Incubator import *
!
class VisualEditor (ToolPanel):
runtime_section = 'SchemaDiaEditor'
def init(self):
! self.frame = instance
! self.panelColor = self.GetBackgroundColour()
! self._instance = instance
! self.rootObject = root
! self.current = root
! self._app = instance._app
self.dragmode = false
self.tables=[]
self.hasNewObj = false
self.rootObject.walk(self.inventoryObject)
self.diagram=wxScrolledWindow(self, -1,
style=wxSUNKEN_BORDER)
self.panelheight=100
self.panelwidth=200
self.diagram.EnableScrolling(true, true)
self.redrawBackground()
#self.diagram.SetBackgroundColour(wxWHITE)
self.calculateTablePositions()
# EventAware provided by ToolPanel
self.registerEventListeners({
--- 30,69 ----
from wxPython.wx import *
from VisualTable import *
from gnue.common.schema.Objects import *
! from gnue.designer.schema.Incubator import *
! from gnue.designer.ToolPanel import *
class VisualEditor (ToolPanel):
runtime_section = 'SchemaDiaEditor'
def init(self):
! # basic initialisation
! self.object = None
! self._app = self.instance._app
!
self.dragmode = false
self.tables=[]
self.hasNewObj = false
self.rootObject.walk(self.inventoryObject)
+ # Painting related stuff
self.diagram=wxScrolledWindow(self, -1,
style=wxSUNKEN_BORDER)
+ self.panelColor = self.GetBackgroundColour()
self.panelheight=100
self.panelwidth=200
self.diagram.EnableScrolling(true, true)
self.redrawBackground()
#self.diagram.SetBackgroundColour(wxWHITE)
self.calculateTablePositions()
+ Sizer = wxBoxSizer(wxHORIZONTAL)
+ #Sizer.Add(self.toolPalette, 0)
+ Sizer.Add(self.diagram, 1, wxEXPAND)
+
+ self.SetAutoLayout(true)
+ self.SetSizer(Sizer)
+
# EventAware provided by ToolPanel
self.registerEventListeners({
***************
*** 68,74 ****
!
EVT_PAINT(self.diagram, self.onPaintEvent)
# EVT_LEFT_DOWN(self.diagram, self.onLeftClickEvent)
EVT_MOTION(self.diagram, self.onMouseEvent)
--- 75,81 ----
! # WX WINDOWS Events
EVT_PAINT(self.diagram, self.onPaintEvent)
# EVT_LEFT_DOWN(self.diagram, self.onLeftClickEvent)
EVT_MOTION(self.diagram, self.onMouseEvent)
***************
*** 77,88 ****
EVT_LEFT_DCLICK(self.diagram, self.onDoubleClickEvent)
EVT_RIGHT_DOWN(self.diagram, self.onRightClickEvent)
- Sizer = wxBoxSizer(wxHORIZONTAL)
- #Sizer.Add(self.toolPalette, 0)
- Sizer.Add(self.diagram, 1, wxEXPAND)
-
- self.SetAutoLayout(true)
- self.SetSizer(Sizer)
def calculateTablePositions(self):
dc = wxMemoryDC()
--- 84,89 ----
***************
*** 116,126 ****
if object._type=="GSTable":
self.tables.append(VisualTable(object))
! def onSetCurrentObject (self, object, handler):
# mark actual object (in blue?)
! if self.current!=object:
! self.current=object
! self.onPaintEvent(None)
def findFreePosition(self, x,y,w,h):
conflict=true
--- 117,138 ----
if object._type=="GSTable":
self.tables.append(VisualTable(object))
!
! def onSetCurrentObject (self, event):
! object = event.object
! handler = event.originator
! if object == None:
! return
! if object != self.object:
! self.setCurrent(object)
!
! def setCurrent(self, object):
# mark actual object (in blue?)
! if self.object!=object:
! self.object=object
! dc = wxClientDC(self.diagram)
! self.diagram.PrepareDC(dc)
! self.drawWholeScreen(dc)
def findFreePosition(self, x,y,w,h):
conflict=true
***************
*** 149,176 ****
self.panelheight / 20)
! def onCreateObject (self, object, handler):
! if object._type=="GSTable":
! self.tables.append(VisualTable(object))
! self.hasNewObj=true
! self.refresh()
return
! vTbl=VisualTable(object)
! dc = wxClientDC(self.diagram)
! self.diagram.PrepareDC(dc)
! (w,h)=vTbl.calculateDimensions(dc)
! # position new Table
! (x,y)=self.findFreePosition(10,10,w,h)
! vTbl.moveTo(x,y)
! self.tables.append(vTbl)
! if object._type=="GSField":
! self.hasNewObj=true
! self.onModifyObject(object,None,None)
! def onModifyObject (self, object, handler, modifications):
self.refresh()
return
tbl=object.findParentOfType('GSTable')
--- 161,196 ----
self.panelheight / 20)
! def onCreateObject (self, event):
! object = event.object
! handler = event.originator
! if object == None:
return
! if handler != __name__:
! try:
! GDebug.printMesg(4,"Adding %s (%s)" % (object.name, object._type))
! except:
! if object._type=="GSTable":
! self.tables.append(VisualTable(object))
! self.hasNewObj=true
! self.refresh()
! return
! vTbl=VisualTable(object)
! dc = wxClientDC(self.diagram)
! self.diagram.PrepareDC(dc)
! (w,h)=vTbl.calculateDimensions(dc)
! # position new Table
! (x,y)=self.findFreePosition(10,10,w,h)
! vTbl.moveTo(x,y)
! self.tables.append(vTbl)
! if object._type=="GSField":
! self.hasNewObj=true
! self.onModifyObject(object,None,None)
! def onModifyObject (self, event):
self.refresh()
return
tbl=object.findParentOfType('GSTable')
***************
*** 183,189 ****
# check if still freepos
(x,y)=self.findFreePosition(i.xpos,i.ypos,w,h)
i.moveTo(x,y)
! i.drawMe(dc,self.current)
return
def refresh(self):
--- 203,209 ----
# check if still freepos
(x,y)=self.findFreePosition(i.xpos,i.ypos,w,h)
i.moveTo(x,y)
! i.drawMe(dc,self.object)
return
def refresh(self):
***************
*** 206,230 ****
vTbl.calculateDimensions(dc)
self.refresh()
-
-
def onPaintEvent(self, event, clear=false):
if self.hasNewObj:
self.calculateTablePositions()
self.hasNewObj=false
dc = wxPaintDC(self.diagram)
self.diagram.PrepareDC(dc)
dc.BeginDrawing()
#dc.Blit(0,0,self.panelheight,self.panelwidth,self.imagedc,0,0)
#dc.EndDrawing()
#return
#dc.BeginDrawing()
- if clear:
- dc.SetBackground(self.panelColor)
- dc.Clear()
for vTbl in self.tables:
! vTbl.drawMe(dc,self.current)
!
dc.EndDrawing()
def redrawBackground(self):
--- 226,250 ----
vTbl.calculateDimensions(dc)
self.refresh()
def onPaintEvent(self, event, clear=false):
if self.hasNewObj:
self.calculateTablePositions()
self.hasNewObj=false
dc = wxPaintDC(self.diagram)
self.diagram.PrepareDC(dc)
+ if clear:
+ dc.SetBackground(self.panelColor)
+ dc.Clear()
+ self.drawWholeScreen(dc)
+
+ def drawWholeScreen(self,dc):
dc.BeginDrawing()
#dc.Blit(0,0,self.panelheight,self.panelwidth,self.imagedc,0,0)
#dc.EndDrawing()
#return
#dc.BeginDrawing()
for vTbl in self.tables:
! vTbl.drawMe(dc,self.object)
dc.EndDrawing()
def redrawBackground(self):
***************
*** 232,238 ****
dc=wxMemoryDC()
dc.SelectObject(btm);
for vTbl in self.tables:
! vTbl.drawMe(dc,self.current)
self.imagedc=dc
def calculateMousePos(self,event):
--- 252,258 ----
dc=wxMemoryDC()
dc.SelectObject(btm);
for vTbl in self.tables:
! vTbl.drawMe(dc,self.object)
self.imagedc=dc
def calculateMousePos(self,event):
***************
*** 260,266 ****
(x,y) = self.calculateMousePos(event)
object=self.getObjectAt(x,y)
if object._type!='VisualTable':
! self._instance.onSetCurrentObject(object, __name__)
return
else:
self.dragx=x-object.xpos
--- 280,287 ----
(x,y) = self.calculateMousePos(event)
object=self.getObjectAt(x,y)
if object._type!='VisualTable':
! self.dispatchEvent('ObjectSelected', object=object,\
! originator=__name__)
return
else:
self.dragx=x-object.xpos
***************
*** 282,292 ****
dc.BeginDrawing()
dc.SetLogicalFunction(wxXOR)
if self.spriteOn:
! self.dragobj.drawMe(dc,self.current,true)
self.dragobj.moveTo(x-self.dragx,y-self.dragy)
self.spriteOn=true
! self.dragobj.drawMe(dc,self.current,true)
# TODO: implement a way to move tables as a whole and not
# only showing the border of the window.
--- 303,313 ----
dc.BeginDrawing()
dc.SetLogicalFunction(wxXOR)
if self.spriteOn:
! self.dragobj.drawMe(dc,self.object,true,true)
self.dragobj.moveTo(x-self.dragx,y-self.dragy)
self.spriteOn=true
! self.dragobj.drawMe(dc,self.object,true,true)
# TODO: implement a way to move tables as a whole and not
# only showing the border of the window.
***************
*** 319,326 ****
if object._type=='VisualTable':
object=object.instance
!
! self._instance.onSetCurrentObject(object, __name__)
if object._type=='VisualTable' or object._type=="GSTable":
menu.Append(popup_NEWFIELD, "Add Field")
--- 340,347 ----
if object._type=='VisualTable':
object=object.instance
!
! self.dispatchEvent('ObjectSelected', object=object, originator=__name__)
if object._type=='VisualTable' or object._type=="GSTable":
menu.Append(popup_NEWFIELD, "Add Field")
***************
*** 358,372 ****
self.diagram.PopupMenu(menu, clickPt)
menu.Destroy()
def onNewTable(self,event):
dialog = wxTextEntryDialog(self.diagram,'Name of the new table:')
if dialog.ShowModal() == wxID_OK:
tables=self.rootObject.findChildOfType("GSTables")
if tables==None:
! tables = createObject(self._instance, self.rootObject, 'tables',
None,None,self.rootObject)
! createObject(self._instance, self.rootObject, 'table',
None,None,tables,{"name":dialog.GetValue()})
dialog.Destroy()
--- 379,395 ----
self.diagram.PopupMenu(menu, clickPt)
menu.Destroy()
+ # TODO: replace "createObject" by "self.instance.incubator"
+
def onNewTable(self,event):
dialog = wxTextEntryDialog(self.diagram,'Name of the new table:')
if dialog.ShowModal() == wxID_OK:
tables=self.rootObject.findChildOfType("GSTables")
if tables==None:
! tables = createObject(self.instance, self.rootObject, 'tables',
None,None,self.rootObject)
! createObject(self.instance, self.rootObject, 'table',
None,None,tables,{"name":dialog.GetValue()})
dialog.Destroy()
***************
*** 375,387 ****
dialog = wxTextEntryDialog(self.diagram,'Name of the new field:')
if dialog.ShowModal() == wxID_OK:
! fields=self.current.findChildOfType("GSFields")
if fields==None:
! tbl=self.current.findChildOfType("GSTable")
! fields=createObject(self._instance, self.rootObject,'fields',
None,None,tbl)
! createObject(self._instance, self.rootObject, 'field',
None,None,fields,{"name":dialog.GetValue(),
"type":"varchar",
"size":20})
--- 398,410 ----
dialog = wxTextEntryDialog(self.diagram,'Name of the new field:')
if dialog.ShowModal() == wxID_OK:
! fields=self.object.findChildOfType("GSFields")
if fields==None:
! tbl=self.object.findChildOfType("GSTable")
! fields=createObject(self.instance, self.rootObject,'fields',
None,None,tbl)
! createObject(self.instance, self.rootObject, 'field',
None,None,fields,{"name":dialog.GetValue(),
"type":"varchar",
"size":20})
***************
*** 389,420 ****
dialog.Destroy()
def onAddIndex(self,event):
! tbl=self.current.findParentOfType("GSTable")
indexes=tbl.findChildOfType("GSIndexes")
if indexes==None:
! indexes = createObject(self._instance, self.rootObject, 'indexes',
None,None,tbl)
! idx=createObject(self._instance, self.rootObject, 'index',
None,None,indexes,
! {"name":"%s_%s" % (tbl.name,self.current.name)})
! createObject(self._instance, self.rootObject, 'index',
None,None,idx,
! {"name":self.current.name})
self.refresh()
def onAddUniqueIndex(self,event):
! tbl=self.current.findParentOfType("GSTable")
indexes=tbl.findChildOfType("GSIndexes")
if indexes==None:
! indexes = createObject(self._instance, self.rootObject, 'indexes',
None,None,tbl)
! idx=createObject(self._instance, self.rootObject, 'index',
None,None,indexes,
! {"name":"%s_%s" % (tbl.name,self.current.name),
"unique":"Y"})
! createObject(self._instance, self.rootObject, 'index',
None,None,idx,
! {"name":self.current.name})
self.refresh()
--- 412,443 ----
dialog.Destroy()
def onAddIndex(self,event):
! tbl=self.object.findParentOfType("GSTable")
indexes=tbl.findChildOfType("GSIndexes")
if indexes==None:
! indexes = createObject(self.instance, self.rootObject, 'indexes',
None,None,tbl)
! idx=createObject(self.instance, self.rootObject, 'index',
None,None,indexes,
! {"name":"%s_%s" % (tbl.name,self.object.name)})
! createObject(self.instance, self.rootObject, 'index',
None,None,idx,
! {"name":self.object.name})
self.refresh()
def onAddUniqueIndex(self,event):
! tbl=self.object.findParentOfType("GSTable")
indexes=tbl.findChildOfType("GSIndexes")
if indexes==None:
! indexes = createObject(self.instance, self.rootObject, 'indexes',
None,None,tbl)
! idx=createObject(self.instance, self.rootObject, 'index',
None,None,indexes,
! {"name":"%s_%s" % (tbl.name,self.object.name),
"unique":"Y"})
! createObject(self.instance, self.rootObject, 'index',
None,None,idx,
! {"name":self.object.name})
self.refresh()
***************
*** 423,435 ****
def onRename(self,event):
dialog = wxTextEntryDialog(self.diagram,'New Name')
! if hasattr(self.current,'name'):
! dialog.SetValue(self.current.name)
if dialog.ShowModal() == wxID_OK:
! self.current.name=dialog.GetValue()
! self._instance.onModifyObject(self.current,"schema",
! [('name',self.current.name)])
self.refresh()
dialog.Destroy()
--- 446,458 ----
def onRename(self,event):
dialog = wxTextEntryDialog(self.diagram,'New Name')
! if hasattr(self.object,'name'):
! dialog.SetValue(self.object.name)
if dialog.ShowModal() == wxID_OK:
! self.object.name=dialog.GetValue()
! self.instance.onModifyObject(self.object,"schema",
! [('name',self.object.name)])
self.refresh()
dialog.Destroy()
***************
*** 442,448 ****
pass
def onDelete(self,event):
! deleteObject(self._instance, self.rootObject, self.current, firstRun=1)
def onLeftClickEvent(self,event):
--- 465,471 ----
pass
def onDelete(self,event):
! deleteObject(self.instance, self.rootObject, self.object, firstRun=1)
def onLeftClickEvent(self,event):
***************
*** 450,461 ****
for vTbl in self.tables:
object=vTbl.getObjectAt(x,y)
if object != None:
! self._instance.onSetCurrentObject(object, __name__)
! return
def onDoubleClickEvent(self,event):
(x,y) = self.calculateMousePos(event)
object=self.getObjectAt(x,y)
if object != None and object._type!='VisualTable':
! # begin to edit this object
! self._instance.onSetCurrentObject(object, __name__)
--- 473,485 ----
for vTbl in self.tables:
object=vTbl.getObjectAt(x,y)
if object != None:
! self.dispatchEvent('ObjectSelected', object=object,
originator=__name__)
!
def onDoubleClickEvent(self,event):
(x,y) = self.calculateMousePos(event)
object=self.getObjectAt(x,y)
if object != None and object._type!='VisualTable':
! # begin to edit this object
! self.dispatchEvent('ObjectSelected', object=object, originator=__name__)
! # TODO: add edit functions here
Index: gnue/designer/src/schema/Incubator.py
diff -c gnue/designer/src/schema/Incubator.py:1.4
gnue/designer/src/schema/Incubator.py:1.5
*** gnue/designer/src/schema/Incubator.py:1.4 Mon Nov 25 00:41:42 2002
--- gnue/designer/src/schema/Incubator.py Wed Dec 18 17:49:47 2002
***************
*** 73,80 ****
o.name = name
instance.nameMappings[o.name] = o
o._buildObject()
! instance.dispatchEvent(events.Event('ObjectCreated',object=o,
originator=__name__))
! instance.dispatchEvent(events.Event('ObjectSelected',object=object,
originator=__name__))
return o
--- 73,80 ----
o.name = name
instance.nameMappings[o.name] = o
o._buildObject()
! instance.dispatchEvent('ObjectCreated',object=o, originator=__name__)
! instance.dispatchEvent('ObjectSelected',object=object, originator=__name__)
return o
Index: gnue/designer/src/schema/Instance.py
diff -c gnue/designer/src/schema/Instance.py:1.13
gnue/designer/src/schema/Instance.py:1.14
*** gnue/designer/src/schema/Instance.py:1.13 Sun Dec 15 17:22:41 2002
--- gnue/designer/src/schema/Instance.py Wed Dec 18 17:49:47 2002
***************
*** 36,46 ****
# Tool support...
from LayoutEditor import LayoutEditor
from TreeView import TreeView
! from TableEditor import TableEditor
from gnue.designer.PropertyEditor import PropertyEditor
from gnue.designer.DataSourceEditor import DataSourceEditor
from gnue.designer.SchemaViewer import SchemaViewer
! ##from gnue.designer.schema.VisualEditor import VisualEditor
--- 36,46 ----
# Tool support...
from LayoutEditor import LayoutEditor
from TreeView import TreeView
! # from TableEditor import TableEditor
from gnue.designer.PropertyEditor import PropertyEditor
from gnue.designer.DataSourceEditor import DataSourceEditor
from gnue.designer.SchemaViewer import SchemaViewer
! from gnue.designer.schema.DiaEditor.VisualEditor import VisualEditor
***************
*** 83,90 ****
self.addTool(_('treeEditor'), _('Object Navigator'), TreeView)
self.addTool(_('propertyEditor'), _('Property Inspector'), PropertyEditor)
self.addTool(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
! self.addTool(_('tableEditor'), _('Table/Field Editor'), TableEditor)
! # self.addTool(_('visualEditor'), _('Visual Editor'), VisualEditor)
def createWizards(self):
self.loadWizards(wizards)
--- 83,90 ----
self.addTool(_('treeEditor'), _('Object Navigator'), TreeView)
self.addTool(_('propertyEditor'), _('Property Inspector'), PropertyEditor)
self.addTool(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
! # self.addTool(_('tableEditor'), _('Table/Field Editor'), TableEditor)
! self.addTool(_('visualEditor'), _('Visual Editor'), VisualEditor)
def createWizards(self):
self.loadWizards(wizards)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/designer/src/schema Incubator.py Instance....,
Jan Ischebeck <=