/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

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

revision 952 by frank, Wed May 21 14:21:23 2003 UTC revision 1116 by bh, Fri May 30 16:30:34 2003 UTC
# Line 1  Line 1 
1    2003-05-30  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/legend.py (LegendTree.GetRootItem): Reset
4            availImgListIndices when a new image list is created
5            
6    2003-05-30  Bernhard Herzog  <[email protected]>
7    
8            * Thuban/UI/legend.py (LegendTree.__init__): New instance variable
9            changing_selection to indicate whether the LegendTree code itself
10            is currently changing the selection
11            (LegendTree.normalize_selection): New method to normalize the
12            selection by selecting the layer item even if the user clicked on
13            the classification.
14            (LegendTree._OnSelChanged): normalize the selection. This works
15            around a bug in wx which doesn't keep track of the selection
16            properly when subtrees are deleted.
17    
18    2003-05-30  Bernhard Herzog  <[email protected]>
19    
20            * Thuban/UI/view.py (MapCanvas.set_view_transform): Limit the
21            maximum and minimum scale factors.
22    
23            * test/test_classgen.py (ClassGenTest.test): Update to reflect the
24            changes in classgen.py
25    
26    2003-05-30  Jonathan Coles   <[email protected]>
27    
28            * Thuban/Model/classgen.py: Remove ClassGenerator class but make
29            all the methods functions. Fixes RTBug #1903.
30    
31            * Thuban/Model/map.py (Map.TopLayer, Map.BottomLayer): Renamed
32            to MoveLayerToTop and MoveLayerToBottom respectively. Fixes
33            RTBug #1907.
34    
35            * Thuban/UI/classgen.py: Use classgen functions that were part
36            of the ClassGenerator class. Put try/finally blocks around
37            code that uses wxBeginBusyCursor()/wxEndBusyCursor(). Fixes
38            RTBug #1904.
39    
40            * Thuban/UI/classifier.py: Remove unused import of ClassGenerator.
41    
42            * Thuban/UI/legend.py: The legend was cleared and repopulated any
43            time something changed which caused some state to be lost such
44            as which children were expanded or collapsed. Fixes RTBug #1901.
45            (LegendTree._OnMsgMapLayersAdded): Add only new layers.
46            (LegendTree.__OnMsgMapLayersRemoved): Remove layers that exist in
47            the legend but not in the map.
48            (LegendTree.__FillTree): Move main functionality out into smaller
49            methods that can be used by other methods.
50            (LegendTree.__FillTreeLayer): Reuse old slots in the image list
51            if they are available.
52            (LegendTree.DeleteAllItems): Renamed from __DeleteAllItems so
53            that we override the wxTreeCtrl method. Iterate over children
54            and call __RemoveLayer.
55            (LegendTree.__AddLayer): New. Add a new layer to the legend.
56            (LegendTree.__RemoveLayer): Remove a layer from the legend.
57            (LegendTree.DeleteChildren): New, overrides wxTreeCtrl method.
58            Should only be called with the id of a layer branch.
59            (LegendTree.GetRootItem): New, overrides wxTreeCtrl method.
60            Returns the root item or creates one if necessary.
61    
62            * Thuban/UI/renderer.py (MapRenderer.draw_raster_layer): Call
63            ProjectRasterFile with tuple arguments instead of strings.
64    
65            * Thuban/UI/tableview.py (QueryTableFrame.OnQuery): Wrap code
66            with try/finally. Fixes RTBug #1904.
67    
68            * Thuban/UI/view.py (MapCanvas.OnPaint): Wrap code
69            with try/finally. Fixes RTBug #1904.
70            (MapCanvas.FitSelectedToWindow): If a single point is selected
71            simply center it on the display. Fixes RTBug #1849.
72    
73            * extensions/thuban/gdalwarp.cpp: Removed code that allowed gdalwarp
74            to be compiled as a standalone app. Now the code can only be
75            called from Python which simplifies the parameter passing.
76            (ProjectRasterFile): Handle Python arguments. Remove code that
77            checks for a destination dataset. Add more clean up code.
78    
79            * test/test_map.py (TestMapWithContents.test_raise_layer_top,
80            TestMapWithContents.test_lower_layer_bottom):
81            Test Map.MoveLayerToTop() and Map.MoveLayerToBottom() respectively.
82            Fixes RTBug #1907.
83    
84            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Apply a full
85            extent to the map when the legend is toggled. Fixes RTBug #1881.
86    
87    2003-05-29  Jan-Oliver Wagner <[email protected]>
88    
89            * Thuban/UI/tableview.py (LayerTableFrame.OnClose): Bug-fix: Now
90            unsubscribes all that is subcribed in __init__.
91    
92    2003-05-28  Bernhard Herzog  <[email protected]>
93    
94            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer)
95            (MainWindow.CanDuplicateLayer): New methods to implement the
96            Layer/Duplicate command.
97            (layer_duplicate command): New.
98            (main_menu): Add layer_duplicate to the Layer menu.
99    
100    2003-05-28  Bernhard Herzog  <[email protected]>
101    
102            * Thuban/UI/tableview.py (NullRenderer.Draw): New. Our own
103            renderer so that NULL/None values get displayed differently (by a
104            gray rectangle).
105            (TableGrid.__init__): Override the default renderers
106    
107    2003-05-28  Bernhard Herzog  <[email protected]>
108    
109            * Thuban/Model/layer.py (Layer.SetShapeStore): Set the
110            classification to "None" if the type of the field has changed.
111    
112            * test/test_layer.py (SetShapeStoreTests): New. Class with a few
113            test for the Layer.SetShapeStore method
114    
115    2003-05-28  Jan-Oliver Wagner <[email protected]>
116    
117            * Thuban/Model/layer.py (Layer.TreeInfo): Fixed a bug (a layer
118            does not necessarily have a filename).
119    
120    2003-05-28  Jan-Oliver Wagner <[email protected]>
121    
122            * Thuban/UI/mainwindow.py (MainWindow.TableClose, MainWindow.TableShow):
123            sort the selection list for the dialog.
124    
125    2003-05-28  Frank Koormann  <[email protected]>
126    
127            * extensions/thuban/wxproj.cpp
128            (project_point): Removed cast to int for projected point coordinates.
129            (shape_centroid): Return last point if all polygon vertices fall
130            to one point.
131    
132    2003-05-28  Bernhard Herzog  <[email protected]>
133    
134            * Thuban/UI/mainwindow.py (_can_unjoin): Add doc-string and cope
135            with layers that don't have shapestores, i.e. raster layers.
136    
137    2003-05-28  Bernhard Herzog  <[email protected]>
138    
139            * Thuban/Model/table.py (DBFTable.__init__): Omit the extension
140            when determining the title from the filename.
141    
142            * test/test_dbf_table.py (TestDBFTable.test_title): Update to
143            reflect changes in the way the title is derived from the filename
144    
145    2003-05-28  Frank Koormann  <[email protected]>
146    
147            * Thuban/UI/mainwindow.py (MainWindow.TableShow):
148            Added wxDEFAULT_DIALOG_STYLE to show table dialog styles.
149    
150    2003-05-27  Bernhard Herzog  <[email protected]>
151    
152            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages): Also
153            delegate SelectedLayer.
154            (MainWindow.LayerUnjoinTable): Implement.
155            (_can_unjoin): New. Helper function for the sensitivity of the
156            layer/unjoin command.
157    
158            * Thuban/Model/data.py (ShapefileStore.OrigShapeStore)
159            (DerivedShapeStore.OrigShapeStore): New. Return the original
160            shapestore. Used to figure out how to unjoin.
161            (DerivedShapeStore.Shapefile): Fix a typo.
162    
163    2003-05-27  Bernhard Herzog  <[email protected]>
164    
165            * Thuban/UI/join.py (JoinDialog): Extend to handle layer joins as
166            well
167            (JoinDialog.__init__): Use the layer parameter and only build the
168            left choice when a layer is given
169            (JoinDialog.OnJoin): Handle layer joins as well
170            (JoinDialog.OnLeftTable, JoinDialog.OnRightTable): Handle the case
171            that the user selects the "Select..." item. The sensitivitly
172            updating is now in update_sensitivity
173            (JoinDialog.y): New method to refactor the sensitivity update of
174            the join button into its own method.
175    
176            * Thuban/UI/mainwindow.py (MainWindow.LayerJoinTable): Implement.
177    
178    2003-05-27  Bernhard Herzog  <[email protected]>
179    
180            * Thuban/UI/mainwindow.py (table_close command): Make it sensitive
181            iff there are unreferenced tables in the session
182    
183    2003-05-27  Bernhard Herzog  <[email protected]>
184    
185            * Thuban/Model/messages.py (TABLE_REMOVED): New message.
186    
187            * Thuban/Model/session.py (Session.UnreferencedTables): New method
188            to return tables that are not referenced by other tables or shape
189            stores and can be removed.
190            (Session.RemoveTable): Issue a TABLE_REMOVED message after
191            removing the table
192    
193            * Thuban/UI/mainwindow.py: Remove unused imports
194            (MainWindow.TableClose): Implement.
195    
196            * Thuban/UI/tableview.py (TableFrame.__init__): Subscribe to some
197            messages so that the frame will be automatically closed when a new
198            session is opened or the table is removed.
199            (TableFrame.OnClose): Unsubscribe the Subscriptions made in
200            __init__
201            (TableFrame.close_on_session_replaced)
202            (TableFrame.close_on_table_removed): New. Subscribers that close
203            the window
204    
205            * test/test_session.py (TestSessionMessages.test_remove_table)
206            (TestSessionSimple.test_remove_table): Move the test to
207            TestSessionSimple and add test for the TABLE_REMOVED message
208            (TestSessionBase.setUp): Also subscribe to TABLE_REMOVED
209            (TestSessionSimple.test_unreferenced_tables) New. Test for the
210            UnreferencedTables method.
211            (UnreferencedTablesTests): New. Class with some more sophisticated
212            tests for UnreferencedTables.
213    
214    2003-05-27  Frank Koormann  <[email protected]>
215    
216            * Thuban/UI/tableview.py (QueryTableFrame.__init__): The "_S_election"
217            display has some unwanted side effects. Removed again.
218    
219    2003-05-27  Frank Koormann  <[email protected]>
220    
221            * Resources/Bitmaps/legend_icon_layer.xpm: New, icon for legend.
222    
223            * Thuban/UI/legend.py (LegendTree.__FillTree): Use "legend_icon_layer"
224    
225    2003-05-27  Jan-Oliver Wagner <[email protected]>
226    
227            * test/test_menu.py (MenuTest.test): Added test for
228            Menu.RemoveItem().
229    
230            * Thuban/UI/menu.py (Menu.RemoveItem): New. Remove an item from
231            the menu.
232    
233    2003-05-27  Frank Koormann  <[email protected]>
234            
235            Nonmodal dialogs without parent (i.e. they can fall behind the main
236            window)
237    
238            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Explicitly destroy
239            all dialogs in the dialogs dictionary and the canvas.
240    
241            * Thuban/UI/dialogs.py (NonModalNonParentDialog): New class, without
242            parent, i.e. can fall behind other windows.
243            (NonModalDialog.OnClose): Check is dialog is in mainwindow.dialog
244            dictionary before removing it.
245    
246            * Thuban/UI/classifier.py: Dialog derived from NonModalNonParentDialog
247    
248            * Thuban/UI/projdialog.py: Dialog derived from NonModalNonParentDialog
249            * Thuban/UI/tableview.py: Dialog derived from NonModalNonParentDialog
250            * Thuban/UI/tree.py: Dialog derived from NonModalNonParentDialog
251    
252    2003-05-27  Bernhard Herzog  <[email protected]>
253    
254            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): New. Open a
255            tableview dialog
256            (MainWindow.TableShow): Use ShowTableView to open the dialogs.
257            Also, don't use the table's titles as the dialog names. The titles
258            aren't guaranteed to be unique.
259            (MainWindow.TableOpen): Open a table view dialog after opening the
260            table
261    
262    2003-05-27  Bernhard Herzog  <[email protected]>
263    
264            * Thuban/UI/mainwindow.py: Remove the Table/Hide menu item. Its
265            effect can be achieved by simply closing the window showing the
266            table.
267            (MainWindow.TableHide): Removed.
268            (main_menu): Removed "table_hide"
269    
270    2003-05-27  Frank Koormann  <[email protected]>
271    
272            Fix legend tree display problems under Win32
273    
274            * Thuban/UI/legend.py:  BMP_SIZE_W = 15
275            (LegendTree.__FillTree): Display "legend_icon_map.xpm" with layer title.
276            (LegendTree.__FillTreeLayer): Explicitely set SelectedImage.
277    
278            * Resources/Bitmaps/legend_icon_map.xpm: New icon for legend.
279    
280    2003-05-27  Jan-Oliver Wagner <[email protected]>
281    
282            * Thuban/UI/menu.py (Menu.InsertSeparator): Additional optional parameter
283            'after' now allows to insert separators almost anywhere in the menu.
284    
285    2003-05-27  Frank Koormann  <[email protected]>
286    
287            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Underline the
288            "S" of selection box label to hint on hot key (Alt-S). Works under
289            Win32 but is ignored under GTK.
290    
291    2003-05-26  Frank Koormann  <[email protected]>
292    
293            * Thuban/UI/projdialog.py (ProjFrame.__do_layout, ProjPanel._DoLayout):
294            Center Choices.
295    
296    2003-05-26  Bernhard Herzog  <[email protected]>
297    
298            Remove the Precision methods again. They're too DBF specific to be
299            part of the table interface and they're only used in table_to_dbf
300            anyway.
301            
302            * Thuban/Model/transientdb.py (TransientTableBase.Width):Use a
303            fixed precision of 12 for doubles.
304            (TransientTableBase.Precision): Removed
305            (AutoTransientTable.Width): Delegate to self.table.
306    
307            * Thuban/Model/table.py (DBFTable.Precision)
308            (MemoryTable.Precision): Removed.
309            (MemoryTable.Width): Use a fixed precision of 12 for doubles.
310            (table_to_dbf): Use a fixed precision of 12 for floats unless the
311            column object specifies something else.
312    
313            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): New.
314            test for table_to_dbf
315    
316    2003-05-26  Bernhard Herzog  <[email protected]>
317    
318            * test/test_transientdb.py
319            (TestTransientTable.run_iceland_political_tests): Fix a comment.
320    
321    2003-05-26  Bernhard Herzog  <[email protected]>
322    
323            * Thuban/UI/mainwindow.py (MainWindow.TableOpen): Real
324            implementation. Mark parts of the file format strings for
325            localization.
326    
327            * Thuban/Model/session.py (Session.OpenTableFile): New. Open a dbf
328            file and add the table to the tables managed by the session
329    
330            * test/test_session.py (TestSessionSimple.test_open_table_file):
331            New. test case for OpenTableFile
332    
333    2003-05-26  Jan-Oliver Wagner <[email protected]>
334    
335            * Thuban/UI/controls.py, Thuban/UI/identifyview.py, Thuban/UI/join.py,
336            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py,
337            Thuban/UI/proj4dialog.py, Thuban/UI/tableview.py, Thuban/UI/view.py:
338            Replace the true/false of wxWindows by True/False of Python 2.2.1.
339    
340    2003-05-26  Jan-Oliver Wagner <[email protected]>
341    
342            * Thuban/UI/tableview.py (LayerTableFrame.__init__): If there is
343            already a selection present, update the grid accordingly.
344    
345            * Thuban/UI/mainwindow.py (MainWindow.TableShow): Make the dialog
346            resizeable and increase its initial size.
347    
348    2003-05-26  Frank Koormann  <[email protected]>
349    
350            Table export functionality
351    
352            * Thuban/Model/table.py (DBFTable.Width, MemoryTable.Width):
353            Return width (in characters) for a column.
354            (DBFTable.Precision, MemoryTable.Precision): Return decimal precision.
355            (table_to_dbf): Write table to dbf file.
356            (table_to_csv): Write table to csv file.
357    
358            * Thuban/Model/transientdb.py (TransientTableBase.Width,
359            TransientTableBase.Precision): Return column width and precision.
360    
361            * Thuban/UI/tableview.py (QueryTableFrame.OnSaveAs): Call table_to_dbf
362            or table_to_csv depending on file selection.
363    
364            * test/test_dbf_table.py:
365            Test table_to_dbf (extension of former part of test).
366    
367            * test/test_csv_table.py:
368            Test table_to_csv.
369    
370    2003-05-23  Jan-Oliver Wagner <[email protected]>
371    
372            * Thuban/UI/join.py (JoinDialog.OnJoin): Use _() for strings.
373            Use QueryTableFrame instead of TableFrame.
374    
375            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Prefix the
376            table window with 'Layer Table:' instead of 'Table:'.
377    
378    2003-05-23  Jan-Oliver Wagner <[email protected]>
379    
380            Give all tables a title via mix-in TitledObject.LayerShowTable
381    
382            * Thuban/Model/base.py (TitledObject.SetTitle): Call method 'issue'
383            only if it exists.
384    
385            * Thuban/Model/table.py (DBFTable, MemoryTable): mix-in TitledObject
386            and call its init-method with a default title. Remove Title() method.
387    
388            * Thuban/Model/transientdb.py (TransientTable, TransientJoinedTable,
389            AutoTransientTable): mix-in TitledObject and call its init-method with
390            a default title. Remove Title() method.
391    
392    2003-05-23  Bernhard Herzog  <[email protected]>
393    
394            * Thuban/Model/session.py (Session.AddShapeStore): Define
395            AddShapeStore analogously to AddTable.
396    
397            * test/test_session.py (TestSessionSimple.test_add_shapestore):
398            New. Test for AddShapeStore
399    
400    2003-05-23  Jan-Oliver Wagner <[email protected]>
401    
402            Introducing QueryTableFrame and a very coarse ShowTable implementation.
403    
404            * Thuban/UI/tableview.py (LayerTableFrame, QueryTableFrame): Split the
405            class LayerTableFrame into two classes, LayerTableFrame and QueryTableFrame.
406            The latter implements the selection GUI without dependency on a layer.
407            LayerTableFrame now is derived from QueryTableFrame and connects
408            to a layer.
409    
410            * Thuban/UI/mainwindow.py (MainWindow.TableShow): A very coarse
411            implementation that still needs work.
412    
413            * Thuban/Model/layer.py (Layer.TreeInfo): Added filename.
414    
415    2003-05-22  Frank Koormann  <[email protected]>
416    
417            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
418            Added "outer_join = False" as optional parameter.
419            (TransientJoinedTable.create): If outer join is true, perform a
420            "LEFT OUTER JOIN" instead of "JOIN", which preserves all records of
421            the left table. Records not matching are filled with 0 / None.
422    
423            * Thuban/UI/join.py (JoinDialog.__init__): Checkbox for outer join.
424            (JoinDialog.OnJoin): Consider outer join check box.
425    
426    2003-05-22  Bernhard Herzog  <[email protected]>
427    
428            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
429            somewhat safer way. Storing the traceback in a local variable can
430            lead to memory leaks
431    
432    2003-05-22  Bernhard Herzog  <[email protected]>
433    
434            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
435            the wxMessageDialog's Destroy() method.
436    
437    2003-05-22  Frank Koormann  <[email protected]>
438    
439            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
440            TransientTable.Title()
441    
442    2003-05-22  Frank Koormann  <[email protected]>
443    
444            Join Dialog, initial version.
445    
446            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
447    
448            * Thuban/UI/join.py (JoinDialog): Functional implementation of
449            former framework. Renamed Table1/Table2 to LeftTable/RightTable
450            in all occurences.
451    
452            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
453            Typo fixed.
454    
455    2003-05-22  Bernhard Herzog  <[email protected]>
456    
457            Give the tables titles so that the GUI can display more meaningful
458            names. For now the titles are fixed but depend on e.g. filenames
459            or the titles of the joined tables.
460    
461            * Thuban/Model/transientdb.py (TransientTable.Title)
462            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
463    
464            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
465    
466            * test/test_transientdb.py
467            (TestTransientTable.test_auto_transient_table_title): New. Test
468            for the Title method
469            (TestTransientTable.test_transient_joined_table)
470            (TestTransientTable.test_transient_table): Add test for the Title
471            methods
472    
473            * test/test_memory_table.py (TestMemoryTable.test_title): New.
474            Test for the Title method
475    
476            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
477            the Title method
478    
479    2003-05-22  Bernhard Herzog  <[email protected]>
480    
481            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
482            Provide a better way to destroy the layers
483            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
484            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
485            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
486            the new way to destroy the layers.
487            (TestLayer.test_derived_store): New. Test for using a layer with a
488            DerivedShapeStore
489    
490            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
491            filename if the shape store actually has one.
492    
493    2003-05-22  Bernhard Herzog  <[email protected]>
494    
495            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
496            for the filename
497    
498            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
499            for the FileName method
500            (TestDBFTableWriting.test_write): Fix spelling of filename
501    
502    2003-05-22  Thomas Koester  <[email protected]>
503    
504            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
505            from SciParam that now really is immutable.
506    
507    2003-05-22  Frank Koormann  <[email protected]>
508    
509            Layer Top/Bottom placement added to legend.
510    
511            * Thuban/UI/legend.py
512            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
513            bound to tool events.
514            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
515            New, methods binding the event methods with the map methods.
516    
517            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
518            layer at top/bottom of layer stack.
519    
520            * Resources/Bitmaps/top_layer.xpm: New button icon.
521    
522            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
523    
524    2003-05-22  Bernhard Herzog  <[email protected]>
525    
526            * Thuban/Model/session.py (Session.RemoveTable): New method to
527            remove tables
528    
529            * test/test_session.py (TestSessionSimple.test_remove_table): New.
530            Test for RemoveTable
531    
532    2003-05-22  Thomas Koester  <[email protected]>
533    
534            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
535            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
536    
537    2003-05-22  Bernhard Herzog  <[email protected]>
538    
539            Implement a way to discover dependencies between tables and
540            shapestores.
541    
542            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
543            (TransientJoinedTable.Dependencies)
544            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
545            interface
546            (TransientJoinedTable.__init__): Keep tack of the original table
547            objects in addition to the corresponding transient tables.
548    
549            * Thuban/Model/table.py (DBFTable.Dependencies)
550            (MemoryTable.Dependencies): New. Implement the dependencies
551            interface
552    
553            * Thuban/Model/data.py (ShapeTable): New. Helper class for
554            ShapefileStore
555            (ShapefileStore.__init__): Use ShapeTable instead of
556            AutoTransientTable
557            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
558            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
559            methods for filename and type
560            (ShapefileStore.Dependencies): New. Implement the dependencies
561            interface
562            (DerivedShapeStore): New class to replace SimpleStore. The main
563            difference to SimpleStore is that it depends not on a shapefile
564            but another shapestore which expresses the dependencies a bit
565            better
566            (SimpleStore.__init__): Add deprecation warning.
567    
568            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
569            Test for the Dependencies method.
570    
571            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
572            New. Test for the Dependencies method.
573    
574            * test/test_transientdb.py
575            (TestTransientTable.test_auto_transient_table_dependencies): New.
576            Test for the Dependencies method.
577            (TestTransientTable.test_transient_joined_table): Add test for the
578            Dependencies method.
579    
580            * test/test_session.py (TestSessionSimple.setUp)
581            (TestSessionSimple.tearDown): New. Implement a better way to
582            destroy the sessions.
583            (TestSessionSimple.test_initial_state)
584            (TestSessionSimple.test_add_table): Bind session to self.session
585            so that it's destroyed by tearDown
586            (TestSessionSimple.test_open_shapefile): New. Test for
587            OpenShapefile and the object it returns
588    
589    2003-05-22  Bernhard Herzog  <[email protected]>
590    
591            * Thuban/Model/session.py (Session.AddTable): New method to
592            register tables with the session.
593            (Session.Tables): Return the tables registered with AddTable too.
594    
595            * test/test_session.py (TestSessionSimple.test_add_table): New.
596            Test case for the AddTable method
597    
598    2003-05-22  Frank Koormann  <[email protected]>
599    
600            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
601            lower right corner, center labels for selections, initialize controls
602            in reasonable order for keyboard navigation.
603    
604            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
605            (ProjFrame.__DoOnProjAvail): Determine position of current projection
606            using the wxListBox.FindString() method. Still a problem (#1886)
607    
608            * Thuban/UI/classifier.py
609            (Classifier.__init__, SelectPropertiesDialog.__init__)
610    
611            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
612            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
613            different classification types from here to __init__.
614            (GenUniquePanel.__init__): Set the column width of the first field
615            in the Field ListCtrl to the full width.
616    
617            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
618            Button to 'Export'. Center Buttons in Selection Box, set Focus to
619            Grid.
620            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
621            changes focus to the Selection when pressing "Alt-S".
622    
623            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
624            the text if not visible. The italic font sometimes exceeds the
625            rendering area.
626    
627    2003-05-21  Jonathan Coles   <[email protected]>
628    
629            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
630            to OnClose so that Thuban closes correctly.
631    
632            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
633            DockFrame.OnClose, not DockFrame._OnClose.
634    
635    2003-05-21  Jonathan Coles   <[email protected]>
636    
637            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
638            references to 'inf' and use new Range __init__ to pass floats
639            directly rather than converting them to strings first.
640            Fixes RTBug #1876.
641    
642            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
643            Use new Range ___init__ to pass floats.
644    
645            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
646            filename is a valid image file. Throw IOError otherwise.
647    
648            * Thuban/Model/range.py: Brought over new Range from SciParam that
649            is immutable and has an __init__ which can accept floats.
650    
651            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
652            into try block. AddLayer doesn't throw any exceptions anymore.
653            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
654            try block.
655    
656            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
657            the first item in choices. Fixes RTBug #1882.
658    
659            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
660            has gone to 0 which is a serious problem. abort.
661            (MapRenderer.draw_raster_layer): Catch IOError seperately and
662            print the error from GDAL.
663    
664            * Thuban/UI/tableview.py (TableGrid.__init__): Call
665            ToggleEventListeners to turn on listening.
666            (TableGrid.ToggleEventListeners): New. Turns event listening on
667            and off so as to prevent excessive messages.
668            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
669            to suppress excessive messages when selecting many rows.
670            Fixes RTBug #1880.
671    
672            * Thuban/UI/view.py: Added checks against if scale == 0. This
673            is a serious problem that can occur when an image without
674            geo data is loading and causes the map projection bounds to
675            go to infinity. Right now, the solution is to simply try
676            to recover.
677    
678            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
679            to set the MFILEReceiver attributes even if the data is NULL.
680    
681            * extensions/thuban/gdalwarp.cpp: Improved the error handling
682            and passed GDAL messages back up to the Python layer. Also
683            tried to fix some memory leaks that were present in the original
684            utility but didn't matter because the program aborted.
685    
686            * test/test_range.py: Copied over tests from SciParam. Removed
687            tests against importing. Fixes RTBug #1867.
688    
689    2003-05-21  Bernhard Herzog  <[email protected]>
690    
691            * test/test_load.py: Remove unused imports and restructure the
692            test code
693            (LoadSessionTest): Split into one class for each test and turn
694            LoadSessionTest itself into the base class for all such session
695            tests.
696            (ClassificationTest): New base class for load tests that test
697            classifications
698            (TestSingleLayer, TestLayerVisibility, TestClassification)
699            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
700            for the individual tests
701    
702            * test/support.py (FileLoadTestCase.filename): New base class for
703            file loading tests
704    
705    2003-05-21  Jan-Oliver Wagner <[email protected]>
706    
707            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
708            Mercator' to 'UTM Zone 32' as a more convenient example.
709            Added 'Gauss Krueger Zone 6'.
710    
711            * Data/iceland_sample_raster.thuban: political polygon now
712            filled transparent to have the raster image visible at once.
713    
714  2003-05-21  Frank Koormann  <[email protected]>  2003-05-21  Frank Koormann  <[email protected]>
715    
716          * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to          * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to

Legend:
Removed from v.952  
changed lines
  Added in v.1116

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26