commit-gnue
[Top][All Lists]
Advanced

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

gnue designer/src/navigator/LayoutEditor.py nav...


From: Jason Cater
Subject: gnue designer/src/navigator/LayoutEditor.py nav...
Date: Tue, 22 Jan 2002 20:25:46 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    02/01/22 20:25:45

Modified files:
        designer/src/navigator: LayoutEditor.py 
        navigator/src  : GNObjects.py 

Log message:
        implemented a basic GNUe Navigator module for GNUe Designer

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/navigator/LayoutEditor.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/navigator/src/GNObjects.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: gnue/designer/src/navigator/LayoutEditor.py
diff -c gnue/designer/src/navigator/LayoutEditor.py:1.2 
gnue/designer/src/navigator/LayoutEditor.py:1.3
*** gnue/designer/src/navigator/LayoutEditor.py:1.2     Tue Jan 22 18:16:04 2002
--- gnue/designer/src/navigator/LayoutEditor.py Tue Jan 22 20:25:45 2002
***************
*** 26,34 ****
  # NOTES:
  
  
! import sys, os, cPickle
  from wxPython.wx import *
  from gnue.common import GDebug, GConfig
  
  
  class LayoutEditor (wxPanel):
--- 26,35 ----
  # NOTES:
  
  
! import sys, os, cPickle, string
  from wxPython.wx import *
  from gnue.common import GDebug, GConfig
+ import RuntimeSettings
  
  
  class LayoutEditor (wxPanel):
***************
*** 38,50 ****
      self.instance = instance
      self.rootObject = rootObject
      self.frame = parentWindow
!     
  
      rootObject.walk(self.inventoryObject)
  
  
    def inventoryObject(self, object):
!     pass
  
  
    def onSetCurrentObject (self, object, handler):
--- 39,67 ----
      self.instance = instance
      self.rootObject = rootObject
      self.frame = parentWindow
! 
! 
!     # Tell RuntimeSettings that we have information to save
!     self.runtime_section = 'ProcessVisualEditor'
!     RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
! 
!     self.splitter = wxSplitterWindow(self, -1)
! 
!     self.tree = MasterTreeView(self, self.splitter)
!     self.list = ObjectEditor(self, self.splitter)
! 
!     self.splitter.SplitHorizontally(self.tree, self.list,100)
! 
!     self.finalize = 1
!     EVT_SIZE(self, self.OnSize)
  
      rootObject.walk(self.inventoryObject)
+     self.tree.postInit()
+ 
  
  
    def inventoryObject(self, object):
!     self.tree.inventoryObject(object)
  
  
    def onSetCurrentObject (self, object, handler):
***************
*** 73,75 ****
--- 90,201 ----
        return
      if handler != __name__:
        pass
+ 
+ 
+   #
+   #  Used by RuntimeSettings
+   #
+   def saveRuntimeSettings(self):
+     x, y = self.GetPositionTuple()
+     width, height = self.GetSizeTuple()
+     return ( self.runtime_section,
+              { 'sash': self.splitter.GetSashPosition() } )
+ 
+ 
+   def OnSize(self, event):
+ 
+     self.splitter.SetSize(self.GetSize())
+ 
+     if self.finalize:
+       self.finalize = 0
+       self.splitter.SetSashPosition(\
+           RuntimeSettings.getint(self.runtime_section,'sash',100))
+ 
+ 
+ ############################################################################
+ #
+ #
+ #
+ class MasterTreeView(wxTreeCtrl):
+ 
+   def __init__(self, editor, parentWindow):
+     wxTreeCtrl.__init__(self, parentWindow, -1,
+        style=wxTR_HAS_BUTTONS|wxTR_EDIT_LABELS|wxTR_HAS_VARIABLE_ROW_HEIGHT)
+ 
+     self.editor = editor
+ 
+     self.editor.rootObject._treeItem = self.AddRoot( \
+          hasattr(self.editor.rootObject,'description') and \
+          self.editor.rootObject.description or 'Processes')
+ 
+     self.SetPyData(self.editor.rootObject._treeItem, self.editor.rootObject)
+ 
+     EVT_TREE_BEGIN_LABEL_EDIT(self, self.GetId(), self.OnBeginEdit)
+     EVT_TREE_END_LABEL_EDIT(self, self.GetId(), self.OnEndEdit)
+ 
+ 
+   def getName(self, object, includeDescr):
+ 
+     if hasattr(object,'description') and object.description != None:
+       description = object.description
+       if includeDescr:
+         if object._type == 'GNProcess':
+           description += ' [sub-process]'
+         elif object._type == 'GNStep':
+           description += ' [%s]' % object.type
+     else:
+       description = '(%s)'%object._type[2:]
+ 
+     return description
+ 
+ 
+   def inventoryObject(self, object):
+     if object._type == 'GNParameter':
+       return
+     if object._parent != None:
+ 
+       description = self.getName(object, 1)
+ 
+       object._treeItem = self.AppendItem(object._parent._treeItem, 
description)
+       self.SetPyData(object._treeItem, object)
+       if object._type == 'GNProcess':
+         self.SetItemBold(object._treeItem,1)
+ 
+ 
+   def postInit(self):
+     self.editor.rootObject.walk(self.__expand)
+ 
+ 
+   def __expand(self, object):
+     if hasattr(object,'_treeItem') and self.ItemHasChildren(object._treeItem):
+       self.Expand(object._treeItem)
+ 
+ 
+   def OnBeginEdit(self, event):
+     object = self.GetPyData(event.GetItem())
+     if object == self.editor.rootObject:
+       event.Veto()
+       return
+     else:
+       self.SetItemText(object._treeItem,self.getName(object,0))
+ 
+ 
+   def OnEndEdit(self, event):
+     object = self.GetPyData(event.GetItem())
+     object.description = event.GetLabel()
+     self.editor.instance.onModifyObject(self, object, __name__)
+     self.SetItemText(object._treeItem, self.getName(object,1))
+     event.Veto()
+ 
+ 
+ ############################################################################
+ #
+ #
+ #
+ class ObjectEditor(wxListCtrl):
+ 
+   def __init__(self, editor, parentWindow):
+     wxListCtrl.__init__(self, parentWindow, -1)
+     self.editor = editor
+ 
+ 
Index: gnue/navigator/src/GNObjects.py
diff -c gnue/navigator/src/GNObjects.py:1.1 gnue/navigator/src/GNObjects.py:1.2
*** gnue/navigator/src/GNObjects.py:1.1 Tue Jan  8 17:16:55 2002
--- gnue/navigator/src/GNObjects.py     Tue Jan 22 20:25:45 2002
***************
*** 29,34 ****
--- 29,35 ----
  
  import sys, string, os
  from gnue.common import GObjects, GDebug, GConfig
+ import GNParser
  
  
  # Base class for all Navigator objects
***************
*** 47,52 ****
--- 48,56 ----
  
    def setClientHandlers(self, handlers):
      self._clientHandlers.update(handlers)
+ 
+   def dumpXML(self, treeDump=1):
+     return GNObject.dumpXML(self,GNParser.getXMLelements(), treeDump)
  
  
    def _runForm(self, step):



reply via email to

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