/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Diff of /branches/greater-ms3/thuban/ChangeLog

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

revision 999 by bh, Thu May 22 19:29:50 2003 UTC revision 1112 by bh, Fri May 30 09:55:04 2003 UTC
# Line 1  Line 1 
1    2003-05-30  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the
4            maximum and minimum scale factors.
5    
6            * test/test_classgen.py (ClassGenTest.test): Update to reflect the
7            changes in classgen.py
8    
9    2003-05-30  Jonathan Coles   <[email protected]>
10    
11            * Thuban/Model/classgen.py: Remove ClassGenerator class but make
12            all the methods functions. Fixes RTBug #1903.
13    
14            * Thuban/Model/map.py (Map.TopLayer, Map.BottomLayer): Renamed
15            to MoveLayerToTop and MoveLayerToBottom respectively. Fixes
16            RTBug #1907.
17    
18            * Thuban/UI/classgen.py: Use classgen functions that were part
19            of the ClassGenerator class. Put try/finally blocks around
20            code that uses wxBeginBusyCursor()/wxEndBusyCursor(). Fixes
21            RTBug #1904.
22    
23            * Thuban/UI/classifier.py: Remove unused import of ClassGenerator.
24    
25            * Thuban/UI/legend.py: The legend was cleared and repopulated any
26            time something changed which caused some state to be lost such
27            as which children were expanded or collapsed. Fixes RTBug #1901.
28            (LegendTree._OnMsgMapLayersAdded): Add only new layers.
29            (LegendTree.__OnMsgMapLayersRemoved): Remove layers that exist in
30            the legend but not in the map.
31            (LegendTree.__FillTree): Move main functionality out into smaller
32            methods that can be used by other methods.
33            (LegendTree.__FillTreeLayer): Reuse old slots in the image list
34            if they are available.
35            (LegendTree.DeleteAllItems): Renamed from __DeleteAllItems so
36            that we override the wxTreeCtrl method. Iterate over children
37            and call __RemoveLayer.
38            (LegendTree.__AddLayer): New. Add a new layer to the legend.
39            (LegendTree.__RemoveLayer): Remove a layer from the legend.
40            (LegendTree.DeleteChildren): New, overrides wxTreeCtrl method.
41            Should only be called with the id of a layer branch.
42            (LegendTree.GetRootItem): New, overrides wxTreeCtrl method.
43            Returns the root item or creates one if necessary.
44    
45            * Thuban/UI/renderer.py (MapRenderer.draw_raster_layer): Call
46            ProjectRasterFile with tuple arguments instead of strings.
47    
48            * Thuban/UI/tableview.py (QueryTableFrame.OnQuery): Wrap code
49            with try/finally. Fixes RTBug #1904.
50    
51            * Thuban/UI/view.py (MapCanvas.OnPaint): Wrap code
52            with try/finally. Fixes RTBug #1904.
53            (MapCanvas.FitSelectedToWindow): If a single point is selected
54            simply center it on the display. Fixes RTBug #1849.
55    
56            * extensions/thuban/gdalwarp.cpp: Removed code that allowed gdalwarp
57            to be compiled as a standalone app. Now the code can only be
58            called from Python which simplifies the parameter passing.
59            (ProjectRasterFile): Handle Python arguments. Remove code that
60            checks for a destination dataset. Add more clean up code.
61    
62            * test/test_map.py (TestMapWithContents.test_raise_layer_top,
63            TestMapWithContents.test_lower_layer_bottom):
64            Test Map.MoveLayerToTop() and Map.MoveLayerToBottom() respectively.
65            Fixes RTBug #1907.
66    
67            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Apply a full
68            extent to the map when the legend is toggled. Fixes RTBug #1881.
69    
70    2003-05-29  Jan-Oliver Wagner <[email protected]>
71    
72            * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now
73            unsubscribes all that is subcribed in __init__.
74    
75    2003-05-28  Bernhard Herzog  <[email protected]>
76    
77            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer)
78            (MainWindow.CanDuplicateLayer): New methods to implement the
79            Layer/Duplicate command.
80            (layer_duplicate command): New.
81            (main_menu): Add layer_duplicate to the Layer menu.
82    
83    2003-05-28  Bernhard Herzog  <[email protected]>
84    
85            * Thuban/UI/tableview.py (NullRenderer.Draw): New. Our own
86            renderer so that NULL/None values get displayed differently (by a
87            gray rectangle).
88            (TableGrid.__init__): Override the default renderers
89    
90    2003-05-28  Bernhard Herzog  <[email protected]>
91    
92            * Thuban/Model/layer.py (Layer.SetShapeStore): Set the
93            classification to "None" if the type of the field has changed.
94    
95            * test/test_layer.py (SetShapeStoreTests): New. Class with a few
96            test for the Layer.SetShapeStore method
97    
98    2003-05-28  Jan-Oliver Wagner <[email protected]>
99    
100            * Thuban/Model/layer.py (Layer.TreeInfo): Fixed a bug (a layer
101            does not necessarily have a filename).
102    
103    2003-05-28  Jan-Oliver Wagner <[email protected]>
104    
105            * Thuban/UI/mainwindow.py (MainWindow.TableClose, MainWindow.TableShow):
106            sort the selection list for the dialog.
107    
108    2003-05-28  Frank Koormann  <[email protected]>
109    
110            * extensions/thuban/wxproj.cpp
111            (project_point): Removed cast to int for projected point coordinates.
112            (shape_centroid): Return last point if all polygon vertices fall
113            to one point.
114    
115    2003-05-28  Bernhard Herzog  <[email protected]>
116    
117            * Thuban/UI/mainwindow.py (_can_unjoin): Add doc-string and cope
118            with layers that don't have shapestores, i.e. raster layers.
119    
120    2003-05-28  Bernhard Herzog  <[email protected]>
121    
122            * Thuban/Model/table.py (DBFTable.__init__): Omit the extension
123            when determining the title from the filename.
124    
125            * test/test_dbf_table.py (TestDBFTable.test_title): Update to
126            reflect changes in the way the title is derived from the filename
127    
128    2003-05-28  Frank Koormann  <[email protected]>
129    
130            * Thuban/UI/mainwindow.py (MainWindow.TableShow):
131            Added wxDEFAULT_DIALOG_STYLE to show table dialog styles.
132    
133    2003-05-27  Bernhard Herzog  <[email protected]>
134    
135            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages): Also
136            delegate SelectedLayer.
137            (MainWindow.LayerUnjoinTable): Implement.
138            (_can_unjoin): New. Helper function for the sensitivity of the
139            layer/unjoin command.
140    
141            * Thuban/Model/data.py (ShapefileStore.OrigShapeStore)
142            (DerivedShapeStore.OrigShapeStore): New. Return the original
143            shapestore. Used to figure out how to unjoin.
144            (DerivedShapeStore.Shapefile): Fix a typo.
145    
146    2003-05-27  Bernhard Herzog  <[email protected]>
147    
148            * Thuban/UI/join.py (JoinDialog): Extend to handle layer joins as
149            well
150            (JoinDialog.__init__): Use the layer parameter and only build the
151            left choice when a layer is given
152            (JoinDialog.OnJoin): Handle layer joins as well
153            (JoinDialog.OnLeftTable, JoinDialog.OnRightTable): Handle the case
154            that the user selects the "Select..." item. The sensitivitly
155            updating is now in update_sensitivity
156            (JoinDialog.y): New method to refactor the sensitivity update of
157            the join button into its own method.
158    
159            * Thuban/UI/mainwindow.py (MainWindow.LayerJoinTable): Implement.
160    
161    2003-05-27  Bernhard Herzog  <[email protected]>
162    
163            * Thuban/UI/mainwindow.py (table_close command): Make it sensitive
164            iff there are unreferenced tables in the session
165    
166    2003-05-27  Bernhard Herzog  <[email protected]>
167    
168            * Thuban/Model/messages.py (TABLE_REMOVED): New message.
169    
170            * Thuban/Model/session.py (Session.UnreferencedTables): New method
171            to return tables that are not referenced by other tables or shape
172            stores and can be removed.
173            (Session.RemoveTable): Issue a TABLE_REMOVED message after
174            removing the table
175    
176            * Thuban/UI/mainwindow.py: Remove unused imports
177            (MainWindow.TableClose): Implement.
178    
179            * Thuban/UI/tableview.py (TableFrame.__init__): Subscribe to some
180            messages so that the frame will be automatically closed when a new
181            session is opened or the table is removed.
182            (TableFrame.OnClose): Unsubscribe the Subscriptions made in
183            __init__
184            (TableFrame.close_on_session_replaced)
185            (TableFrame.close_on_table_removed): New. Subscribers that close
186            the window
187    
188            * test/test_session.py (TestSessionMessages.test_remove_table)
189            (TestSessionSimple.test_remove_table): Move the test to
190            TestSessionSimple and add test for the TABLE_REMOVED message
191            (TestSessionBase.setUp): Also subscribe to TABLE_REMOVED
192            (TestSessionSimple.test_unreferenced_tables) New. Test for the
193            UnreferencedTables method.
194            (UnreferencedTablesTests): New. Class with some more sophisticated
195            tests for UnreferencedTables.
196    
197    2003-05-27  Frank Koormann  <[email protected]>
198    
199            * Thuban/UI/tableview.py (QueryTableFrame.__init__): The "_S_election"
200            display has some unwanted side effects. Removed again.
201    
202    2003-05-27  Frank Koormann  <[email protected]>
203    
204            * Resources/Bitmaps/legend_icon_layer.xpm: New, icon for legend.
205    
206            * Thuban/UI/legend.py (LegendTree.__FillTree): Use "legend_icon_layer"
207    
208    2003-05-27  Jan-Oliver Wagner <[email protected]>
209    
210            * test/test_menu.py (MenuTest.test): Added test for
211            Menu.RemoveItem().
212    
213            * Thuban/UI/menu.py (Menu.RemoveItem): New. Remove an item from
214            the menu.
215    
216    2003-05-27  Frank Koormann  <[email protected]>
217            
218            Nonmodal dialogs without parent (i.e. they can fall behind the main
219            window)
220    
221            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Explicitly destroy
222            all dialogs in the dialogs dictionary and the canvas.
223    
224            * Thuban/UI/dialogs.py (NonModalNonParentDialog): New class, without
225            parent, i.e. can fall behind other windows.
226            (NonModalDialog.OnClose): Check is dialog is in mainwindow.dialog
227            dictionary before removing it.
228    
229            * Thuban/UI/classifier.py: Dialog derived from NonModalNonParentDialog
230    
231            * Thuban/UI/projdialog.py: Dialog derived from NonModalNonParentDialog
232            * Thuban/UI/tableview.py: Dialog derived from NonModalNonParentDialog
233            * Thuban/UI/tree.py: Dialog derived from NonModalNonParentDialog
234    
235    2003-05-27  Bernhard Herzog  <[email protected]>
236    
237            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): New. Open a
238            tableview dialog
239            (MainWindow.TableShow): Use ShowTableView to open the dialogs.
240            Also, don't use the table's titles as the dialog names. The titles
241            aren't guaranteed to be unique.
242            (MainWindow.TableOpen): Open a table view dialog after opening the
243            table
244    
245    2003-05-27  Bernhard Herzog  <[email protected]>
246    
247            * Thuban/UI/mainwindow.py: Remove the Table/Hide menu item. Its
248            effect can be achieved by simply closing the window showing the
249            table.
250            (MainWindow.TableHide): Removed.
251            (main_menu): Removed "table_hide"
252    
253    2003-05-27  Frank Koormann  <[email protected]>
254    
255            Fix legend tree display problems under Win32
256    
257            * Thuban/UI/legend.py:  BMP_SIZE_W = 15
258            (LegendTree.__FillTree): Display "legend_icon_map.xpm" with layer title.
259            (LegendTree.__FillTreeLayer): Explicitely set SelectedImage.
260    
261            * Resources/Bitmaps/legend_icon_map.xpm: New icon for legend.
262    
263    2003-05-27  Jan-Oliver Wagner <[email protected]>
264    
265            * Thuban/UI/menu.py (Menu.InsertSeparator): Additional optional parameter
266            'after' now allows to insert separators almost anywhere in the menu.
267    
268    2003-05-27  Frank Koormann  <[email protected]>
269    
270            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
271            "S" of selection box label to hint on hot key (Alt-S). Works under
272            Win32 but is ignored under GTK.
273    
274    2003-05-26  Frank Koormann  <[email protected]>
275    
276            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
277            Center Choices.
278    
279    2003-05-26  Bernhard Herzog  <[email protected]>
280    
281            Remove the Precision methods again. They're too DBF specific to be
282            part of the table interface and they're only used in table_to_dbf
283            anyway.
284            
285            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
286            fixed precision of 12 for doubles.
287            (TransientTableBase.Precision): Removed
288            (AutoTransientTable.Width): Delegate to self.table.
289    
290            * Thuban/Model/table.py (DBFTable.Precision)
291            (MemoryTable.Precision): Removed.
292            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
293            (table_to_dbf): Use a fixed precision of 12 for floats unless the
294            column object specifies something else.
295    
296            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
297            test for table_to_dbf
298    
299    2003-05-26  Bernhard Herzog  <[email protected]>
300    
301            * test/test_transientdb.py
302            (TestTransientTable.run_iceland_political_tests): Fix a comment.
303    
304    2003-05-26  Bernhard Herzog  <[email protected]>
305    
306            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
307            implementation. Mark parts of the file format strings for
308            localization.
309    
310            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
311            file and add the table to the tables managed by the session
312    
313            * test/test_session.py (TestSessionSimple.test_open_table_file):
314            New. test case for OpenTableFile
315    
316    2003-05-26  Jan-Oliver Wagner <[email protected]>
317    
318            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
319            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
320            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
321            Replace the true/false of wxWindows by True/False of Python 2.2.1.
322    
323    2003-05-26  Jan-Oliver Wagner <[email protected]>
324    
325            * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
326            already a selection present, update the grid accordingly.
327    
328            * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
329            resizeable and increase its initial size.
330    
331    2003-05-26  Frank Koormann  <[email protected]>
332    
333            Table export functionality
334    
335            * Thuban/Model/table.py (DBFTable.Width, MemoryTable.Width):
336            Return width (in characters) for a column.
337            (DBFTable.Precision, MemoryTable.Precision): Return decimal precision.
338            (table_to_dbf): Write table to dbf file.
339            (table_to_csv): Write table to csv file.
340    
341            * Thuban/Model/transientdb.py (TransientTableBase.Width,
342            TransientTableBase.Precision): Return column width and precision.
343    
344            * Thuban/UI/tableview.py (QueryTableFrame.OnSaveAs): Call table_to_dbf
345            or table_to_csv depending on file selection.
346    
347            * test/test_dbf_table.py:
348            Test table_to_dbf (extension of former part of test).
349    
350            * test/test_csv_table.py:
351            Test table_to_csv.
352    
353    2003-05-23  Jan-Oliver Wagner <[email protected]>
354    
355            * Thuban/UI/join.py (JoinDialog.OnJoin): Use _() for strings.
356            Use QueryTableFrame instead of TableFrame.
357    
358            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Prefix the
359            table window with 'Layer Table:' instead of 'Table:'.
360    
361    2003-05-23  Jan-Oliver Wagner <[email protected]>
362    
363            Give all tables a title via mix-in TitledObject.LayerShowTable
364    
365            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
366            only if it exists.
367    
368            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
369            and call its init-method with a default title. Remove Title() method.
370    
371            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
372            AutoTransientTable): mix-in TitledObject and call its init-method with
373            a default title. Remove Title() method.
374    
375    2003-05-23  Bernhard Herzog  <[email protected]>
376    
377            * Thuban/Model/session.py (Session.AddShapeStore): Define
378            AddShapeStore analogously to AddTable.
379    
380            * test/test_session.py (TestSessionSimple.test_add_shapestore):
381            New. Test for AddShapeStore
382    
383    2003-05-23  Jan-Oliver Wagner <[email protected]>
384    
385            Introducing QueryTableFrame and a very coarse ShowTable implementation.
386    
387            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
388            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
389            The latter implements the selection GUI without dependency on a layer.
390            LayerTableFrame now is derived from QueryTableFrame and connects
391            to a layer.
392    
393            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
394            implementation that still needs work.
395    
396            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
397    
398    2003-05-22  Frank Koormann  <[email protected]>
399    
400            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
401            Added "outer_join = False" as optional parameter.
402            (TransientJoinedTable.create): If outer join is true, perform a
403            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
404            the left table. Records not matching are filled with 0 / None.
405    
406            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
407            (JoinDialog.OnJoin): Consider outer join check box.
408    
409    2003-05-22  Bernhard Herzog  <[email protected]>
410    
411            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
412            somewhat safer way. Storing the traceback in a local variable can
413            lead to memory leaks
414    
415    2003-05-22  Bernhard Herzog  <[email protected]>
416    
417            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
418            the wxMessageDialog's Destroy() method.
419    
420    2003-05-22  Frank Koormann  <[email protected]>
421    
422            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
423            TransientTable.Title()
424    
425    2003-05-22  Frank Koormann  <[email protected]>
426    
427            Join Dialog, initial version.
428    
429            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
430    
431            * Thuban/UI/join.py (JoinDialog): Functional implementation of
432            former framework. Renamed Table1/Table2 to LeftTable/RightTable
433            in all occurences.
434    
435            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
436            Typo fixed.
437    
438  2003-05-22  Bernhard Herzog  <[email protected]>  2003-05-22  Bernhard Herzog  <[email protected]>
439    
440          Give the tables titles so that the GUI can display more meaningful          Give the tables titles so that the GUI can display more meaningful

Legend:
Removed from v.999  
changed lines
  Added in v.1112

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26