mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
refactored code to decouple object construction from initializaion
This commit is contained in:
parent
b9de3daa41
commit
efb320b74c
@ -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))
|
||||
|
@ -40,7 +40,7 @@ class ObjectPaletteBase:
|
||||
self.data = {}
|
||||
self.dataStruct = {}
|
||||
self.dataKeys = []
|
||||
self.populate()
|
||||
#self.populate()
|
||||
|
||||
def insertItem(self, item, parentName):
|
||||
"""
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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():
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user