/[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 795 by jonathan, Wed Apr 30 17:01:06 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 76  class LegendPanel(DockPanel): Line 77  class LegendPanel(DockPanel):
77              shortHelpString=_("Edit Layer Properties"))              shortHelpString=_("Edit Layer Properties"))
78    
79          self.toolBar.Realize()          self.toolBar.Realize()
80          panelBox.Add(self.toolBar, 0, wxALL, 0)          panelBox.Add(self.toolBar, 0, wxGROW, 0)
81    
82          EVT_TOOL(self, ID_LEGEND_RAISE, self._OnMoveUp)          EVT_TOOL(self, ID_LEGEND_RAISE, self._OnMoveUp)
83          EVT_TOOL(self, ID_LEGEND_LOWER, self._OnMoveDown)          EVT_TOOL(self, ID_LEGEND_LOWER, self._OnMoveDown)
# 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)
   
         panelBox.Fit(self)  
91    
92          self.SetAutoLayout(True)          self.SetAutoLayout(True)
93          self.SetSizer(panelBox)          self.SetSizer(panelBox)
94          panelBox.SetSizeHints(self)          panelBox.SetSizeHints(self)
95    
96    
97          self.panelBox = panelBox          self.panelBox = panelBox
98    
99          self.__EnableButtons(False)          self.__EnableButtons(False)
100    
101            self.Create()
102    
103          EVT_CLOSE(self, self._OnClose)          EVT_CLOSE(self, self._OnClose)
104    
105    
# Line 112  class LegendPanel(DockPanel): Line 114  class LegendPanel(DockPanel):
114          ok = isinstance(layer, Layer)          ok = isinstance(layer, Layer)
115          self.__EnableButtons(ok)          self.__EnableButtons(ok)
116    
117          if ok:          self.mainWindow.SelectLayer(layer)
             self.mainWindow.SelectLayer(layer)  
118    
119      def DoOnProperties(self):      def DoOnProperties(self):
120          list = self.tree.GetSelectedHierarchy()          list = self.tree.GetSelectedHierarchy()
# Line 217  class LegendTree(wxTreeCtrl): Line 218  class LegendTree(wxTreeCtrl):
218    
219                            
220      def MoveCurrentItemUp(self):      def MoveCurrentItemUp(self):
221          cur_id = self.GetSelection()          layer, group = self.GetSelectedHierarchy()
         assert cur_id.IsOk()  
   
         cur_data = self.GetPyData(cur_id)  
   
         #prev_id = self.GetPrevSibling(cur_id)  
   
         #  
         # Get out if there's nowhere to go  
         #  
         #if prev_id == INVALID_TREE_ID: return  
222    
223          if isinstance(cur_data, Layer):          if layer is not None:
224              self.map.RaiseLayer(cur_data)              self.map.RaiseLayer(layer)
         elif isinstance(cur_data, ClassGroup):  
             pass  
225          else:          else:
226              assert False, "Shouldn't be here."              assert False, "Shouldn't be allowed."
227              pass              pass
228    
229      def MoveCurrentItemDown(self):      def MoveCurrentItemDown(self):
230          cur_id = self.GetSelection()          layer, group = self.GetSelectedHierarchy()
         assert cur_id.IsOk()  
   
         cur_data = self.GetPyData(cur_id)  
231    
232          if isinstance(cur_data, Layer):          if layer is not None:
233              self.map.LowerLayer(cur_data)              self.map.LowerLayer(layer)
         elif isinstance(cur_data, ClassGroup):  
             pass  
234          else:          else:
235              assert False, "Shouldn't be here."              assert False, "Shouldn't be allowed."
236              pass              pass
237    
   
238      def OnCompareItems(self, item1, item2):      def OnCompareItems(self, item1, item2):
239    
240          data1 = self.GetPyData(item1)          data1 = self.GetPyData(item1)
# Line 277  class LegendTree(wxTreeCtrl): Line 260  class LegendTree(wxTreeCtrl):
260      def Sort(self):      def Sort(self):
261          self.SortChildren(self.GetRootItem())          self.SortChildren(self.GetRootItem())
262    
263        def GetSelectedHierarchy(self):
264            id = self.GetSelection()
265    
266            if not id.IsOk():
267                return (None, None)
268    
269            layer = self.GetPyData(id)
270            group = None
271    
272            if isinstance(layer, ClassGroup):
273                id = self.GetItemParent(id)
274                assert id.IsOk()
275                group = layer
276                layer = self.GetPyData(id)
277    
278            return (layer, group)
279    
280      def _OnMsgMapsChanged(self):      def _OnMsgMapsChanged(self):
281          #print self.map is self.mainWindow.Map()          #print self.map is self.mainWindow.Map()
282          self.SetMap(self.mainWindow.Map())          self.SetMap(self.mainWindow.Map())
283                    
284      def _OnSelChanged(self, event):      def _OnSelChanged(self, event):
285            self.__UpdateSelection()
         layer, group = self.GetSelectedHierarchy()  
         self.parent.DoOnSelChanged(layer, group)  
286    
287      def _OnItemActivated(self, event):      def _OnItemActivated(self, event):
288          self.parent.DoOnProperties()          self.parent.DoOnProperties()
# Line 300  class LegendTree(wxTreeCtrl): Line 298  class LegendTree(wxTreeCtrl):
298          #      track of the images in the image list when we replace          #      track of the images in the image list when we replace
299          #      a layer. it ends up causing a seg fault.          #      a layer. it ends up causing a seg fault.
300          self.__FillTree(self.map)          self.__FillTree(self.map)
301            self.__UpdateSelection()
302          #self.__FillTreeLayer(id)          #self.__FillTreeLayer(id)
303    
304      def _OnMsgMapStackingChanged(self, *args):      def _OnMsgMapStackingChanged(self, *args):
# Line 308  class LegendTree(wxTreeCtrl): Line 307  class LegendTree(wxTreeCtrl):
307    
308          if id.IsOk():          if id.IsOk():
309              self.EnsureVisible(id)              self.EnsureVisible(id)
310            self.__UpdateSelection()
311    
312      def _OnMsgMapLayersAddedRemoved(self, map):      def _OnMsgMapLayersAddedRemoved(self, map):
313          assert map is self.map          assert map is self.map
314    
315          self.__FillTree(self.map)          self.__FillTree(self.map)
316            self.__UpdateSelection()
317    
318      def _OnMsgLayerVisibilityChanged(self, layer):      def _OnMsgLayerVisibilityChanged(self, layer):
319          assert isinstance(layer, Layer)          assert isinstance(layer, Layer)
320    
321          self.__ShowHideLayer(layer)          self.__ShowHideLayer(layer)
322            self.__UpdateSelection()
323    
324      def _OnMsgLayerTitleChanged(self, layer):      def _OnMsgLayerTitleChanged(self, layer):
325    
326          id = self.layer2id[layer]          id = self.layer2id[layer]
327          if id.IsOk():          if id.IsOk():
328              self.SetItemText(id, layer.Title())              self.SetItemText(id, layer.Title())
329            self.__UpdateSelection()
330    
331      def GetSelectedHierarchy(self):      def __UpdateSelection(self):
332          id = self.GetSelection()          layer, group = self.GetSelectedHierarchy()
333          assert id.IsOk()          self.parent.DoOnSelChanged(layer, group)
334            
         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)  
   
335      def __FillTree(self, map):      def __FillTree(self, map):
336    
         assert isinstance(map, Map)  
   
337          self.Freeze()          self.Freeze()
338    
339          self.__DeleteAllItems()          self.__DeleteAllItems()
# Line 411  class LegendTree(wxTreeCtrl): Line 401  class LegendTree(wxTreeCtrl):
401          self.Thaw()          self.Thaw()
402    
403      def __BuildGroupImage(self, group, shapeType):      def __BuildGroupImage(self, group, shapeType):
         assert isinstance(group, ClassGroup)  
404    
405          bmp = wxEmptyBitmap(BMP_SIZE_W, BMP_SIZE_H)          bmp = wxEmptyBitmap(BMP_SIZE_W, BMP_SIZE_H)
406          #brush = wxBrush(Color2wxColour(item[1]), wxSOLID)          #brush = wxBrush(Color2wxColour(item[1]), wxSOLID)

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26