/[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 1349 by jonathan, Tue Jul 1 16:12:38 2003 UTC revision 1457 by bh, Fri Jul 18 14:56:29 2003 UTC
# Line 1  Line 1 
1    2003-07-18  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/viewport.py: Remove unused imports
4    
5            * Thuban/UI/view.py: Remove unused imports
6    
7    2003-07-18  Bernhard Herzog  <[email protected]>
8    
9            * test/test_export.py Remove unused imports. The OutputTransform
10            function is now in viewport.py and is called output_transform
11            (TestScalebar.test_output_transform)
12            (TestScalebar.test_OutputTransform): Renamed to
13            test_output_transform and updated to use output_transform instead
14            of OutputTransform
15    
16            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
17            renamed.
18            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
19            renamed to output_transform
20    
21            * Thuban/UI/viewport.py (OutputTransform, output_transform):
22            Rename to output_transform
23    
24    2003-07-18  Bernhard Herzog  <[email protected]>
25    
26            * Thuban/Model/layer.py (Layer.__init__): Rename
27            classificationField to classificatin_column and init it here so
28            that it can be used in SetClassificationColumn
29            (Layer.GetClassificationColumn, Layer.GetClassificationField):
30            Rename to GetClassificationColumn.
31            (Layer.SetClassificationColumn, Layer.SetClassificationField):
32            Rename to SetClassificationColumn and issue a LAYER_CHANGED
33            message if the column changes.
34            (Layer._classification_changed, Layer.ClassChanged): Rename to
35            _classification_changed. Update the callers.
36            (Layer.SetShapeStore): Further field->column renames.
37    
38            * Thuban/Model/load.py (SessionLoader.start_classification)
39            (SessionLoader.start_clpoint): Updates because of
40            field->column method name changes in the Layer class
41    
42            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
43            because of field->column method name changes in the Layer class
44    
45            * Thuban/UI/classifier.py (Classifier.__init__)
46            (Classifier._OnTry, Classifier._OnRevert): Updates because of
47            field->column method name changes in the Layer class
48    
49            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
50            because of field->column method name changes in the Layer class
51    
52            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
53            of field->column method name changes in the Layer class
54    
55            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
56            (SaveSessionTest.testClassifiedLayer): Update because of
57            field->column method name changes in the Layer class
58    
59            * test/test_layer.py (SetShapeStoreTests.setUp)
60            (SetShapeStoreTests.test_sanity): Update because of field->column
61            method name changes in the Layer class
62            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
63            (TestLayerModification.test_sanity)
64            (TestLayerModification.test_initial_settings): remove unsued code
65            and rename to test_sanity.
66            (TestLayerModification.test_set_classification): New test for
67            SetClassification and SetClassificationField.
68    
69    2003-07-18  Bernhard Herzog  <[email protected]>
70    
71            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
72            the non-fixed values as well. The old test would have accepted a
73            fixed ramp that only returnes the fixed properties
74    
75    2003-07-17  Jonathan Coles   <[email protected]>
76    
77            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
78            shots for the manual. The XCF file is the source image and
79            has additional layers to support changes.
80    
81            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
82    
83            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
84            Return both the new class and the field name.
85    
86            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
87            fit the map to the window as this changes any zoom level that
88            the user may have set.
89    
90    2003-07-16  Jonathan Coles   <[email protected]>
91    
92            * Thuban/Model/classgen.py (generate_singletons,
93            generate_uniform_distribution, generate_quantiles): Remove
94            fixes parameter, but maintain the same functionality by having
95            the calling function pass a FixedRamp object for the ramp.
96            (FixedRamp): New. Adapts a ramp to have fixed property values.
97    
98            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
99            (Classification): Inherit from Publisher.
100            (Classification.__init__): Remove the layer parameter.
101            Classifications no longer need to have a parent layer.
102            (Classification.GetField, Classification.GetFieldType,
103            Classification.SetFieldInfo): Removed. The field name is stored
104            in the layer, and the type can be retreived by calling
105            Layer.GetFieldType().
106            (Classification._set_layer, Classification.GetLayer): Removed.
107            Classifications no longer have a parent layer.
108    
109            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
110            classification.
111            (Layer.SetShapeStore): Reset the classification first while
112            we still have the old shape store to work with.
113            (Layer.GetClassificationField, Layer.SetClassificationField):
114            New. Method for getting/setting the field to classify on.
115            (Layer.SetClassification): Simplified now that the layer
116            simply has to hold a reference to the classification and not
117            tell the classification who owns it.
118            Fixes RTbug #2023.
119    
120            * Thuban/Model/load.py (SessionLoader.start_classification):
121            Set the field name on the layer, not the classification.
122    
123            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
124            classification is modified.
125    
126            * Thuban/Model/save.py (SessionSaver.write_classification):
127            Get the field name and type from the layer.
128    
129            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
130            parameter records to rows and add docstring. Fixes RTbug #1997.
131    
132            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
133            ramp when we need to fix certain values of a ramp rather than
134            using the old fixes parameter. Fixes RTbug #2024.
135    
136            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
137            parameter.
138            (ClassTable.Reset): Add fieldType parameter and use it, rather
139            than asking the classification.
140            (Classifier.__init__): Remember the original class's field
141            and ask the layer for the field type, rather than the classification.
142            (Classifier.__SetGridTable): Retrieve the field and field type
143            for the table because they are not in the classification.
144            (Classifier._OnTry, Classifier._OnRevert): Set the classification
145            field on the layer in addition to the classification itself.
146    
147            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
148            classification field from layer.
149    
150            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
151            classification field from layer. Split up tests and remove
152            *-imports. Fixes RTbug #1992.
153    
154            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
155    
156            * test/test_classification.py
157            (TestClassification.test_classification): Remove tests for methods
158            that no longer exist.
159    
160            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
161            __init__ no longer has a field parameter, use SetClassificationField.
162            (SetShapeStoreTests.test_sanity): Use layer object to get class
163            field info.
164    
165            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
166            SetClassificationField on layer to set class field info.
167    
168            * test/test_viewport.py: Renamed from test/test_view.py.
169    
170    2003-07-16  Jan-Oliver Wagner <[email protected]>
171    
172            * Doc/manual/thuban-manual.xml: Added authors and an initial
173            coarse structure.
174    
175    2003-07-15  Bernhard Herzog  <[email protected]>
176    
177            * test/support.py (FloatComparisonMixin): This is a mix-in class
178            and therefore should not be derived from any other class.
179    
180            * test/test_range.py (RangeTest): FloatComparisonMixin is a
181            mix-in, so derive from TestCase as well.
182    
183    2003-07-15  Bernhard Herzog  <[email protected]>
184    
185            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
186            draw_func handling a bit to remove one layer of indirection. This
187            makes the renderer about 10% faster in the non-classifying case
188            and the code a bit cleaner
189            (MapRenderer.draw_point_shape): Add the pen and brush parameters
190            and set them in the dc. Now the draw_point_shape method and
191            wxproj's draw_polygon_shape function have basically the same
192            signature so that both can be directly used as draw_func
193    
194    2003-07-15  Bernhard Herzog  <[email protected]>
195    
196            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
197            string values (in addition to the labels) as UTF 8
198    
199            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
200            values if the field type is string
201    
202            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
203            saving a session with non-ascii string classification values.
204    
205            * test/test_load.py (TestClassification.file_contents)
206            (TestClassification.test): Check for non-ascii values in string
207            classifications
208    
209    2003-07-14  Jonathan Coles   <[email protected]>
210    
211            * test/test_view.py: New. Tests for ViewPort.
212    
213    2003-07-14  Frank Koormann   <[email protected]>
214    
215            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
216            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
217    
218            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
219            unicode strings from session file: session title, map title and
220            projection name.
221            
222    2003-07-10  Jonathan Coles   <[email protected]>
223    
224            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
225            drag_stop, not drag_move when the mouse is released.
226    
227    2003-07-10  Jonathan Coles   <[email protected]>
228    
229            The most important part of this is the seperation of view.py into
230            two pieces. viewport.py now has a class called ViewPort which
231            contains all the non-wx parts of view.py and can therefore be
232            tested. view.py contains only the wx-specific parts and is fairly
233            simple.
234    
235            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
236            RTTbug #1992.
237            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
238            RTTbug #1992.
239    
240            * Thuban/Model/classgen.py (generate_singletons,
241            generate_uniform_distribution, generate_quantiles):
242            Added 'fixes' parameter so that property attributes can
243            be held constant over the generated classification groups.
244            (CustomRamp.GetProperties): Remove unused variables.
245    
246            * Thuban/Model/map.py (Map.SetProjection): Send the old
247            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
248            event.
249    
250            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
251            parameter which is a list of records that restricts which
252            records are saved. Fixes RTbug #1997.
253    
254            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
255            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
256    
257            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
258            to allow the user to fix line color/width on generated groups.
259            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
260            functions to optionally fix group properties.
261    
262            * Thuban/UI/main.py (main): Set exception hook to the
263            ShowExceptionDialog. Fixes RTbug #1993.
264    
265            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
266            the table window when it is selectd to be shown.
267    
268            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
269            Export Selection button and move the export buttons underneath
270            the table.
271            (QueryTableFrame.UpdateStatusText): Added event argument so
272            that it can respond to grid selection events. The status text
273            is now updated even when the table is not associated with a
274            layer as was previously assumed.
275            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
276            UpdateStatusText responds to these events.
277            (QueryTableFrame.OnSaveAs): Renamed to doExport.
278            (QueryTableFrame.doExport): Helper function that saves the
279            entire table, or selected rows, to a file.
280            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
281            Respond to export button events and call doExport.
282    
283            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
284            the function doesn't return NULL without first setting a Python
285            Error.
286    
287            * test/runtests.py (main): Only print "Unknown option" for
288            unsupported options.
289    
290            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
291            optional epsilon argument to specify floating point accuracy.
292            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
293            for each item test.
294    
295            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
296            tests for saving selected records.
297    
298            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
299            tests for saving selected records.
300    
301            * test/test_map.py (TestMapWithContents.test_set_projection):
302            MAP_PROJECTION_CHANGED events send the old projection.
303    
304            * test/test_session.py
305            (TestSessionWithContent.test_forward_map_projection):
306            MAP_PROJECTION_CHANGED events send the old projection.
307    
308            * test/test_table.py (TableTest): Update tests to use non-deprecated
309            functions.
310    
311    2003-07-08  Bernhard Herzog  <[email protected]>
312    
313            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
314            constants in the column objects are the standard ones defined in
315            the table module.
316    
317            * test/test_transientdb.py
318            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
319            exporting transient tables as DBF works. This should catch the bug
320            just fixed in TransientTableBase.Width.
321    
322    2003-07-08  Bernhard Herzog  <[email protected]>
323    
324            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
325            interpolated colors correctly.
326    
327            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
328            New. Test case for the fix in classgen.py
329    
330    2003-07-08  Bernhard Herzog  <[email protected]>
331    
332            * test/runtests.py (main): Make the default output less verbose
333            and add a verbosity option (-v) to get the old output
334    
335    2003-07-08  Bernhard Herzog  <[email protected]>
336    
337            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
338            0.9.
339    
340            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
341            New. Return the join type
342    
343            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
344            DTD
345            (SessionSaver.write_data_containers): Save the join type for
346            joined tables
347    
348            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
349            namespace
350            (SessionLoader.start_jointable): Handle the jointype attribute
351    
352            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
353            as of Thuban 0.8. These are now tests to determine whether Thuban
354            can still read files generated by Thuban 0.8
355    
356            * test/test_load.py (LoadSessionTest.dtd)
357            (TestSingleLayer.file_contents)
358            (TestLayerVisibility.file_contents, TestLabels.file_contents)
359            (TestLayerProjection.file_contents)
360            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
361            (TestJoinedTable.file_contents)
362            (TestLoadError.file_contents): Update for new DTD
363            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
364            for new join type attribute
365    
366            * test/test_save.py (SaveSessionTest.dtd)
367            (SaveSessionTest.testEmptySession)
368            (SaveSessionTest.testSingleLayer)
369            (SaveSessionTest.testLayerProjection)
370            (SaveSessionTest.testRasterLayer)
371            (SaveSessionTest.testClassifiedLayer)
372            (SaveSessionTest.test_dbf_table)
373            (SaveSessionTest.test_joined_table): Update for new DTD
374            (SaveSessionTest.test_joined_table): Add test for new join type
375            attribute
376    
377    2003-07-04  Bernhard Herzog  <[email protected]>
378    
379            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
380            function for table_to_dbf
381            (table_to_dbf): Deal with names longer than the 10 character limit
382    
383            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
384            doc-string
385            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
386            long column names
387    
388    2003-07-03  Bernhard Herzog  <[email protected]>
389    
390            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
391    
392    2003-07-03  Bernhard Herzog  <[email protected]>
393    
394            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
395            for the Thuban manual and README with some basic information about
396            the manual
397    
398    2003-07-03  Bernhard Herzog  <[email protected]>
399    
400            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
401            Update doc-string
402            (TransientJoinedTable.create): Do not modify the column objects of
403            the input tables in place and copy all columns of the input tables
404            into the joined table after all.
405    
406            * test/test_transientdb.py
407            (TestTransientTable.test_transient_joined_table_same_column_name):
408            Update to reflect the new behavior
409            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
410            Update to reflect the new behavior
411            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
412            New test case for a bug which modified the column objects in place
413    
414    2003-07-02  Jonathan Coles   <[email protected]>
415    
416            * Thuban/Model/classgen.py (generate_singletons,
417            generate_uniform_distribution, generate_quantiles,
418            GenQuantiles0): Make sure maxValue isn't less than
419            one, otherwise we could divide by zero.
420    
421            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
422            ClassGenTest.doClassSingleTest): Call doBoundsTest to
423            check the end classification groups against the
424            proper property values.
425            (ClassGenTest.doBoundsTest): New. Checks the first and
426            last classification groups to make sure their properties
427            are the correct upper and lower bounds for a color ramp.
428    
429    2003-07-02  Jonathan Coles   <[email protected]>
430    
431            * Thuban/Model/classgen.py (generate_singletons,
432            generate_uniform_distribution, generate_quantiles,
433            GenQuantiles0): The denominator was one to high when
434            calculating the index for the ramp causing the index
435            to never to reach one.
436    
437    2003-07-02  Jonathan Coles   <[email protected]>
438    
439            Changed the singature of ClassGroupRange.__init__ and
440            ClassGroupRange.SetRange() so that the min/max values are
441            passed as a tuple. This makes a better calling scheme for
442            when a Range object is passed instead.
443    
444            * Thuban/Model/classgen.py: Fixed parameters to
445            ClassGroupRange constructor.
446    
447            * Thuban/Model/classification.py (ClassGroupRange.__init__):
448            Consolidate the min/max parameters into a single _range which
449            can either be a tuple or a Range object.
450            (ClassGroupRange.SetRange): Consolidate the min/max parameters
451            into a single _range which can either be a tuple or a Range object.
452    
453            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
454            call to ClassGroupRange constructor to use a tuple.
455    
456            * Thuban/Model/layer.py (Layer.SetClassification): Switch
457            the classification instance variable to the new class
458            before calling _set_layer otherwise subscribers to a
459            LAYER_CHANGED event will not see any difference.
460    
461            * test/test_classification.py: Fix tests of ClassGroupRange
462            so that they use the new signature.
463    
464            * test/test_load.py: Fix use of ClassGroupRange so that it
465            uses the new signature.
466    
467            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
468            uses the new signature.
469    
470            * test/test_save.py: Fix use of ClassGroupRange so that it
471            uses the new signature.
472    
473    
474  2003-07-01  Jonathan Coles   <[email protected]>  2003-07-01  Jonathan Coles   <[email protected]>
475    
476          * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.          * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.

Legend:
Removed from v.1349  
changed lines
  Added in v.1457

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26