commit-gnue
[Top][All Lists]
Advanced

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

gnue designer/setup.py designer/src/Config.py d...


From: Jason Cater
Subject: gnue designer/setup.py designer/src/Config.py d...
Date: Fri, 22 Nov 2002 20:48:03 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    02/11/22 20:48:03

Modified files:
        designer       : setup.py 
        designer/src   : Config.py DataSourceEditor.py Instance.py 
                         MenuBar.py PropertyEditor.py SchemaViewer.py 
                         ToolFrame.py TreeView.py TriggerEditor.py 
        designer/src/forms: Instance.py TreeView.py 
        designer/src/forms/LayoutEditor: LayoutEditor.py 
        designer/src/navigator: Instance.py 
        designer/src/reports: Instance.py 
        designer/src/schema: Instance.py 
        forms/src      : GFForm.py 
        forms/src/GFObjects: GFTabStop.py 
Added files:
        designer/src   : EventEditor.py ToolPanel.py 
        designer/src/settings: __init__.py 

Log message:
        initial work on migrating designer [BROKEN\!]

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/setup.py.diff?tr1=1.37&tr2=1.38&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/EventEditor.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/ToolPanel.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Config.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/DataSourceEditor.py.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Instance.py.diff?tr1=1.67&tr2=1.68&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/MenuBar.py.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/PropertyEditor.py.diff?tr1=1.28&tr2=1.29&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/SchemaViewer.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/ToolFrame.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TreeView.py.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TriggerEditor.py.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/Instance.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/TreeView.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditor.py.diff?tr1=1.33&tr2=1.34&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/navigator/Instance.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/reports/Instance.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.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/settings/__init__.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFForm.py.diff?tr1=1.205&tr2=1.206&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFObjects/GFTabStop.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: gnue/designer/setup.py
diff -c gnue/designer/setup.py:1.37 gnue/designer/setup.py:1.38
*** gnue/designer/setup.py:1.37 Sat Oct  5 03:16:48 2002
--- gnue/designer/setup.py      Fri Nov 22 20:48:02 2002
***************
*** 247,252 ****
--- 247,253 ----
         data_files = [ ('doc/designer', docfiles),
                        ('man/man1', manfiles) ],
         packages = ["gnue.designer",
+                    "gnue.designer.settings",
                     "gnue.designer.forms",
                     "gnue.designer.forms.LayoutEditor",
                     "gnue.designer.forms.wizards",
Index: gnue/designer/src/Config.py
diff -c gnue/designer/src/Config.py:1.1 gnue/designer/src/Config.py:1.2
*** gnue/designer/src/Config.py:1.1     Sat May  4 12:45:08 2002
--- gnue/designer/src/Config.py Fri Nov 22 20:48:02 2002
***************
*** 1,6 ****
  #
- # Copyright 2001 Free Software Foundation
- #
  # This file is part of GNU Enterprise.
  #
  # GNU Enterprise is free software; you can redistribute it
--- 1,4 ----
***************
*** 18,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
  # FILE:
! # GFConfig.py
  #
  # DESCRIPTION:
  #
--- 16,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
+ # Copyright 2001-2002 Free Software Foundation
+ #
  # FILE:
! # Config.py
  #
  # DESCRIPTION:
  #
Index: gnue/designer/src/DataSourceEditor.py
diff -c gnue/designer/src/DataSourceEditor.py:1.25 
gnue/designer/src/DataSourceEditor.py:1.26
*** gnue/designer/src/DataSourceEditor.py:1.25  Tue Jul  2 10:14:59 2002
--- gnue/designer/src/DataSourceEditor.py       Fri Nov 22 20:48:02 2002
***************
*** 31,50 ****
  from wxPython.wx import *
  from gnue.common import GDebug, GDataSource, GConfig
  from gnue.common import RuntimeSettings
  
! class DataSourceEditor(wxPanel):
!   def __init__(self, instance, rootObject, parentWindow):
!     wxPanel.__init__(self,parentWindow,-1)
!     self.instance = instance
!     self.rootObject = instance.rootObject
!     self.connections = self.instance._app.connections
!     self.runtime_section = "DataSourceEditor"
  
! ##    self.toolBar = ToolBar(self, parentWindow)
  
      self.combopanel = wxPanel(self, -1, pos=wxPoint(0,0))
-     
      self.splitter = wxSplitterWindow(self, -1, style=wxSP_3D)
  
      self.list = wxListCtrl(self.splitter, -1, pos=wxPoint(0,0),
               style=wxLC_REPORT| # wxLC_EDIT_LABELS|
--- 31,48 ----
  from wxPython.wx import *
  from gnue.common import GDebug, GDataSource, GConfig
  from gnue.common import RuntimeSettings
+ from ToolPanel import ToolPanel
  
! class DataSourceEditor(ToolPanel):
  
!   runtime_section = "DataSourceEditor"
! 
!   def init(self):
!     self.connections = self.instance._app.connections
  
      self.combopanel = wxPanel(self, -1, pos=wxPoint(0,0))
      self.splitter = wxSplitterWindow(self, -1, style=wxSP_3D)
+ ##    self.toolBar = ToolBar(self, parentWindow)
  
      self.list = wxListCtrl(self.splitter, -1, pos=wxPoint(0,0),
               style=wxLC_REPORT| # wxLC_EDIT_LABELS|
***************
*** 73,80 ****
  
      self.current = None
  
!     instance.rootObject.walk (self.initialInventory)
!     instance.rootObject.walk (self.inventoryObject)
      self.fillList()
  
      EVT_LIST_ITEM_SELECTED(self, self.list.GetId(), self.OnDSSelected)
--- 71,78 ----
  
      self.current = None
  
!     self.instance.rootObject.walk (self.initialInventory)
!     self.instance.rootObject.walk (self.inventoryObject)
      self.fillList()
  
      EVT_LIST_ITEM_SELECTED(self, self.list.GetId(), self.OnDSSelected)
***************
*** 82,88 ****
  
      self.finalized = 0
      self.splitter.SetSize(self.GetSize())
-     RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
  
  
--- 80,85 ----
Index: gnue/designer/src/Instance.py
diff -c gnue/designer/src/Instance.py:1.67 gnue/designer/src/Instance.py:1.68
*** gnue/designer/src/Instance.py:1.67  Wed Nov 13 22:45:40 2002
--- gnue/designer/src/Instance.py       Fri Nov 22 20:48:02 2002
***************
*** 22,27 ****
--- 22,29 ----
  # Instance.py
  #
  # DESCRIPTION:
+ # This is the base instance class for a designer session. Every
+ # open file will be associated with its own Instance.
  #
  # NOTES:
  #
***************
*** 34,39 ****
--- 36,42 ----
  from gnue.common.FileUtils import dyn_import
  from gnue.common.events import EventController, Event
  from ToolFrame import ToolFrame
+ from ToolPanel import ToolPanel
  from gnue.designer import VERSION, PACKAGE
  from gnue.designer.Debugger import DebugSession
  import TemplateBase
***************
*** 80,85 ****
--- 83,92 ----
    def createTools(self):
      pass
  
+   #
+   def createWizards(self):
+     pass
+ 
  
    ########################################################################
    #
***************
*** 164,184 ****
  
      # Create the supplemental tools
      self.__objectListeners = []
      self.createTools()
      self._menubar.buildMenu()
  
      # Create our tools
!     self.visualEditorWindow = self
!     self.visualEditor = self.createVisualEditor()
! 
! 
!     self.__objectListeners.append(self.visualEditor)
! 
  
      self._app.addInstance(self)
  
      # Fit the widgets to the screen
!     self.visualEditor.Fit()
      self.Fit()
  
      self.SetSize((
--- 171,191 ----
  
      # Create the supplemental tools
      self.__objectListeners = []
+     self._toolCache = []
      self.createTools()
+     self._initTools()
+     self.createWizards()
      self._menubar.buildMenu()
  
      # Create our tools
! ##    self.visualEditorWindow = self
! ##    self.visualEditor = self.createVisualEditor()
! ##    self.__objectListeners.append(self.visualEditor)
  
      self._app.addInstance(self)
  
      # Fit the widgets to the screen
! ##    self.visualEditor.Fit()
      self.Fit()
  
      self.SetSize((
***************
*** 196,211 ****
      EVT_CLOSE(self, self.OnClose)
  
  
  
    def addTool(self, id, title, baseclass):
!     GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
!     window = ToolFrame(self, title)
!     control = baseclass(self, self.rootObject, window)
! ##    window.finalize()  # Called by MenuBar now :`(
!     self.__dict__["%sWindow" % id] = window
!     self.__dict__[id] = control
!     self.__objectListeners.append(control)
  
  
    def addToolCreate(self, title, method):
      self._menubar.addToolCreate(title, method)
--- 203,284 ----
      EVT_CLOSE(self, self.OnClose)
  
  
+   def _initTools(self):
+     lefties = 0
+     toppies = 0
+     bottomites = 0
+ 
+     cache = []
+ 
+     for id, title, baseclass in self._toolCache:
+       if baseclass.DEFAULTDOC
+         pos = RuntimeSettings.get(self.runtime_section, 'Dock-%s' % id, 
baseclass.default_dock),
+ 
+       lefties += 1 and (pos == 'left')
+       toppies += 1 and (pos == 'top')
+       bottomites += 1 and (pos == 'bottom')
+ 
+       cache.append( (id, title, baseclass, pos) )
+ 
+ 
+     if lefties:
+       self.horizSplitter = wxSplitter(self, -1, style=wxSP_FULLSASH)
+       rightWin = leftWin = self.horizSplitter
+       if lefties > 1:
+         leftPane = MultiTooledPane(leftWin)
+       else:
+         leftPane = SingleTooledPane(leftWin)
+ 
+       leftPane.AddTool
+ 
+     else:
+       rightWin = leftWin = self
+ 
+     if bottomites:
+       topWin = bottomWin = self.vertSplitter = wxSplitter(rightWin, -1, 
style=wxSP_FULLSASH)
+     else:
+       topWin = bottomWin = rightWin
+ 
+ 
+     self.mainArea = wxPanel(self, -1)
+     self.left = wxPanel(self, -1)
+ 
+     for id, title, baseclass, pos in cache:
+       if id == None:
+         self._menubar.addToolSeparator()
+       else:
+         GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
+         if pos == 'frame':
+           window = ToolFrame(self, title)
+           control = baseclass(self, self.rootObject, window)
+         elif pos == 'left':
+           control = leftPane.AddTool(title, baseclass, self.rootObject)
+           window = leftPane.GetWindow()
+         elif pos == 'top':
+           control = topPane.AddTool(title, baseclass, self.rootObject)
+           window = topPane.GetWindow()
+         elif pos == 'bottom':
+           control = bottomPane.AddTool(title, baseclass, self.rootObject)
+           window = bottomPane.GetWindow()
+ 
+         control = baseclass(self, self.rootObject, window)
+         self.__dict__["%sWindow" % id] = window
+         self.__dict__[id] = control
+         self.__objectListeners.append(control)
+ 
+ 
+     if lefties:
+       self.horizSplitter.SplitVertically(leftPane, self.vertSplitter)
+ 
+     if bottomites:
+       self.vertSplitter.SplitHorizontally(topPane, bottomPane)
+ 
  
    def addTool(self, id, title, baseclass):
!     self._toolCache.append( (id, title, baseclass) )
  
+   def addToolSeparator(self):
+     self._toolCache.append( (None, None, None) )
  
    def addToolCreate(self, title, method):
      self._menubar.addToolCreate(title, method)
***************
*** 545,550 ****
--- 618,688 ----
            self._menubar.addWizardLocation(location, template)
        except ValueError:
          continue
+ 
+ 
+ 
+ def MultipleTooledPane(wxNotebook):
+   def __init__(self, parent, menutool):
+     wxNotebook.__init__(self, parent, -1, style=wxCLIP_CHILDREN):
+     self.menutool = menutool
+ 
+   def AddTool(self, title, baseclass, rootObject):
+     control = baseclass(self, rootObject, self.parent)
+     self.AddPage(control, title)
+     return control
+ 
+   def GetWindow(self):
+     return self
+ 
+ 
+   ######
+   def OnMenuSelected(self, event):
+     if self.menutool.menu.IsChecked():
+       self.show()
+     else:
+       self.hide()
+ 
+   def show(self):
+     self.menutool.menu.SetHelp(_("Hide the %s window")  % self.title)
+     self.menutool.menu.Check(1)
+     self.Show(1)
+ 
+   def hide(self):
+     self.menutool.menu.SetHelp(_("Show the %s window") % self.title)
+     self.menutool.menu.Check(0)
+     self.Show(0)
+ 
+ 
+ 
+ def SingleTooledPane:
+   def __init__(self, parent):
+     self.menutool = menutool
+     self.parent = parent
+ 
+   def AddTool(self, title, baseclass, rootObject):
+     self.window = baseclass(self, rootObject, self.parent)
+     return self.window
+ 
+   def GetWindow(self):
+     return self.window
+ 
+   ######
+   def OnMenuSelected(self, event):
+     if self.menutool.menu.IsChecked():
+       self.show()
+     else:
+       self.hide()
+ 
+   def show(self):
+     self.menutool.menu.SetHelp(_("Hide the %s window")  % self.title)
+     self.menutool.menu.Check(1)
+     self.Show(1)
+ 
+   def hide(self):
+     self.menutool.menu.SetHelp(_("Show the %s window") % self.title)
+     self.menutool.menu.Check(0)
+     self.Show(0)
+ 
  
  #
  # Helper class used by the tool-specific packages
Index: gnue/designer/src/MenuBar.py
diff -c gnue/designer/src/MenuBar.py:1.32 gnue/designer/src/MenuBar.py:1.33
*** gnue/designer/src/MenuBar.py:1.32   Mon Oct  7 22:24:26 2002
--- gnue/designer/src/MenuBar.py        Fri Nov 22 20:48:02 2002
***************
*** 89,94 ****
--- 89,97 ----
       # Debug menu
       ID_RUN = wxNewId()
  
+      # Settings menu
+      ID_CFGTOOL = wxNewId()
+ 
       # Help menu
       ID_ABOUT = wxNewId()
  
***************
*** 183,188 ****
--- 186,195 ----
  
       self._tools = wxMenu()
       for location in self._toolMenuOrder:
+      
+        if location == "":
+          self._tools.AppendSeparator()
+          continue
  
         # Grab our ToolRunner (or WizardRunner if tool was replaced???)
         # and delete the reference.
***************
*** 197,202 ****
--- 204,210 ----
                             tool.wxId, tool.run)
         tool.finalize()
  
+      # TODO: Make this dynamic
       self._tools.AppendSeparator()
  
  
***************
*** 204,209 ****
--- 212,224 ----
       self._debug.Append(ID_RUN, _('&Run'), _("Run the current form"))
       self.__addMenuEvent('Debug|Run', ID_RUN, frame.OnDebugRun)
  
+      # TODO: Implement settings
+      self._settings = wxMenu()
+      self._settings.Append(ID_CFGTOOL,_('Configure &Tools...'),
+                         _('Configure the display of tools'))
+      self.__addMenuEvent('Settings|Configure Tools', ID_RUN, frame.OnDebugRun)
+ 
+ 
       menumap = { '': (self, {}),
                   'File': (self._file,{}),
                   'File|New': (self._fileNew,{}),
***************
*** 211,219 ****
                   'Project': (self._project,{}),
                   'Debug': (self._debug,{}),
                   'Tools': (self._tools,{}),
                   'Help': (self._help, {})}
  
!      basemenuorder = ['File','Edit','Debug','Project', 'Tools']
  
       for location in self._menuMappings.keys():
         last = None
--- 226,235 ----
                   'Project': (self._project,{}),
                   'Debug': (self._debug,{}),
                   'Tools': (self._tools,{}),
+                  'Settings': (self._settings,{}),
                   'Help': (self._help, {})}
  
!      basemenuorder = ['File','Edit','Debug','Project', 'Tools', 'Settings']
  
       for location in self._menuMappings.keys():
         last = None
***************
*** 292,297 ****
--- 308,315 ----
      self._toolMenuOrder.append(location)
      return self._menuMappings[location]
  
+   def addToolSeparator(self):
+     self._toolMenuOrder.append("")
  
    #
    # Convenience methods to make the main menu bar appear to be a menu 
container
Index: gnue/designer/src/PropertyEditor.py
diff -c gnue/designer/src/PropertyEditor.py:1.28 
gnue/designer/src/PropertyEditor.py:1.29
*** gnue/designer/src/PropertyEditor.py:1.28    Sun Nov  3 12:31:05 2002
--- gnue/designer/src/PropertyEditor.py Fri Nov 22 20:48:02 2002
***************
*** 31,46 ****
  from wxPython.wx import *
  from wxPython.grid import *
  from gnue.common import GDebug, GTypecast
! from ToolFrame import ToolFrame
  
! class PropertyEditor (wxPanel):
!   def __init__(self, instance, root, parent):
!     wxPanel.__init__(self,parent,-1,pos=wxPoint(0,0))
      self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
  
-     self.parent = parent
-     self.instance = instance
-     self.rootObject = root
      self.object = None
      self.objectList = []
      self.objectMap = {}
--- 31,45 ----
  from wxPython.wx import *
  from wxPython.grid import *
  from gnue.common import GDebug, GTypecast
! from ToolPanel import *
  
! class PropertyEditor (ToolPanel):
! 
!   runtime_section = 'PropertyEditor'
! 
!   def init(self):
      self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
  
      self.object = None
      self.objectList = []
      self.objectMap = {}
***************
*** 463,662 ****
  #      self._tc.SetInsertionPointEnd()
      else:
        evt.Skip()
- 
- 
- #
- #
- #
- class EventEditor (wxPanel): 
-   def __init__(self, instance, root, parent):
-     wxPanel.__init__(self,parent,-1,pos=wxPoint(0,0))
-     self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
- 
-     self.parent = parent
-     self.instance = instance
-     self.rootObject = root
-     self.objectList = []
-     self.objectMap = {}
-     self.object = None
-     self.grid = wxGrid(self.panel, -1, pos=wxPoint(0,0))
-     self.grid.CreateGrid(1,1)
-     EVT_SIZE(self, self.onSize)
- 
-   def onSetCurrentObject (self, object, handler):
- 
-     if object == None: 
-       return
-     if handler != __name__:
-       self.object = object
-       elements = self.instance.incubator.elements
-       try:
-         self.attributes = 
elements[string.lower(object._type[2:])]['Attributes']
-       except KeyError:
-         self.attributes = {}
- 
-       self.elements = elements[string.lower(object._type[2:])]
- 
-       # This is a nasty temporary way of refreshing grid
-       if self.grid: 
-         self.grid.Destroy()
-       self.grid = wxGrid(self.panel, -1, pos=wxPoint(0,0))
- 
-       self.grid.CreateGrid(len(self.attributes.keys()),1)
-       self.grid.SetColLabelSize(0)
-       self.rowList = self.attributes.keys()
-       self.rowList.sort()
-       i = 0
-       for key in self.rowList: 
-         self.grid.SetRowLabelValue(i, string.upper(key[0]) + 
string.lower(key[1:]))
-         if hasattr(object, key): 
-           self.grid.SetCellValue(i,0,"%s" % object.__dict__[key])
-         i = i + 1
-       self.onSize(None)
-       EVT_GRID_CELL_CHANGE(self.grid, self.OnCellChange)
- 
-   def onCreateObject (self, object, handler):
- 
-     # Until this works!
-     return
- 
-     pass
- 
-   def onModifyObject (self, object, handler, modifications):
- 
-     # Until this works!
-     return
- 
-     if object == None: 
-       return
-     if handler != __name__ and self.object == object:
- #      for modification in modifications: 
- #        attribute, value = modification
-       self.onSetCurrentObject(object, handler)
- 
-   def onDeleteObject (self, object, handler):
- 
-     # Until this works!
-     return
- 
-     if object == None: 
-       return
-     if handler != __name__:
-       pass
- 
-   def onSize(self, event): 
-     x,y = self.GetClientSizeTuple()
-     self.panel.SetSize((x-12,y-12))
-     self.grid.SetSize(self.panel.GetClientSizeTuple())
-     w,h = self.grid.GetClientSizeTuple()
-     self.grid.SetColSize(0, w - self.grid.GetRowLabelSize())
- 
-   def OnCellChange(self, evt):
-     attr = self.rowList[evt.GetRow()]
-     value = self.grid.GetCellValue(evt.GetRow(), evt.GetCol())
- 
-     try: 
-       self.object.__dict__[attr] = self.attributes[attr][2](value)
-       self.instance.onModifyObject(self.object, __name__, ((attr, 
self.object.__dict__[attr]),))
-       evt.Skip()
-     except ValueError: 
-       wxBell()
-       
- #
- #
- #
- class PropertyToolFrame(ToolFrame):
-   def __init__(self, instance, title): 
-     ToolFrame.__init__(self, instance, _("Property Editor"))
- 
-     self.backpanel = wxPanel(self, -1, pos=wxPoint(0,0), 
size=self.GetClientSize())
- #    self.backpanel = self
-     self.toolpanel = wxPanel(self.backpanel, -1, pos=wxPoint(0,0), 
size=wxSize(32,32), 
-          style=wxRAISED_BORDER|wxCLIP_CHILDREN)
- 
-     self.notebook = wxNotebook(self.backpanel, -1, pos=wxPoint(6, 37), 
size=wxSize(32,32))
- 
-     self.propertyEditor = PropertyEditor(
-          self.notebook, instance, instance.rootObject)
- 
-     self.eventEditor = EventEditor(
-          self.notebook, instance, instance.rootObject)
- 
-     self.notebook.AddPage(self.propertyEditor, _('Properties'))
-     self.notebook.AddPage(self.eventEditor, _('Events'))
- 
-     self.objectLabel = wxStaticText(self.toolpanel, -1, _("Object: "), 
-          pos=wxPoint(4,6))
-     self.objectCombo = wxComboBox(self.toolpanel, -1, 
-          pos=wxPoint(self.objectLabel.GetSize().width + 10,4), 
-          style=wxCB_READONLY)
- 
-     EVT_COMBOBOX(self, self.objectCombo.GetId(), self.OnObjectSelected)
- 
-     EVT_SIZE(self, self.onSize)
- 
-     self.objectList = [instance.rootObject]
- 
-     instance.rootObject.walk (self.inventoryObject)
-     self.generateObjectMap()
- 
-   def generateObjectMap(self): 
-     self.objectMap = {}
- 
-     # Alphabetize the combo list
-     nameMap = {}
-     for o in self.objectList: 
-       nameMap[string.lower(o.name)] = o
-     keys = nameMap.keys()
-     keys.sort()   
-     i = 0
- 
-     self.objectList = []
-     self.objectCombo.Clear()
-     for key in keys: 
-       self.objectList.append(nameMap[key])
-       self.objectMap[nameMap[key]] = i
-       self.objectCombo.Append(nameMap[key].name)
-       i = i + 1
- 
-   def inventoryObject(self, object):
-     if hasattr(object, 'name'):
-       self.objectList.append(object)
- 
-   def OnObjectSelected(self, event): 
-     self.instance.onSetCurrentObject(
-        self.objectList[event.GetSelection()], "%sFrame" % __name__)
- 
-   def onSize(self, event):
-     w,h = self.GetClientSizeTuple()
-     self.backpanel.SetSize(wxSize(w,h))
-     self.toolpanel.SetSize(wxSize(w,32))
-     self.notebook.SetSize(wxSize(w-12,h-44))
- 
-   def onSetCurrentObject (self, object, handler):
-     if object == None: 
-       return
-     if handler != "%sFrame" % __name__:
-       if self.objectMap.has_key(object): 
-         self.objectCombo.SetSelection(self.objectMap[object])
- 
-   def onCreateObject (self, object, handler):
-     if object == None: 
-       return
-     self.inventoryObject(object)
-     self.generateObjectMap()
- 
-   def onModifyObject (self, object, handler, modifications):
-     if object == None: 
-       return
- 
-     # TODO: This should see if object is listed in 
-     # TODO: the pull-down box. If so, monitor for 
-     # TODO: name change.
- 
-   def onDeleteObject (self, object, handler):
-     if object == None: 
-       return
-     self.objectList.pop(self.objectMap[object])
-     self.generateObjectMap()
  
--- 462,465 ----
Index: gnue/designer/src/SchemaViewer.py
diff -c gnue/designer/src/SchemaViewer.py:1.7 
gnue/designer/src/SchemaViewer.py:1.8
*** gnue/designer/src/SchemaViewer.py:1.7       Thu Jul  4 14:45:08 2002
--- gnue/designer/src/SchemaViewer.py   Fri Nov 22 20:48:02 2002
***************
*** 31,44 ****
  from wxPython.wx import *
  from gnue.common import GDebug, GDataSource
  from gnue.common import RuntimeSettings
  
! class SchemaViewer(wxPanel):
!   def __init__(self, instance, rootObject, parentWindow):
!     wxPanel.__init__(self,parentWindow,-1)
!     self.instance = instance
!     self.rootObject = instance.rootObject
      self.connections = self.instance._app.connections
-     self.runtime_section = "SchemaViewer"
  
      self.connectionName = None
      self.connectionNames = self.connections.getConnectionNames()
--- 31,44 ----
  from wxPython.wx import *
  from gnue.common import GDebug, GDataSource
  from gnue.common import RuntimeSettings
+ from ToolPanel import *
  
! class SchemaViewer(ToolPanel):
! 
!   runtime_section = "SchemaViewer"
! 
!   def init(self):
      self.connections = self.instance._app.connections
  
      self.connectionName = None
      self.connectionNames = self.connections.getConnectionNames()
***************
*** 104,110 ****
  
      self.finalized = 0
      self.splitter.SetSize(self.GetSize())
-     RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
  
    def fillList(self):
--- 104,109 ----
Index: gnue/designer/src/ToolFrame.py
diff -c gnue/designer/src/ToolFrame.py:1.12 gnue/designer/src/ToolFrame.py:1.13
*** gnue/designer/src/ToolFrame.py:1.12 Thu Jul 11 01:39:02 2002
--- gnue/designer/src/ToolFrame.py      Fri Nov 22 20:48:02 2002
***************
*** 1,6 ****
  #
- # Copyright 2001 Free Software Foundation
- #
  # This file is part of GNU Enterprise.
  #
  # GNU Enterprise is free software; you can redistribute it
--- 1,4 ----
***************
*** 18,23 ****
--- 16,23 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
+ # Copyright 2001-2002 Free Software Foundation
+ #
  # FILE:
  # Instance.py
  #
***************
*** 38,43 ****
--- 38,44 ----
  #
  class ToolFrame (wxFrame):
  
+   # TODO: Set by the toolpanel??
    default_width = 200
    default_height = 150
    default_visible = 0
Index: gnue/designer/src/TreeView.py
diff -c gnue/designer/src/TreeView.py:1.24 gnue/designer/src/TreeView.py:1.25
*** gnue/designer/src/TreeView.py:1.24  Thu Oct 31 21:40:53 2002
--- gnue/designer/src/TreeView.py       Fri Nov 22 20:48:02 2002
***************
*** 38,74 ****
  from gnue.forms import GFForm, GFObjects, GFLibrary
  from PopupMenu import ObjectMenu
  from Icons import treeIconMap, treeIconList
  
! class TreeView (wxTreeCtrl):
!   def __init__(self, instance, form, parent):
!     wxTreeCtrl.__init__(self, parent, wxNewId(),
         style=wxTR_HAS_BUTTONS|wxTR_EDIT_LABELS|wxTR_HAS_VARIABLE_ROW_HEIGHT)
-     self.instance = instance
-     self.rootObject = form
      self._handler = None
  
!     self.SetImageList(treeIconList)
  
      EVT_TREE_BEGIN_LABEL_EDIT(self, self.GetId(), self.OnTreeLabelEdit)
      EVT_TREE_END_LABEL_EDIT(self, self.GetId(), self.OnTreeLabelEditEnd)
      EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnTreeItemSelected)
  
!     self.rootObject._treeItem = self.AddRoot(self.rootDescr)
  
      EVT_RIGHT_DOWN(self, self.OnRightDown)
      EVT_LEFT_DCLICK(self, self.OnEditProperties)
  
    def AppendItem(self, parent, description):
!     rv = wxTreeCtrl.AppendItem(self, parent, description)
      return rv
  
    def onSetCurrentObject (self, object, handler):
      if object == None:
        return
      if handler != __name__:
!       self.EnsureVisible(object._treeItem)
        self._handler = handler
!       self.SelectItem(object._treeItem)
        self._handler = None
  
    def onCreateObject (self, object, handler):
--- 38,80 ----
  from gnue.forms import GFForm, GFObjects, GFLibrary
  from PopupMenu import ObjectMenu
  from Icons import treeIconMap, treeIconList
+ from ToolPanel import ToolPanel
  
! class TreeView (ToolPanel):
! 
! 
!   def init(self):
!     self.tree = wxTreeCtrl(self, wxNewId(),
         style=wxTR_HAS_BUTTONS|wxTR_EDIT_LABELS|wxTR_HAS_VARIABLE_ROW_HEIGHT)
      self._handler = None
  
!     self.tree.SetImageList(treeIconList)
  
      EVT_TREE_BEGIN_LABEL_EDIT(self, self.GetId(), self.OnTreeLabelEdit)
      EVT_TREE_END_LABEL_EDIT(self, self.GetId(), self.OnTreeLabelEditEnd)
      EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnTreeItemSelected)
  
!     self.rootObject._treeItem = self.tree.AddRoot(self.rootDescr)
  
      EVT_RIGHT_DOWN(self, self.OnRightDown)
      EVT_LEFT_DCLICK(self, self.OnEditProperties)
+     EVT_SIZE(self, self.OnSize)
+     self.Fit()
+ 
+   def OnSize(self, event):
+     self.tree.SetSize(self.GetClientSize())
  
    def AppendItem(self, parent, description):
!     rv = self.tree.AppendItem(parent, description)
      return rv
  
    def onSetCurrentObject (self, object, handler):
      if object == None:
        return
      if handler != __name__:
!       self.tree.EnsureVisible(object._treeItem)
        self._handler = handler
!       self.tree.SelectItem(object._treeItem)
        self._handler = None
  
    def onCreateObject (self, object, handler):
***************
*** 77,83 ****
      if handler != __name__:
        try:
          GDebug.printMesg(4,"Adding %s (%s)" % (object.name, object._type))
!       except: 
          pass
        self.inventoryObject(object)
  
--- 83,89 ----
      if handler != __name__:
        try:
          GDebug.printMesg(4,"Adding %s (%s)" % (object.name, object._type))
!       except:
          pass
        self.inventoryObject(object)
  
Index: gnue/designer/src/TriggerEditor.py
diff -c gnue/designer/src/TriggerEditor.py:1.20 
gnue/designer/src/TriggerEditor.py:1.21
*** gnue/designer/src/TriggerEditor.py:1.20     Thu Oct 31 21:40:53 2002
--- gnue/designer/src/TriggerEditor.py  Fri Nov 22 20:48:02 2002
***************
*** 29,34 ****
--- 29,35 ----
  
  from wxPython.wx import *
  from gnue.common import GDebug, GParserHelpers, GTrigger
+ from ToolPanel import *
  import keyword
  
  
***************
*** 38,49 ****
  EVENT_TRIGGER = 0
  
  
! class TriggerEditor (wxPanel):
!   def __init__(self, instance, form, parent):
!     width  = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_X )/3)
!     height = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_Y )/3)
  
!     wxPanel.__init__(self, parent, -1)
  
      if USE_STC:
        EditorCtrl = PythonEditorControl
--- 39,52 ----
  EVENT_TRIGGER = 0
  
  
! class TriggerEditor (ToolPanel):
  
!   runtime_section = "TriggerEditor"
!   default_width  = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_X )/3)
!   default_height = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_Y )/3)
!   default_dock = DOCK_BOTTOM
! 
!   def init(self):
  
      if USE_STC:
        EditorCtrl = PythonEditorControl
***************
*** 52,66 ****
  
      self.editor = EditorCtrl(self,-1, pos=wxPoint(0,32))
  
!     self.SetSize(parent.GetClientSize())
      self.editor.SetSize(self.GetClientSize())
      self.object = None
  
      self.namedTriggerList = []
  
!     self.parent = parent
!     self.instance = instance
!     self.form = form
      self.editor.SetReadOnly(1)
      self.triggerList = []
      EVT_SIZE(self, self._onSize)
--- 55,72 ----
  
      self.editor = EditorCtrl(self,-1, pos=wxPoint(0,32))
  
!     self.SetSize(self.frame.GetClientSize())
      self.editor.SetSize(self.GetClientSize())
      self.object = None
  
      self.namedTriggerList = []
  
! 
!     # TODO: Historical stuff (pre-ToolPanel)
!     self.parent = self.frame
!     self.form = self.rootObject
! 
! 
      self.editor.SetReadOnly(1)
      self.triggerList = []
      EVT_SIZE(self, self._onSize)
***************
*** 78,84 ****
      self.namedTriggerCombo = wxComboBox(self.toolpanel, -1, 
pos=wxPoint(self.namedNameLabel.GetSize().width + 10,4), style=wxCB_READONLY)
      EVT_COMBOBOX(self, self.namedTriggerCombo.GetId(), 
self.OnNamedTriggerSelected)
  
!     form.walk(self.inventoryObject)
  
  
    def OnNamedTriggerSelected(self, event):
--- 84,90 ----
      self.namedTriggerCombo = wxComboBox(self.toolpanel, -1, 
pos=wxPoint(self.namedNameLabel.GetSize().width + 10,4), style=wxCB_READONLY)
      EVT_COMBOBOX(self, self.namedTriggerCombo.GetId(), 
self.OnNamedTriggerSelected)
  
!     self.rootObject.walk(self.inventoryObject)
  
  
    def OnNamedTriggerSelected(self, event):
Index: gnue/designer/src/forms/Instance.py
diff -c gnue/designer/src/forms/Instance.py:1.16 
gnue/designer/src/forms/Instance.py:1.17
*** gnue/designer/src/forms/Instance.py:1.16    Wed Nov 13 12:11:41 2002
--- gnue/designer/src/forms/Instance.py Fri Nov 22 20:48:02 2002
***************
*** 27,32 ****
--- 27,34 ----
  # NOTES:
  #
  
+ from wxPython.wx import *
+ 
  from gnue.designer.forms import properties as formProperties
  from gnue.designer.Instance import BaseInstance
  from gnue.designer import PopupMenu
***************
*** 38,43 ****
--- 40,46 ----
  from LayoutEditor import LayoutEditor
  from TreeView import TreeView
  from gnue.designer.PropertyEditor import PropertyEditor
+ from gnue.designer.EventEditor import EventEditor
  from gnue.designer.TriggerEditor import TriggerEditor
  from gnue.designer.DataSourceEditor import DataSourceEditor
  from gnue.designer.SchemaViewer import SchemaViewer
***************
*** 83,89 ****
      form.height = 12
      form.name = 'form'
      form.width = 40
!     GFObjects.GFPage(form)
      return form
  
  
--- 86,94 ----
      form.height = 12
      form.name = 'form'
      form.width = 40
!     GFObjects.GFLogic(form)
!     layout = GFObjects.GFLayout(form)
!     GFObjects.GFPage(layout)
      return form
  
  
***************
*** 95,111 ****
      object._popupMenu = ObjectMenu(self, object)
  
  
-   def createVisualEditor(self):
-     return LayoutEditor(self, self)
- 
- 
    def createTools(self):
      self.addTool('propertyEditor', _('Property Inspector'), PropertyEditor)
      self.addTool('treeEditor', _('Object Navigator'), TreeView)
-     self.addTool('triggerEditor', _('Event Editor'), TriggerEditor)
-     self.addTool('datasourceEditor', _('Data Source Editor'), 
DataSourceEditor)
      self.addTool('schemaViewer', _('Schema Navigator'), SchemaViewer)
  
      self.loadWizards(wizards)
  
  
--- 100,119 ----
      object._popupMenu = ObjectMenu(self, object)
  
  
    def createTools(self):
+     self.addTool('visualEditor', _('Layout Editor'), LayoutEditor)
      self.addTool('propertyEditor', _('Property Inspector'), PropertyEditor)
      self.addTool('treeEditor', _('Object Navigator'), TreeView)
      self.addTool('schemaViewer', _('Schema Navigator'), SchemaViewer)
+     self.addToolSeparator()
+     self.addTool('datasourceEditor', _('Data Source Editor'), 
DataSourceEditor)
+     #self.addTool('blockEditor', _('Block Editor'), BlockEditor)
+     #self.addTool('fieldEditor', _('Field Editor'), FieldEditor)
+     self.addToolSeparator()
+     self.addTool('eventEditor', _('Trigger Inspector'), EventEditor)
+     self.addTool('triggerEditor', _('Code Editor'), TriggerEditor)
  
+   def createWizards(self):
      self.loadWizards(wizards)
  
  
***************
*** 133,139 ****
      databases = []
      datasources = []
      triggers = []
!     pages = []
      other = []
  
      for child in self.rootObject._children:
--- 141,148 ----
      databases = []
      datasources = []
      triggers = []
!     logic = []
!     layout = []
      other = []
  
      for child in self.rootObject._children:
***************
*** 151,160 ****
          (isinstance(child, GFLibrary.GFImportItem) and
           child._type == 'GFimport-trigger'):
          triggers.append(child)
!       elif isinstance(child, GFObjects.GFPage) or \
          (isinstance(child, GFLibrary.GFImportItem) and
!          child._type == 'GFimport-page'):
!         pages.append(child)
        else:
          other.append(child)
  
--- 160,173 ----
          (isinstance(child, GFLibrary.GFImportItem) and
           child._type == 'GFimport-trigger'):
          triggers.append(child)
!       elif isinstance(child, GFObjects.GFLayout) or \
!         (isinstance(child, GFLibrary.GFImportItem) and
!          child._type == 'GFimport-layout'):
!         layout.append(child)
!       elif isinstance(child, GFObjects.GFLogic) or \
          (isinstance(child, GFLibrary.GFImportItem) and
!          child._type == 'GFimport-logic'):
!         logic.append(child)
        else:
          other.append(child)
  
***************
*** 171,177 ****
        self.rootObject._children.append(child)
      for child in triggers:
        self.rootObject._children.append(child)
!     for child in pages:
        self.rootObject._children.append(child)
      for child in other:
        self.rootObject._children.append(child)
--- 184,192 ----
        self.rootObject._children.append(child)
      for child in triggers:
        self.rootObject._children.append(child)
!     for child in logic:
!       self.rootObject._children.append(child)
!     for child in layout:
        self.rootObject._children.append(child)
      for child in other:
        self.rootObject._children.append(child)
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditor.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.33 
gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.34
*** gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.33   Mon Oct 28 
18:43:08 2002
--- gnue/designer/src/forms/LayoutEditor/LayoutEditor.py        Fri Nov 22 
20:48:02 2002
***************
*** 1,6 ****
  #
- # Copyright 2001-2002 Free Software Foundation
- #
  # This file is part of GNU Enterprise.
  #
  # GNU Enterprise is free software; you can redistribute it
--- 1,4 ----
***************
*** 18,23 ****
--- 16,23 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
+ # Copyright 2001-2002 Free Software Foundation
+ #
  # FILE:
  # LayoutEditor.py
  #
***************
*** 29,39 ****
  import sys, os
  from wxPython.wx import *
  from gnue.common import GDebug
! from gnue.forms import GFObjects 
  from gnue.forms.uidrivers.wx import UIdriver as UIwxpython
  from gnue.designer.PopupMenu import PageMenu
  from gnue.designer.forms import Incubator
  from gnue.designer.TemplateParser import TemplateParser
  from gnue.common.events import Event
  
  # My support files
--- 29,40 ----
  import sys, os
  from wxPython.wx import *
  from gnue.common import GDebug
! from gnue.forms import GFObjects
  from gnue.forms.uidrivers.wx import UIdriver as UIwxpython
  from gnue.designer.PopupMenu import PageMenu
  from gnue.designer.forms import Incubator
  from gnue.designer.TemplateParser import TemplateParser
+ from gnue.designer.ToolPanel import *
  from gnue.common.events import Event
  
  # My support files
***************
*** 45,58 ****
  from DisplayDropTarget import DisplayDropTarget
  
  
! class LayoutEditor (wxPanel):
!   def __init__(self, instance, parentWindow):
!     wxPanel.__init__(self,parentWindow,-1)
!     self.frame = instance
!     self.panelColor = self.GetBackgroundColour()
!     self._instance = instance
!     self.rootObject = instance.rootObject
!     self._app = instance._app
      self.widgets = {}
      self.widgets.update(UIwxpython.WIDGETS)
      self.toolbar = LayoutEditorTools(self, self.frame)
--- 46,62 ----
  from DisplayDropTarget import DisplayDropTarget
  
  
! class LayoutEditor (ToolPanel):
! 
!   runtime_section = "FormsLayoutEditor"
!   default_dock = DOCK_TOP
! 
!   def init(self):
! 
!     # TODO: blah.... historical reasons
!     self._instance = self.instance
! 
!     self._app = self.instance._app
      self.widgets = {}
      self.widgets.update(UIwxpython.WIDGETS)
      self.toolbar = LayoutEditorTools(self, self.frame)
***************
*** 80,86 ****
      self.__ox = 0
      self.__oy = 0
  
!     instance.rootObject.walk (self.inventoryObject)
      try:
        self._setCurrentPage(self._notebookMap[0])
      except KeyError:
--- 84,90 ----
      self.__ox = 0
      self.__oy = 0
  
!     self.instance.rootObject.walk (self.inventoryObject)
      try:
        self._setCurrentPage(self._notebookMap[0])
      except KeyError:
***************
*** 354,367 ****
    def OnPageSelected(self, event):
      p = self._notebookMap[event.GetSelection()]
      if p != self.page:
!       self._instance.onSetCurrentObject(p, "Forms::LayoutEditor")
      self._setCurrentPage(p)
  
  
    def OnBlockSelected(self, event):
      b = self.blockList[event.GetSelection()]
  #    if p != self.page:
!     self._instance.onSetCurrentObject(b, None)
  
  
    def OnLeftDown(self, event):
--- 358,371 ----
    def OnPageSelected(self, event):
      p = self._notebookMap[event.GetSelection()]
      if p != self.page:
!       self.instance.onSetCurrentObject(p, "Forms::LayoutEditor")
      self._setCurrentPage(p)
  
  
    def OnBlockSelected(self, event):
      b = self.blockList[event.GetSelection()]
  #    if p != self.page:
!     self.instance.onSetCurrentObject(b, None)
  
  
    def OnLeftDown(self, event):
***************
*** 481,491 ****
      block = self._currentObject._type == 'GFBlock' and self._currentObject or 
\
         self._currentObject.findParentOfType('GFBlock')
  
!     menu.AppendMenu(wxNewId(), 'Form', PageMenu(self._instance, form, x, y))
      if page:
!       menu.AppendMenu(wxNewId(), page.name, PageMenu(self._instance, page, x, 
y))
      if block:
!       menu.AppendMenu(wxNewId(), block.name, PageMenu(self._instance, block, 
x, y))
  
      self.panel.PopupMenu(menu, event.GetPosition())
  
--- 485,495 ----
      block = self._currentObject._type == 'GFBlock' and self._currentObject or 
\
         self._currentObject.findParentOfType('GFBlock')
  
!     menu.AppendMenu(wxNewId(), 'Form', PageMenu(self.instance, form, x, y))
      if page:
!       menu.AppendMenu(wxNewId(), page.name, PageMenu(self.instance, page, x, 
y))
      if block:
!       menu.AppendMenu(wxNewId(), block.name, PageMenu(self.instance, block, 
x, y))
  
      self.panel.PopupMenu(menu, event.GetPosition())
  
***************
*** 535,545 ****
  
  
    def endPrePositioningTemplate(self, x, y, width=None, height=None):
!     TemplateParser(self._instance, self._instance.rootObject,
!           self._instance, self.__template, currentObject=self.block or 
self.page).run(x=x, y=y,
                                                 width=width,
                                                 height=height)
!     self._instance.dispatchEvent(Event('EndWizard', template=self.__template))
      self.mode = 'move'
  
  
--- 539,549 ----
  
  
    def endPrePositioningTemplate(self, x, y, width=None, height=None):
!     TemplateParser(self.instance, self.instance.rootObject,
!           self.instance, self.__template, currentObject=self.block or 
self.page).run(x=x, y=y,
                                                 width=width,
                                                 height=height)
!     self.instance.dispatchEvent(Event('EndWizard', template=self.__template))
      self.mode = 'move'
  
  
Index: gnue/designer/src/forms/TreeView.py
diff -c gnue/designer/src/forms/TreeView.py:1.3 
gnue/designer/src/forms/TreeView.py:1.4
*** gnue/designer/src/forms/TreeView.py:1.3     Thu Oct 31 21:40:53 2002
--- gnue/designer/src/forms/TreeView.py Fri Nov 22 20:48:02 2002
***************
*** 22,31 ****
  # TreeView.py
  #
  # DESCRIPTION:
  #
  # NOTES:
  #
! # TODO: all the SetItemImage lines in this file have been commented out as on 
win32 it was segfaulting
  
  import sys, os
  from wxPython.wx import *
--- 22,34 ----
  # TreeView.py
  #
  # DESCRIPTION:
+ # The TreeView for forms instances
  #
  # NOTES:
  #
! # TODO: all the SetItemImage lines in this file have been
! # TODO: commented out as on win32 it was segfaulting
! #
  
  import sys, os
  from wxPython.wx import *
***************
*** 36,67 ****
  from gnue.designer.TreeView import TreeView as BaseTreeView
  
  class TreeView (BaseTreeView):
-   def __init__(self, instance, root, parent):
  
!     self.rootDescr = 'Form'
!     BaseTreeView.__init__(self, instance, root, parent)
  
      self.rootObject._treeItemFormProperties = \
          self.AppendItem(self.rootObject._treeItem, _("Properties"))
!     self.SetItemImage(self.rootObject._treeItemFormProperties, 
treeIconMap['properties'])
      self.rootObject._treeItemImportedLibraries = \
          self.AppendItem(self.rootObject._treeItem, _("Imported Libraries"))
!     self.SetItemImage(self.rootObject._treeItemImportedLibraries, 
treeIconMap['import'])
      self.rootObject._treeItemDataSources = \
          self.AppendItem(self.rootObject._treeItem, _("Data Sources"))
!     self.SetItemImage(self.rootObject._treeItemDataSources, 
treeIconMap['datasource'])
      self.rootObject._treeItemNamedTriggers = \
          self.AppendItem(self.rootObject._treeItem, _("Shared Triggers"))
!     self.SetItemImage(self.rootObject._treeItemNamedTriggers, 
treeIconMap['trigger'])
      self.rootObject._treeItemPageLayout = \
          self.AppendItem(self.rootObject._treeItem, _("Page Layout"))
!     self.SetItemImage(self.rootObject._treeItemPageLayout, 
treeIconMap['page'])
  
!     self.SetPyData(self.rootObject._treeItem, self.rootObject)
!     self.SetPyData(self.rootObject._treeItemFormProperties, 
ObjectMenu(self.instance,None))
!     self.SetPyData(self.rootObject._treeItemDataSources, 
ObjectMenu(self.instance,None))
!     self.SetPyData(self.rootObject._treeItemNamedTriggers, 
ObjectMenu(self.instance,None))
!     self.SetPyData(self.rootObject._treeItemPageLayout, 
ObjectMenu(self.instance,None))
  
      self.rootObject.walk(self.inventoryObject)
  
--- 39,72 ----
  from gnue.designer.TreeView import TreeView as BaseTreeView
  
  class TreeView (BaseTreeView):
  
!   rootDescr = 'Form'
! 
!   def init(self):
! 
!     BaseTreeView.init(self)
  
      self.rootObject._treeItemFormProperties = \
          self.AppendItem(self.rootObject._treeItem, _("Properties"))
!     self.tree.SetItemImage(self.rootObject._treeItemFormProperties, 
treeIconMap['properties'])
      self.rootObject._treeItemImportedLibraries = \
          self.AppendItem(self.rootObject._treeItem, _("Imported Libraries"))
!     self.tree.SetItemImage(self.rootObject._treeItemImportedLibraries, 
treeIconMap['import'])
      self.rootObject._treeItemDataSources = \
          self.AppendItem(self.rootObject._treeItem, _("Data Sources"))
!     self.tree.SetItemImage(self.rootObject._treeItemDataSources, 
treeIconMap['datasource'])
      self.rootObject._treeItemNamedTriggers = \
          self.AppendItem(self.rootObject._treeItem, _("Shared Triggers"))
!     self.tree.SetItemImage(self.rootObject._treeItemNamedTriggers, 
treeIconMap['trigger'])
      self.rootObject._treeItemPageLayout = \
          self.AppendItem(self.rootObject._treeItem, _("Page Layout"))
!     self.tree.SetItemImage(self.rootObject._treeItemPageLayout, 
treeIconMap['page'])
  
!     self.tree.SetPyData(self.rootObject._treeItem, self.rootObject)
!     self.tree.SetPyData(self.rootObject._treeItemFormProperties, 
ObjectMenu(self.instance,None))
!     self.tree.SetPyData(self.rootObject._treeItemDataSources, 
ObjectMenu(self.instance,None))
!     self.tree.SetPyData(self.rootObject._treeItemNamedTriggers, 
ObjectMenu(self.instance,None))
!     self.tree.SetPyData(self.rootObject._treeItemPageLayout, 
ObjectMenu(self.instance,None))
  
      self.rootObject.walk(self.inventoryObject)
  
***************
*** 84,90 ****
            if not hasattr(object._parent,'_treeItemTrigger'):
              object._parent._treeItemTrigger = \
                self.AppendItem(object._parent._treeItem, _("Events"))
!             #self.SetItemImage(object._parent._treeItemTrigger, 
treeIconMap['trigger'])
  
  
            parentTreeItem = object._parent._treeItemTrigger
--- 89,95 ----
            if not hasattr(object._parent,'_treeItemTrigger'):
              object._parent._treeItemTrigger = \
                self.AppendItem(object._parent._treeItem, _("Events"))
!             #self.tree.SetItemImage(object._parent._treeItemTrigger, 
treeIconMap['trigger'])
  
  
            parentTreeItem = object._parent._treeItemTrigger
***************
*** 112,118 ****
  
          object._treeItem = self.AppendItem(parentTreeItem,
              "%s" % object.getDescription())
!         self.SetPyData(object._treeItem, object)
!         #self.SetItemImage(object._treeItem, treeIconMap[icon])
  
  
--- 117,123 ----
  
          object._treeItem = self.AppendItem(parentTreeItem,
              "%s" % object.getDescription())
!         self.tree.SetPyData(object._treeItem, object)
!         #self.tree.SetItemImage(object._treeItem, treeIconMap[icon])
  
  
Index: gnue/designer/src/navigator/Instance.py
diff -c gnue/designer/src/navigator/Instance.py:1.6 
gnue/designer/src/navigator/Instance.py:1.7
*** gnue/designer/src/navigator/Instance.py:1.6 Mon Jul 22 19:04:59 2002
--- gnue/designer/src/navigator/Instance.py     Fri Nov 22 20:48:02 2002
***************
*** 48,54 ****
    def __init__(self, app, *args, **params):
  
     self.properties = navProperties
!    
     BaseInstance.__init__(self, app, *args, **params)
  
  
--- 48,54 ----
    def __init__(self, app, *args, **params):
  
     self.properties = navProperties
! 
     BaseInstance.__init__(self, app, *args, **params)
  
  
***************
*** 72,84 ****
      return LayoutEditor(self, self.rootObject, self)
  
  
!   def addTools(self):
  ##    self.addTool('propertyEditor','Property Inspector', PropertyEditor)
  ##    self.addTool('treeEditor','Object Navigator', TreeView)
  ##    self.addTool('triggerEditor','Event Editor', TriggerEditor)
  ##    self.addTool('datasourceEditor','Data Source Editor', DataSourceEditor)
  ##    self.addTool('schemaViewer','Schema Navigator', SchemaViewer)
  
      self.loadWizards(wizards)
  
    def preSave(self):
--- 72,85 ----
      return LayoutEditor(self, self.rootObject, self)
  
  
!   def createTools(self):
  ##    self.addTool('propertyEditor','Property Inspector', PropertyEditor)
  ##    self.addTool('treeEditor','Object Navigator', TreeView)
  ##    self.addTool('triggerEditor','Event Editor', TriggerEditor)
  ##    self.addTool('datasourceEditor','Data Source Editor', DataSourceEditor)
  ##    self.addTool('schemaViewer','Schema Navigator', SchemaViewer)
  
+   def createWizards(self):
      self.loadWizards(wizards)
  
    def preSave(self):
Index: gnue/designer/src/reports/Instance.py
diff -c gnue/designer/src/reports/Instance.py:1.4 
gnue/designer/src/reports/Instance.py:1.5
*** gnue/designer/src/reports/Instance.py:1.4   Mon Nov  4 09:55:51 2002
--- gnue/designer/src/reports/Instance.py       Fri Nov 22 20:48:02 2002
***************
*** 48,54 ****
    def __init__(self, app, *args, **params):
      self.incubator = Incubator
      self.properties = reportsProperties
!     
      #self._tableMappings = {}
      BaseInstance.__init__(self, app, *args, **params)
  
--- 48,54 ----
    def __init__(self, app, *args, **params):
      self.incubator = Incubator
      self.properties = reportsProperties
! 
      #self._tableMappings = {}
      BaseInstance.__init__(self, app, *args, **params)
  
***************
*** 81,86 ****
--- 81,87 ----
  
      self.addTool(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
  
+   def createWizards(self):
      self.loadWizards(wizards)
  
  
Index: gnue/designer/src/schema/Instance.py
diff -c gnue/designer/src/schema/Instance.py:1.11 
gnue/designer/src/schema/Instance.py:1.12
*** gnue/designer/src/schema/Instance.py:1.11   Mon Sep 16 19:26:10 2002
--- gnue/designer/src/schema/Instance.py        Fri Nov 22 20:48:02 2002
***************
*** 48,54 ****
    def __init__(self, app, *args, **params):
      self.incubator = Incubator
      self.properties = schemaProperties
!     
      self._tableMappings = {}
      BaseInstance.__init__(self, app, *args, **params)
  
--- 48,54 ----
    def __init__(self, app, *args, **params):
      self.incubator = Incubator
      self.properties = schemaProperties
! 
      self._tableMappings = {}
      BaseInstance.__init__(self, app, *args, **params)
  
***************
*** 83,88 ****
--- 83,90 ----
      self.addTool(_('propertyEditor'), _('Property Inspector'), PropertyEditor)
      self.addTool(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
      self.addTool(_('visualEditor'), _('Visual Editor'), VisualEditor)
+ 
+   def createWizards(self):
      self.loadWizards(wizards)
  
  
Index: gnue/forms/src/GFForm.py
diff -c gnue/forms/src/GFForm.py:1.205 gnue/forms/src/GFForm.py:1.206
*** gnue/forms/src/GFForm.py:1.205      Fri Nov 22 00:36:10 2002
--- gnue/forms/src/GFForm.py    Fri Nov 22 20:48:02 2002
***************
*** 230,240 ****
    # an item of type Page, Block, or Entry
    #
    def findFocus(self, object):
      entry = None
  
      if isinstance(object, GFObj):
        if (object._type in TabStops and
!           (not object.hidden) and ((not object.readonly) or
           (self._currentBlock and \
            self._currentBlock.mode=='query' and \
            object._queryable))):
--- 230,245 ----
    # an item of type Page, Block, or Entry
    #
    def findFocus(self, object):
+   
+     if object._type == 'GFField': 
+       GDebug.printMesg(0,"Ack! A GFField was passed to 'findFocus'.")
+       object = object._fieldList[0]
+ 
      entry = None
  
      if isinstance(object, GFObj):
        if (object._type in TabStops and
!           (object._navigable) and ((not object.readonly) or
           (self._currentBlock and \
            self._currentBlock.mode=='query' and \
            object._queryable))):
Index: gnue/forms/src/GFObjects/GFTabStop.py
diff -c gnue/forms/src/GFObjects/GFTabStop.py:1.1 
gnue/forms/src/GFObjects/GFTabStop.py:1.2
*** gnue/forms/src/GFObjects/GFTabStop.py:1.1   Tue Sep 17 20:27:50 2002
--- gnue/forms/src/GFObjects/GFTabStop.py       Fri Nov 22 20:48:03 2002
***************
*** 27,30 ****
--- 27,31 ----
  from GFObj import GFObj
  
  class GFTabStop(GFObj):
+   _navigable = 1
    pass




reply via email to

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