/[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 2187 by jan, Sun Apr 18 20:37:45 2004 UTC revision 2588 by bh, Tue Mar 29 18:05:01 2005 UTC
# Line 1  Line 1 
1  # Copyright (c) 2001, 2002, 2003 by Intevation GmbH  # Copyright (c) 2001, 2002, 2003, 2005 by Intevation GmbH
2  # Authors:  # Authors:
3  # Jonathan Coles <[email protected]>  # Jonathan Coles <[email protected]>
4  # Frank Koormann <[email protected]>  # Frank Koormann <[email protected]>
# Line 15  from Thuban import _ Line 15  from Thuban import _
15  import resource  import resource
16    
17  from wxPython.wx import *  from wxPython.wx import *
18    import wxPython
19    
20  from Thuban.Model.layer import BaseLayer  from Thuban.Model.layer import BaseLayer
21  from Thuban.Model.map import Map  from Thuban.Model.map import Map
# Line 44  ID_LEGEND_PROPS = 4006 Line 45  ID_LEGEND_PROPS = 4006
45  ID_LEGEND_SHOWLAYER = 4007  ID_LEGEND_SHOWLAYER = 4007
46  ID_LEGEND_HIDELAYER = 4008  ID_LEGEND_HIDELAYER = 4008
47    
48  BMP_SIZE_W = 15  BMP_SIZE_W = 16
49  BMP_SIZE_H = 15  BMP_SIZE_H = 16
50    
51  TOP_BMP = "top_layer"  TOP_BMP = "top_layer"
52  RAISE_BMP = "raise_layer"  RAISE_BMP = "raise_layer"
# Line 284  class LegendTree(wxTreeCtrl): Line 285  class LegendTree(wxTreeCtrl):
285      def find_layer(self, layer):      def find_layer(self, layer):
286          """Return the tree item for the layer"""          """Return the tree item for the layer"""
287          root = self.GetRootItem()          root = self.GetRootItem()
288          id, cookie = self.GetFirstChild(root, 0)          id, cookie = self.GetFirstChild(root)
289          while id.IsOk():          while id.IsOk():
290              if self.GetPyData(id) is layer:              if self.GetPyData(id) is layer:
291                  return id                  return id
# Line 487  class LegendTree(wxTreeCtrl): Line 488  class LegendTree(wxTreeCtrl):
488          # Build a dict with all layers known by the the tree as keys          # Build a dict with all layers known by the the tree as keys
489          layers = {}          layers = {}
490          root = self.GetRootItem()          root = self.GetRootItem()
491          id, cookie = self.GetFirstChild(root, 0)          id, cookie = self.GetFirstChild(root)
492          while id.IsOk():          while id.IsOk():
493              layers[self.GetPyData(id)] = 1              layers[self.GetPyData(id)] = 1
494              id, cookie = self.GetNextChild(root, cookie)              id, cookie = self.GetNextChild(root, cookie)
# Line 506  class LegendTree(wxTreeCtrl): Line 507  class LegendTree(wxTreeCtrl):
507          layers = map.Layers()          layers = map.Layers()
508    
509          root = self.GetRootItem()          root = self.GetRootItem()
510          id, cookie = self.GetFirstChild(root, 0)          id, cookie = self.GetFirstChild(root)
511          while id.IsOk():          while id.IsOk():
512              if self.GetPyData(id) not in layers:              if self.GetPyData(id) not in layers:
513                  self.__RemoveLayer(id)                  self.__RemoveLayer(id)
# Line 546  class LegendTree(wxTreeCtrl): Line 547  class LegendTree(wxTreeCtrl):
547          self.Thaw()          self.Thaw()
548    
549      def __FillTreeLayer(self, pid):      def __FillTreeLayer(self, pid):
550    
551          layer = self.GetPyData(pid)          layer = self.GetPyData(pid)
552    
553          self.Freeze()          self.Freeze()
# Line 568  class LegendTree(wxTreeCtrl): Line 570  class LegendTree(wxTreeCtrl):
570                      bmp = self.__BuildGroupImage(g, shapeType)                      bmp = self.__BuildGroupImage(g, shapeType)
571    
572                      if bmp is None:                      if bmp is None:
573                          self.SetItemImage(id, -1)                          self.SetItemImage(id, -1, wxTreeItemIcon_Normal)
574                          self.SetItemSelectedImage(id, -1)                          self.SetItemImage(id, -1, wxTreeItemIcon_Selected)
575                            #self.SetItemSelectedImage(id, -1)
576                      else:                      else:
577                          if self.availImgListIndices:                          if self.availImgListIndices:
578                              i = self.availImgListIndices.pop(0)                              i = self.availImgListIndices.pop(0)
# Line 577  class LegendTree(wxTreeCtrl): Line 580  class LegendTree(wxTreeCtrl):
580                          else:                          else:
581                              i = self.image_list.Add(bmp)                              i = self.image_list.Add(bmp)
582    
583                          self.SetItemImage(id, i)                          self.SetItemImage(id, i, wxTreeItemIcon_Normal)
584                          self.SetItemSelectedImage(id, i)                          self.SetItemImage(id, i, wxTreeItemIcon_Selected)
585                            #self.SetItemlectedImage(id, i)
586    
587          self.Thaw()          self.Thaw()
588    
# Line 598  class LegendTree(wxTreeCtrl): Line 602  class LegendTree(wxTreeCtrl):
602    
603          pid = self.GetRootItem()          pid = self.GetRootItem()
604    
605          id, cookie = self.GetFirstChild(pid, 123)          id, cookie = self.GetFirstChild(pid)
606          while id.IsOk():          while id.IsOk():
607              self.__RemoveLayer(id)              self.__RemoveLayer(id)
608              id, cookie = self.GetNextChild(pid, cookie)              id, cookie = self.GetNextChild(pid, cookie)
# Line 636  class LegendTree(wxTreeCtrl): Line 640  class LegendTree(wxTreeCtrl):
640          self.Delete(id)          self.Delete(id)
641    
642      def DeleteChildren(self, pid):      def DeleteChildren(self, pid):
643          id, cookie = self.GetFirstChild(pid, 123)          id, cookie = self.GetFirstChild(pid)
644          while id.IsOk():          while id.IsOk():
645              self.availImgListIndices.append(self.GetItemImage(id))              self.availImgListIndices.append(self.GetItemImage(id))
646              id, cookie = self.GetNextChild(pid, cookie)              id, cookie = self.GetNextChild(pid, cookie)
# Line 692  class LegendTree(wxTreeCtrl): Line 696  class LegendTree(wxTreeCtrl):
696    
697          self.__SetVisibilityStyle(visible, parent)          self.__SetVisibilityStyle(visible, parent)
698    
699          id, cookie = self.GetFirstChild(parent, 123)          id, cookie = self.GetFirstChild(parent)
700    
701          while id.IsOk():          while id.IsOk():
702              self.__SetVisibilityStyle(visible, id)              self.__SetVisibilityStyle(visible, id)
703              id, cookie = self.GetNextChild(parent, cookie)              id, cookie = self.GetNextChild(parent, cookie)
704                
705        # In wxPython 2.4 the GetFirstChild method has to be called with a
706        # second argument and in 2.5 it must not.  Reading the code of
707        # wxPython 2.4 it seems that the second parameter was intended to be
708        # optional there but due to a bug in the C++ code it doesn't work
709        # and omitting the second argument leads to a segfault.  To cope
710        # with this and to make the code usable with both 2.5 and 2.4 we
711        # overwrite the inherited method when running with 2.4 to provide a
712        # default value for the second argument.
713        if map(int, wxPython.__version__.split(".")[:2]) < [2, 5]:
714            def GetFirstChild(self, item):
715                return wxTreeCtrl.GetFirstChild(self, item, 0)
716    
717    
718  class ScaleBarBitmap(wxBoxSizer):  class ScaleBarBitmap(wxBoxSizer):
719    
720      def __init__(self, parent, map, mainWindow):      def __init__(self, parent, map, mainWindow):

Legend:
Removed from v.2187  
changed lines
  Added in v.2588

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26