commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/designer/src EventEditor.py Instance.py Pr...


From: Jason Cater
Subject: gnue/designer/src EventEditor.py Instance.py Pr...
Date: Sun, 15 Dec 2002 17:22:41 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    02/12/15 17:22:41

Modified files:
        designer/src   : EventEditor.py Instance.py PropertyEditor.py 
                         ToolPanel.py 
        designer/src/forms: Instance.py 
        designer/src/schema: Instance.py TreeView.py 
Added files:
        designer/src   : GridCellEditors.py 

Log message:
        * Start of a schema grid-based table editor
        * Misc refactoring

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/GridCellEditors.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/EventEditor.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Instance.py.diff?tr1=1.73&tr2=1.74&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/PropertyEditor.py.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/ToolPanel.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/Instance.py.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/Instance.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/TreeView.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: gnue/designer/src/EventEditor.py
diff -c gnue/designer/src/EventEditor.py:1.6 
gnue/designer/src/EventEditor.py:1.7
*** gnue/designer/src/EventEditor.py:1.6        Fri Dec  6 19:55:25 2002
--- gnue/designer/src/EventEditor.py    Sun Dec 15 17:22:41 2002
***************
*** 34,40 ****
  from gnue.common.GTrigger import GTrigger
  from gnue.common.GParserHelpers import GContent
  from ToolPanel import *
! from PropertyEditor import CharCellEditor
  
  class EventEditor (ToolPanel):
  
--- 34,40 ----
  from gnue.common.GTrigger import GTrigger
  from gnue.common.GParserHelpers import GContent
  from ToolPanel import *
! from GridCellEditors import CharCellEditor
  
  class EventEditor (ToolPanel):
  
Index: gnue/designer/src/Instance.py
diff -c gnue/designer/src/Instance.py:1.73 gnue/designer/src/Instance.py:1.74
*** gnue/designer/src/Instance.py:1.73  Sat Nov 30 18:00:35 2002
--- gnue/designer/src/Instance.py       Sun Dec 15 17:22:41 2002
***************
*** 316,322 ****
                  RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Left',200))
        leftWin = self.leftSplitter
      else:
!       leftWin = paneMap['bottomleft'] or paneMap['topleft']
  
      if self.rightSplitter:
        self.rightSplitter.SplitHorizontally(panemap['topright'].GetWindow(),
--- 316,322 ----
                  RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Left',200))
        leftWin = self.leftSplitter
      else:
!       leftWin = panemap['bottomleft'] or panemap['topleft']
  
      if self.rightSplitter:
        self.rightSplitter.SplitHorizontally(panemap['topright'].GetWindow(),
***************
*** 324,330 ****
                  RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Right',300))
        rightWin = self.rightSplitter
      else:
!       rightWin = paneMap['bottomright'] or paneMap['topright']
  
      if self.horizSplitter:
        self.horizSplitter.SetSize(self.GetClientSize())
--- 324,330 ----
                  RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Right',300))
        rightWin = self.rightSplitter
      else:
!       rightWin = panemap['bottomright'] or panemap['topright']
  
      if self.horizSplitter:
        self.horizSplitter.SetSize(self.GetClientSize())
Index: gnue/designer/src/PropertyEditor.py
diff -c gnue/designer/src/PropertyEditor.py:1.34 
gnue/designer/src/PropertyEditor.py:1.35
*** gnue/designer/src/PropertyEditor.py:1.34    Thu Dec 12 09:42:10 2002
--- gnue/designer/src/PropertyEditor.py Sun Dec 15 17:22:41 2002
***************
*** 32,37 ****
--- 32,38 ----
  from wxPython.grid import *
  from gnue.common import GDebug, GTypecast
  from ToolPanel import *
+ from GridCellEditors import *
  
  class PropertyEditor (ToolPanel):
  
***************
*** 270,541 ****
        evt.Skip()
      except ValueError:
        wxBell()
- 
- 
- #
- #
- #
- class CharCellEditor (wxPyGridCellEditor):
-   def __init__(self, grid, attributes):
-     wxPyGridCellEditor.__init__(self)
-     self.grid = grid
-     self.attributes = attributes
-     self.__created = 0
- 
- 
-   def Create(self, parent, id, evtHandler):
-     self.__created = 1
-     GDebug.printMesg(10,'Creating CharCellEditor')
-     self._tc = wxTextCtrl(parent, id, "")
-     self._tc.SetInsertionPoint(0)
-     self.SetControl(self._tc)
-     if evtHandler:
-       self._tc.PushEventHandler(evtHandler)
- 
-   def SetSize(self, rect):
-     self._tc.SetDimensions(rect.x, rect.y, rect.width+2, rect.height+2)
- 
-   def Show(self, show, attr):
-     self.base_Show(show, attr)
- 
-   def PaintBackground(self, rect, attr):
-     pass
- 
-   def BeginEdit(self, row, col, grid):
-     self.startValue = grid.GetTable().GetValue(row, col)
-     self._tc.SetValue(self.startValue)
-     self._tc.SetInsertionPointEnd()
-     self._tc.SetFocus()
- 
-     # For this example, select the text
-     self._tc.SetSelection(0, self._tc.GetLastPosition())
- 
- 
-   def EndEdit(self, row, col, grid):
-     changed = false
- 
-     val = self._tc.GetValue()
-     if val != self.startValue:
-        changed = true
-        grid.GetTable().SetValue(row, col, val) # update the table
- 
-     self.startValue = ''
-     self._tc.SetValue('')
-     return changed
- 
- 
-   def Reset(self):
-     self._tc.SetValue(self.startValue)
-     self._tc.SetInsertionPointEnd()
- 
- 
-   def IsAcceptedKey(self, evt):
-     return (not (evt.ControlDown() or evt.AltDown()) and
-             evt.GetKeyCode() != WXK_SHIFT)
- 
- 
-   def StartingKey(self, evt):
-     GDebug.printMesg(10, "Starting Key; created=%s" % self.__created)
-     key = evt.GetKeyCode()
-     ch = None
-     if key in [WXK_NUMPAD0, WXK_NUMPAD1, WXK_NUMPAD2, WXK_NUMPAD3, 
WXK_NUMPAD4,
-                WXK_NUMPAD5, WXK_NUMPAD6, WXK_NUMPAD7, WXK_NUMPAD8, 
WXK_NUMPAD9]:
-         ch = ch = chr(ord('0') + key - WXK_NUMPAD0)
- 
-     elif key < 256 and key >= 0 and chr(key):
-       ch = chr(key)
-       if not evt.ShiftDown():
-         ch = string.lower(ch)
- 
-     if ch is not None:
-       # For this example, replace the text.  Normally we would append it.
-       #self._tc.AppendText(ch)
- #      self._tc.SetValue(ch)
-  #     self._tc.SetInsertionPointEnd()
-       pass
-     else:
-       evt.Skip()
- 
- 
-   def StartingClick(self):
-     pass
- 
-   def Destroy(self):
-     self.base_Destroy()
- 
-   def Clone(self):
-     return CharCellEditor(self.attributes)
- 
- 
- class IntCellEditor (CharCellEditor):
-   def __init__(self, grid, attributes): 
-     CharCellEditor.__init__(self, grid, attributes)
- 
-   def Create(self, parent, id, evtHandler):
-     CharCellEditor.Create(self, parent, id, evtHandler)
-     EVT_CHAR(self._tc, self.OnKeyPressed)
- 
-   def OnKeyPressed(self, evt):
-     if (ord('0') <= evt.KeyCode() <= ord('9') or \
-         evt.KeyCode() in (ord('-'), ord('+')) or \
-         evt.KeyCode() < 32 or evt.KeyCode() > 126):
-       evt.Skip()
- 
-   def StartingKey(self, evt):
-     key = evt.GetKeyCode()
-     ch = None
-     if key in [WXK_NUMPAD0, WXK_NUMPAD1, WXK_NUMPAD2, WXK_NUMPAD3, 
WXK_NUMPAD4,
-                WXK_NUMPAD5, WXK_NUMPAD6, WXK_NUMPAD7, WXK_NUMPAD8, 
WXK_NUMPAD9]:
-         ch = ch = chr(ord('0') + key - WXK_NUMPAD0)
- 
-     elif key < 256 and key >= 0 and chr(key):
-       ch = chr(key)
-       if not evt.ShiftDown():
-         ch = string.lower(ch)
- 
-     if '0' <= ch <= '9':
-       # For this example, replace the text.  Normally we would append it.
-       #self._tc.AppendText(ch)
-       pass
- #      self._tc.SetValue(ch)
- #      self._tc.SetInsertionPointEnd()
-     else:
-       evt.Skip()
- 
- 
- class RestrictedCellEditor (CharCellEditor):
-   def __init__(self, grid, attributes): 
-     CharCellEditor.__init__(self, grid, attributes)
-     self.valueList = attributes['ValueSet'].keys()
-       
-     self.valueList.sort()
-     self.selectionList = []
-     self.valueMap = {}
- 
-     i = 0 
-     if not (attributes.has_key('Required') and attributes['Required'] ): 
-       self.valueMap[''] = 0
-       self.selectionList.append(' <Not Set> ')
-       i = 1
- 
-     for v in self.valueList: 
-       self.valueMap[v] = i
-       self.selectionList.append("%s" % (attributes['ValueSet'][v] or v))
-       i = i + 1
- 
-     self.valueList.insert(0, '')
- 
-   def Create(self, parent, id, evtHandler):
-     GDebug.printMesg(10,'Creating CharCellEditor')
-     self._tc = wxComboBox(parent, id, "", style=wxCB_READONLY, 
-                           choices=self.selectionList)
-     self.SetControl(self._tc)
-     if evtHandler:
-       self._tc.PushEventHandler(evtHandler)
- 
-   def BeginEdit(self, row, col, grid):
-     self.startValue = grid.GetTable().GetValue(row, col)
-     self._tc.SetSelection(self.valueMap[self.startValue])
-     self._tc.SetFocus()
- 
-   def EndEdit(self, row, col, grid):
-     changed = false
- 
-     val = self.valueList[self._tc.GetSelection()]
-     if val != self.startValue:
-        changed = true
-        grid.GetTable().SetValue(row, col, "%s" % val) # update the table
- 
-     self.startValue = ''
-     self._tc.SetSelection(0)
-     return changed
- 
- 
-   def Reset(self):
-     self._tc.SetSelection(self.valueMap[self.startValue])
-     #self._tc.SetInsertionPointEnd()
- 
- 
-   def StartingKey(self, evt):
-     key = evt.GetKeyCode()
-     ch = None
-     if key in [WXK_NUMPAD0, WXK_NUMPAD1, WXK_NUMPAD2, WXK_NUMPAD3, 
WXK_NUMPAD4,
-                WXK_NUMPAD5, WXK_NUMPAD6, WXK_NUMPAD7, WXK_NUMPAD8, 
WXK_NUMPAD9]:
-         ch = ch = chr(ord('0') + key - WXK_NUMPAD0)
- 
-     elif key < 256 and key >= 0 and chr(key):
-       ch = chr(key)
-       if not evt.ShiftDown():
-         ch = string.lower(ch)
- 
-     if ch is not None:
-       # For this example, replace the text.  Normally we would append it.
-       #self._tc.AppendText(ch)
-       pass
- #      self._tc.SetValue(ch)
- #      self._tc.SetInsertionPointEnd()
-     else:
-       evt.Skip()
- 
- 
- class BoolCellEditor (CharCellEditor):
-   def __init__(self, grid, attributes):
-     CharCellEditor.__init__(self, grid, attributes)
-       
-     self.selectionList = ['FALSE','TRUE']
- 
-   def Create(self, parent, id, evtHandler):
-     self._tc = wxComboBox(parent, id, "", style=wxCB_READONLY, 
-                           choices=self.selectionList)
-     self.SetControl(self._tc)
-     if evtHandler:
-       self._tc.PushEventHandler(evtHandler)
- 
-   def BeginEdit(self, row, col, grid):
-     self.startValue = grid.GetTable().GetValue(row, col)
-     
-     self._tc.SetValue(self.startValue)
-     self._tc.SetFocus()
- 
-   def EndEdit(self, row, col, grid):
-     changed = false
- 
-     if self._tc.GetSelection(): 
-       val = 'TRUE' 
-     else: 
-       val = 'FALSE' 
-     if val != self.startValue:
-        changed = true
-        grid.GetTable().SetValue(row, col, "%s" % val) # update the table
- 
-     self.startValue = ''
-     self._tc.SetSelection(0)
-     return changed
- 
- 
-   def Reset(self):
-     self._tc.SetValue(self.startValue)
-     #self._tc.SetInsertionPointEnd()
- 
- 
-   def StartingKey(self, evt):
-     key = evt.GetKeyCode()
-     ch = None
-     if key in [WXK_NUMPAD0, WXK_NUMPAD1, WXK_NUMPAD2, WXK_NUMPAD3, 
WXK_NUMPAD4,
-                WXK_NUMPAD5, WXK_NUMPAD6, WXK_NUMPAD7, WXK_NUMPAD8, 
WXK_NUMPAD9]:
-         ch = ch = chr(ord('0') + key - WXK_NUMPAD0)
- 
-     elif key < 256 and key >= 0 and chr(key):
-       ch = chr(key)
-       if not evt.ShiftDown():
-         ch = string.lower(ch)
- 
-     if ch is not None:
-       # For this example, replace the text.  Normally we would append it.
-       #self._tc.AppendText(ch)
-       pass
- #      self._tc.SetValue(ch)
- #      self._tc.SetInsertionPointEnd()
-     else:
-       evt.Skip()
  
--- 271,274 ----
Index: gnue/designer/src/ToolPanel.py
diff -c gnue/designer/src/ToolPanel.py:1.4 gnue/designer/src/ToolPanel.py:1.5
*** gnue/designer/src/ToolPanel.py:1.4  Sat Nov 30 18:00:35 2002
--- gnue/designer/src/ToolPanel.py      Sun Dec 15 17:22:41 2002
***************
*** 45,51 ****
  
    def __init__(self, instance, rootObject, parentWindow):
      wxPanel.__init__(self,parentWindow,-1)
!     events.EventAware.__init__(self, instance.eventController)
  
      self.frame = parentWindow
      self.instance = instance
--- 45,51 ----
  
    def __init__(self, instance, rootObject, parentWindow):
      wxPanel.__init__(self,parentWindow,-1)
!     events.EventAware.__init__(self, instance)
  
      self.frame = parentWindow
      self.instance = instance
Index: gnue/designer/src/forms/Instance.py
diff -c gnue/designer/src/forms/Instance.py:1.23 
gnue/designer/src/forms/Instance.py:1.24
*** gnue/designer/src/forms/Instance.py:1.23    Tue Dec 10 01:48:04 2002
--- gnue/designer/src/forms/Instance.py Sun Dec 15 17:22:41 2002
***************
*** 226,234 ****
  
    # Used by TemplateParser to build a wizard.current dict
    def buildWizardCurrentDict(self):
!     return {'form': self.rootObject,
!             'logic': self.rootObject._logic,
!             'layout': self.rootObject._layout,
              'page': self.visualEditor.page,
              'block': self.visualEditor.block,
              'object': self._currentObject}
--- 226,235 ----
  
    # Used by TemplateParser to build a wizard.current dict
    def buildWizardCurrentDict(self):
!     baseForm = self._currentObject.findParentOfType('GFForm')
!     return {'form': baseForm,
!             'logic': baseForm._logic,
!             'layout': baseForm._layout,
              'page': self.visualEditor.page,
              'block': self.visualEditor.block,
              'object': self._currentObject}
Index: gnue/designer/src/schema/Instance.py
diff -c gnue/designer/src/schema/Instance.py:1.12 
gnue/designer/src/schema/Instance.py:1.13
*** gnue/designer/src/schema/Instance.py:1.12   Fri Nov 22 20:48:02 2002
--- gnue/designer/src/schema/Instance.py        Sun Dec 15 17:22:41 2002
***************
*** 36,45 ****
  # Tool support...
  from LayoutEditor import LayoutEditor
  from TreeView import TreeView
  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.VisualEditor import VisualEditor
  
  
  
***************
*** 54,60 ****
  
  
    def loadBuffer(self, buffer):
!     schema = GSParser.loadSchema (buffer, self, initialize=0)
      schema.name = 'schema'
      return schema
  
--- 55,61 ----
  
  
    def loadBuffer(self, buffer):
!     schema = GSParser.loadFile (buffer, self, initialize=0)
      schema.name = 'schema'
      return schema
  
***************
*** 69,99 ****
    def inventoryObject(self, object):
      if isinstance(object, Objects.GSTables):
        self.tables = object
! 
!     if isinstance(object, Objects.GSTable):
        self._tableMappings[object.name] = object
! 
! 
!   def createVisualEditor(self):
!     return LayoutEditor(self, self)
! 
  
    def createTools(self):
      self.addTool(_('treeEditor'), _('Object Navigator'), TreeView)
      self.addTool(_('propertyEditor'), _('Property Inspector'), PropertyEditor)
      self.addTool(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
!     self.addTool(_('visualEditor'), _('Visual Editor'), VisualEditor)
  
    def createWizards(self):
      self.loadWizards(wizards)
  
- 
    def preSave(self):
      pass
  
!   # Hack having to do with UIwxpython import
!   def uiEventTrap(self, event):
!     pass
  
  
  
--- 70,109 ----
    def inventoryObject(self, object):
      if isinstance(object, Objects.GSTables):
        self.tables = object
!     elif object._type == 'GSTable':
        self._tableMappings[object.name] = object
!       object._fieldList = []
!       object._fieldMap = {}
!     elif object._type == 'GSField':
!       table = object.findParentOfType('GSTable')
!       table._fieldList.append(object)
!       table._fieldMap[object.name.lower()] = object
  
    def createTools(self):
      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)
  
    def preSave(self):
      pass
  
!   # Used by TemplateParser to build a wizard.current dict
!   def buildWizardCurrentDict(self):
!     return {'schema': self.rootObject,
! ##            'tables': self.rootObject._tables,
!             'table': self.tableEditor.table,
! ##            'field': self.visualEditor.page,
!             'object': self._currentObject}
! 
! 
! ##  # Hack having to do with UIwxpython import
! ##  def uiEventTrap(self, event):
! ##    pass
  
  
  
Index: gnue/designer/src/schema/TreeView.py
diff -c gnue/designer/src/schema/TreeView.py:1.3 
gnue/designer/src/schema/TreeView.py:1.4
*** gnue/designer/src/schema/TreeView.py:1.3    Tue Aug  6 11:06:29 2002
--- gnue/designer/src/schema/TreeView.py        Sun Dec 15 17:22:41 2002
***************
*** 38,44 ****
  
      self.rootDescr = 'Schema'
      BaseTreeView.__init__(self, instance, root, parent)
!     self.SetPyData(self.rootObject._treeItem, self.rootObject)
      self.rootObject.walk(self.inventoryObject)
  
  
--- 38,44 ----
  
      self.rootDescr = 'Schema'
      BaseTreeView.__init__(self, instance, root, parent)
!     self.tree.SetPyData(self.rootObject._treeItem, self.rootObject)
      self.rootObject.walk(self.inventoryObject)
  
  
***************
*** 47,61 ****
        icon = 'properties'
        try:
          parentTreeItem = object._parent._treeItem
!       except AttributeError: 
          parentTreeItem = None
          # TODO:
          print "The parent object of this object has not been registered to "+\
                "the TreeView inventory. It is not possible to add this "+\
                "object to the inventory at the moment. This needs to be "+\
                "fixed. (Obj: ",object,")."
!         
!         return 
        if object._type == 'GSTables':
          icon = 'datasource'
        elif object._type == 'GSTable':
--- 47,61 ----
        icon = 'properties'
        try:
          parentTreeItem = object._parent._treeItem
!       except AttributeError:
          parentTreeItem = None
          # TODO:
          print "The parent object of this object has not been registered to "+\
                "the TreeView inventory. It is not possible to add this "+\
                "object to the inventory at the moment. This needs to be "+\
                "fixed. (Obj: ",object,")."
! 
!         return
        if object._type == 'GSTables':
          icon = 'datasource'
        elif object._type == 'GSTable':
***************
*** 65,71 ****
  
        object._treeItem = self.AppendItem(parentTreeItem,
            "%s" % object.getDescription())
!       self.SetPyData(object._treeItem, object)
!       #self.SetItemImage(object._treeItem, treeIconMap[icon])
  
  
--- 65,71 ----
  
        object._treeItem = self.AppendItem(parentTreeItem,
            "%s" % object.getDescription())
!       self.tree.SetPyData(object._treeItem, object)
!       #self.tree.SetItemImage(object._treeItem, treeIconMap[icon])
  
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]