/[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 668 by jonathan, Mon Apr 14 17:12:57 2003 UTC revision 864 by frank, Thu May 8 12:29:23 2003 UTC
# Line 21  from Thuban.Model.classification import Line 21  from Thuban.Model.classification import
21  from Thuban.UI.messages import *  from Thuban.UI.messages import *
22  from Thuban.UI.classifier import ClassDataPreviewer  from Thuban.UI.classifier import ClassDataPreviewer
23  from Thuban.UI.dock import DockPanel  from Thuban.UI.dock import DockPanel
24    from Thuban.UI.scalebar import ScaleBar
25    
26  from Thuban.Lib.connector import ConnectorError  from Thuban.Lib.connector import ConnectorError
27    
# Line 89  class LegendPanel(DockPanel): Line 90  class LegendPanel(DockPanel):
90    
91          panelBox.Add(self.tree, 1, wxGROW, 0)          panelBox.Add(self.tree, 1, wxGROW, 0)
92    
93            self.scalebarbitmap = ScaleBarBitmap(self, map, mainWindow)
94            panelBox.Add(self.scalebarbitmap, 0, wxGROW, 0)
95    
96          self.SetAutoLayout(True)          self.SetAutoLayout(True)
97          self.SetSizer(panelBox)          self.SetSizer(panelBox)
98          panelBox.SetSizeHints(self)          panelBox.SetSizeHints(self)
# Line 108  class LegendPanel(DockPanel): Line 112  class LegendPanel(DockPanel):
112    
113      def SetMap(self, map):      def SetMap(self, map):
114          self.tree.SetMap(map)          self.tree.SetMap(map)
115            self.scalebarbitmap.SetCanvas(self.mainWindow.canvas)
116    
117      def DoOnSelChanged(self, layer, group):      def DoOnSelChanged(self, layer, group):
118    
# Line 216  class LegendTree(wxTreeCtrl): Line 221  class LegendTree(wxTreeCtrl):
221                  #self._OnMsgMapsChanged)                  #self._OnMsgMapsChanged)
222              self.__FillTree(self.map)              self.__FillTree(self.map)
223    
               
224      def MoveCurrentItemUp(self):      def MoveCurrentItemUp(self):
225          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  
226    
227          if isinstance(cur_data, Layer):          if layer is not None:
228              self.map.RaiseLayer(cur_data)              self.map.RaiseLayer(layer)
         elif isinstance(cur_data, ClassGroup):  
             pass  
229          else:          else:
230              assert False, "Shouldn't be here."              assert False, "Shouldn't be allowed."
231              pass              pass
232    
233      def MoveCurrentItemDown(self):      def MoveCurrentItemDown(self):
234          cur_id = self.GetSelection()          layer, group = self.GetSelectedHierarchy()
         assert cur_id.IsOk()  
   
         cur_data = self.GetPyData(cur_id)  
235    
236          if isinstance(cur_data, Layer):          if layer is not None:
237              self.map.LowerLayer(cur_data)              self.map.LowerLayer(layer)
         elif isinstance(cur_data, ClassGroup):  
             pass  
238          else:          else:
239              assert False, "Shouldn't be here."              assert False, "Shouldn't be allowed."
240              pass              pass
241    
   
242      def OnCompareItems(self, item1, item2):      def OnCompareItems(self, item1, item2):
243    
244          data1 = self.GetPyData(item1)          data1 = self.GetPyData(item1)
# Line 352  class LegendTree(wxTreeCtrl): Line 338  class LegendTree(wxTreeCtrl):
338                    
339      def __FillTree(self, map):      def __FillTree(self, map):
340    
         assert isinstance(map, Map)  
   
341          self.Freeze()          self.Freeze()
342    
343          self.__DeleteAllItems()          self.__DeleteAllItems()
# Line 421  class LegendTree(wxTreeCtrl): Line 405  class LegendTree(wxTreeCtrl):
405          self.Thaw()          self.Thaw()
406    
407      def __BuildGroupImage(self, group, shapeType):      def __BuildGroupImage(self, group, shapeType):
         assert isinstance(group, ClassGroup)  
408    
409          bmp = wxEmptyBitmap(BMP_SIZE_W, BMP_SIZE_H)          bmp = wxEmptyBitmap(BMP_SIZE_W, BMP_SIZE_H)
410          #brush = wxBrush(Color2wxColour(item[1]), wxSOLID)          #brush = wxBrush(Color2wxColour(item[1]), wxSOLID)
# Line 472  class LegendTree(wxTreeCtrl): Line 455  class LegendTree(wxTreeCtrl):
455              self.__SetVisibilityStyle(visible, id)              self.__SetVisibilityStyle(visible, id)
456              id, cookie = self.GetNextChild(parent, cookie)              id, cookie = self.GetNextChild(parent, cookie)
457                            
458    class ScaleBarBitmap(wxBoxSizer):
459    
460        def __init__(self, parent, map, mainWindow):
461            # While the width is fixed, get the height _now_.
462            dc = wxMemoryDC()
463            textwidth, textheight = dc.GetTextExtent("%d"%0)
464            self.width = 200
465            self.height = textheight + 3*2 + 8
466    
467            wxBoxSizer.__init__(self, wxVERTICAL)
468            bmp=wxEmptyBitmap(self.width, self.height)
469            self.scalebarBitmap = wxStaticBitmap(parent, -1, bmp)
470            self.Add(self.scalebarBitmap, 0, wxALIGN_CENTER|wxLEFT|wxTOP|wxRIGHT, 1)
471    
472            self.mainWindow = mainWindow
473            self.parent = parent
474            self.canvas = None
475            self.SetCanvas(self.mainWindow.canvas)
476    
477        def SetCanvas(self, canvas):
478            sub_list = [(SCALE_CHANGED, self._OnMsgScaleChanged)]
479    
480            if self.canvas is not None:
481                for msg, func in sub_list: self.canvas.Unsubscribe(msg, func)
482            
483            self.canvas = canvas
484            self.scalebar = ScaleBar(canvas.map)
485    
486            if self.canvas is not None:
487                for msg, func in sub_list: self.canvas.Subscribe(msg, func)
488                self.__SetScale(self.canvas.scale)
489    
490        def _OnMsgScaleChanged(self, scale):
491            self.__SetScale(scale)
492    
493        def __SetScale(self, scale):
494            bmp = wxEmptyBitmap(self.width, self.height)
495            dc = wxMemoryDC()
496            dc.SelectObject(bmp)
497            dc.Clear()
498    
499            self.scalebar.DrawScalebar(scale, dc)
500    
501            self.scalebarBitmap.SetBitmap(bmp)
502    

Legend:
Removed from v.668  
changed lines
  Added in v.864

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26