/[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 1706 - (show annotations)
Wed Sep 3 08:31:26 2003 UTC (21 years, 6 months ago) by jan
Original Path: trunk/thuban/Thuban/UI/identifyview.py
File MIME type: text/x-python
File size: 2828 byte(s)
(IdentifyView.ID_STOP): New.
(IdentifyView.__init__): Added another button that allows to
stop the identify mode.
(IdentifyView.OnStop): New. Stops the identify mode.

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 from wxPython.wx import *
12 from wxPython.grid import *
13
14 from Thuban import _
15
16 from dialogs import NonModalDialog
17 from controls import RecordListCtrl, RecordGridCtrl
18 from messages import SHAPES_SELECTED
19
20 class IdentifyListCtrl(RecordListCtrl):
21
22 def selected_shape(self, layer, shape):
23 if layer is not None:
24 table = layer.ShapeStore().Table()
25 else:
26 table = None
27 self.fill_list(table, shape)
28
29 class IdentifyGridCtrl(RecordGridCtrl):
30
31 def selected_shape(self, layer, shape):
32 if layer is not None:
33 table = layer.ShapeStore().Table()
34 else:
35 table = None
36 self.SetTableRecord(table, shape)
37
38 class IdentifyView(NonModalDialog):
39
40 ID_STOP = 100
41
42 def __init__(self, parent, name):
43 NonModalDialog.__init__(self, parent, name, _("Identify Shape"))
44 parent.Subscribe(SHAPES_SELECTED, self.selected_shape)
45
46 top_box = wxBoxSizer(wxVERTICAL)
47 #self.list = IdentifyGridCtrl(panel)
48 self.list = IdentifyListCtrl(self, -1)
49 self.list.SetSize(wxSize(305,200))
50 top_box.Add(self.list, 1, wxEXPAND|wxALL, 4)
51
52 box = wxBoxSizer(wxHORIZONTAL)
53 box.Add(wxButton(self, wxID_CLOSE, _("Close Window")), 0, wxALL, 4)
54 box.Add(wxButton(self, self.ID_STOP, _("Stop Identify Mode")),
55 0, wxALL, 4)
56 top_box.Add(box, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 4)
57
58 EVT_BUTTON(self, wxID_CLOSE, self.OnClose)
59 EVT_BUTTON(self, self.ID_STOP, self.OnStop)
60
61 self.SetAutoLayout(True)
62 self.SetSizer(top_box)
63 top_box.Fit(self)
64 top_box.SetSizeHints(self)
65
66 # Make sure to reflect the current selection.
67 self.selected_shape(parent.SelectedLayer(), parent.SelectedShapes())
68
69 def OnClose(self, event):
70 self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)
71 NonModalDialog.OnClose(self, event)
72
73 def OnStop(self, event):
74 self.parent.Unsubscribe(SHAPES_SELECTED, self.selected_shape)
75 self.parent.canvas.SelectTool(None)
76 NonModalDialog.OnClose(self, event)
77
78 def selected_shape(self, layer, shapes):
79 """Subscribed to the SHAPES_SELECTED messages.
80
81 If exatly one shape is selected, pass that shape id to the
82 list's selected_shape method. Otherwise pass None as the shape
83 id.
84 """
85 if len(shapes) == 1:
86 shape = shapes[0]
87 else:
88 shape = None
89 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