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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2700 - (hide annotations)
Mon Sep 18 14:27:02 2006 UTC (18 years, 5 months ago) by dpinte
Original Path: trunk/thuban/Thuban/UI/identifyview.py
File MIME type: text/x-python
File size: 2923 byte(s)
2006-09-18 Didrik Pinte <dpinte@itae.be>
    
        * wxPython 2.6 update : wx 2.4 syntax has been updated to 2.6


1 bh 535 # Copyright (c) 2001, 2002, 2003 by Intevation GmbH
2 bh 6 # Authors:
3     # Bernhard Herzog <[email protected]>
4 frank 1138 # Frank Koormann <[email protected]>
5 bh 6 #
6     # This program is free software under the GPL (>=v2)
7     # Read the file COPYING coming with Thuban for details.
8    
9     __version__ = "$Revision$"
10    
11 dpinte 2700 import wx
12     from wx import grid
13 bh 6
14 jan 374 from Thuban import _
15    
16 bh 29 from dialogs import NonModalDialog
17 bh 80 from controls import RecordListCtrl, RecordGridCtrl
18 bh 535 from messages import SHAPES_SELECTED
19 bh 1968 import main
20 bh 6
21 bh 51 class IdentifyListCtrl(RecordListCtrl):
22 bh 6
23     def selected_shape(self, layer, shape):
24 bh 66 if layer is not None:
25 bh 1219 table = layer.ShapeStore().Table()
26 bh 66 else:
27     table = None
28     self.fill_list(table, shape)
29 bh 6
30 bh 80 class IdentifyGridCtrl(RecordGridCtrl):
31 bh 6
32 bh 80 def selected_shape(self, layer, shape):
33     if layer is not None:
34 bh 1219 table = layer.ShapeStore().Table()
35 bh 80 else:
36     table = None
37     self.SetTableRecord(table, shape)
38    
39 bh 29 class IdentifyView(NonModalDialog):
40 bh 6
41 jan 1706 ID_STOP = 100
42    
43 bh 535 def __init__(self, parent, name):
44     NonModalDialog.__init__(self, parent, name, _("Identify Shape"))
45     parent.Subscribe(SHAPES_SELECTED, self.selected_shape)
46    
47 dpinte 2700 top_box = wx.BoxSizer(wx.VERTICAL)
48 bh 1968 if main.options.attribute_editing_enabled:
49     self.list = IdentifyGridCtrl(self)
50     else:
51     self.list = IdentifyListCtrl(self, -1)
52 dpinte 2700 self.list.SetSize(wx.Size(305,200))
53     top_box.Add(self.list, 1, wx.EXPAND|wx.ALL, 4)
54 bh 6
55 dpinte 2700 box = wx.BoxSizer(wx.HORIZONTAL)
56     box.Add(wx.Button(self, wx.ID_CLOSE, _("Close Window")), 0, wx.ALL, 4)
57     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 bh 535
61 dpinte 2700 self.Bind(wx.EVT_BUTTON, self.OnClose, id=wx.ID_CLOSE)
62     self.Bind(wx.EVT_BUTTON, self.OnStop, id=self.ID_STOP)
63 bh 29
64 frank 1138 self.SetAutoLayout(True)
65     self.SetSizer(top_box)
66     top_box.Fit(self)
67     top_box.SetSizeHints(self)
68    
69 bh 1194 # Make sure to reflect the current selection.
70     self.selected_shape(parent.SelectedLayer(), parent.SelectedShapes())
71    
72 bh 29 def OnClose(self, event):
73 bh 535 self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)
74 bh 29 NonModalDialog.OnClose(self, event)
75    
76 jan 1706 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 bh 535 def selected_shape(self, layer, shapes):
82     """Subscribed to the SHAPES_SELECTED messages.
83    
84 bh 1950 If exactly one shape is selected, pass that shape id to the
85 bh 535 list's selected_shape method. Otherwise pass None as the shape
86     id.
87     """
88     if len(shapes) == 1:
89     shape = shapes[0]
90     else:
91     shape = None
92 bh 29 self.list.selected_shape(layer, shape)

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26