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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2734 - (show annotations)
Thu Mar 1 12:42:59 2007 UTC (18 years ago) by bramz
File MIME type: text/x-python
File size: 2923 byte(s)
made a copy
1 # Copyright (c) 2001, 2002, 2003 by Intevation GmbH
2 # Authors:
3 # Bernhard Herzog <[email protected]>
4 # Frank Koormann <[email protected]>
5 #
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 import wx
12 from wx import grid
13
14 from Thuban import _
15
16 from dialogs import NonModalDialog
17 from controls import RecordListCtrl, RecordGridCtrl
18 from messages import SHAPES_SELECTED
19 import main
20
21 class IdentifyListCtrl(RecordListCtrl):
22
23 def selected_shape(self, layer, shape):
24 if layer is not None:
25 table = layer.ShapeStore().Table()
26 else:
27 table = None
28 self.fill_list(table, shape)
29
30 class IdentifyGridCtrl(RecordGridCtrl):
31
32 def selected_shape(self, layer, shape):
33 if layer is not None:
34 table = layer.ShapeStore().Table()
35 else:
36 table = None
37 self.SetTableRecord(table, shape)
38
39 class IdentifyView(NonModalDialog):
40
41 ID_STOP = 100
42
43 def __init__(self, parent, name):
44 NonModalDialog.__init__(self, parent, name, _("Identify Shape"))
45 parent.Subscribe(SHAPES_SELECTED, self.selected_shape)
46
47 top_box = wx.BoxSizer(wx.VERTICAL)
48 if main.options.attribute_editing_enabled:
49 self.list = IdentifyGridCtrl(self)
50 else:
51 self.list = IdentifyListCtrl(self, -1)
52 self.list.SetSize(wx.Size(305,200))
53 top_box.Add(self.list, 1, wx.EXPAND|wx.ALL, 4)
54
55 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
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):
73 self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)
74 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):
82 """Subscribed to the SHAPES_SELECTED messages.
83
84 If exactly one shape is selected, pass that shape id to the
85 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 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