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

Legend:
Removed from v.1360  
changed lines
  Added in v.1477

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26