/[thuban]/trunk/thuban/Thuban/UI/classifier.py
ViewVC logotype

Diff of /trunk/thuban/Thuban/UI/classifier.py

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

revision 1342 by jonathan, Tue Jul 1 16:10:54 2003 UTC revision 1433 by jonathan, Wed Jul 16 13:24:25 2003 UTC
# Line 84  class ClassGrid(wxGrid): Line 84  class ClassGrid(wxGrid):
84          #print "GetCellAttr ", row, col          #print "GetCellAttr ", row, col
85          #wxGrid.GetCellAttr(self, row, col)          #wxGrid.GetCellAttr(self, row, col)
86    
87      def CreateTable(self, clazz, shapeType, group = None):      def CreateTable(self, clazz, fieldType, shapeType, group = None):
88    
89          assert isinstance(clazz, Classification)          assert isinstance(clazz, Classification)
90    
# Line 104  class ClassGrid(wxGrid): Line 104  class ClassGrid(wxGrid):
104          self.SetSelectionMode(wxGrid.wxGridSelectRows)          self.SetSelectionMode(wxGrid.wxGridSelectRows)
105          self.ClearSelection()          self.ClearSelection()
106    
107          table.Reset(clazz, shapeType, group)          table.Reset(clazz, fieldType, shapeType, group)
108    
109      def GetCurrentSelection(self):      def GetCurrentSelection(self):
110          """Return the currently highlighted rows as an increasing list          """Return the currently highlighted rows as an increasing list
# Line 258  class ClassTable(wxPyGridTableBase): Line 258  class ClassTable(wxPyGridTableBase):
258    
259    
260      def __init__(self, view = None):      def __init__(self, view = None):
     #def __init__(self, clazz, shapeType, view = None):  
261          """Constructor.          """Constructor.
262    
263          shapeType -- the type of shape that the layer uses          shapeType -- the type of shape that the layer uses
# Line 275  class ClassTable(wxPyGridTableBase): Line 274  class ClassTable(wxPyGridTableBase):
274    
275          self.SetView(view)          self.SetView(view)
276    
277      def Reset(self, clazz, shapeType, group = None):      def Reset(self, clazz, fieldType, shapeType, group = None):
278          """Reset the table with the given data.          """Reset the table with the given data.
279    
280          This is necessary because wxWindows does not allow a grid's          This is necessary because wxWindows does not allow a grid's
# Line 293  class ClassTable(wxPyGridTableBase): Line 292  class ClassTable(wxPyGridTableBase):
292    
293          self.GetView().BeginBatch()          self.GetView().BeginBatch()
294    
295          self.fieldType = clazz.GetFieldType()          self.fieldType = fieldType
296          self.shapeType = shapeType          self.shapeType = shapeType
297    
298          self.SetClassification(clazz, group)          self.SetClassification(clazz, group)
# Line 703  class Classifier(NonModalNonParentDialog Line 702  class Classifier(NonModalNonParentDialog
702    
703          if layer.HasClassification():          if layer.HasClassification():
704              self.originalClass = self.layer.GetClassification()              self.originalClass = self.layer.GetClassification()
705              field = self.originalClass.GetField()              self.originalClassField = self.layer.GetClassificationField()
706              fieldType = self.originalClass.GetFieldType()              field = self.originalClassField
707                fieldType = self.layer.GetFieldType(field)
708    
709              table = layer.ShapeStore().Table()              table = layer.ShapeStore().Table()
710              #              #
# Line 719  class Classifier(NonModalNonParentDialog Line 719  class Classifier(NonModalNonParentDialog
719    
720              self.fields.Append("<None>")              self.fields.Append("<None>")
721    
722              if self.originalClass.GetFieldType() is None:              if fieldType is None:
723                  self.fields.SetClientData(0, copy.deepcopy(self.originalClass))                  self.fields.SetClientData(0, copy.deepcopy(self.originalClass))
724              else:              else:
725                  self.fields.SetClientData(0, None)                  self.fields.SetClientData(0, None)
# Line 731  class Classifier(NonModalNonParentDialog Line 731  class Classifier(NonModalNonParentDialog
731                  if name == field:                  if name == field:
732                      self.__cur_field = i + 1                      self.__cur_field = i + 1
733                      self.fields.SetClientData(i + 1,                      self.fields.SetClientData(i + 1,
734                                              copy.deepcopy(self.originalClass))                                                copy.deepcopy(self.originalClass))
735                  else:                  else:
736                      self.fields.SetClientData(i + 1, None)                      self.fields.SetClientData(i + 1, None)
737    
# Line 896  class Classifier(NonModalNonParentDialog Line 896  class Classifier(NonModalNonParentDialog
896  #       numRows = self.classGrid.GetNumberRows()  #       numRows = self.classGrid.GetNumberRows()
897  #       assert numRows > 0  # there should always be a default row  #       assert numRows > 0  # there should always be a default row
898    
 #       clazz = Classification()  
899          if fieldIndex == 0:          if fieldIndex == 0:
900              fieldName = None              fieldName = None
901              fieldType = None              fieldType = None
# Line 909  class Classifier(NonModalNonParentDialog Line 908  class Classifier(NonModalNonParentDialog
908          if copyClass:          if copyClass:
909              clazz = copy.deepcopy(clazz)              clazz = copy.deepcopy(clazz)
910    
         clazz.SetFieldInfo(fieldName, fieldType)  
   
   
 #       table = self.classGrid.GetTable()  
 #       clazz.SetDefaultGroup(table.GetClassGroup(0))  
   
 #       for i in range(1, numRows):  
 #           clazz.AppendGroup(table.GetClassGroup(i))  
   
911          return clazz          return clazz
912    
913      def __SetGridTable(self, fieldIndex, group = None):      def __SetGridTable(self, fieldIndex, group = None):
# Line 931  class Classifier(NonModalNonParentDialog Line 921  class Classifier(NonModalNonParentDialog
921                      self.layer.GetClassification().                      self.layer.GetClassification().
922                                 GetDefaultGroup().GetProperties()))                                 GetDefaultGroup().GetProperties()))
923    
924              fieldName = self.fields.GetString(fieldIndex)          fieldName = self.fields.GetString(fieldIndex)
925              fieldType = self.layer.GetFieldType(fieldName)          fieldType = self.layer.GetFieldType(fieldName)
             clazz.SetFieldInfo(fieldName, fieldType)  
926                                    
927          self.classGrid.CreateTable(clazz, self.layer.ShapeType(), group)          self.classGrid.CreateTable(clazz, fieldType,
928                                       self.layer.ShapeType(), group)
929    
930      def __SetFieldTypeText(self, fieldIndex):      def __SetFieldTypeText(self, fieldIndex):
931          fieldName = self.fields.GetString(fieldIndex)          fieldName = self.fields.GetString(fieldIndex)
# Line 997  class Classifier(NonModalNonParentDialog Line 987  class Classifier(NonModalNonParentDialog
987              if clazz is None or self.classGrid.GetTable().IsModified():              if clazz is None or self.classGrid.GetTable().IsModified():
988                  clazz = self.__BuildClassification(self.__cur_field, True)                  clazz = self.__BuildClassification(self.__cur_field, True)
989    
990                self.layer.SetClassificationField(
991                    self.fields.GetString(self.__cur_field))
992              self.layer.SetClassification(clazz)              self.layer.SetClassification(clazz)
993    
994          self.haveApplied = True          self.haveApplied = True
# Line 1020  class Classifier(NonModalNonParentDialog Line 1012  class Classifier(NonModalNonParentDialog
1012      def _OnRevert(self, event):      def _OnRevert(self, event):
1013          """The layer's current classification stays the same."""          """The layer's current classification stays the same."""
1014          if self.haveApplied:          if self.haveApplied:
1015                self.layer.SetClassificationField(self.originalClassField)
1016              self.layer.SetClassification(self.originalClass)              self.layer.SetClassification(self.originalClass)
1017    
1018          #self.Close()          #self.Close()

Legend:
Removed from v.1342  
changed lines
  Added in v.1433

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26