Browse Source

refactored code to decouple object construction from initializaion

Arkady Trestman 15 years ago
parent
commit
efb320b74c

+ 10 - 2
direct/src/leveleditor/LevelEditor.py

@@ -27,9 +27,17 @@ class LevelEditor(LevelEditorBase):
         self.objectHandler = ObjectHandler(self)
         self.protoPalette = ProtoPalette()
 
-        # LevelEditorUI class must declared after ObjectPalette
+        # Populating uderlined data-structures
         self.ui = LevelEditorUI(self)
-        
+        self.ui.SetCursor(wx.StockCursor(wx.CURSOR_WAIT))
+        self.objectPalette.populate()
+        self.protoPalette.populate()
+
+        # Updating UI-panels based on the above data
+        self.ui.objectPaletteUI.populate()
+        self.ui.protoPaletteUI.populate()
+
         # When you define your own LevelEditor class inheriting LevelEditorBase
         # you should call self.initialize() at the end of __init__() function
         self.initialize()
+        self.ui.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))

+ 1 - 1
direct/src/leveleditor/ObjectPaletteBase.py

@@ -40,7 +40,7 @@ class ObjectPaletteBase:
         self.data = {}
         self.dataStruct = {}
         self.dataKeys = []
-        self.populate()
+        #self.populate()
 
     def insertItem(self, item, parentName):
         """

+ 3 - 2
direct/src/leveleditor/ObjectPaletteUI.py

@@ -13,8 +13,6 @@ class ObjectPaletteUI(wx.Panel):
 
         self.palette = self.editor.objectPalette
         self.tree = PaletteTreeCtrl(self, treeStyle=wx.TR_DEFAULT_STYLE, rootName='Objects')
-        self.dataKeys = self.palette.dataKeys[:]
-        self.tree.addTreeNodes(self.tree.GetRootItem(), self.palette.rootName, self.palette.dataStruct, self.dataKeys)
 
         sizer = wx.BoxSizer(wx.VERTICAL)
         sizer.Add(self.tree, 1, wx.EXPAND, 0)
@@ -40,6 +38,9 @@ class ObjectPaletteUI(wx.Panel):
 
         self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.onSelected)
 
+    def populate(self):
+        self.tree.addTreeNodes(self.tree.GetRootItem(), self.palette.rootName, self.palette.dataStruct, self.palette.dataKeys)
+
     def onSelected(self, event):
         pass
 

+ 0 - 1
direct/src/leveleditor/PaletteTreeCtrl.py

@@ -36,7 +36,6 @@ class PaletteTreeCtrl(wx.TreeCtrl):
     def addTreeNodes(self, parentItem, parentItemName, items, itemKeys):
         roots = []
         rootItems = []
-        #import pdb;set_trace()
         for key in itemKeys:
             if parentItemName == items[key]:
                roots.append(key)

+ 0 - 1
direct/src/leveleditor/ProtoObjsUI.py

@@ -71,7 +71,6 @@ class ProtoObjsUI(wx.Panel):
         self.Bind(wx.EVT_CONTEXT_MENU, self.onShowPopup)
 
         self.SetDropTarget(ProtoDropTarget(self))
-        self.populate()
 
     def populate(self):
         for key in self.protoObjs.data.keys():

+ 4 - 3
direct/src/leveleditor/ProtoPaletteUI.py

@@ -48,9 +48,6 @@ class ProtoPaletteUI(wx.Panel):
         self.palette = self.editor.protoPalette
         self.tree = PaletteTreeCtrl(self, treeStyle=wx.TR_EDIT_LABELS|wx.TR_DEFAULT_STYLE, rootName="Proto Objects")
 
-        self.dataKeys = self.palette.dataStruct.keys()[:]
-        self.tree.addTreeNodes(self.tree.GetRootItem(), self.palette.rootName, self.palette.dataStruct, self.dataKeys)
-
         self.editorTxt = "Proto Objects Editor"
 
         self.opSortAlpha = "Sort Alphabetical Order"
@@ -91,6 +88,10 @@ class ProtoPaletteUI(wx.Panel):
 
         self.SetDropTarget(UniversalDropTarget(self.editor))
 
+    def populate(self):
+        dataStructKeys = self.palette.dataStruct.keys()[:]
+        self.tree.addTreeNodes(self.tree.GetRootItem(), self.palette.rootName, self.palette.dataStruct, dataStructKeys)
+
     def OnBeginLabelEdit(self, event):
         self.editor.ui.bindKeyEvents(False)