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

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

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

trunk/thuban/Thuban/UI/identifyview.py revision 535 by bh, Fri Mar 14 20:42:18 2003 UTC branches/WIP-pyshapelib-bramz/Thuban/UI/identifyview.py revision 2734 by bramz, Thu Mar 1 12:42:59 2007 UTC
# Line 1  Line 1 
1  # Copyright (c) 2001, 2002, 2003 by Intevation GmbH  # Copyright (c) 2001, 2002, 2003 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
4    # Frank Koormann <[email protected]>
5  #  #
6  # This program is free software under the GPL (>=v2)  # This program is free software under the GPL (>=v2)
7  # Read the file COPYING coming with Thuban for details.  # Read the file COPYING coming with Thuban for details.
8    
9  __version__ = "$Revision$"  __version__ = "$Revision$"
10    
11  from wxPython.wx import *  import wx
12  from wxPython.grid import *  from wx import grid
13    
14  from Thuban import _  from Thuban import _
15    
16  from dialogs import NonModalDialog  from dialogs import NonModalDialog
17  from controls import RecordListCtrl, RecordGridCtrl  from controls import RecordListCtrl, RecordGridCtrl
18  from messages import SHAPES_SELECTED  from messages import SHAPES_SELECTED
19    import main
20    
21  class IdentifyListCtrl(RecordListCtrl):  class IdentifyListCtrl(RecordListCtrl):
22    
23      def selected_shape(self, layer, shape):      def selected_shape(self, layer, shape):
24          if layer is not None:          if layer is not None:
25              table = layer.shapetable              table = layer.ShapeStore().Table()
26          else:          else:
27              table = None              table = None
28          self.fill_list(table, shape)          self.fill_list(table, shape)
# Line 29  class IdentifyGridCtrl(RecordGridCtrl): Line 31  class IdentifyGridCtrl(RecordGridCtrl):
31    
32      def selected_shape(self, layer, shape):      def selected_shape(self, layer, shape):
33          if layer is not None:          if layer is not None:
34              table = layer.shapetable              table = layer.ShapeStore().Table()
35          else:          else:
36              table = None              table = None
37          self.SetTableRecord(table, shape)          self.SetTableRecord(table, shape)
38    
39  class IdentifyView(NonModalDialog):  class IdentifyView(NonModalDialog):
40    
41        ID_STOP = 100
42    
43      def __init__(self, parent, name):      def __init__(self, parent, name):
44          NonModalDialog.__init__(self, parent, name, _("Identify Shape"))          NonModalDialog.__init__(self, parent, name, _("Identify Shape"))
45          parent.Subscribe(SHAPES_SELECTED, self.selected_shape)          parent.Subscribe(SHAPES_SELECTED, self.selected_shape)
46    
47          panel = wxPanel(self, -1, style = wxWANTS_CHARS)          top_box = wx.BoxSizer(wx.VERTICAL)
48          #self.list = IdentifyListCtrl(panel, -1)          if main.options.attribute_editing_enabled:
49          self.list = IdentifyGridCtrl(panel)              self.list = IdentifyGridCtrl(self)
50            else:
51          sizer = wxBoxSizer(wxVERTICAL)              self.list = IdentifyListCtrl(self, -1)
52          sizer.Add(self.list, 1, wx.wxEXPAND| wx.wxALL, 0)          self.list.SetSize(wx.Size(305,200))
53            top_box.Add(self.list, 1, wx.EXPAND|wx.ALL, 4)
54          self.SetSize(wxSize(300,200))  
55          panel.SetAutoLayout(true)          box = wx.BoxSizer(wx.HORIZONTAL)
56          panel.SetSizer(sizer)          box.Add(wx.Button(self, wx.ID_CLOSE, _("Close Window")), 0, wx.ALL, 4)
57          sizer.Fit(panel)          box.Add(wx.Button(self, self.ID_STOP, _("Stop Identify Mode")),
58                             0, wx.ALL, 4)
59            top_box.Add(box, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 4)
60    
61            self.Bind(wx.EVT_BUTTON, self.OnClose, id=wx.ID_CLOSE)
62            self.Bind(wx.EVT_BUTTON, self.OnStop, id=self.ID_STOP)
63    
64            self.SetAutoLayout(True)
65            self.SetSizer(top_box)
66            top_box.Fit(self)
67            top_box.SetSizeHints(self)
68    
69            # Make sure to reflect the current selection.
70            self.selected_shape(parent.SelectedLayer(), parent.SelectedShapes())
71    
72      def OnClose(self, event):      def OnClose(self, event):
73          self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)          self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)
74          NonModalDialog.OnClose(self, event)          NonModalDialog.OnClose(self, event)
75    
76        def OnStop(self, event):
77            self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)
78            self.parent.canvas.SelectTool(None)
79            NonModalDialog.OnClose(self, event)
80    
81      def selected_shape(self, layer, shapes):      def selected_shape(self, layer, shapes):
82          """Subscribed to the SHAPES_SELECTED messages.          """Subscribed to the SHAPES_SELECTED messages.
83    
84          If exatly one shape is selected, pass that shape id to the          If exactly one shape is selected, pass that shape id to the
85          list's selected_shape method. Otherwise pass None as the shape          list's selected_shape method. Otherwise pass None as the shape
86          id.          id.
87          """          """

Legend:
Removed from v.535  
changed lines
  Added in v.2734

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26