/[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 833 by jonathan, Tue May 6 12:07:44 2003 UTC revision 919 by bh, Fri May 16 17:29:48 2003 UTC
# Line 1  Line 1 
1    2003-05-16  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/__init__.py: Remove the work-around for the locale bug
4            in wxPython (at least when usinvg wxGTK) prior to 2.4. The symptom
5            of the bug was that e.g. float("1.2") would fail. Thuban now
6            requires 2.4.x.
7            
8    2003-05-16  Frank Koormann   <[email protected]>
9    
10            Printing enhancement and WMF export (under Win32)
11    
12            * Thuban/UI/renderer.py (ExportRenderer): New, derived from
13            ScreenRenderer. Renders Map, Legend and Scalebar for export.
14            (PrinterRenderer): New, derived from ExportRenderer. Replaces the old
15            PrintRender.
16    
17            * Thuban/UI/view.py (MapPrintout.__init__): Enhanced parameter set
18            to fullfil information needed for PrinterRenderer.
19            (MapCanvas.Export): New. Export Map (currently only to WMF on Win32).
20            (MapCanvas.Print): Adapted to new MapPrintout.
21            (OutputTransform): General calculations to transform from canvas
22            coordinates to export/printing devices.
23    
24            * Thuban/UI/mainwindow.py (MainWindow.ExportMap()): New. Added also
25            new method_command to call ExportMap, with platform dependency (only
26            __WXMSW__)
27      
28            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Position and Size
29            of scalebar drawing area as new parameters.
30            
31            * Thuban/Model/scalebar.py (roundInterval): round long instead of int
32    
33            * Thuban/UI/legend.py (ScalebarBitmap.__SetScale):
34            Update to extended scalebar.DrawScalebar header.
35    
36            * test/test_export.py: New, test Thuban.UI.view.OutputTransform()
37    
38            * test/test_scalebar.py: Made test executable as standalone.
39    
40    2003-05-16  Bernhard Herzog  <[email protected]>
41    
42            * Thuban/Model/table.py (Table): Remove this compatibility alias
43            for DBFTable.
44    
45            * test/test_table.py: Import DBFTable as Table because that alias
46            doesn't exist anymore.
47    
48            * Thuban/UI/classgen.py: Remove some unused imports
49    
50    2003-05-14  Jonathan Coles   <[email protected]>
51    
52            * Thuban/Model/classgen.py (ClassGenerator.GenSingletonsFromList):
53            Fix docstring.
54            (ClassGenerator.GenUniformDistribution): Fix spelling of method name.
55            (ClassGenerator.GenQuantiles): Use the left/right brackets and min/max
56            values of the supplied range to determine the beginning and end
57            bounds of the generated classes.
58    
59            * Thuban/Model/range.py (Range.number_re): Now accepts floats that
60            do not have a leading 0 (.5 is now accepted as well as 0.5).
61    
62            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Fix name of method
63            call to ClassGenerator.GenUniformDistribution.
64    
65            * Thuban/UI/projdialog.py (ProjFrame.__do_layout): Fix Windows
66            layout bug with the 'Projection' label.
67    
68            * test/support.py (FloatTestCase): New. Needed for the Range tests.
69    
70            * test/test_range.py: New. Imported from SciParam.
71    
72    2003-05-12  Jonathan Coles   <[email protected]>
73    
74            * Thuban/UI/classgen.py (GenQuantilesPanel.GetList): Replace call
75            to table.UniqueValues() with calls that retrieve all the values
76            from the table. This will need to be replaced by a method on table
77            which can simply return the list (perhaps more efficiently).
78    
79    2003-05-12  Jonathan Coles   <[email protected]>
80    
81            The return value of ClassGenerator.CalculateQuantiles has changed.
82            Refer to the documentation for details.
83    
84            * test/test_classgen.py: Modified Quantile tests to use the
85            new return values.
86    
87            * Thuban/Model/classgen.py
88            (ClassGenerator.GenQuantiles): Add comments describing the parameters,
89            use new return values from CalculateQuantiles to produce the correct
90            range bounds in the Classification.
91            (ClassGenerator.CalculateQuantiles): Add more comments describing
92            the return values and parameters. Make minor adjustments to improve
93            the legibility of the code. Fix problem with adjusted not being set
94            in most cases.
95    
96    2003-05-12  Frank Koormann <[email protected]>
97            
98            * Thuban/Model/save.py (XMLWriter.encode()): Explicite call to unicode
99            and latin1. Fixes #1851 finally.
100    
101    2003-05-09  Jonathan Coles   <[email protected]>
102    
103            * test/test_classgen.py: New. Tests the Quantile algorithm.
104    
105            * Thuban/Model/classgen.py (ClassGenerator.CalculateQuantiles):
106            Clean up debugging statement, add comments, fix a small bug in the
107            returned adjusted percentiles.
108            
109    2003-05-09  Jonathan Coles   <[email protected]>
110    
111            Introduces Range class from SciParam into the ClassGroupRange class,
112            and such ranges can now be saved and loaded from disk.
113    
114            Quantiles are now available in the Classification Generator.
115    
116            Initial support for building Queries on a table. Doesn't do anything
117            but run some tests.
118    
119            * Thuban/Model/classification.py: Explicit imports.
120            (ClassGroupRange): Use the Range class to store the underlying
121            range information. The interface remains the same, except for
122            GetRange(), and you can also supply a Range object as the min
123            parameter to SetRange or __init__.
124    
125            * Thuban/Model/load.py (XMLReader.encode): New. Encodes the given
126            string appropriately for use in Thuban. Fixes RTbug #1851.
127            (SessionLoader.end_projection): Handle the context of the
128            projection tag a bit better by looking at what objects are not
129            None. There was an assumption that a projection tag for a map
130            could occur before any layers.
131            (SessionLoader.start_clrange): Provide backward compatibility for
132            reading min/max values as well as the new range parameter.
133    
134            * Thuban/Model/map.py: Explicit imports.
135    
136            * Thuban/Model/resource.py: Import _.
137            (ProjFileSaver.write): write header using projfile.dtd.
138    
139            * Thuban/Model/save.py: Explicit imports.
140            (XMLWriter.encode): New. Encode the given string from a format
141            used by Thuban into UTF-8. Fixes RTbug #1851.
142    
143            * Thuban/UI/classgen.py: Explicit imports.
144            (ClassGenDialog.__init__): Clean up the code and add support
145            for Quantiles.
146            (ClassGenDialog.OnOK): Add support for Quantiles.
147            (GenQuantilesPanel): New. Input panel for Quantiles.
148            (ClassGenerator, CustomRamp, MonochromaticRamp, GreyRamp, RedRamp,
149            GreenRamp, BlueRamp, HotToColdRamp): Move to Thuban/Model/classgen.py
150    
151            * Thuban/Model/classgen.py: New. Contains all the classes named above.
152    
153            * Thuban/UI/classifier.py: Explicit imports.
154            (ClassTable.GetValueAsCust, ClassTable.__ParseInput,
155            ClassTable.SetValueAsCustom): Reworked to use new Range class.
156    
157            * Thuban/UI/legend.py: Explicit imports.
158    
159            * Thuban/UI/mainwindow.py: Add support for the Join Dialog. Added
160            a Table menu and associated method calls.
161            (MainWindow.choose_color): Removed. No longer needed.
162    
163            * Thuban/UI/projdialog.py (ProjFrame.__VerifyButtons): Save button
164            should be disabled if no projection is selected in the available
165            list.
166    
167            * Thuban/UI/renderer.py: Explicit imports.
168    
169            * Thuban/UI/tableview.py (TableGrid.OnRangeSelect): Fix some issues
170            with correctly selecting the rows and issuing the right events.
171            Be sure to call Skip() to allow the grid to do some of its own
172            handling which allows the rows to actually be selected.
173            (LayerTableGrid.select_shapes): Rename from select_shape. Supports
174            selecting multiple shapes.
175            (LayerTableFrame): Support for building Queries.
176            (LayerTableFrame.select_shapes): Allow multiple shapes to be selected.
177    
178            * Thuban/UI/tree.py: Explicit imports.
179    
180            * Thuban/UI/view.py (MapCanvas): Delegate "SelectedShapes" so the
181            table view can call it.
182    
183            * test/test_classification.py: Explicit imports.
184            (TestClassification.test_ClassGroupRange): Fix test for new
185            Range class.
186    
187            * Doc/thuban.dtd: Add range parameter for clrange.
188    
189            * Thuban/Model/range.py: Taken from SciParam. Used as the underlying
190            object in ClassGroupRange, and also uesd for inputting ranges in
191            the classifer table and elsewhere.
192    
193            * Thuban/UI/join.py: New. Initial Join dialog. No real functionality
194            yet.
195    
196    2003-05-09  Frank Koormann <[email protected]>
197    
198            * Thuban/UI/scalebar.py (DrawScaleBar): Draw only if interval > 0.0.
199    
200    2003-05-08  Frank Koormann <[email protected]>
201    
202            Coding style updates
203    
204            * test/test_scalebar.py: Replaced tab indentation by spaces.
205    
206            * Thuban/UI/scalebar.py: Explicit imports.
207    
208    2003-05-08  Frank Koormann <[email protected]>
209    
210            * Thuban/UI/scalebar.py
211            (ScaleBar.DrawScalebar): Format string bug fixed.
212    
213    2003-05-08  Frank Koormann <[email protected]>
214    
215            Reorganization of scalebar component (no wx in Thuban/Model)
216    
217            * Thuban/Model/scalebar.py: Rendering moved to Thuban/UI/scalebar.py
218            (deriveInterval):
219            Calculate scalebar interval and unit which fits in width for scale.
220            (roundInterval): Round float.
221    
222            * Thuban/UI/scalebar.py (ScaleBar): Scalebar rendering
223    
224            * test/test_scalebar.py: Test for Thuban/Model/scalebar.py methods.
225    
226            * Thuban/UI/legend.py: Import Thuban.UI.scalebar
227    
228    2003-05-08  Frank Koormann <[email protected]>
229    
230            * Thuban/UI/legend.py (ScalebarBitmap.SetCanvas):
231            Initialize ScaleBar with canvas.map
232    
233            * Thuban/Model/scalebar.py (ScaleBar.roundInterval()): New,
234            round intervals to display smarter lengths
235            (ScaleBar.DrawScalebar): Draw Scalebar only if the map contains a
236            layer. If the maps has no projection applied grey the scalebar.
237    
238    2003-05-07  Frank Koormann <[email protected]>
239            
240            Basic Scalebar features added.
241    
242            * Thuban/Model/scalebar.py (ScaleBar): New, scalebar rendering.
243    
244            * Thuban/UI/legend.py (LegendPanel): Added scalebar bitmap
245            (ScaleBarBitmap): New, links the scalebar bitmap with view messages
246            and the renderer.
247    
248            * Thuban/UI/view.py (MapCanvas.set_view_transform): Issue SCALE_CHANGED.
249    
250            * Thuban/UI/messages.py: SCALE_CHANGED added.
251    
252    2003-05-07  Bernhard Herzog  <[email protected]>
253    
254            * Thuban/Model/session.py (Session.__init__): New instance
255            variable shapestores to hold a list of all open shapestore objects
256            (Session.ShapeStores): New. Accessor method for the shapestores
257            list.
258            (Session._add_shapestore, Session._clean_weak_store_refs): New.
259            Internal methods to maintain the shapestores list.
260            (Session.Tables): New. Return all tables open in the session.
261            (Session.OpenShapefile): Insert the new ShapeStore into the
262            shapestores list.
263    
264            * test/test_session.py (TestSessionSimple.test_initial_state): Add
265            tests for ShapeStores and Tables
266            (TestSessionWithContent.test_shape_stores)
267            (TestSessionWithContent.test_tables): New. Test cases for
268            ShapeStores and Tables
269    
270    2003-05-07  Bernhard Herzog  <[email protected]>
271    
272            * Thuban/Model/transientdb.py (TransientTableBase.ReadRowAsDict):
273            Add comments about the optimizations used.
274            (AutoTransientTable.ReadValue, TransientTableBase.ReadValue): New.
275            Implement the ReadValue table interface method.
276    
277            * test/test_transientdb.py
278            (TestTransientTable.run_iceland_political_tests)
279            (TestTransientTable.test_transient_joined_table): Add tests for
280            ReadValue
281    
282    2003-05-07  Frank Koormann <[email protected]>
283    
284            * Resources/Bitmaps/fulllayerextent.xpm,
285            Resources/Bitmaps/fullselextent.xpm: Replaced the place holders with
286            new icons.
287    
288    2003-05-06  Bernhard Herzog  <[email protected]>
289    
290            * Thuban/Model/transientdb.py (AutoTransientTable.SimpleQuery):
291            New. Simply delegate to the transient table's version.
292    
293            * test/test_transientdb.py
294            (TestTransientTable.test_auto_transient_table_query): New. Test
295            case for AutoTransientTable's SimpleQuery
296    
297    2003-05-06  Bernhard Herzog  <[email protected]>
298    
299            * Thuban/Model/transientdb.py (TransientTableBase.SimpleQuery):
300            Implement a simple query method for the query dialog
301            (TransientTableBase.create): Add an INTEGER PRIMARY KEY that holds
302            the row index or shapeid.
303            (TransientTable.create): Insert the right value of the row index
304            (TransientJoinedTable.create): Copy the row index of the left
305            table to the joined result table
306    
307            * test/test_transientdb.py
308            (TestTransientTable.test_transient_table_read_twice): Fix
309            doc-string
310            (TestTransientTable.test_transient_table_query): New. Test for the
311            SimpleQuery method
312    
313    2003-05-06  Bernhard Herzog  <[email protected]>
314    
315            Convert all table users to use the new table interface. This only
316            covers Thuban itself, not GREAT-ER or other applications built on
317            Thuban yet, so the compatibility interface stays in place for the
318            time being but it now issues DeprecationWarnings.
319    
320            Finally, the new Table interface has a new method, HasColumn.
321    
322            * Thuban/Model/table.py (OldTableInterfaceMixin): All methods
323            issue deprecation warnings when they're. The warnings refer to the
324            caller of the method.
325            (OldTableInterfaceMixin.__deprecation_warning): New. Helper method
326            for the deprecation warnings
327    
328            * test/test_table.py: Ignore the deprecation warnings for the old
329            table in the tests in this module. The purpose of the tests is to
330            test the old interface, after all.
331    
332            * test/test_transientdb.py
333            (TestTransientTable.run_iceland_political_tests): Use the
334            constants for the types. Add a test for HasColumn
335            (TestTransientTable.test_transient_joined_table): Adapt to new
336            table interface. Add a test for HasColumn
337            (TestTransientTable.test_transient_table_read_twice): Adapt to new
338            table interface
339    
340            * Thuban/UI/tableview.py (DataTable.SetTable, DataTable.GetValue):
341            Adapt to new table interface
342    
343            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Adapt to
344            new table interface
345    
346            * Thuban/UI/controls.py (RecordListCtrl.fill_list)
347            (RecordTable.SetTable): Adapt to new table interface
348    
349            * Thuban/UI/classifier.py (Classifier.__init__)
350            (Classifier.__init__): Adapt to new table interface
351    
352            * Thuban/UI/classgen.py (ClassGenDialog.__init__)
353            (GenUniformPanel._OnRetrieve, GenUniquePanel._OnRetrieve): Adapt
354            to new table interface
355    
356            * Thuban/Model/transientdb.py (TransientTableBase.HasColumn)
357            (AutoTransientTable.HasColumn): Implement the new table interface
358            method
359            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ValueRange)
360            (AutoTransientTable.UniqueValues): Adapt to new table interface
361    
362            * Thuban/Model/layer.py (Layer.SetShapeStore, Layer.GetFieldType):
363            Adapt to new table interface
364    
365            * test/test_layer.py (TestLayer.open_shapefile): Helper method to
366            simplify opening shapefiles a bit easier.
367            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
368            (TestLayer.test_point_layer): Use the new helper method
369            (TestLayer.test_get_field_type): New. Test for the GetFieldType
370            method
371    
372            * test/test_dbf_table.py (TestDBFTable.test_has_column): Test for
373            the new table method
374    
375            * test/test_memory_table.py (TestMemoryTable.test_has_column):
376            Test for the new table method HasColumn
377    
378  2003-05-06  Jonathan Coles   <[email protected]>  2003-05-06  Jonathan Coles   <[email protected]>
379    
380          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.919

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26