/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/classgen.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/classgen.py

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

revision 2527 by bernhard, Thu Jan 20 11:45:15 2005 UTC revision 2700 by dpinte, Mon Sep 18 14:27:02 2006 UTC
# Line 14  __version__ = "$Revision$" Line 14  __version__ = "$Revision$"
14    
15  import sys  import sys
16    
17  from wxPython.wx import *  import wx
18    
19  from Thuban import _  from Thuban import _
20    
# Line 58  ID_CLASSGEN_PROPCOMBO = 4008 Line 58  ID_CLASSGEN_PROPCOMBO = 4008
58  ID_BORDER_COLOR = 4009  ID_BORDER_COLOR = 4009
59  ID_BORDER_COLOR_CHANGE = 4010  ID_BORDER_COLOR_CHANGE = 4010
60    
61  class ClassGenDialog(wxDialog):  class ClassGenDialog(wx.Dialog):
62    
63      def __init__(self, parent, layer, fieldName):      def __init__(self, parent, layer, fieldName):
64          """Inialize the class generating dialog.          """Inialize the class generating dialog.
# Line 66  class ClassGenDialog(wxDialog): Line 66  class ClassGenDialog(wxDialog):
66          parent -- this must be an instance of the Classifier class          parent -- this must be an instance of the Classifier class
67          """          """
68    
69          wxDialog.__init__(self, parent, -1, _("Generate Classification"),          wx.Dialog.__init__(self, parent, -1, _("Generate Classification"),
70                            style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)                            style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
71    
72          self.parent = parent          self.parent = parent
73          self.layer = layer          self.layer = layer
# Line 87  class ClassGenDialog(wxDialog): Line 87  class ClassGenDialog(wxDialog):
87          # we need to create genButton first because when we create the          # we need to create genButton first because when we create the
88          # panels they will call AllowGenerate() which uses genButton.          # panels they will call AllowGenerate() which uses genButton.
89          #          #
90          self.genButton = wxButton(self, wxID_OK, _("Generate"))          self.genButton = wx.Button(self, wx.ID_OK, _("Generate"))
91          self.cancelButton = wxButton(self, wxID_CANCEL, _("Close"))          self.cancelButton = wx.Button(self, wx.ID_CANCEL, _("Close"))
92          self.genButton.SetDefault()          self.genButton.SetDefault()
93    
94          self.genChoice = wxChoice(self, ID_CLASSGEN_GENCOMBO)          self.genChoice = wx.Choice(self, ID_CLASSGEN_GENCOMBO)
95    
96          self.genpanels.append((GENCOMBOSTR_UNIQUE, GenUniquePanel))          self.genpanels.append((GENCOMBOSTR_UNIQUE, GenUniquePanel))
97          if self.type in (FIELDTYPE_INT, FIELDTYPE_DOUBLE):          if self.type in (FIELDTYPE_INT, FIELDTYPE_DOUBLE):
# Line 114  class ClassGenDialog(wxDialog): Line 114  class ClassGenDialog(wxDialog):
114    
115          #############          #############
116    
117          sizer = wxBoxSizer(wxVERTICAL)          sizer = wx.BoxSizer(wx.VERTICAL)
118    
119          sizer.Add(wxStaticText(self, -1, _("Field: %s") % fieldName),          sizer.Add(wx.StaticText(self, -1, _("Field: %s") % fieldName),
120                    0, wxALL, 4)                    0, wx.ALL, 4)
121          sizer.Add(wxStaticText(          sizer.Add(wx.StaticText(
122              self, -1,              self, -1,
123              _("Data Type: %s") % classifier.Classifier.type2string[self.type]),              _("Data Type: %s") % classifier.Classifier.type2string[self.type]),
124              0, wxALL, 4)              0, wx.ALL, 4)
125    
126          psizer = wxBoxSizer(wxHORIZONTAL)          psizer = wx.BoxSizer(wx.HORIZONTAL)
127          psizer.Add(wxStaticText(self, -1, _("Generate:")),          psizer.Add(wx.StaticText(self, -1, _("Generate:")),
128              0, wxALIGN_CENTER_VERTICAL, 0)              0, wx.ALIGN_CENTER_VERTICAL, 0)
129          psizer.Add(self.genChoice, 1, wxALL | wxGROW, 4)          psizer.Add(self.genChoice, 1, wx.ALL | wx.GROW, 4)
130    
131          sizer.Add(psizer, 0, wxALL | wxGROW, 4)          sizer.Add(psizer, 0, wx.ALL | wx.GROW, 4)
132    
133          self.sizer_genPanel = wxBoxSizer(wxVERTICAL)          self.sizer_genPanel = wx.BoxSizer(wx.VERTICAL)
134          sizer.Add(self.sizer_genPanel, 1, wxGROW | wxALL, 4)          sizer.Add(self.sizer_genPanel, 1, wx.GROW | wx.ALL, 4)
135    
136          psizer = wxBoxSizer(wxHORIZONTAL)          psizer = wx.BoxSizer(wx.HORIZONTAL)
137          psizer.Add(wxStaticText(self, -1, _("Color Scheme:")),          psizer.Add(wx.StaticText(self, -1, _("Color Scheme:")),
138              0, wxALIGN_CENTER_VERTICAL, 0)              0, wx.ALIGN_CENTER_VERTICAL, 0)
139    
140          # Properties (Ramp) ComboBox          # Properties (Ramp) ComboBox
141          self.propCombo = wxChoice(self, ID_CLASSGEN_PROPCOMBO)          self.propCombo = wx.Choice(self, ID_CLASSGEN_PROPCOMBO)
142    
143          self.propPanel = None          self.propPanel = None
144          custom_ramp_panel = CustomRampPanel(self, layer.ShapeType())          custom_ramp_panel = CustomRampPanel(self, layer.ShapeType())
# Line 153  class ClassGenDialog(wxDialog): Line 153  class ClassGenDialog(wxDialog):
153    
154          self.propCombo.SetSelection(0)          self.propCombo.SetSelection(0)
155    
156          psizer.Add(self.propCombo, 1, wxALL | wxGROW, 4)          psizer.Add(self.propCombo, 1, wx.ALL | wx.GROW, 4)
157          sizer.Add(psizer, 0, wxALL | wxGROW, 4)          sizer.Add(psizer, 0, wx.ALL | wx.GROW, 4)
158    
159          if layer.ShapeType() != SHAPETYPE_ARC:          if layer.ShapeType() != SHAPETYPE_ARC:
160              psizer = wxBoxSizer(wxHORIZONTAL)              psizer = wx.BoxSizer(wx.HORIZONTAL)
161              self.fix_border_check = wxCheckBox(self, -1, _("Fix Border Color"))              self.fix_border_check = wx.CheckBox(self, -1, _("Fix Border Color"))
162              psizer.Add(self.fix_border_check, 0, wxALL | wxGROW, 4)              psizer.Add(self.fix_border_check, 0, wx.ALL | wx.GROW, 4)
163              self.border_color = classifier.ClassGroupPropertiesCtrl(              self.border_color = classifier.ClassGroupPropertiesCtrl(
164                  self, ID_BORDER_COLOR,                  self, ID_BORDER_COLOR,
165                  ClassGroupProperties(), SHAPETYPE_ARC,                  ClassGroupProperties(), SHAPETYPE_ARC,
166                  style=wxSIMPLE_BORDER, size=(40, 20))                  style=wx.SIMPLE_BORDER, size=(40, 20))
167              psizer.Add(self.border_color, 0, wxALL | wxGROW, 4)              psizer.Add(self.border_color, 0, wx.ALL | wx.GROW, 4)
168              psizer.Add(wxButton(self, ID_BORDER_COLOR_CHANGE, _("Change")),              psizer.Add(wx.Button(self, ID_BORDER_COLOR_CHANGE, _("Change")),
169                      0, wxALL, 4)                      0, wx.ALL, 4)
170              sizer.Add(psizer, 0, wxALL | wxGROW, 4)              sizer.Add(psizer, 0, wx.ALL | wx.GROW, 4)
171              EVT_BUTTON(self, ID_BORDER_COLOR_CHANGE, self.OnBorderColorChange)              self.Bind(wx.EVT_BUTTON, self.OnBorderColorChange, id=ID_BORDER_COLOR_CHANGE)
172          else:          else:
173              self.border_color = None              self.border_color = None
174    
175          sizer.Add(custom_ramp_panel, 1, wxGROW | wxALL, 4)          sizer.Add(custom_ramp_panel, 1, wx.GROW | wx.ALL, 4)
176          sizer.Show(custom_ramp_panel, False)          sizer.Show(custom_ramp_panel, False)
177    
178          # Finally place the main buttons          # Finally place the main buttons
179          buttonSizer = wxBoxSizer(wxHORIZONTAL)          buttonSizer = wx.BoxSizer(wx.HORIZONTAL)
180          buttonSizer.Add(self.genButton, 0, wxRIGHT|wxEXPAND, 10)          buttonSizer.Add(self.genButton, 0, wx.RIGHT|wx.EXPAND, 10)
181          buttonSizer.Add(self.cancelButton, 0, wxRIGHT|wxEXPAND, 10)          buttonSizer.Add(self.cancelButton, 0, wx.RIGHT|wx.EXPAND, 10)
182          sizer.Add(buttonSizer, 0, wxALIGN_RIGHT|wxBOTTOM|wxTOP, 10)          sizer.Add(buttonSizer, 0, wx.ALIGN_RIGHT|wx.BOTTOM|wx.TOP, 10)
183    
184          self.SetSizer(sizer)          self.SetSizer(sizer)
185          self.SetAutoLayout(True)          self.SetAutoLayout(True)
# Line 189  class ClassGenDialog(wxDialog): Line 189  class ClassGenDialog(wxDialog):
189    
190          self.__DoOnGenTypeSelect()          self.__DoOnGenTypeSelect()
191    
192          EVT_CHOICE(self, ID_CLASSGEN_GENCOMBO, self._OnGenTypeSelect)          self.Bind(wx.EVT_CHOICE, self._OnGenTypeSelect, id=ID_CLASSGEN_GENCOMBO)
193          EVT_CHOICE(self, ID_CLASSGEN_PROPCOMBO, self._OnPropTypeSelect)          self.Bind(wx.EVT_CHOICE, self._OnPropTypeSelect, id=ID_CLASSGEN_PROPCOMBO)
194          EVT_BUTTON(self, wxID_OK, self.OnOK)          self.Bind(wx.EVT_BUTTON, self.OnOK, self, id=wx.ID_OK)
195          EVT_BUTTON(self, wxID_CANCEL, self.OnCancel)          self.Bind(wx.EVT_BUTTON, self.OnCancel, self, id=wx.ID_CANCEL)
196    
197          self.__DoOnGenTypeSelect()          self.__DoOnGenTypeSelect()
198    
# Line 232  class ClassGenDialog(wxDialog): Line 232  class ClassGenDialog(wxDialog):
232              ramp = propPanel.GetRamp()              ramp = propPanel.GetRamp()
233              if self.border_color and self.fix_border_check.IsChecked():              if self.border_color and self.fix_border_check.IsChecked():
234                  props = self.border_color.GetProperties()                  props = self.border_color.GetProperties()
235                  ramp = FixedRamp(ramp,                  ramp = FixedRamp(ramp,
236                      (props.GetLineColor(), props.GetLineWidth(), None))                      (props.GetLineColor(), props.GetLineWidth(), None))
237    
238              if genSel == GENCOMBOSTR_UNIFORM:              if genSel == GENCOMBOSTR_UNIFORM:
# Line 270  class ClassGenDialog(wxDialog): Line 270  class ClassGenDialog(wxDialog):
270                      generate_quantiles(_list, percents, ramp, _range)                      generate_quantiles(_list, percents, ramp, _range)
271    
272                  if adjusted:                  if adjusted:
273                      dlg = wxMessageDialog(self,                      dlg = wx.MessageDialog(self,
274                          _("Based on the data from the table and the input\n"                          _("Based on the data from the table and the input\n"
275                       "values, the exact quantiles could not be generated.\n\n"                       "values, the exact quantiles could not be generated.\n\n"
276                            "Accept a close estimate?"),                            "Accept a close estimate?"),
277                          _("Problem with Quantiles"),                          _("Problem with Quantiles"),
278    
279                          wxYES_NO|wxYES_DEFAULT|wxICON_QUESTION)                          wx.YES_NO|wx.YES_DEFAULT|wx.ICON_QUESTION)
280                      if dlg.ShowModal() == wxID_YES:                      if dlg.ShowModal() == wx.ID_YES:
281                          self.parent._SetClassification(self.clazz)                          self.parent._SetClassification(self.clazz)
282                  else:                  else:
283                      self.parent._SetClassification(self.clazz)                      self.parent._SetClassification(self.clazz)
# Line 312  class ClassGenDialog(wxDialog): Line 312  class ClassGenDialog(wxDialog):
312          selIndex = combo.GetSelection()          selIndex = combo.GetSelection()
313          sel = combo.GetString(selIndex)          sel = combo.GetString(selIndex)
314    
315          if isinstance(self.propPanel, wxPanel):          if isinstance(self.propPanel, wx.Panel):
316              self.topBox.Show(self.propPanel, False)              self.topBox.Show(self.propPanel, False)
317    
318          self.propPanel = combo.GetClientData(selIndex)          self.propPanel = combo.GetClientData(selIndex)
319    
320          if isinstance(self.propPanel, wxPanel):          if isinstance(self.propPanel, wx.Panel):
321              self.topBox.Show(self.propPanel, True)              self.topBox.Show(self.propPanel, True)
322    
323          self.topBox.SetSizeHints(self)          self.topBox.SetSizeHints(self)
# Line 339  class ClassGenDialog(wxDialog): Line 339  class ClassGenDialog(wxDialog):
339          self.curGenPanel.Show()          self.curGenPanel.Show()
340    
341          self.sizer_genPanel.Add(self.curGenPanel, 1,          self.sizer_genPanel.Add(self.curGenPanel, 1,
342              wxALL|wxEXPAND|wxADJUST_MINSIZE, 3)              wx.ALL|wx.EXPAND|wx.ADJUST_MINSIZE, 3)
343          self.sizer_genPanel.Layout()          self.sizer_genPanel.Layout()
344          self.Layout()          self.Layout()
345          self.topBox.SetSizeHints(self)          self.topBox.SetSizeHints(self)
# Line 350  ID_UNIFORM_NGROUPS = 4003 Line 350  ID_UNIFORM_NGROUPS = 4003
350  ID_UNIFORM_STEP = 4004  ID_UNIFORM_STEP = 4004
351  ID_UNIFORM_RETRIEVE = 4005  ID_UNIFORM_RETRIEVE = 4005
352    
353  class GenUniformPanel(wxPanel):  class GenUniformPanel(wx.Panel):
354    
355      def __init__(self, parent, layer, fieldName, fieldType):      def __init__(self, parent, layer, fieldName, fieldType):
356          wxPanel.__init__(self, parent, -1)          wx.Panel.__init__(self, parent, -1)
357    
358          self.parent = parent          self.parent = parent
359          self.layer = layer          self.layer = layer
360          self.fieldName = fieldName          self.fieldName = fieldName
361          self.fieldType = fieldType          self.fieldType = fieldType
362    
363          topSizer = wxStaticBoxSizer(wxStaticBox(self, -1, ""),          topSizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, ""),
364                                      wxVERTICAL)                                      wx.VERTICAL)
365    
366          #############          #############
367    
368          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
369    
370          sizer.Add(wxStaticText(self, -1, _("Min:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Min:")), 0, wx.ALL, 4)
371          self.minCtrl = wxTextCtrl(self, ID_UNIFORM_MIN, style=wxTE_RIGHT)          self.minCtrl = wx.TextCtrl(self, ID_UNIFORM_MIN, style=wx.TE_RIGHT)
372          sizer.Add(self.minCtrl, 1, wxALL, 4)          sizer.Add(self.minCtrl, 1, wx.ALL, 4)
373          EVT_TEXT(self, ID_UNIFORM_MIN, self._OnRangeChanged)          self.Bind(wx.EVT_TEXT, self._OnRangeChanged, id=ID_UNIFORM_MIN)
374    
375          sizer.Add(wxStaticText(self, -1, _("Max:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Max:")), 0, wx.ALL, 4)
376          self.maxCtrl = wxTextCtrl(self, ID_UNIFORM_MAX, style=wxTE_RIGHT)          self.maxCtrl = wx.TextCtrl(self, ID_UNIFORM_MAX, style=wx.TE_RIGHT)
377          sizer.Add(self.maxCtrl, 1, wxALL, 4)          sizer.Add(self.maxCtrl, 1, wx.ALL, 4)
378          EVT_TEXT(self, ID_UNIFORM_MAX, self._OnRangeChanged)          self.Bind(wx.EVT_TEXT, self._OnRangeChanged, id=ID_UNIFORM_MAX)
379    
380          sizer.Add(wxButton(self, ID_UNIFORM_RETRIEVE, _("Retrieve From Table")),          sizer.Add(wx.Button(self, ID_UNIFORM_RETRIEVE, _("Retrieve From Table")),
381              0, wxALL, 4)              0, wx.ALL, 4)
382          EVT_BUTTON(self, ID_UNIFORM_RETRIEVE, self._OnRetrieve)          self.Bind(wx.EVT_BUTTON, self._OnRetrieve, id=ID_UNIFORM_RETRIEVE)
383    
384          topSizer.Add(sizer, 1, wxGROW, 0)          topSizer.Add(sizer, 1, wx.GROW, 0)
385    
386          #############          #############
387    
388          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
389    
390          sizer.Add(wxStaticText(self, -1, _("Number of Groups:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Number of Groups:")), 0, wx.ALL, 4)
391          self.numGroupsCtrl = wxSpinCtrl(self, ID_UNIFORM_NGROUPS,          self.numGroupsCtrl = wx.SpinCtrl(self, ID_UNIFORM_NGROUPS,
392                                          style=wxTE_RIGHT)                                          style=wx.TE_RIGHT)
393          EVT_TEXT(self, ID_UNIFORM_NGROUPS, self._OnNumGroupsChanged)          self.Bind(wx.EVT_TEXT, self._OnNumGroupsChanged, id=ID_UNIFORM_NGROUPS)
394          EVT_SPINCTRL(self, ID_UNIFORM_NGROUPS, self._OnNumGroupsChanged)          self.Bind(wx.EVT_SPINCTRL, self._OnNumGroupsChanged, id=ID_UNIFORM_NGROUPS)
395          sizer.Add(self.numGroupsCtrl, 1, wxALL, 4)          sizer.Add(self.numGroupsCtrl, 1, wx.ALL, 4)
396    
397          sizer.Add(wxStaticText(self, -1, _("Stepping:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Stepping:")), 0, wx.ALL, 4)
398          self.stepCtrl = wxTextCtrl(self, ID_UNIFORM_STEP, style=wxTE_RIGHT)          self.stepCtrl = wx.TextCtrl(self, ID_UNIFORM_STEP, style=wx.TE_RIGHT)
399          EVT_TEXT(self, ID_UNIFORM_STEP, self._OnSteppingChanged)          self.Bind(wx.EVT_TEXT, self._OnSteppingChanged, id=ID_UNIFORM_STEP)
400          sizer.Add(self.stepCtrl , 1, wxALL, 4)          sizer.Add(self.stepCtrl , 1, wx.ALL, 4)
401    
402          topSizer.Add(sizer, 1, wxGROW, 0)          topSizer.Add(sizer, 1, wx.GROW, 0)
403    
404          #############          #############
405    
# Line 420  class GenUniformPanel(wxPanel): Line 420  class GenUniformPanel(wxPanel):
420    
421      def GetNumGroups(self):      def GetNumGroups(self):
422          value = self.numGroupsCtrl.GetValue()          value = self.numGroupsCtrl.GetValue()
423          return self.__GetValidatedTypeEntry(self.numGroupsCtrl,          return self.__GetValidatedTypeEntry(self.numGroupsCtrl,
424                                              value,                                              value,
425                                              FIELDTYPE_INT,                                              FIELDTYPE_INT,
426                                              None)                                              None)
427    
428      def GetStepping(self):      def GetStepping(self):
429          step = self.stepCtrl.GetValue()          step = self.stepCtrl.GetValue()
430          return self.__GetValidatedTypeEntry(self.stepCtrl,          return self.__GetValidatedTypeEntry(self.stepCtrl,
431                                              step,                                              step,
432                                              self.fieldType,                                              self.fieldType,
433                                              0)                                              0)
# Line 435  class GenUniformPanel(wxPanel): Line 435  class GenUniformPanel(wxPanel):
435      def GetMin(self):      def GetMin(self):
436          min = self.minCtrl.GetValue()          min = self.minCtrl.GetValue()
437          max = self.maxCtrl.GetValue()          max = self.maxCtrl.GetValue()
438          return self.__GetValidatedTypeEntry(self.minCtrl,          return self.__GetValidatedTypeEntry(self.minCtrl,
439                                              min,                                              min,
440                                              self.fieldType,                                              self.fieldType,
441                                              max)                                              max)
# Line 443  class GenUniformPanel(wxPanel): Line 443  class GenUniformPanel(wxPanel):
443      def GetMax(self):      def GetMax(self):
444          min = self.minCtrl.GetValue()          min = self.minCtrl.GetValue()
445          max = self.maxCtrl.GetValue()          max = self.maxCtrl.GetValue()
446          return self.__GetValidatedTypeEntry(self.maxCtrl,          return self.__GetValidatedTypeEntry(self.maxCtrl,
447                                              max,                                              max,
448                                              self.fieldType,                                              self.fieldType,
449                                              min)                                              min)
450    
451      def _OnRangeChanged(self, event):      def _OnRangeChanged(self, event):
452    
453          hasFocus = wxWindow_FindFocus() == event.GetEventObject()          hasFocus = wx.Window_FindFocus() == event.GetEventObject()
454          min = self.GetMin()          min = self.GetMin()
455          max = self.GetMax()          max = self.GetMax()
456    
# Line 548  class GenUniformPanel(wxPanel): Line 548  class GenUniformPanel(wxPanel):
548    
549      def __GetValidatedTypeEntry(self, win, value, type, badValue = None):      def __GetValidatedTypeEntry(self, win, value, type, badValue = None):
550    
551          if type == FIELDTYPE_INT:          if type == FIELDTYPE_INT:
552              func = int              func = int
553          elif type == FIELDTYPE_DOUBLE:          elif type == FIELDTYPE_DOUBLE:
554              func = float              func = float
# Line 577  class GenUniformPanel(wxPanel): Line 577  class GenUniformPanel(wxPanel):
577              valid = False              valid = False
578    
579          if valid:          if valid:
580              win.SetForegroundColour(wxBLACK)              win.SetForegroundColour(wx.BLACK)
581          else:          else:
582              win.SetForegroundColour(wxRED)              win.SetForegroundColour(wx.RED)
583    
584          win.Refresh()          win.Refresh()
585    
# Line 614  ID_UNIQUE_SORTUSE = 4007 Line 614  ID_UNIQUE_SORTUSE = 4007
614  ID_UNIQUE_REVAVAIL = 4008  ID_UNIQUE_REVAVAIL = 4008
615  ID_UNIQUE_REVUSE = 4009  ID_UNIQUE_REVUSE = 4009
616    
617  class GenUniquePanel(wxPanel):  class GenUniquePanel(wx.Panel):
618    
619      def __init__(self, parent, layer, fieldName, fieldType):      def __init__(self, parent, layer, fieldName, fieldType):
620          wxPanel.__init__(self, parent, -1)          wx.Panel.__init__(self, parent, -1)
621    
622          self.parent = parent          self.parent = parent
623          self.layer = layer          self.layer = layer
624          self.fieldName = fieldName          self.fieldName = fieldName
625          self.fieldType = fieldType          self.fieldType = fieldType
626    
627          topSizer = wxStaticBoxSizer(wxStaticBox(self, -1, ""),          topSizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, ""),
628                                      wxVERTICAL)                                      wx.VERTICAL)
629    
630    
631          #bsizer = wxBoxSizer(wxVERTICAL)          #bsizer = wxBoxSizer(wxVERTICAL)
632          topSizer.Add(wxButton(self, ID_UNIQUE_RETRIEVE,          topSizer.Add(wx.Button(self, ID_UNIQUE_RETRIEVE,
633                              _("Retrieve From Table")),                              _("Retrieve From Table")),
634                     0, wxALL | wxALIGN_RIGHT, 4)                     0, wx.ALL | wx.ALIGN_RIGHT, 4)
635    
636          EVT_BUTTON(self, ID_UNIQUE_RETRIEVE, self._OnRetrieve)          self.Bind(wx.EVT_BUTTON, self._OnRetrieve, id=ID_UNIQUE_RETRIEVE)
637    
638          #topSizer.Add(bsizer, 0, wxALL, 4)          #topSizer.Add(bsizer, 0, wx.ALL, 4)
639    
640          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
641    
642          self.dataList = []          self.dataList = []
643    
644          psizer = wxBoxSizer(wxVERTICAL)          psizer = wx.BoxSizer(wx.VERTICAL)
645          self.list_avail = wxListCtrl(self, -1,          self.list_avail = wx.ListCtrl(self, -1,
646                          style=wxLC_REPORT | wxLC_SINGLE_SEL)                          style=wx.LC_REPORT | wx.LC_SINGLE_SEL)
647          self.list_avail.InsertColumn(0, _("Available"))          self.list_avail.InsertColumn(0, _("Available"))
648          self.list_avail_data = []          self.list_avail_data = []
649          psizer.Add(self.list_avail, 1, wxGROW, 0)          psizer.Add(self.list_avail, 1, wx.GROW, 0)
650    
651          bsizer = wxBoxSizer(wxHORIZONTAL)          bsizer = wx.BoxSizer(wx.HORIZONTAL)
652          bsizer.Add(wxButton(self, ID_UNIQUE_SORTAVAIL, _("Sort")))          bsizer.Add(wx.Button(self, ID_UNIQUE_SORTAVAIL, _("Sort")))
653          EVT_BUTTON(self, ID_UNIQUE_SORTAVAIL, self._OnSortList)          self.Bind(wx.EVT_BUTTON, self._OnSortList, id=ID_UNIQUE_SORTAVAIL)
654    
655          bsizer.Add(wxButton(self, ID_UNIQUE_REVAVAIL, _("Reverse")))          bsizer.Add(wx.Button(self, ID_UNIQUE_REVAVAIL, _("Reverse")))
656          EVT_BUTTON(self, ID_UNIQUE_REVAVAIL, self._OnReverseList)          self.Bind(wx.EVT_BUTTON, self._OnReverseList, id=ID_UNIQUE_REVAVAIL)
657    
658          psizer.Add(bsizer, 0, wxGROW, 0)          psizer.Add(bsizer, 0, wx.GROW, 0)
659          sizer.Add(psizer, 1, wxGROW, 0)          sizer.Add(psizer, 1, wx.GROW, 0)
660    
661            
662          bsizer = wxBoxSizer(wxVERTICAL)          bsizer = wx.BoxSizer(wx.VERTICAL)
663    
664          bmp = resource.GetBitmapResource(USEALL_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(USEALL_BMP, wx.BITMAP_TYPE_XPM)
665          bsizer.Add(wxBitmapButton(self, ID_UNIQUE_USEALL, bmp),          bsizer.Add(wx.BitmapButton(self, ID_UNIQUE_USEALL, bmp),
666                     0, wxGROW | wxALL, 4)                     0, wx.GROW | wx.ALL, 4)
667          bmp = resource.GetBitmapResource(USE_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(USE_BMP, wx.BITMAP_TYPE_XPM)
668          bsizer.Add(wxBitmapButton(self, ID_UNIQUE_USE, bmp),          bsizer.Add(wx.BitmapButton(self, ID_UNIQUE_USE, bmp),
669                     0, wxGROW | wxALL, 4)                     0, wx.GROW | wx.ALL, 4)
670          bmp = resource.GetBitmapResource(USENOT_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(USENOT_BMP, wx.BITMAP_TYPE_XPM)
671          bsizer.Add(wxBitmapButton(self, ID_UNIQUE_DONTUSE, bmp),          bsizer.Add(wx.BitmapButton(self, ID_UNIQUE_DONTUSE, bmp),
672                     0, wxGROW | wxALL, 4)                     0, wx.GROW | wx.ALL, 4)
673          bmp = resource.GetBitmapResource(USENONE_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(USENONE_BMP, wx.BITMAP_TYPE_XPM)
674          bsizer.Add(wxBitmapButton(self, ID_UNIQUE_USENONE, bmp),          bsizer.Add(wx.BitmapButton(self, ID_UNIQUE_USENONE, bmp),
675                     0, wxGROW | wxALL, 4)                     0, wx.GROW | wx.ALL, 4)
676    
677          EVT_BUTTON(self, ID_UNIQUE_USEALL, self._OnUseAll)          self.Bind(wx.EVT_BUTTON, self._OnUseAll, id=ID_UNIQUE_USEALL)
678          EVT_BUTTON(self, ID_UNIQUE_USE, self._OnUse)          self.Bind(wx.EVT_BUTTON, self._OnUse, id=ID_UNIQUE_USE)
679          EVT_BUTTON(self, ID_UNIQUE_DONTUSE, self._OnDontUse)          self.Bind(wx.EVT_BUTTON, self._OnDontUse, id=ID_UNIQUE_DONTUSE)
680          EVT_BUTTON(self, ID_UNIQUE_USENONE, self._OnUseNone)          self.Bind(wx.EVT_BUTTON, self._OnUseNone, id=ID_UNIQUE_USENONE)
681    
682          sizer.Add(bsizer, 0, wxALL | wxALIGN_CENTER_VERTICAL, 4)          sizer.Add(bsizer, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
683    
684          psizer = wxBoxSizer(wxVERTICAL)          psizer = wx.BoxSizer(wx.VERTICAL)
685          self.list_use = wxListCtrl(self, -1,          self.list_use = wx.ListCtrl(self, -1,
686                          style=wxLC_REPORT | wxLC_SINGLE_SEL)                          style=wx.LC_REPORT | wx.LC_SINGLE_SEL)
687          self.list_use.InsertColumn(0, _("Use"))          self.list_use.InsertColumn(0, _("Use"))
688          self.list_use_data = []          self.list_use_data = []
689          psizer.Add(self.list_use, 1, wxGROW, 0)          psizer.Add(self.list_use, 1, wx.GROW, 0)
690    
691          bsizer = wxBoxSizer(wxHORIZONTAL)          bsizer = wx.BoxSizer(wx.HORIZONTAL)
692          bsizer.Add(wxButton(self, ID_UNIQUE_SORTUSE, _("Sort")))          bsizer.Add(wx.Button(self, ID_UNIQUE_SORTUSE, _("Sort")))
693          EVT_BUTTON(self, ID_UNIQUE_SORTUSE, self._OnSortList)          self.Bind(wx.EVT_BUTTON, self._OnSortList, id=ID_UNIQUE_SORTUSE)
694    
695          bsizer.Add(wxButton(self, ID_UNIQUE_REVUSE, _("Reverse")))          bsizer.Add(wx.Button(self, ID_UNIQUE_REVUSE, _("Reverse")))
696          EVT_BUTTON(self, ID_UNIQUE_REVUSE, self._OnReverseList)          self.Bind(wx.EVT_BUTTON, self._OnReverseList, id=ID_UNIQUE_REVUSE)
697    
698          psizer.Add(bsizer, 0, wxGROW, 0)          psizer.Add(bsizer, 0, wx.GROW, 0)
699    
700          sizer.Add(psizer, 1, wxGROW, 0)          sizer.Add(psizer, 1, wx.GROW, 0)
701    
702    
703          topSizer.Add(sizer, 1, wxGROW, 0)          topSizer.Add(sizer, 1, wx.GROW, 0)
704    
705          self.SetSizer(topSizer)          self.SetSizer(topSizer)
706          self.SetAutoLayout(True)          self.SetAutoLayout(True)
# Line 730  class GenUniquePanel(wxPanel): Line 730  class GenUniquePanel(wxPanel):
730          else:          else:
731              list = self.list_avail              list = self.list_avail
732    
733          list.SortItems(lambda i1, i2: cmp(self.dataList[i1],          list.SortItems(lambda i1, i2: cmp(self.dataList[i1],
734                                            self.dataList[i2]))                                            self.dataList[i2]))
735    
736      def _OnReverseList(self, event):      def _OnReverseList(self, event):
# Line 760  class GenUniquePanel(wxPanel): Line 760  class GenUniquePanel(wxPanel):
760                  self.dataList.append(v)                  self.dataList.append(v)
761                  i = self.list_avail.InsertStringItem(index, str(v))                  i = self.list_avail.InsertStringItem(index, str(v))
762                  self.list_avail.SetItemData(index, i)                  self.list_avail.SetItemData(index, i)
763        
764                  self.list_avail_data.append(v)                  self.list_avail_data.append(v)
765                  index += 1                  index += 1
766          finally:          finally:
# Line 784  class GenUniquePanel(wxPanel): Line 784  class GenUniquePanel(wxPanel):
784      def __MoveSelectedItems(self, list_src, list_dest):      def __MoveSelectedItems(self, list_src, list_dest):
785          while True:          while True:
786              index = list_src.GetNextItem(-1,              index = list_src.GetNextItem(-1,
787                                           wxLIST_NEXT_ALL,                                           wx.LIST_NEXT_ALL,
788                                           wxLIST_STATE_SELECTED)                                           wx.LIST_STATE_SELECTED)
789    
790              if index == -1:              if index == -1:
791                  break                  break
# Line 798  class GenUniquePanel(wxPanel): Line 798  class GenUniquePanel(wxPanel):
798          item = list_src.GetItem(index)          item = list_src.GetItem(index)
799    
800          x = list_dest.InsertStringItem(          x = list_dest.InsertStringItem(
801                  list_dest.GetItemCount(),                  list_dest.GetItemCount(),
802                  str(self.dataList[item.GetData()]))                  str(self.dataList[item.GetData()]))
803    
804          list_dest.SetItemData(x, item.GetData())          list_dest.SetItemData(x, item.GetData())
# Line 814  class GenUniquePanel(wxPanel): Line 814  class GenUniquePanel(wxPanel):
814  ID_QUANTILES_RANGE = 4001  ID_QUANTILES_RANGE = 4001
815  ID_QUANTILES_RETRIEVE = 4002  ID_QUANTILES_RETRIEVE = 4002
816    
817  class GenQuantilesPanel(wxPanel):  class GenQuantilesPanel(wx.Panel):
818    
819      def __init__(self, parent, layer, fieldName, fieldType):      def __init__(self, parent, layer, fieldName, fieldType):
820          wxPanel.__init__(self, parent, -1)          wx.Panel.__init__(self, parent, -1)
821    
822          self.parent = parent          self.parent = parent
823          self.layer = layer          self.layer = layer
824          self.fieldName = fieldName          self.fieldName = fieldName
825          self.fieldType = fieldType          self.fieldType = fieldType
826    
827          topBox = wxStaticBoxSizer(wxStaticBox(self, -1, ""),          topBox = wx.StaticBoxSizer(wx.StaticBox(self, -1, ""),
828                                      wxVERTICAL)                                      wx.VERTICAL)
829    
830          self.text_range = wxTextCtrl(self, ID_QUANTILES_RANGE, "")          self.text_range = wx.TextCtrl(self, ID_QUANTILES_RANGE, "")
831          self.button_retrieve = wxButton(self, ID_QUANTILES_RETRIEVE,          self.button_retrieve = wx.Button(self, ID_QUANTILES_RETRIEVE,
832                                          _("Retrieve from Table"))                                          _("Retrieve from Table"))
833    
834          self.spin_numClasses = wxSpinCtrl(self, -1, style=wxTE_RIGHT)          self.spin_numClasses = wx.SpinCtrl(self, -1, style=wx.TE_RIGHT)
835          self.spin_numClasses.SetRange(2, sys.maxint)          self.spin_numClasses.SetRange(2, sys.maxint)
836          self.spin_numClasses.SetValue(2)          self.spin_numClasses.SetValue(2)
837    
838    
839          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
840          sizer.Add(wxStaticText(self, -1, _("Apply to Range")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Apply to Range")), 0, wx.ALL, 4)
841          sizer.Add(self.text_range, 1, wxALL, 4)          sizer.Add(self.text_range, 1, wx.ALL, 4)
842          sizer.Add(self.button_retrieve, 0, wxALL, 4)          sizer.Add(self.button_retrieve, 0, wx.ALL, 4)
843    
844          topBox.Add(sizer, 0, wxEXPAND, 0)          topBox.Add(sizer, 0, wx.EXPAND, 0)
845    
846          sizer = wxBoxSizer(wxHORIZONTAL)          sizer = wx.BoxSizer(wx.HORIZONTAL)
847          sizer.Add(wxStaticText(self, -1, _("Number of Classes:")), 0, wxALL, 4)          sizer.Add(wx.StaticText(self, -1, _("Number of Classes:")), 0, wx.ALL, 4)
848          sizer.Add(self.spin_numClasses, 1, wxALL, 4)          sizer.Add(self.spin_numClasses, 1, wx.ALL, 4)
849    
850          topBox.Add(sizer, 0, wxEXPAND, 0)          topBox.Add(sizer, 0, wx.EXPAND, 0)
851    
852          self.SetSizer(topBox)          self.SetSizer(topBox)
853          self.SetAutoLayout(True)          self.SetAutoLayout(True)
854          topBox.Fit(self)          topBox.Fit(self)
855          topBox.SetSizeHints(self)          topBox.SetSizeHints(self)
856    
857          EVT_TEXT(self, ID_QUANTILES_RANGE, self.OnRangeText)          self.Bind(wx.EVT_TEXT, self.OnRangeText, id=ID_QUANTILES_RANGE)
858          EVT_BUTTON(self, ID_QUANTILES_RETRIEVE, self.OnRetrieve)          self.Bind(wx.EVT_BUTTON, self.OnRetrieve, id=ID_QUANTILES_RETRIEVE)
859    
860          self.__range = None          self.__range = None
861    
# Line 893  class GenQuantilesPanel(wxPanel): Line 893  class GenQuantilesPanel(wxPanel):
893              self.__range = None              self.__range = None
894    
895          if self.__range is not None:          if self.__range is not None:
896              self.text_range.SetForegroundColour(wxBLACK)              self.text_range.SetForegroundColour(wx.BLACK)
897          else:          else:
898              self.text_range.SetForegroundColour(wxRED)              self.text_range.SetForegroundColour(wx.RED)
899    
900      def OnRetrieve(self, event):      def OnRetrieve(self, event):
901          table = self.layer.ShapeStore().Table()          table = self.layer.ShapeStore().Table()
# Line 919  ID_CUSTOMRAMP_EDITEND = 4004 Line 919  ID_CUSTOMRAMP_EDITEND = 4004
919  ID_CUSTOMRAMP_SPROP = 4005  ID_CUSTOMRAMP_SPROP = 4005
920  ID_CUSTOMRAMP_EPROP = 4006  ID_CUSTOMRAMP_EPROP = 4006
921    
922  class CustomRampPanel(wxPanel):  class CustomRampPanel(wx.Panel):
923    
924      def __init__(self, parent, shapeType):      def __init__(self, parent, shapeType):
925          wxPanel.__init__(self, parent, -1)          wx.Panel.__init__(self, parent, -1)
926    
927          topSizer = wxStaticBoxSizer(wxStaticBox(self, -1, ""), wxHORIZONTAL)          topSizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, ""), wx.HORIZONTAL)
928    
929          bsizer = wxBoxSizer(wxVERTICAL)          bsizer = wx.BoxSizer(wx.VERTICAL)
930          bsizer.Add(wxStaticText(self, -1, _("Start:")), 0, wxALL | wxCENTER, 4)          bsizer.Add(wx.StaticText(self, -1, _("Start:")), 0, wx.ALL | wx.CENTER, 4)
931          self.startPropCtrl = classifier.ClassGroupPropertiesCtrl(          self.startPropCtrl = classifier.ClassGroupPropertiesCtrl(
932              self, ID_CUSTOMRAMP_SPROP,              self, ID_CUSTOMRAMP_SPROP,
933              ClassGroupProperties(), shapeType,              ClassGroupProperties(), shapeType,
934              style=wxSIMPLE_BORDER, size=(40, 20))              style=wx.SIMPLE_BORDER, size=(40, 20))
935          bsizer.Add(self.startPropCtrl, 1, wxGROW | wxALL | wxCENTER, 4)          bsizer.Add(self.startPropCtrl, 1, wx.GROW | wx.ALL | wx.CENTER, 4)
936          bsizer.Add(wxButton(self, ID_CUSTOMRAMP_EDITSTART, _("Change")),          bsizer.Add(wx.Button(self, ID_CUSTOMRAMP_EDITSTART, _("Change")),
937                     0, wxGROW | wxALL | wxCENTER, 4)                     0, wx.GROW | wx.ALL | wx.CENTER, 4)
938    
939          topSizer.Add(bsizer,          topSizer.Add(bsizer,
940                     1, wxALL \                     1, wx.ALL \
941                        | wxSHAPED \                        | wx.SHAPED \
942                        | wxALIGN_CENTER_HORIZONTAL \                        | wx.ALIGN_CENTER_HORIZONTAL \
943                        | wxALIGN_CENTER_VERTICAL, \                        | wx.ALIGN_CENTER_VERTICAL, \
944                     4)                     4)
945    
946          bmp = resource.GetBitmapResource(USE_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(USE_BMP, wx.BITMAP_TYPE_XPM)
947          bsizer = wxBoxSizer(wxVERTICAL)          bsizer = wx.BoxSizer(wx.VERTICAL)
948          bsizer.Add(wxBitmapButton(self, ID_CUSTOMRAMP_COPYSTART, bmp),          bsizer.Add(wx.BitmapButton(self, ID_CUSTOMRAMP_COPYSTART, bmp),
949                     0, wxGROW | wxALL, 4)                     0, wx.GROW | wx.ALL, 4)
950          bmp = resource.GetBitmapResource(USENOT_BMP, wxBITMAP_TYPE_XPM)          bmp = resource.GetBitmapResource(USENOT_BMP, wx.BITMAP_TYPE_XPM)
951          bsizer.Add(wxBitmapButton(self, ID_CUSTOMRAMP_COPYEND, bmp),          bsizer.Add(wx.BitmapButton(self, ID_CUSTOMRAMP_COPYEND, bmp),
952                     0, wxGROW | wxALL, 4)                     0, wx.GROW | wx.ALL, 4)
953    
954          topSizer.Add(bsizer,          topSizer.Add(bsizer,
955                     0, wxALL \                     0, wx.ALL \
956                        | wxALIGN_CENTER_HORIZONTAL \                        | wx.ALIGN_CENTER_HORIZONTAL \
957                        | wxALIGN_CENTER_VERTICAL,                        | wx.ALIGN_CENTER_VERTICAL,
958                     4)                     4)
959    
960          bsizer = wxBoxSizer(wxVERTICAL)          bsizer = wx.BoxSizer(wx.VERTICAL)
961          bsizer.Add(wxStaticText(self, -1, _("End:")), 0, wxALL | wxCENTER, 4)          bsizer.Add(wx.StaticText(self, -1, _("End:")), 0, wx.ALL | wx.CENTER, 4)
962          self.endPropCtrl = classifier.ClassGroupPropertiesCtrl(          self.endPropCtrl = classifier.ClassGroupPropertiesCtrl(
963              self, ID_CUSTOMRAMP_EPROP,              self, ID_CUSTOMRAMP_EPROP,
964              ClassGroupProperties(), shapeType,              ClassGroupProperties(), shapeType,
965              style=wxSIMPLE_BORDER, size=(40, 20))              style=wx.SIMPLE_BORDER, size=(40, 20))
966          bsizer.Add(self.endPropCtrl, 1, wxGROW | wxALL | wxCENTER, 4)          bsizer.Add(self.endPropCtrl, 1, wx.GROW | wx.ALL | wx.CENTER, 4)
967          bsizer.Add(wxButton(self, ID_CUSTOMRAMP_EDITEND, _("Change")),          bsizer.Add(wx.Button(self, ID_CUSTOMRAMP_EDITEND, _("Change")),
968                     0, wxGROW | wxALL | wxCENTER, 4)                     0, wx.GROW | wx.ALL | wx.CENTER, 4)
969    
970          topSizer.Add(bsizer,          topSizer.Add(bsizer,
971                     1, wxALL \                     1, wx.ALL \
972                        | wxSHAPED \                        | wx.SHAPED \
973                        | wxALIGN_RIGHT \                        | wx.ALIGN_RIGHT \
974                        | wxALIGN_CENTER_HORIZONTAL \                        | wx.ALIGN_CENTER_HORIZONTAL \
975                        | wxALIGN_CENTER_VERTICAL,                        | wx.ALIGN_CENTER_VERTICAL,
976                     4)                     4)
977    
978          EVT_BUTTON(self, ID_CUSTOMRAMP_COPYSTART, self._OnCopyStart)          self.Bind(wx.EVT_BUTTON, self._OnCopyStart, id=ID_CUSTOMRAMP_COPYSTART)
979          EVT_BUTTON(self, ID_CUSTOMRAMP_COPYEND, self._OnCopyEnd)          self.Bind(wx.EVT_BUTTON, self._OnCopyEnd, id=ID_CUSTOMRAMP_COPYEND)
980          EVT_BUTTON(self, ID_CUSTOMRAMP_EDITSTART, self._OnEditStart)          self.Bind(wx.EVT_BUTTON, self._OnEditStart, id=ID_CUSTOMRAMP_EDITSTART)
981          EVT_BUTTON(self, ID_CUSTOMRAMP_EDITEND, self._OnEditEnd)          self.Bind(wx.EVT_BUTTON, self._OnEditEnd, id=ID_CUSTOMRAMP_EDITEND)
982    
983          self.SetSizer(topSizer)          self.SetSizer(topSizer)
984          self.SetAutoLayout(True)          self.SetAutoLayout(True)
# Line 1000  class CustomRampPanel(wxPanel): Line 1000  class CustomRampPanel(wxPanel):
1000      def _OnEditEnd(self, event):      def _OnEditEnd(self, event):
1001          self.endPropCtrl.DoEdit()          self.endPropCtrl.DoEdit()
1002    
1003      

Legend:
Removed from v.2527  
changed lines
  Added in v.2700

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26