/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/classification.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/Model/classification.py

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

revision 689 by jonathan, Wed Apr 16 13:47:07 2003 UTC revision 873 by jonathan, Fri May 9 16:30:54 2003 UTC
# Line 23  on the mapping algorithm. Line 23  on the mapping algorithm.
23  # fix for people using python2.1  # fix for people using python2.1
24  from __future__ import nested_scopes  from __future__ import nested_scopes
25    
26  import copy  import copy, operator
27    
28  from Thuban import _  from Thuban import _
29    
30  from types import *  import types
31    
32  from messages import \  from messages import \
33      LAYER_PROJECTION_CHANGED, \      LAYER_PROJECTION_CHANGED, \
# Line 35  from messages import \ Line 35  from messages import \
35      LAYER_VISIBILITY_CHANGED      LAYER_VISIBILITY_CHANGED
36    
37  from Thuban.Model.color import Color  from Thuban.Model.color import Color
38    from Thuban.Model.range import Range
39    
40  import Thuban.Model.layer  import Thuban.Model.layer
41    
# Line 222  class Classification: Line 223  class Classification:
223    
224          lineWidth -- an integer > 0.          lineWidth -- an integer > 0.
225          """          """
226          assert isinstance(lineWidth, IntType)          assert isinstance(lineWidth, types.IntType)
227          self.GetDefaultGroup().GetProperties().SetLineWidth(lineWidth)          self.GetDefaultGroup().GetProperties().SetLineWidth(lineWidth)
228          self.__SendNotification()          self.__SendNotification()
229                    
# Line 469  class ClassGroupProperties: Line 470  class ClassGroupProperties:
470    
471          lineWidth -- the new line width. This must be > 0.          lineWidth -- the new line width. This must be > 0.
472          """          """
473          assert isinstance(lineWidth, IntType)          assert isinstance(lineWidth, types.IntType)
474          if (lineWidth < 1):          if (lineWidth < 1):
475              raise ValueError(_("lineWidth < 1"))              raise ValueError(_("lineWidth < 1"))
476    
# Line 542  class ClassGroup: Line 543  class ClassGroup:
543          label -- a string representing the Group's label. This must          label -- a string representing the Group's label. This must
544                   not be None.                   not be None.
545          """          """
546          assert isinstance(label, StringTypes)          assert isinstance(label, types.StringTypes)
547          self.label = label          self.label = label
548    
549      def GetDisplayText(self):      def GetDisplayText(self):
# Line 706  class ClassGroupRange(ClassGroup): Line 707  class ClassGroupRange(ClassGroup):
707    
708          ClassGroup.__init__(self, label, props, group)          ClassGroup.__init__(self, label, props, group)
709    
710          self.__min = self.__max = 0          #self.__min = self.__max = 0
711            #self.__range = Range("[" + repr(float(min)) + ";" +
712                                       #repr(float(max)) + "[")
713          self.SetRange(min, max)          self.SetRange(min, max)
714    
715      def __copy__(self):      def __copy__(self):
716          return ClassGroupRange(self.GetMin(),          return ClassGroupRange(min = self.__range,
717                                 self.GetMax(),                                 max = None,
718                                 self.GetProperties(),                                 props = self.GetProperties(),
719                                 self.GetLabel())                                 label = self.GetLabel())
720    
721      def __deepcopy__(self, memo):      def __deepcopy__(self, memo):
722          return ClassGroupRange(copy.copy(self.GetMin()),          return ClassGroupRange(min = copy.copy(self.__range),
723                                 copy.copy(self.GetMax()),                                 max = copy.copy(self.GetMax()),
724                                 group = self)                                 group = self)
725    
726      def GetMin(self):      def GetMin(self):
727          """Return the range's minimum value."""          """Return the range's minimum value."""
728          return self.__min          return self.__range.GetRange()[1]
729    
730      def SetMin(self, min):      def SetMin(self, min):
731          """Set the range's minimum value.          """Set the range's minimum value.
# Line 732  class ClassGroupRange(ClassGroup): Line 734  class ClassGroupRange(ClassGroup):
734                 maximum value. Use SetRange() to change both min and max values.                 maximum value. Use SetRange() to change both min and max values.
735          """          """
736            
737          self.SetRange(min, self.__max)          self.SetRange(min, self.__range.GetRange()[2])
738    
739      def GetMax(self):      def GetMax(self):
740          """Return the range's maximum value."""          """Return the range's maximum value."""
741          return self.__max          return self.__range.GetRange()[2]
742    
743      def SetMax(self, max):      def SetMax(self, max):
744          """Set the range's maximum value.          """Set the range's maximum value.
# Line 744  class ClassGroupRange(ClassGroup): Line 746  class ClassGroupRange(ClassGroup):
746          max -- the new maximum. Note that this must be greater than the current          max -- the new maximum. Note that this must be greater than the current
747                 minimum value. Use SetRange() to change both min and max values.                 minimum value. Use SetRange() to change both min and max values.
748          """          """
749          self.SetRange(self.__min, max)          self.SetRange(self.__range.GetRange()[1], max)
750    
751      def SetRange(self, min, max):      def SetRange(self, min, max = None):
752          """Set a new range.          """Set a new range.
753    
754          Note that min must be strictly less than max.          Note that min must be strictly less than max.
# Line 755  class ClassGroupRange(ClassGroup): Line 757  class ClassGroupRange(ClassGroup):
757          min -- the new maximum value          min -- the new maximum value
758          """          """
759    
760          if min >= max:          if isinstance(min, Range):
761              raise ValueError(_("ClassGroupRange: %i(min) >= %i(max)!") %              self.__range = min
762                               (min, max))          else:
763          self.__min = min              if max is None:
764          self.__max = max                  raise ValueError()
765    
766                self.__range = Range("[" + repr(float(min)) + ";" +
767                                           repr(float(max)) + "[")
768    
769      def GetRange(self):      def GetRange(self):
770          """Return the range as a tuple (min, max)"""          """Return the range as a string"""
771          return (self.__min, self.__max)          #return (self.__min, self.__max)
772            return self.__range.string(self.__range.GetRange())
773    
774      def Matches(self, value):      def Matches(self, value):
775          """Determine if the given value lies with the current range.          """Determine if the given value lies with the current range.
# Line 771  class ClassGroupRange(ClassGroup): Line 777  class ClassGroupRange(ClassGroup):
777          The following check is used: min <= value < max.          The following check is used: min <= value < max.
778          """          """
779    
780          return self.__min <= value < self.__max          return operator.contains(self.__range, value)
781            #return self.__min <= value < self.__max
782    
783      def GetDisplayText(self):      def GetDisplayText(self):
784          label = self.GetLabel()          label = self.GetLabel()
785    
786          if label != "": return label          if label != "": return label
787    
788          return _("%s - %s") % (self.GetMin(), self.GetMax())          #return _("%s - %s") % (self.GetMin(), self.GetMax())
789            #return repr(self.__range)
790            return self.__range.string(self.__range.GetRange())
791    
792      def __eq__(self, other):      def __eq__(self, other):
793          return ClassGroup.__eq__(self, other) \          return ClassGroup.__eq__(self, other) \
794              and isinstance(other, ClassGroupRange) \              and isinstance(other, ClassGroupRange) \
795              and self.__min == other.__min \              and self.__range == other.__range
796              and self.__max == other.__max              #and self.__min == other.__min \
797                #and self.__max == other.__max
798    
799      def __repr__(self):      def __repr__(self):
800          return "(" + repr(self.__min) + ", " + repr(self.__max) + ", " + \          return "(" + str(self.__range) + ClassGroup.__repr__(self) + ")"
801                 ClassGroup.__repr__(self) + ")"          #return "(" + repr(self.__min) + ", " + repr(self.__max) + ", " + \
802                   #ClassGroup.__repr__(self) + ")"
803    
804  class ClassGroupMap(ClassGroup):  class ClassGroupMap(ClassGroup):
805      """Currently, this class is not used."""      """Currently, this class is not used."""

Legend:
Removed from v.689  
changed lines
  Added in v.873

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26