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

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

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

revision 817 by jonathan, Mon May 5 15:05:36 2003 UTC revision 927 by frank, Mon May 19 12:09:25 2003 UTC
# Line 1  Line 1 
1    2003-05-19  Frank Koormann  <[email protected]>
2    
3            * Thuban/version.py (get_changelog_date):
4            Catch exceptions if ChangeLog does not exist.
5    
6            * Thuban/UI/view.py (MapCanvas.Export): Bugfix
7    
8    2003-05-19  Frank Koormann  <[email protected]>
9    
10            Extended version information for Thuban
11    
12            * Thuban/version.py: New, version information for Thuban: Last
13            modification date and last ChangeLog entry date.
14    
15            * Thuban/UI/mainwindow.py (MainWindow.About()): Extended version
16            information: Display Thuban, wxPython and Python version.
17    
18    2003-05-16  Bernhard Herzog  <[email protected]>
19    
20            * Thuban/Model/save.py: Remove some unused imports including the
21            __future__ import for nested_scopes as Thuban relies on Python 2.2
22            now.
23            (XMLWriter.encode): Remove the special case for a None argument.
24            In the saver encode is always called with a string argument.
25    
26    2003-05-16  Bernhard Herzog  <[email protected]>
27    
28            * Thuban/UI/__init__.py: Remove the work-around for the locale bug
29            in wxPython (at least when usinvg wxGTK) prior to 2.4. The symptom
30            of the bug was that e.g. float("1.2") would fail. Thuban now
31            requires 2.4.x.
32            
33    2003-05-16  Frank Koormann   <[email protected]>
34    
35            Printing enhancement and WMF export (under Win32)
36    
37            * Thuban/UI/renderer.py (ExportRenderer): New, derived from
38            ScreenRenderer. Renders Map, Legend and Scalebar for export.
39            (PrinterRenderer): New, derived from ExportRenderer. Replaces the old
40            PrintRender.
41    
42            * Thuban/UI/view.py (MapPrintout.__init__): Enhanced parameter set
43            to fullfil information needed for PrinterRenderer.
44            (MapCanvas.Export): New. Export Map (currently only to WMF on Win32).
45            (MapCanvas.Print): Adapted to new MapPrintout.
46            (OutputTransform): General calculations to transform from canvas
47            coordinates to export/printing devices.
48    
49            * Thuban/UI/mainwindow.py (MainWindow.ExportMap()): New. Added also
50            new method_command to call ExportMap, with platform dependency (only
51            __WXMSW__)
52      
53            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Position and Size
54            of scalebar drawing area as new parameters.
55            
56            * Thuban/Model/scalebar.py (roundInterval): round long instead of int
57    
58            * Thuban/UI/legend.py (ScalebarBitmap.__SetScale):
59            Update to extended scalebar.DrawScalebar header.
60    
61            * test/test_export.py: New, test Thuban.UI.view.OutputTransform()
62    
63            * test/test_scalebar.py: Made test executable as standalone.
64    
65    2003-05-16  Bernhard Herzog  <[email protected]>
66    
67            * Thuban/Model/table.py (Table): Remove this compatibility alias
68            for DBFTable.
69    
70            * test/test_table.py: Import DBFTable as Table because that alias
71            doesn't exist anymore.
72    
73            * Thuban/UI/classgen.py: Remove some unused imports
74    
75    2003-05-14  Jonathan Coles   <[email protected]>
76    
77            * Thuban/Model/classgen.py (ClassGenerator.GenSingletonsFromList):
78            Fix docstring.
79            (ClassGenerator.GenUniformDistribution): Fix spelling of method name.
80            (ClassGenerator.GenQuantiles): Use the left/right brackets and min/max
81            values of the supplied range to determine the beginning and end
82            bounds of the generated classes.
83    
84            * Thuban/Model/range.py (Range.number_re): Now accepts floats that
85            do not have a leading 0 (.5 is now accepted as well as 0.5).
86    
87            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Fix name of method
88            call to ClassGenerator.GenUniformDistribution.
89    
90            * Thuban/UI/projdialog.py (ProjFrame.__do_layout): Fix Windows
91            layout bug with the 'Projection' label.
92    
93            * test/support.py (FloatTestCase): New. Needed for the Range tests.
94    
95            * test/test_range.py: New. Imported from SciParam.
96    
97    2003-05-12  Jonathan Coles   <[email protected]>
98    
99            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Replace call
100            to table.UniqueValues() with calls that retrieve all the values
101            from the table. This will need to be replaced by a method on table
102            which can simply return the list (perhaps more efficiently).
103    
104    2003-05-12  Jonathan Coles   <[email protected]>
105    
106            The return value of ClassGenerator.CalculateQuantiles has changed.
107            Refer to the documentation for details.
108    
109            * test/test_classgen.py: Modified Quantile tests to use the
110            new return values.
111    
112            * Thuban/Model/classgen.py
113            (ClassGenerator.GenQuantiles): Add comments describing the parameters,
114            use new return values from CalculateQuantiles to produce the correct
115            range bounds in the Classification.
116            (ClassGenerator.CalculateQuantiles): Add more comments describing
117            the return values and parameters. Make minor adjustments to improve
118            the legibility of the code. Fix problem with adjusted not being set
119            in most cases.
120    
121    2003-05-12  Frank Koormann <[email protected]>
122            
123            * Thuban/Model/save.py (XMLWriter.encode()): Explicite call to unicode
124            and latin1. Fixes #1851 finally.
125    
126    2003-05-09  Jonathan Coles   <[email protected]>
127    
128            * test/test_classgen.py: New. Tests the Quantile algorithm.
129    
130            * Thuban/Model/classgen.py (ClassGenerator.CalculateQuantiles):
131            Clean up debugging statement, add comments, fix a small bug in the
132            returned adjusted percentiles.
133            
134    2003-05-09  Jonathan Coles   <[email protected]>
135    
136            Introduces Range class from SciParam into the ClassGroupRange class,
137            and such ranges can now be saved and loaded from disk.
138    
139            Quantiles are now available in the Classification Generator.
140    
141            Initial support for building Queries on a table. Doesn't do anything
142            but run some tests.
143    
144            * Thuban/Model/classification.py: Explicit imports.
145            (ClassGroupRange): Use the Range class to store the underlying
146            range information. The interface remains the same, except for
147            GetRange(), and you can also supply a Range object as the min
148            parameter to SetRange or __init__.
149    
150            * Thuban/Model/load.py (XMLReader.encode): New. Encodes the given
151            string appropriately for use in Thuban. Fixes RTbug #1851.
152            (SessionLoader.end_projection): Handle the context of the
153            projection tag a bit better by looking at what objects are not
154            None. There was an assumption that a projection tag for a map
155            could occur before any layers.
156            (SessionLoader.start_clrange): Provide backward compatibility for
157            reading min/max values as well as the new range parameter.
158    
159            * Thuban/Model/map.py: Explicit imports.
160    
161            * Thuban/Model/resource.py: Import _.
162            (ProjFileSaver.write): write header using projfile.dtd.
163    
164            * Thuban/Model/save.py: Explicit imports.
165            (XMLWriter.encode): New. Encode the given string from a format
166            used by Thuban into UTF-8. Fixes RTbug #1851.
167    
168            * Thuban/UI/classgen.py: Explicit imports.
169            (ClassGenDialog.__init__): Clean up the code and add support
170            for Quantiles.
171            (ClassGenDialog.OnOK): Add support for Quantiles.
172            (GenQuantilesPanel): New. Input panel for Quantiles.
173            (ClassGenerator, CustomRamp, MonochromaticRamp, GreyRamp, RedRamp,
174            GreenRamp, BlueRamp, HotToColdRamp): Move to Thuban/Model/classgen.py
175    
176            * Thuban/Model/classgen.py: New. Contains all the classes named above.
177    
178            * Thuban/UI/classifier.py: Explicit imports.
179            (ClassTable.GetValueAsCust, ClassTable.__ParseInput,
180            ClassTable.SetValueAsCustom): Reworked to use new Range class.
181    
182            * Thuban/UI/legend.py: Explicit imports.
183    
184            * Thuban/UI/mainwindow.py: Add support for the Join Dialog. Added
185            a Table menu and associated method calls.
186            (MainWindow.choose_color): Removed. No longer needed.
187    
188            * Thuban/UI/projdialog.py (ProjFrame.__VerifyButtons): Save button
189            should be disabled if no projection is selected in the available
190            list.
191    
192            * Thuban/UI/renderer.py: Explicit imports.
193    
194            * Thuban/UI/tableview.py (TableGrid.OnRangeSelect): Fix some issues
195            with correctly selecting the rows and issuing the right events.
196            Be sure to call Skip() to allow the grid to do some of its own
197            handling which allows the rows to actually be selected.
198            (LayerTableGrid.select_shapes): Rename from select_shape. Supports
199            selecting multiple shapes.
200            (LayerTableFrame): Support for building Queries.
201            (LayerTableFrame.select_shapes): Allow multiple shapes to be selected.
202    
203            * Thuban/UI/tree.py: Explicit imports.
204    
205            * Thuban/UI/view.py (MapCanvas): Delegate "SelectedShapes" so the
206            table view can call it.
207    
208            * test/test_classification.py: Explicit imports.
209            (TestClassification.test_ClassGroupRange): Fix test for new
210            Range class.
211    
212            * Doc/thuban.dtd: Add range parameter for clrange.
213    
214            * Thuban/Model/range.py: Taken from SciParam. Used as the underlying
215            object in ClassGroupRange, and also uesd for inputting ranges in
216            the classifer table and elsewhere.
217    
218            * Thuban/UI/join.py: New. Initial Join dialog. No real functionality
219            yet.
220    
221    2003-05-09  Frank Koormann <[email protected]>
222    
223            * Thuban/UI/scalebar.py (DrawScaleBar): Draw only if interval > 0.0.
224    
225    2003-05-08  Frank Koormann <[email protected]>
226    
227            Coding style updates
228    
229            * test/test_scalebar.py: Replaced tab indentation by spaces.
230    
231            * Thuban/UI/scalebar.py: Explicit imports.
232    
233    2003-05-08  Frank Koormann <[email protected]>
234    
235            * Thuban/UI/scalebar.py
236            (ScaleBar.DrawScalebar): Format string bug fixed.
237    
238    2003-05-08  Frank Koormann <[email protected]>
239    
240            Reorganization of scalebar component (no wx in Thuban/Model)
241    
242            * Thuban/Model/scalebar.py: Rendering moved to Thuban/UI/scalebar.py
243            (deriveInterval):
244            Calculate scalebar interval and unit which fits in width for scale.
245            (roundInterval): Round float.
246    
247            * Thuban/UI/scalebar.py (ScaleBar): Scalebar rendering
248    
249            * test/test_scalebar.py: Test for Thuban/Model/scalebar.py methods.
250    
251            * Thuban/UI/legend.py: Import Thuban.UI.scalebar
252    
253    2003-05-08  Frank Koormann <[email protected]>
254    
255            * Thuban/UI/legend.py (ScalebarBitmap.SetCanvas):
256            Initialize ScaleBar with canvas.map
257    
258            * Thuban/Model/scalebar.py (ScaleBar.roundInterval()): New,
259            round intervals to display smarter lengths
260            (ScaleBar.DrawScalebar): Draw Scalebar only if the map contains a
261            layer. If the maps has no projection applied grey the scalebar.
262    
263    2003-05-07  Frank Koormann <[email protected]>
264            
265            Basic Scalebar features added.
266    
267            * Thuban/Model/scalebar.py (ScaleBar): New, scalebar rendering.
268    
269            * Thuban/UI/legend.py (LegendPanel): Added scalebar bitmap
270            (ScaleBarBitmap): New, links the scalebar bitmap with view messages
271            and the renderer.
272    
273            * Thuban/UI/view.py (MapCanvas.set_view_transform): Issue SCALE_CHANGED.
274    
275            * Thuban/UI/messages.py: SCALE_CHANGED added.
276    
277    2003-05-07  Bernhard Herzog  <[email protected]>
278    
279            * Thuban/Model/session.py (Session.__init__): New instance
280            variable shapestores to hold a list of all open shapestore objects
281            (Session.ShapeStores): New. Accessor method for the shapestores
282            list.
283            (Session._add_shapestore, Session._clean_weak_store_refs): New.
284            Internal methods to maintain the shapestores list.
285            (Session.Tables): New. Return all tables open in the session.
286            (Session.OpenShapefile): Insert the new ShapeStore into the
287            shapestores list.
288    
289            * test/test_session.py (TestSessionSimple.test_initial_state): Add
290            tests for ShapeStores and Tables
291            (TestSessionWithContent.test_shape_stores)
292            (TestSessionWithContent.test_tables): New. Test cases for
293            ShapeStores and Tables
294    
295    2003-05-07  Bernhard Herzog  <[email protected]>
296    
297            * Thuban/Model/transientdb.py (TransientTableBase.ReadRowAsDict):
298            Add comments about the optimizations used.
299            (AutoTransientTable.ReadValue, TransientTableBase.ReadValue): New.
300            Implement the ReadValue table interface method.
301    
302            * test/test_transientdb.py
303            (TestTransientTable.run_iceland_political_tests)
304            (TestTransientTable.test_transient_joined_table): Add tests for
305            ReadValue
306    
307    2003-05-07  Frank Koormann <[email protected]>
308    
309            * Resources/Bitmaps/fulllayerextent.xpm,
310            Resources/Bitmaps/fullselextent.xpm: Replaced the place holders with
311            new icons.
312    
313    2003-05-06  Bernhard Herzog  <[email protected]>
314    
315            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
316            New. Simply delegate to the transient table's version.
317    
318            * test/test_transientdb.py
319            (TestTransientTable.test_auto_transient_table_query): New. Test
320            case for AutoTransientTable's SimpleQuery
321    
322    2003-05-06  Bernhard Herzog  <[email protected]>
323    
324            * Thuban/Model/transientdb.py (TransientTableBase.SimpleQuery):
325            Implement a simple query method for the query dialog
326            (TransientTableBase.create): Add an INTEGER PRIMARY KEY that holds
327            the row index or shapeid.
328            (TransientTable.create): Insert the right value of the row index
329            (TransientJoinedTable.create): Copy the row index of the left
330            table to the joined result table
331    
332            * test/test_transientdb.py
333            (TestTransientTable.test_transient_table_read_twice): Fix
334            doc-string
335            (TestTransientTable.test_transient_table_query): New. Test for the
336            SimpleQuery method
337    
338    2003-05-06  Bernhard Herzog  <[email protected]>
339    
340            Convert all table users to use the new table interface. This only
341            covers Thuban itself, not GREAT-ER or other applications built on
342            Thuban yet, so the compatibility interface stays in place for the
343            time being but it now issues DeprecationWarnings.
344    
345            Finally, the new Table interface has a new method, HasColumn.
346    
347            * Thuban/Model/table.py (OldTableInterfaceMixin): All methods
348            issue deprecation warnings when they're. The warnings refer to the
349            caller of the method.
350            (OldTableInterfaceMixin.__deprecation_warning): New. Helper method
351            for the deprecation warnings
352    
353            * test/test_table.py: Ignore the deprecation warnings for the old
354            table in the tests in this module. The purpose of the tests is to
355            test the old interface, after all.
356    
357            * test/test_transientdb.py
358            (TestTransientTable.run_iceland_political_tests): Use the
359            constants for the types. Add a test for HasColumn
360            (TestTransientTable.test_transient_joined_table): Adapt to new
361            table interface. Add a test for HasColumn
362            (TestTransientTable.test_transient_table_read_twice): Adapt to new
363            table interface
364    
365            * Thuban/UI/tableview.py (DataTable.SetTable, DataTable.GetValue):
366            Adapt to new table interface
367    
368            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Adapt to
369            new table interface
370    
371            * Thuban/UI/controls.py (RecordListCtrl.fill_list)
372            (RecordTable.SetTable): Adapt to new table interface
373    
374            * Thuban/UI/classifier.py (Classifier.__init__)
375            (Classifier.__init__): Adapt to new table interface
376    
377            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
378            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve): Adapt
379            to new table interface
380    
381            * Thuban/Model/transientdb.py (TransientTableBase.HasColumn)
382            (AutoTransientTable.HasColumn): Implement the new table interface
383            method
384            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ValueRange)
385            (AutoTransientTable.UniqueValues): Adapt to new table interface
386    
387            * Thuban/Model/layer.py (Layer.SetShapeStore, Layer.GetFieldType):
388            Adapt to new table interface
389    
390            * test/test_layer.py (TestLayer.open_shapefile): Helper method to
391            simplify opening shapefiles a bit easier.
392            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
393            (TestLayer.test_point_layer): Use the new helper method
394            (TestLayer.test_get_field_type): New. Test for the GetFieldType
395            method
396    
397            * test/test_dbf_table.py (TestDBFTable.test_has_column): Test for
398            the new table method
399    
400            * test/test_memory_table.py (TestMemoryTable.test_has_column):
401            Test for the new table method HasColumn
402    
403    2003-05-06  Jonathan Coles   <[email protected]>
404    
405            Addresses the "Selection Extent" wish of RTbug #1787.
406    
407            * Resources/Bitmaps/fulllayerextent.xpm,
408            Resources/Bitmaps/fullselextent.xpm: Bitmaps for layer and selection
409            extent. These are just place holders for the real bitmaps.
410    
411            * Thuban/Model/layer.py (Shape): Since a Shape is immutable only
412            calculate the bounding box once (the first time compute_bbox() is
413            called).
414            (Layer.ShapesBoundingBox): New. Given a list of shape ids, return
415            the bounding box for the shapes in lat/long coordinates.
416    
417            * Thuban/UI/mainwindow.py: Added new "Full selection extent" menu
418            option.
419            (MainWindow.has_selected_shapes): New. Returns true if there are
420            any selected shapes.
421            (MainWindow.FullSelectionExtent): New. Calls
422            MapCanvas.FitSelectedToWindow() when the user selects the menu option.
423            (_has_selected_shapes): New. Returns true if there are any
424            selected shapes.
425    
426            * Thuban/UI/selection.py (Selection.HasSelectedShapes): New. Returns
427            true if there are any selected shapes.
428    
429            * Thuban/UI/view.py (MapCanvas): Added delegated method
430            HasSelectedShapes.
431            (MapCanvas.FitSelectedToWindow): New. Centers and scales any selected
432            shapes on the canvas using the map projection (if any).
433    
434            * test/test_layer.py (TestLayer.test_arc_layer): Add some tests
435            for Layer.ShapesBoundingBox().
436    
437    2003-05-06  Bernhard Herzog  <[email protected]>
438    
439            * Resources/Projections/defaults.proj: Fix spelling of Mercator
440    
441    2003-05-05  Jonathan Coles   <[email protected]>
442    
443            Addresses the "Full Layer Extent" wish of RTbug #1787.
444    
445            * Resources/Projections/defaults.proj: Added UK National Grid.
446    
447            * Thuban/UI/mainwindow.py: Added new "Full layer extent" menu option.
448            (MainWindow.FullLayerExtent): New. Calls MapCanvas.FitLayerToWindow()
449            when the user selects the menu option.
450    
451            * Thuban/UI/view.py (MapCanvas.FitLayerToWindow): New. Centers and
452            scales the given layer on the canvas using the map projection.
453    
454    2003-05-05  Bernhard Herzog  <[email protected]>
455    
456            Convert the table implementations to a new table interface. All
457            tables use a common mixin class to provide backwards compatibility
458            until all table users have been updated.
459    
460            * Thuban/Model/table.py (OldTableInterfaceMixin): Mixin class to
461            provide backwards compatibility for table classes implementing the
462            new interface
463            (DBFTable, MemoryTable): Implement the new table interface. Use
464            OldTableInterfaceMixin as base for compatibility
465            (DBFColumn, MemoryColumn): New. Column description for DBFTable
466            and MemoryTable resp.
467    
468            * test/test_dbf_table.py: New. Test cases for the DBFTable with
469            the new table interface.
470    
471            * test/test_memory_table.py: New. Test cases for the MemoryTable
472            with the new table interface.
473    
474            * test/test_table.py: Document the all tests in this file as only
475            for backwards compatibility. The equivalent tests for the new
476            interface are in test_memory_table.py and test_dbf_table.py
477            (MemoryTableTest.test_read): field_info should be returning tuples
478            with four items
479            (MemoryTableTest.test_write): Make doc-string a more precise.
480    
481            * Thuban/Model/transientdb.py (TransientTableBase): Convert to new
482            table interface. Derive from from OldTableInterfaceMixin for
483            compatibility.
484            (TransientTableBase.create): New intance variable column_map to
485            map from names and indices to column objects
486            (TransientTable.create): Use the new table interface of the input
487            table
488            (AutoTransientTable): Convert to new table interface. Derive from
489            from OldTableInterfaceMixin for compatibility.
490            (AutoTransientTable.write_record): Removed. It's not implemented
491            yet and we still have to decide how to handle writing with the new
492            table and data framework.
493    
494            * test/test_transientdb.py
495            (TestTransientTable.run_iceland_political_tests)
496            (TestTransientTable.test_transient_joined_table): Use the new
497            table interface
498    
499  2003-05-05  Jonathan Coles   <[email protected]>  2003-05-05  Jonathan Coles   <[email protected]>
500    
501          This is namely a collection of UI updates to improve user interactivity.          This is namely a collection of UI updates to improve user interactivity.

Legend:
Removed from v.817  
changed lines
  Added in v.927

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26