/[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 924 by frank, Mon May 19 09:12:42 2003 UTC revision 1008 by bh, Thu May 22 20:08:12 2003 UTC
# Line 1  Line 1 
1    2003-05-22  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/join.py (JoinDialog.OnJoin): Use exc_info in a
4            somewhat safer way. Storing the traceback in a local variable can
5            lead to memory leaks
6    
7    2003-05-22  Bernhard Herzog  <[email protected]>
8    
9            * Thuban/UI/join.py (JoinDialog.OnJoin): Make sure to really call
10            the wxMessageDialog's Destroy() method.
11    
12    2003-05-22  Frank Koormann  <[email protected]>
13    
14            * Thuban/UI/join.py (JoinDialog.__init__): Make use of
15            TransientTable.Title()
16    
17    2003-05-22  Frank Koormann  <[email protected]>
18    
19            Join Dialog, initial version.
20    
21            * Thuban/UI/mainwindow.py (MainWindow.TableJoin): Removed print.
22    
23            * Thuban/UI/join.py (JoinDialog): Functional implementation of
24            former framework. Renamed Table1/Table2 to LeftTable/RightTable
25            in all occurences.
26    
27            * Thuban/Model/transientdb.py (TransientJoinedTable.__doc__):
28            Typo fixed.
29    
30    2003-05-22  Bernhard Herzog  <[email protected]>
31    
32            Give the tables titles so that the GUI can display more meaningful
33            names. For now the titles are fixed but depend on e.g. filenames
34            or the titles of the joined tables.
35    
36            * Thuban/Model/transientdb.py (TransientTable.Title)
37            (TransientJoinedTable.Title, AutoTransientTable.Title): New.
38    
39            * Thuban/Model/table.py (DBFTable.Title, MemoryTable.Title): New.
40    
41            * test/test_transientdb.py
42            (TestTransientTable.test_auto_transient_table_title): New. Test
43            for the Title method
44            (TestTransientTable.test_transient_joined_table)
45            (TestTransientTable.test_transient_table): Add test for the Title
46            methods
47    
48            * test/test_memory_table.py (TestMemoryTable.test_title): New.
49            Test for the Title method
50    
51            * test/test_dbf_table.py (TestDBFTable.test_title): New. Test for
52            the Title method
53    
54    2003-05-22  Bernhard Herzog  <[email protected]>
55    
56            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
57            Provide a better way to destroy the layers
58            (TestLayer.test_base_layer, TestLayer.test_arc_layer)
59            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
60            (TestLayer.test_polygon_layer, TestLayer.test_get_field_type): Use
61            the new way to destroy the layers.
62            (TestLayer.test_derived_store): New. Test for using a layer with a
63            DerivedShapeStore
64    
65            * Thuban/Model/layer.py (Layer.SetShapeStore): Only set the
66            filename if the shape store actually has one.
67    
68    2003-05-22  Bernhard Herzog  <[email protected]>
69    
70            * Thuban/Model/table.py (DBFTable.FileName): New. Accessor method
71            for the filename
72    
73            * test/test_dbf_table.py (TestDBFTable.test_filename): New. Test
74            for the FileName method
75            (TestDBFTableWriting.test_write): Fix spelling of filename
76    
77    2003-05-22  Thomas Koester  <[email protected]>
78    
79            * Thuban/Model/range.py, test/test_range.py: Brought over new Range
80            from SciParam that now really is immutable.
81    
82    2003-05-22  Frank Koormann  <[email protected]>
83    
84            Layer Top/Bottom placement added to legend.
85    
86            * Thuban/UI/legend.py
87            (LegendPanel._OnMoveTop(), LayerPanel._OnMoveBottom): New, methods
88            bound to tool events.
89            (LegendTree.MoveCurrentItemTop(), LegendTree.MoveCurrentItemBottom):
90            New, methods binding the event methods with the map methods.
91    
92            * Thuban/Model/map.py (Map.TopLayer(), Map.BottomLayer()): New, place
93            layer at top/bottom of layer stack.
94    
95            * Resources/Bitmaps/top_layer.xpm: New button icon.
96    
97            * Resources/Bitmaps/bottom_layer.xpm: New button icon.
98    
99    2003-05-22  Bernhard Herzog  <[email protected]>
100    
101            * Thuban/Model/session.py (Session.RemoveTable): New method to
102            remove tables
103    
104            * test/test_session.py (TestSessionSimple.test_remove_table): New.
105            Test for RemoveTable
106    
107    2003-05-22  Thomas Koester  <[email protected]>
108    
109            * Thuban/Model/classgen.py: Added short module doc string and CVS id.
110            (ClassGenerator.GenUniformDistribution): Use new Range __init__, too.
111    
112    2003-05-22  Bernhard Herzog  <[email protected]>
113    
114            Implement a way to discover dependencies between tables and
115            shapestores.
116    
117            * Thuban/Model/transientdb.py (TransientTableBase.Dependencies)
118            (TransientJoinedTable.Dependencies)
119            (AutoTransientTable.SimpleQuery): New. Implement the dependencies
120            interface
121            (TransientJoinedTable.__init__): Keep tack of the original table
122            objects in addition to the corresponding transient tables.
123    
124            * Thuban/Model/table.py (DBFTable.Dependencies)
125            (MemoryTable.Dependencies): New. Implement the dependencies
126            interface
127    
128            * Thuban/Model/data.py (ShapeTable): New. Helper class for
129            ShapefileStore
130            (ShapefileStore.__init__): Use ShapeTable instead of
131            AutoTransientTable
132            (ShapefileStore.Table, ShapefileStore.Shapefile): Add doc-strings
133            (ShapefileStore.FileName, ShapefileStore.FileType): New. Accessor
134            methods for filename and type
135            (ShapefileStore.Dependencies): New. Implement the dependencies
136            interface
137            (DerivedShapeStore): New class to replace SimpleStore. The main
138            difference to SimpleStore is that it depends not on a shapefile
139            but another shapestore which expresses the dependencies a bit
140            better
141            (SimpleStore.__init__): Add deprecation warning.
142    
143            * test/test_dbf_table.py (TestDBFTable.test_dependencies): New.
144            Test for the Dependencies method.
145    
146            * test/test_memory_table.py (TestMemoryTable.test_dependencies):
147            New. Test for the Dependencies method.
148    
149            * test/test_transientdb.py
150            (TestTransientTable.test_auto_transient_table_dependencies): New.
151            Test for the Dependencies method.
152            (TestTransientTable.test_transient_joined_table): Add test for the
153            Dependencies method.
154    
155            * test/test_session.py (TestSessionSimple.setUp)
156            (TestSessionSimple.tearDown): New. Implement a better way to
157            destroy the sessions.
158            (TestSessionSimple.test_initial_state)
159            (TestSessionSimple.test_add_table): Bind session to self.session
160            so that it's destroyed by tearDown
161            (TestSessionSimple.test_open_shapefile): New. Test for
162            OpenShapefile and the object it returns
163    
164    2003-05-22  Bernhard Herzog  <[email protected]>
165    
166            * Thuban/Model/session.py (Session.AddTable): New method to
167            register tables with the session.
168            (Session.Tables): Return the tables registered with AddTable too.
169    
170            * test/test_session.py (TestSessionSimple.test_add_table): New.
171            Test case for the AddTable method
172    
173    2003-05-22  Frank Koormann  <[email protected]>
174    
175            UI polishing updates: Place main buttons (OK, Cancel, etc) in the
176            lower right corner, center labels for selections, initialize controls
177            in reasonable order for keyboard navigation.
178    
179            * Thuban/UI/projdialog.py (ProjFrame.__init__, ProjFrame.__doLayout)
180            (ProjFrame.__DoOnProjAvail): Determine position of current projection
181            using the wxListBox.FindString() method. Still a problem (#1886)
182    
183            * Thuban/UI/classifier.py
184            (Classifier.__init__, SelectPropertiesDialog.__init__)
185    
186            * Thuban/UI/classgen.py (ClassGenDialog.__init__,
187            (ClassGenDialog.__DoOnGenTypeSelect): Moved initialization of the
188            different classification types from here to __init__.
189            (GenUniquePanel.__init__): Set the column width of the first field
190            in the Field ListCtrl to the full width.
191    
192            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Rename 'Save As'
193            Button to 'Export'. Center Buttons in Selection Box, set Focus to
194            Grid.
195            (LayerTableFrame.OnKeyDown()): New, bound to the grid with EVT_KEY_DOWN,
196            changes focus to the Selection when pressing "Alt-S".
197    
198            * Thuban/UI/legend.py (LegendTree.__SetVisibilityStyle): Only gray out
199            the text if not visible. The italic font sometimes exceeds the
200            rendering area.
201    
202    2003-05-21  Jonathan Coles   <[email protected]>
203    
204            * Thuban/UI/dock.py (DockFrame): Rename references to _OnClose
205            to OnClose so that Thuban closes correctly.
206    
207            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Call
208            DockFrame.OnClose, not DockFrame._OnClose.
209    
210    2003-05-21  Jonathan Coles   <[email protected]>
211    
212            * Thuban/Model/classgen.py (ClassGenerator.GenQuantiles): Remove
213            references to 'inf' and use new Range __init__ to pass floats
214            directly rather than converting them to strings first.
215            Fixes RTBug #1876.
216    
217            * Thuban/Model/classification.py (ClassGroupRange.SetRange):
218            Use new Range ___init__ to pass floats.
219    
220            * Thuban/Model/layer.py (RasterLayer.__init__): Test if the
221            filename is a valid image file. Throw IOError otherwise.
222    
223            * Thuban/Model/range.py: Brought over new Range from SciParam that
224            is immutable and has an __init__ which can accept floats.
225    
226            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Move OpenShapefile
227            into try block. AddLayer doesn't throw any exceptions anymore.
228            (MainWindow.AddRasterLayer): Move constructor of RasterLayer into
229            try block.
230    
231            * Thuban/UI/projdialog.py (GeoPanel.__init__): Put Degrees as
232            the first item in choices. Fixes RTBug #1882.
233    
234            * Thuban/UI/renderer.py (MapRenderer.render_map): Check if scale
235            has gone to 0 which is a serious problem. abort.
236            (MapRenderer.draw_raster_layer): Catch IOError seperately and
237            print the error from GDAL.
238    
239            * Thuban/UI/tableview.py (TableGrid.__init__): Call
240            ToggleEventListeners to turn on listening.
241            (TableGrid.ToggleEventListeners): New. Turns event listening on
242            and off so as to prevent excessive messages.
243            (LayerTableFrame.OnQuery): Use TableGrid.ToggleEventListeners
244            to suppress excessive messages when selecting many rows.
245            Fixes RTBug #1880.
246    
247            * Thuban/UI/view.py: Added checks against if scale == 0. This
248            is a serious problem that can occur when an image without
249            geo data is loading and causes the map projection bounds to
250            go to infinity. Right now, the solution is to simply try
251            to recover.
252    
253            * extensions/thuban/cpl_mfile.cpp (MFILEClose): Make sure
254            to set the MFILEReceiver attributes even if the data is NULL.
255    
256            * extensions/thuban/gdalwarp.cpp: Improved the error handling
257            and passed GDAL messages back up to the Python layer. Also
258            tried to fix some memory leaks that were present in the original
259            utility but didn't matter because the program aborted.
260    
261            * test/test_range.py: Copied over tests from SciParam. Removed
262            tests against importing. Fixes RTBug #1867.
263    
264    2003-05-21  Bernhard Herzog  <[email protected]>
265    
266            * test/test_load.py: Remove unused imports and restructure the
267            test code
268            (LoadSessionTest): Split into one class for each test and turn
269            LoadSessionTest itself into the base class for all such session
270            tests.
271            (ClassificationTest): New base class for load tests that test
272            classifications
273            (TestSingleLayer, TestLayerVisibility, TestClassification)
274            (TestLabels, TestLayerProjection, TestRasterLayer): New classes
275            for the individual tests
276    
277            * test/support.py (FileLoadTestCase.filename): New base class for
278            file loading tests
279    
280    2003-05-21  Jan-Oliver Wagner <[email protected]>
281    
282            * Resources/Projections/defaults.proj: Renamed 'Universal Transverse
283            Mercator' to 'UTM Zone 32' as a more convenient example.
284            Added 'Gauss Krueger Zone 6'.
285    
286            * Data/iceland_sample_raster.thuban: political polygon now
287            filled transparent to have the raster image visible at once.
288    
289    2003-05-21  Frank Koormann  <[email protected]>
290    
291            * Thuban/UI/mainwindow.py (MainWindow): Renamed _OnClose() back to
292            OnClose() to keep in sync with extensions. Internally Thuban
293            still uses "underscored" names.
294    
295    2003-05-20  Jonathan Coles   <[email protected]>
296    
297            This puts back Raster layer support. These layers support projections
298            through the GDAL library. Currently, the CVS version is being used.
299            There are no Debian packages available although this may change soon.
300            A GDAL driver was extended to support writing to memory rather to
301            files.
302    
303            There is still some work that needs to be done, such as some error
304            handling when loading invalid images or when there is a problem
305            projecting the image. This putback simply checks in the majority
306            of the work.
307    
308            * setup.py: Add gdalwarp library extension.
309    
310            * Thuban/Model/layer.py (BaseLayer.HasClassification): New.
311            Defaults to False, but can be overridden by subclasses if they
312            support classification.
313            (RasterLayer): New. Defines a new layer that represents an
314            image.
315    
316            * Thuban/Model/load.py (SessionLoader.__init__): Add rasterlayer
317            tag handler.
318            (SessionLoader.start_layer): Encode the filename.
319            (SessionLoader.start_rasterlayer, SessionLoader.end_rasterlayer):
320            New. Supports reading a rasterlayer tag.
321    
322            * Thuban/Model/map.py (Map.BoundingBox): Fix typo in comment.
323    
324            * Thuban/Model/save.py (XMLWriter.encode): Don't assume that we
325            get a string in Latin1. If we get such as string convert it to
326            unicode first, otherwise leave if alone before encoding.
327            (SessionSaver.write_layer): Add support for writing both Layers
328            and RasterLayers.
329    
330            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
331            The right argument may not be a string, it could also be a Column.
332    
333            * Thuban/UI/application.py (ThubanApplication.CreateMainWindow):
334            Make initial window size 600x400. Fixes RTBug #1872.
335    
336            * Thuban/UI/classifier.py (Classifier.__init__): Rearrange how
337            the dialog is constructed so that we can support layers that
338            do not have classifications.
339            (Classifier._OnTry): Only build a classification if the layer
340            supports one.
341    
342            * Thuban/UI/legend.py: Change all checks that a layer is an
343            instance of Layer into checks against BaseLayer.
344            (LegendTree.__FillTreeLayer): Only add children to a branch if
345            the layer supports classification.
346    
347            * Thuban/UI/mainwindow.py (MainWindow.NewSession,
348            MainWindow.OpenSession): Don't proceed with an action if the
349            user chooses Cancel when they are asked to save changes.
350            (MainWindow.AddRasterLayer): New. Open a dialog to allow the
351            user to select an image file. Create a new RasterLayer and add
352            it to the map.
353    
354            * Thuban/UI/renderer.py (MapRenderer.render_map): Add support
355            for rendering RasterLayer layers.
356            (MapRenderer.draw_raster_layer): Actually method that calls
357            the GDALWarp python wrapper and constructs an image from the
358            data returned.
359    
360            * Thuban/UI/tableview.py (LayerTableFrame.__init__): Change the
361            Choices symbols to match those used in the table query method.
362            Replace deprecated method calls on table with new method names.
363    
364            * Thuban/UI/view.py (MapCanvas.set_view_transform): Try to limit
365            how small the scale can get. This still needs more testing.
366    
367            * extensions/thuban/bmpdataset.cpp: New, but copied from GDAL.
368            Provides a driver to output in .bmp format.
369    
370            * extensions/thuban/cpl_mfile.cpp, extensions/thuban/cpl_mfile.h:
371            New. Provides IO routines which write to memory, rather than a file.
372    
373            * extensions/thuban/gdalwarp.cpp: New, but basically a direct copy
374            of the gdalwarp utility provided in GDAL. Added function calls
375            that can be accessed from python.
376    
377            * Data/iceland_sample_raster.thuban: New. Sample file that uses
378            a raster layer.
379    
380            * Data/iceland/island.tfw, Data/iceland/island.tif: New. Raster
381            layer image data.
382    
383            * Doc/thuban.dtd: Added rasterlayer attribute definition.
384    
385            * test/test_layer.py, test/test_load.py, test/test_save.py: Added
386            tests associated with the raster layer code.
387    
388            * test/test_transientdb.py
389            (TestTransientTable.test_auto_transient_table_query): Added a test
390            for using a Column object as the "right" parameter to a query.
391    
392    2003-05-19  Frank Koormann  <[email protected]>
393    
394            * Thuban/version.py (get_changelog_date):
395            Catch exceptions if ChangeLog does not exist.
396    
397            * Thuban/UI/view.py (MapCanvas.Export): Bugfix
398    
399  2003-05-19  Frank Koormann  <[email protected]>  2003-05-19  Frank Koormann  <[email protected]>
400    
401          Extended version information for Thuban          Extended version information for Thuban

Legend:
Removed from v.924  
changed lines
  Added in v.1008

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26