/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/legend.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/legend.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 652 by jonathan, Fri Apr 11 14:28:08 2003 UTC revision 658 by jonathan, Mon Apr 14 14:06:30 2003 UTC
# Line 54  class LegendPanel(DockPanel): Line 54  class LegendPanel(DockPanel):
54          panelBox = wxBoxSizer(wxVERTICAL)          panelBox = wxBoxSizer(wxVERTICAL)
55    
56          self.toolBar = wxToolBar(self, -1)          self.toolBar = wxToolBar(self, -1)
57            self.toolBar.SetToolBitmapSize(wxSize(24, 24))
58    
59          bmp = resource.GetBitmapResource(RAISE_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(RAISE_BMP, wxBITMAP_TYPE_XPM)
60          self.toolBar.AddTool(ID_LEGEND_RAISE, bmp,          self.toolBar.AddTool(ID_LEGEND_RAISE, bmp,
# Line 86  class LegendPanel(DockPanel): Line 87  class LegendPanel(DockPanel):
87    
88          self.tree = LegendTree(self, ID_LEGEND_TREE, map, mainWindow)          self.tree = LegendTree(self, ID_LEGEND_TREE, map, mainWindow)
89    
90          panelBox.Add(self.tree, 1, wxGROW, 4)          panelBox.Add(self.tree, 1, wxGROW, 0)
91    
92          panelBox.Fit(self)          #panelBox.Fit(self)
93    
94          self.SetAutoLayout(True)          self.SetAutoLayout(True)
95          self.SetSizer(panelBox)          self.SetSizer(panelBox)
96          panelBox.SetSizeHints(self)          panelBox.SetSizeHints(self)
97    
98            print "legend: ", self.GetSize()
99    
100          self.panelBox = panelBox          self.panelBox = panelBox
101    
102          self.__EnableButtons(False)          self.__EnableButtons(False)
103    
104            self.Create()
105    
106          EVT_CLOSE(self, self._OnClose)          EVT_CLOSE(self, self._OnClose)
107    
108    
# Line 112  class LegendPanel(DockPanel): Line 117  class LegendPanel(DockPanel):
117          ok = isinstance(layer, Layer)          ok = isinstance(layer, Layer)
118          self.__EnableButtons(ok)          self.__EnableButtons(ok)
119    
120          if ok:          self.mainWindow.SelectLayer(layer)
             self.mainWindow.SelectLayer(layer)  
121    
122      def DoOnProperties(self):      def DoOnProperties(self):
123          list = self.tree.GetSelectedHierarchy()          list = self.tree.GetSelectedHierarchy()
# Line 277  class LegendTree(wxTreeCtrl): Line 281  class LegendTree(wxTreeCtrl):
281      def Sort(self):      def Sort(self):
282          self.SortChildren(self.GetRootItem())          self.SortChildren(self.GetRootItem())
283    
284        def GetSelectedHierarchy(self):
285            id = self.GetSelection()
286    
287            if not id.IsOk():
288                return (None, None)
289    
290            layer = self.GetPyData(id)
291            group = None
292    
293            if isinstance(layer, ClassGroup):
294                id = self.GetItemParent(id)
295                assert id.IsOk()
296                group = layer
297                layer = self.GetPyData(id)
298    
299            return (layer, group)
300    
301      def _OnMsgMapsChanged(self):      def _OnMsgMapsChanged(self):
302          #print self.map is self.mainWindow.Map()          #print self.map is self.mainWindow.Map()
303          self.SetMap(self.mainWindow.Map())          self.SetMap(self.mainWindow.Map())
304                    
305      def _OnSelChanged(self, event):      def _OnSelChanged(self, event):
306            self.__UpdateSelection()
         layer, group = self.GetSelectedHierarchy()  
         self.parent.DoOnSelChanged(layer, group)  
307    
308      def _OnItemActivated(self, event):      def _OnItemActivated(self, event):
309          self.parent.DoOnProperties()          self.parent.DoOnProperties()
# Line 300  class LegendTree(wxTreeCtrl): Line 319  class LegendTree(wxTreeCtrl):
319          #      track of the images in the image list when we replace          #      track of the images in the image list when we replace
320          #      a layer. it ends up causing a seg fault.          #      a layer. it ends up causing a seg fault.
321          self.__FillTree(self.map)          self.__FillTree(self.map)
322            self.__UpdateSelection()
323          #self.__FillTreeLayer(id)          #self.__FillTreeLayer(id)
324    
325      def _OnMsgMapStackingChanged(self, *args):      def _OnMsgMapStackingChanged(self, *args):
# Line 308  class LegendTree(wxTreeCtrl): Line 328  class LegendTree(wxTreeCtrl):
328    
329          if id.IsOk():          if id.IsOk():
330              self.EnsureVisible(id)              self.EnsureVisible(id)
331            self.__UpdateSelection()
332    
333      def _OnMsgMapLayersAddedRemoved(self, map):      def _OnMsgMapLayersAddedRemoved(self, map):
334          assert map is self.map          assert map is self.map
335    
336          self.__FillTree(self.map)          self.__FillTree(self.map)
337            self.__UpdateSelection()
338    
339      def _OnMsgLayerVisibilityChanged(self, layer):      def _OnMsgLayerVisibilityChanged(self, layer):
340          assert isinstance(layer, Layer)          assert isinstance(layer, Layer)
341    
342          self.__ShowHideLayer(layer)          self.__ShowHideLayer(layer)
343            self.__UpdateSelection()
344    
345      def _OnMsgLayerTitleChanged(self, layer):      def _OnMsgLayerTitleChanged(self, layer):
346    
347          id = self.layer2id[layer]          id = self.layer2id[layer]
348          if id.IsOk():          if id.IsOk():
349              self.SetItemText(id, layer.Title())              self.SetItemText(id, layer.Title())
350            self.__UpdateSelection()
351    
352      def GetSelectedHierarchy(self):      def __UpdateSelection(self):
353          id = self.GetSelection()          layer, group = self.GetSelectedHierarchy()
354          assert id.IsOk()          self.parent.DoOnSelChanged(layer, group)
355            
         layer = self.GetPyData(id)  
         group = None  
   
         if isinstance(layer, ClassGroup):  
             id = self.GetItemParent(id)  
             assert id.IsOk()  
             group = layer  
             layer = self.GetPyData(id)  
   
         return (layer, group)  
   
356      def __FillTree(self, map):      def __FillTree(self, map):
357    
358          assert isinstance(map, Map)          assert isinstance(map, Map)

Legend:
Removed from v.652  
changed lines
  Added in v.658

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26