/[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 833 by jonathan, Tue May 6 12:07:44 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]>
400    
401            Extended version information for Thuban
402    
403            * Thuban/version.py: New, version information for Thuban: Last
404            modification date and last ChangeLog entry date.
405    
406            * Thuban/UI/mainwindow.py (MainWindow.About()): Extended version
407            information: Display Thuban, wxPython and Python version.
408    
409    2003-05-16  Bernhard Herzog  <[email protected]>
410    
411            * Thuban/Model/save.py: Remove some unused imports including the
412            __future__ import for nested_scopes as Thuban relies on Python 2.2
413            now.
414            (XMLWriter.encode): Remove the special case for a None argument.
415            In the saver encode is always called with a string argument.
416    
417    2003-05-16  Bernhard Herzog  <[email protected]>
418    
419            * Thuban/UI/__init__.py: Remove the work-around for the locale bug
420            in wxPython (at least when usinvg wxGTK) prior to 2.4. The symptom
421            of the bug was that e.g. float("1.2") would fail. Thuban now
422            requires 2.4.x.
423            
424    2003-05-16  Frank Koormann   <[email protected]>
425    
426            Printing enhancement and WMF export (under Win32)
427    
428            * Thuban/UI/renderer.py (ExportRenderer): New, derived from
429            ScreenRenderer. Renders Map, Legend and Scalebar for export.
430            (PrinterRenderer): New, derived from ExportRenderer. Replaces the old
431            PrintRender.
432    
433            * Thuban/UI/view.py (MapPrintout.__init__): Enhanced parameter set
434            to fullfil information needed for PrinterRenderer.
435            (MapCanvas.Export): New. Export Map (currently only to WMF on Win32).
436            (MapCanvas.Print): Adapted to new MapPrintout.
437            (OutputTransform): General calculations to transform from canvas
438            coordinates to export/printing devices.
439    
440            * Thuban/UI/mainwindow.py (MainWindow.ExportMap()): New. Added also
441            new method_command to call ExportMap, with platform dependency (only
442            __WXMSW__)
443      
444            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Position and Size
445            of scalebar drawing area as new parameters.
446            
447            * Thuban/Model/scalebar.py (roundInterval): round long instead of int
448    
449            * Thuban/UI/legend.py (ScalebarBitmap.__SetScale):
450            Update to extended scalebar.DrawScalebar header.
451    
452            * test/test_export.py: New, test Thuban.UI.view.OutputTransform()
453    
454            * test/test_scalebar.py: Made test executable as standalone.
455    
456    2003-05-16  Bernhard Herzog  <[email protected]>
457    
458            * Thuban/Model/table.py (Table): Remove this compatibility alias
459            for DBFTable.
460    
461            * test/test_table.py: Import DBFTable as Table because that alias
462            doesn't exist anymore.
463    
464            * Thuban/UI/classgen.py: Remove some unused imports
465    
466    2003-05-14  Jonathan Coles   <[email protected]>
467    
468            * Thuban/Model/classgen.py (ClassGenerator.GenSingletonsFromList):
469            Fix docstring.
470            (ClassGenerator.GenUniformDistribution): Fix spelling of method name.
471            (ClassGenerator.GenQuantiles): Use the left/right brackets and min/max
472            values of the supplied range to determine the beginning and end
473            bounds of the generated classes.
474    
475            * Thuban/Model/range.py (Range.number_re): Now accepts floats that
476            do not have a leading 0 (.5 is now accepted as well as 0.5).
477    
478            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Fix name of method
479            call to ClassGenerator.GenUniformDistribution.
480    
481            * Thuban/UI/projdialog.py (ProjFrame.__do_layout): Fix Windows
482            layout bug with the 'Projection' label.
483    
484            * test/support.py (FloatTestCase): New. Needed for the Range tests.
485    
486            * test/test_range.py: New. Imported from SciParam.
487    
488    2003-05-12  Jonathan Coles   <[email protected]>
489    
490            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Replace call
491            to table.UniqueValues() with calls that retrieve all the values
492            from the table. This will need to be replaced by a method on table
493            which can simply return the list (perhaps more efficiently).
494    
495    2003-05-12  Jonathan Coles   <[email protected]>
496    
497            The return value of ClassGenerator.CalculateQuantiles has changed.
498            Refer to the documentation for details.
499    
500            * test/test_classgen.py: Modified Quantile tests to use the
501            new return values.
502    
503            * Thuban/Model/classgen.py
504            (ClassGenerator.GenQuantiles): Add comments describing the parameters,
505            use new return values from CalculateQuantiles to produce the correct
506            range bounds in the Classification.
507            (ClassGenerator.CalculateQuantiles): Add more comments describing
508            the return values and parameters. Make minor adjustments to improve
509            the legibility of the code. Fix problem with adjusted not being set
510            in most cases.
511    
512    2003-05-12  Frank Koormann <[email protected]>
513            
514            * Thuban/Model/save.py (XMLWriter.encode()): Explicite call to unicode
515            and latin1. Fixes #1851 finally.
516    
517    2003-05-09  Jonathan Coles   <[email protected]>
518    
519            * test/test_classgen.py: New. Tests the Quantile algorithm.
520    
521            * Thuban/Model/classgen.py (ClassGenerator.CalculateQuantiles):
522            Clean up debugging statement, add comments, fix a small bug in the
523            returned adjusted percentiles.
524            
525    2003-05-09  Jonathan Coles   <[email protected]>
526    
527            Introduces Range class from SciParam into the ClassGroupRange class,
528            and such ranges can now be saved and loaded from disk.
529    
530            Quantiles are now available in the Classification Generator.
531    
532            Initial support for building Queries on a table. Doesn't do anything
533            but run some tests.
534    
535            * Thuban/Model/classification.py: Explicit imports.
536            (ClassGroupRange): Use the Range class to store the underlying
537            range information. The interface remains the same, except for
538            GetRange(), and you can also supply a Range object as the min
539            parameter to SetRange or __init__.
540    
541            * Thuban/Model/load.py (XMLReader.encode): New. Encodes the given
542            string appropriately for use in Thuban. Fixes RTbug #1851.
543            (SessionLoader.end_projection): Handle the context of the
544            projection tag a bit better by looking at what objects are not
545            None. There was an assumption that a projection tag for a map
546            could occur before any layers.
547            (SessionLoader.start_clrange): Provide backward compatibility for
548            reading min/max values as well as the new range parameter.
549    
550            * Thuban/Model/map.py: Explicit imports.
551    
552            * Thuban/Model/resource.py: Import _.
553            (ProjFileSaver.write): write header using projfile.dtd.
554    
555            * Thuban/Model/save.py: Explicit imports.
556            (XMLWriter.encode): New. Encode the given string from a format
557            used by Thuban into UTF-8. Fixes RTbug #1851.
558    
559            * Thuban/UI/classgen.py: Explicit imports.
560            (ClassGenDialog.__init__): Clean up the code and add support
561            for Quantiles.
562            (ClassGenDialog.OnOK): Add support for Quantiles.
563            (GenQuantilesPanel): New. Input panel for Quantiles.
564            (ClassGenerator, CustomRamp, MonochromaticRamp, GreyRamp, RedRamp,
565            GreenRamp, BlueRamp, HotToColdRamp): Move to Thuban/Model/classgen.py
566    
567            * Thuban/Model/classgen.py: New. Contains all the classes named above.
568    
569            * Thuban/UI/classifier.py: Explicit imports.
570            (ClassTable.GetValueAsCust, ClassTable.__ParseInput,
571            ClassTable.SetValueAsCustom): Reworked to use new Range class.
572    
573            * Thuban/UI/legend.py: Explicit imports.
574    
575            * Thuban/UI/mainwindow.py: Add support for the Join Dialog. Added
576            a Table menu and associated method calls.
577            (MainWindow.choose_color): Removed. No longer needed.
578    
579            * Thuban/UI/projdialog.py (ProjFrame.__VerifyButtons): Save button
580            should be disabled if no projection is selected in the available
581            list.
582    
583            * Thuban/UI/renderer.py: Explicit imports.
584    
585            * Thuban/UI/tableview.py (TableGrid.OnRangeSelect): Fix some issues
586            with correctly selecting the rows and issuing the right events.
587            Be sure to call Skip() to allow the grid to do some of its own
588            handling which allows the rows to actually be selected.
589            (LayerTableGrid.select_shapes): Rename from select_shape. Supports
590            selecting multiple shapes.
591            (LayerTableFrame): Support for building Queries.
592            (LayerTableFrame.select_shapes): Allow multiple shapes to be selected.
593    
594            * Thuban/UI/tree.py: Explicit imports.
595    
596            * Thuban/UI/view.py (MapCanvas): Delegate "SelectedShapes" so the
597            table view can call it.
598    
599            * test/test_classification.py: Explicit imports.
600            (TestClassification.test_ClassGroupRange): Fix test for new
601            Range class.
602    
603            * Doc/thuban.dtd: Add range parameter for clrange.
604    
605            * Thuban/Model/range.py: Taken from SciParam. Used as the underlying
606            object in ClassGroupRange, and also uesd for inputting ranges in
607            the classifer table and elsewhere.
608    
609            * Thuban/UI/join.py: New. Initial Join dialog. No real functionality
610            yet.
611    
612    2003-05-09  Frank Koormann <[email protected]>
613    
614            * Thuban/UI/scalebar.py (DrawScaleBar): Draw only if interval > 0.0.
615    
616    2003-05-08  Frank Koormann <[email protected]>
617    
618            Coding style updates
619    
620            * test/test_scalebar.py: Replaced tab indentation by spaces.
621    
622            * Thuban/UI/scalebar.py: Explicit imports.
623    
624    2003-05-08  Frank Koormann <[email protected]>
625    
626            * Thuban/UI/scalebar.py
627            (ScaleBar.DrawScalebar): Format string bug fixed.
628    
629    2003-05-08  Frank Koormann <[email protected]>
630    
631            Reorganization of scalebar component (no wx in Thuban/Model)
632    
633            * Thuban/Model/scalebar.py: Rendering moved to Thuban/UI/scalebar.py
634            (deriveInterval):
635            Calculate scalebar interval and unit which fits in width for scale.
636            (roundInterval): Round float.
637    
638            * Thuban/UI/scalebar.py (ScaleBar): Scalebar rendering
639    
640            * test/test_scalebar.py: Test for Thuban/Model/scalebar.py methods.
641    
642            * Thuban/UI/legend.py: Import Thuban.UI.scalebar
643    
644    2003-05-08  Frank Koormann <[email protected]>
645    
646            * Thuban/UI/legend.py (ScalebarBitmap.SetCanvas):
647            Initialize ScaleBar with canvas.map
648    
649            * Thuban/Model/scalebar.py (ScaleBar.roundInterval()): New,
650            round intervals to display smarter lengths
651            (ScaleBar.DrawScalebar): Draw Scalebar only if the map contains a
652            layer. If the maps has no projection applied grey the scalebar.
653    
654    2003-05-07  Frank Koormann <[email protected]>
655            
656            Basic Scalebar features added.
657    
658            * Thuban/Model/scalebar.py (ScaleBar): New, scalebar rendering.
659    
660            * Thuban/UI/legend.py (LegendPanel): Added scalebar bitmap
661            (ScaleBarBitmap): New, links the scalebar bitmap with view messages
662            and the renderer.
663    
664            * Thuban/UI/view.py (MapCanvas.set_view_transform): Issue SCALE_CHANGED.
665    
666            * Thuban/UI/messages.py: SCALE_CHANGED added.
667    
668    2003-05-07  Bernhard Herzog  <[email protected]>
669    
670            * Thuban/Model/session.py (Session.__init__): New instance
671            variable shapestores to hold a list of all open shapestore objects
672            (Session.ShapeStores): New. Accessor method for the shapestores
673            list.
674            (Session._add_shapestore, Session._clean_weak_store_refs): New.
675            Internal methods to maintain the shapestores list.
676            (Session.Tables): New. Return all tables open in the session.
677            (Session.OpenShapefile): Insert the new ShapeStore into the
678            shapestores list.
679    
680            * test/test_session.py (TestSessionSimple.test_initial_state): Add
681            tests for ShapeStores and Tables
682            (TestSessionWithContent.test_shape_stores)
683            (TestSessionWithContent.test_tables): New. Test cases for
684            ShapeStores and Tables
685    
686    2003-05-07  Bernhard Herzog  <[email protected]>
687    
688            * Thuban/Model/transientdb.py (TransientTableBase.ReadRowAsDict):
689            Add comments about the optimizations used.
690            (AutoTransientTable.ReadValue, TransientTableBase.ReadValue): New.
691            Implement the ReadValue table interface method.
692    
693            * test/test_transientdb.py
694            (TestTransientTable.run_iceland_political_tests)
695            (TestTransientTable.test_transient_joined_table): Add tests for
696            ReadValue
697    
698    2003-05-07  Frank Koormann <[email protected]>
699    
700            * Resources/Bitmaps/fulllayerextent.xpm,
701            Resources/Bitmaps/fullselextent.xpm: Replaced the place holders with
702            new icons.
703    
704    2003-05-06  Bernhard Herzog  <[email protected]>
705    
706            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
707            New. Simply delegate to the transient table's version.
708    
709            * test/test_transientdb.py
710            (TestTransientTable.test_auto_transient_table_query): New. Test
711            case for AutoTransientTable's SimpleQuery
712    
713    2003-05-06  Bernhard Herzog  <[email protected]>
714    
715            * Thuban/Model/transientdb.py (TransientTableBase.SimpleQuery):
716            Implement a simple query method for the query dialog
717            (TransientTableBase.create): Add an INTEGER PRIMARY KEY that holds
718            the row index or shapeid.
719            (TransientTable.create): Insert the right value of the row index
720            (TransientJoinedTable.create): Copy the row index of the left
721            table to the joined result table
722    
723            * test/test_transientdb.py
724            (TestTransientTable.test_transient_table_read_twice): Fix
725            doc-string
726            (TestTransientTable.test_transient_table_query): New. Test for the
727            SimpleQuery method
728    
729    2003-05-06  Bernhard Herzog  <[email protected]>
730    
731            Convert all table users to use the new table interface. This only
732            covers Thuban itself, not GREAT-ER or other applications built on
733            Thuban yet, so the compatibility interface stays in place for the
734            time being but it now issues DeprecationWarnings.
735    
736            Finally, the new Table interface has a new method, HasColumn.
737    
738            * Thuban/Model/table.py (OldTableInterfaceMixin): All methods
739            issue deprecation warnings when they're. The warnings refer to the
740            caller of the method.
741            (OldTableInterfaceMixin.__deprecation_warning): New. Helper method
742            for the deprecation warnings
743    
744            * test/test_table.py: Ignore the deprecation warnings for the old
745            table in the tests in this module. The purpose of the tests is to
746            test the old interface, after all.
747    
748            * test/test_transientdb.py
749            (TestTransientTable.run_iceland_political_tests): Use the
750            constants for the types. Add a test for HasColumn
751            (TestTransientTable.test_transient_joined_table): Adapt to new
752            table interface. Add a test for HasColumn
753            (TestTransientTable.test_transient_table_read_twice): Adapt to new
754            table interface
755    
756            * Thuban/UI/tableview.py (DataTable.SetTable, DataTable.GetValue):
757            Adapt to new table interface
758    
759            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Adapt to
760            new table interface
761    
762            * Thuban/UI/controls.py (RecordListCtrl.fill_list)
763            (RecordTable.SetTable): Adapt to new table interface
764    
765            * Thuban/UI/classifier.py (Classifier.__init__)
766            (Classifier.__init__): Adapt to new table interface
767    
768            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
769            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve): Adapt
770            to new table interface
771    
772            * Thuban/Model/transientdb.py (TransientTableBase.HasColumn)
773            (AutoTransientTable.HasColumn): Implement the new table interface
774            method
775            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ValueRange)
776            (AutoTransientTable.UniqueValues): Adapt to new table interface
777    
778            * Thuban/Model/layer.py (Layer.SetShapeStore, Layer.GetFieldType):
779            Adapt to new table interface
780    
781            * test/test_layer.py (TestLayer.open_shapefile): Helper method to
782            simplify opening shapefiles a bit easier.
783            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
784            (TestLayer.test_point_layer): Use the new helper method
785            (TestLayer.test_get_field_type): New. Test for the GetFieldType
786            method
787    
788            * test/test_dbf_table.py (TestDBFTable.test_has_column): Test for
789            the new table method
790    
791            * test/test_memory_table.py (TestMemoryTable.test_has_column):
792            Test for the new table method HasColumn
793    
794  2003-05-06  Jonathan Coles   <[email protected]>  2003-05-06  Jonathan Coles   <[email protected]>
795    
796          Addresses the "Selection Extent" wish of RTbug #1787.          Addresses the "Selection Extent" wish of RTbug #1787.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26