/[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 1380 by bh, Tue Jul 8 13:23:31 2003 UTC revision 1569 by jan, Fri Aug 8 13:33:52 2003 UTC
# Line 1  Line 1 
1    2003-08-08  Jan-Oliver Wagner <[email protected]>
2    
3            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
4            the list corresponds to the "About" web page.
5    
6    2003-08-08  Bernhard Herzog  <[email protected]>
7    
8            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
9            Make sure translated strings are recognized as one string literal.
10    
11            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
12            Make sure translated strings are recognized as one string literal.
13    
14            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
15            translated strings are recognized as one string literal.
16    
17            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
18            sure translated strings are recognized as one string literal.
19    
20    2003-08-07  Bernhard Herzog  <[email protected]>
21    
22            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
23            Simply delegates to the original shapestore.
24    
25            * test/test_derivedshapestore.py
26            (TestDerivedShapeStore.test_raw_format): New. Test case for
27            DerivedShapeStore.RawShapeFormat
28    
29    2003-08-07  Bernhard Herzog  <[email protected]>
30    
31            Add raw data interface to shape objects.
32    
33            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
34            class to ShapefileShape which now holds shapefile specific
35            information.
36            (ShapefileShape.compute_bbox): Simplified to not cache any
37            information. The way this method is used that shouldn't matter
38            performance wise.
39            (ShapefileShape.RawData): New. Return the shapeid which is the raw
40            data format for shapes from shapefiles.
41            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
42            in the shape objects returned by a shapestore. For a
43            ShapefileStore this is always RAW_SHAPEFILE.
44            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
45            method.
46    
47            * test/test_shapefilestore.py
48            (TestShapefileStore.test_raw_format): New test to test the raw
49            format feature of shapes.
50    
51            * Thuban/Model/layer.py: Remove the unused import of Shape from
52            data. It was only there for interface compatibility but it's not
53            used inside of Thuban and the generic Shape class has gone away.
54    
55            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
56            the raw data format and only use an optimized version of its a
57            shapefile.
58    
59    2003-08-07  Bernhard Herzog  <[email protected]>
60    
61            * test/test_baserenderer.py (SimpleShape): Shape class for the
62            tests.
63            (SimpleShapeStore.Shape): Use SimpleShape instead of
64            Thuban.Model.data.Shape to make the tests independed of the coming
65            changes.
66    
67    2003-08-07  Bernhard Herzog  <[email protected]>
68    
69            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
70            (ThubanTestProgram): New classes that extend the respective
71            classes from unittest. These new version support skipping tests
72            under certain expected conditions. In the Thuban test suite we
73            uses this for tests that require the optional gdal support.
74            (run_tests): Use ThubanTestProgram instead of the unittest.main()
75    
76            * test/runtests.py (main): Use the new ThubanTestRunner instead of
77            the normal one from unittest
78    
79            * test/test_layer.py (TestLayer.test_raster_layer): If this test
80            is not run because gdal support isn't available report this to the
81            runner.
82    
83            * test/test_baserenderer.py
84            (TestBaseRenderer.test_raster_no_projection): Do not run this test
85            if gdal support isn't available and report this to the runner.
86    
87    2003-08-06  Bernhard Herzog  <[email protected]>
88    
89            Rearrange the renderers a bit, partly in preparation for changes
90            required for the postgis merge, partly to make it more testable.
91            Also make the representation of coordinates in Shapes more
92            consistent.
93    
94            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
95            this class is now in BaseRenderer. This class is now practically
96            only a specialization of BaseRenderer for rendering to an actual
97            wx DC.
98            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
99            to get the shapetype specific rendering functions.
100    
101            * Thuban/UI/baserenderer.py: New file with the basic rendering
102            logic. The code in this file is completely independend of wx.
103            (BaseRenderer): Class with the basic rendering logic
104    
105            * test/test_baserenderer.py: New. Test cases for BaseRenderer
106    
107            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
108            error_on_redraw to guard agains endless loops and stack overflows
109            when there's a bug in the rendering code that raises exceptions.
110            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
111            rendering into a separate method _do_redraw so that error handling
112            is a bit easier. When an exception occurs, set error_on_redraw to
113            true. When it's true on entry to OnIdle do nothing and return
114            immediately.
115    
116            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
117            Shape object will always have the coordinates as a list of list of
118            coordinate pairs (tuples).
119            (Shape.compute_bbox): Adapt to new representation.
120    
121            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
122            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
123            Shape objects.
124    
125            * test/test_shapefilestore.py
126            (ShapefileStoreTests.assertFloatTuplesEqual)
127            (ShapefileStoreTests.assertPointListEquals): Rename to
128            assertPointListEquals and change purpose to checking equality of
129            the lists returned by Shape.Points().
130            (TestShapefileStoreArc.test_shape)
131            (TestShapefileStorePolygon.test_shape)
132            (TestShapefileStorePoint.test_shape): Use the new
133            assertPointListEquals instead of assertFloatTuplesEqual
134    
135            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
136            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
137            and change purpose to checking equality of the lists returned by
138            Shape.Points().
139            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
140            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
141            (TestLayer.test_derived_store): Use the new assertPointListEquals
142            instead of assertFloatTuplesEqual
143    
144            * test/test_derivedshapestore.py
145            (TestDerivedShapeStore.assertFloatTuplesEqual)
146            (TestDerivedShapeStore.assertPointListEquals): Rename to
147            assertPointListEquals and change purpose to checking equality of
148            the lists returned by Shape.Points().
149            (TestDerivedShapeStore.test_shape): Use the new
150            assertPointListEquals instead of assertFloatTuplesEqual
151    
152    2003-08-06  Jan-Oliver Wagner <[email protected]>
153    
154            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
155            a bounding box. A dialog is raised in case, no bounding box
156            is found. This fixes bug #2043:
157            https://intevation.de/rt/webrt?serial_num=2043
158    
159    2003-08-05  Bernhard Herzog  <[email protected]>
160    
161            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
162            object look like a Color instantiation. Formerly it looked like a
163            tuple.
164    
165            * test/test_color.py (TestColor.test_repr)
166            (TestColor.test_equality, TestColor.test_inequality): New. test
167            some more apects of the Color class
168            (TestTransparent.test_repr, TestTransparent.test_hex)
169            (TestTransparent.test_equality): New. Test cases for the
170            Transparent object.
171    
172    2003-08-04  Jan-Oliver Wagner <[email protected]>
173    
174            * Doc/manual/thuban-manual.xml: a number of small improvements.
175            The resulting file is the version submitted for GREAT-ER II.
176    
177    2003-08-01  Bernhard Herzog  <[email protected]>
178    
179            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
180            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
181            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
182    
183            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
184            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
185            (ThubanEndBusyCursor): Add doc-strings
186    
187    2003-08-01  Bernhard Herzog  <[email protected]>
188    
189            First step towards PostGIS integration. More abstraction by movin
190            more code from the layer to the shapestore. More methods of the
191            layer are now simply delegated to the equivalent method of the
192            shapestore. The SHAPETYPE_* constants are now in data not in
193            layer.
194    
195            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
196            (SHAPETYPE_POINT, Shape): Move these constants and classes from
197            layer.py to data.py
198            (ShapefileStore.__init__): More Initialization for the new methods
199            and functionality.
200            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
201            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
202            (ShapefileStore.Shape): New methods that were formerly implemented
203            in the layer.
204            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
205            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
206            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
207            equivalents of the new shape methods. These versions are simply
208            delegated to the original shapstore.
209    
210            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
211            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
212            (Layer.SetShapeStore): Removed the initializatin of instance
213            variables that were needed for the stuff that's now in
214            ShapefileStore
215            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
216            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
217            shapestore.
218    
219            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
220            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
221            instead of layer.
222    
223            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
224    
225            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
226    
227            * test/test_layer.py: Import the SHAPETYPE_* constants from data
228            instead of layer.
229            (TestLayer.test_derived_store): Remove the test for the exception
230            when instantiating the DerivedShapeStore with an incompatible
231            table which is now in test_derivedshapestore.py. Add some more
232            tests of the layer methods to determine whether they work for a
233            DerivedShapeStore as well.
234    
235    2003-07-31  Jonathan Coles   <[email protected]>
236    
237            * Doc/manual/thuban-manual.xml: Fix the list of required packages
238            by just listing the name and where they can be found.
239    
240    2003-07-31  Frank Koormann   <[email protected]>
241    
242            * Doc/manual/thuban-manual.xml:
243            Changed the screenshot elements to figure.
244            Changed some variablelist elements to itemizedlist.
245            Added section on GDAL formats.
246    
247    2003-07-31  Jonathan Coles   <[email protected]>
248    
249            * Doc/manual/thuban-manual.xml: Added a few sentences about
250            the Fix Border Color option when generating classes.
251    
252    2003-07-30  Jonathan Coles   <[email protected]>
253    
254            * Thuban/Model/classgen.py: Add docstrings. Rename specific
255            Ramp instances to use lower_case_style.
256    
257            * Thuban/UI/classgen.py: Use renamed Ramp instances.
258            
259            * Thuban/UI/classifier.py: Add docstrings.
260    
261            * Thuban/UI/dock.py: Add docstrings.
262    
263            * test/test_classgen.py: Use renamed Ramp instances.
264    
265    2003-07-30  Bernhard Herzog  <[email protected]>
266    
267            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
268            was never used in Thuban.
269    
270    2003-07-30  Bernhard Herzog  <[email protected]>
271    
272            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
273            method directly instead of going through the transient_table
274            method. This faster because transient_table may force the copy of
275            a DBF file into the transient database and setting a table's title
276            doesnm't affect the title of the associated transient table, so
277            this fixes RT #2042
278    
279            * Thuban/UI/main.py (__version__): Don't import the already
280            removed show_exception_dialog.
281    
282    2003-07-29  Jonathan Coles   <[email protected]>
283    
284            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
285            Put back this method and remove the equivalent function since we
286            are setting the exception hook from within this class (OnInit).
287    
288    2003-07-29  Jonathan Coles   <[email protected]>
289    
290            * Doc/manual/images/5_2_custom_ramp.png,
291            Doc/manual/images/5_2_quantiles.png,
292            Doc/manual/images/5_2_uniform_dist.png,
293            Doc/manual/images/5_2_unique_values.png,
294            Doc/manual/images/8_int_error.png: New screen shots.
295    
296            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
297            some points, and added more screen shots.
298    
299    2003-07-29  Bernhard Herzog  <[email protected]>
300    
301            * Thuban/Model/data.py: Remove the now unused import of warnings
302    
303    2003-07-29  Bernhard Herzog  <[email protected]>
304    
305            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
306            deprecated since before the 0.8 release and isn't used in Thuban
307            itself anymore.
308    
309            * Thuban/Model/transientdb.py: Remove some unnecessary imports
310    
311    2003-07-29  Jonathan Coles   <[email protected]>
312    
313            * Thuban/UI/application.py (ThubanApplication.OnInit): set the
314            python exception hook here so that we are sure to catch any
315            Thuban exception that happen during initialization.
316    
317            * Thuban/UI/main.py (main): Don't set the exception hook here,
318            it will get set in ThubanApplication.OnInit.
319    
320    2003-07-29  Jonathan Coles   <[email protected]>
321                                                                                
322            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
323            Removed and called it show_exception_dialog() so that the exception
324            handler can be set before the class is created.
325                                                                                
326            * Thuban/UI/main.py (main): Install the exception handler before
327            a ThubanApplication is created.
328                                                                                    
329    2003-07-29  Bernhard Herzog  <[email protected]>
330    
331            * po/it.po: New. Italian translation by Maurizio Napolitano
332    
333            * po/ru.po: New. Russian translation by Alex Shevlakov
334    
335    2003-07-29  Frank Koormann   <[email protected]>
336    
337            * Doc/manual/thuban-manual.xml: Extended section on supported
338            projections.
339            
340    2003-07-29  Frank Koormann   <[email protected]>
341    
342            * Doc/manual/thuban-manual.xml: gaspell-checked.
343    
344    2003-07-29  Jonathan Coles   <[email protected]>
345    
346            * Doc/manual/images/3_5_legend.png: Added border to improve look
347            on white background.
348    
349    2003-07-29  Jonathan Coles   <[email protected]>
350    
351            * Doc/manual/thuban-manual.xml: Fixed grammar and typos. Added
352            descriptions for the legend toolbar.
353    
354            * Doc/manual/images/4_2_raster_layer_properties.png: Removed
355            cursor from dialog box.
356    
357    2003-07-28  Jonathan Coles   <[email protected]>
358    
359            * Doc/manual/thuban-manual.xml: More screenshots and more chapters.
360    
361            * Doc/manual/images/2_4_session_tree.png,
362            Doc/manual/images/3_5_legend.png, Doc/manual/images/3_rename_map.png,
363            Doc/manual/images/4_2_layer_properties.png,
364            Doc/manual/images/4_2_raster_layer_properties.png,
365            Doc/manual/images/5_3_genclass.png,
366            Doc/manual/images/5_classification.png,
367            Doc/manual/images/6_projection.png,
368            Doc/manual/images/7_1_table_view.png,
369            Doc/manual/images/7_2_5_join.png: New screenshots.
370    
371    2003-07-24  Jonathan Coles   <[email protected]>
372    
373            * Doc/manual/thuban-manual.xml: Chapter on Projection Management.
374    
375    2003-07-24  Jonathan Coles   <[email protected]>
376    
377            * Doc/manual/thuban-manual.xml: Added EPS images and wrote
378            chapter on Layer Management.
379    
380            * Doc/manual/Makefile: New. Makefile to generate all formats for the
381            manual and images.
382    
383    2003-07-24  Bernhard Herzog  <[email protected]>
384    
385            * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
386            it annoys lintian which warns about these files not being
387            executable. The #1 isn't necessary here since if you absolutely
388            must execute them you can always say "python <filename>".
389    
390            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove
391            superfluous code to set brush and pen for point shapes
392    
393            * Thuban/UI/viewport.py: Remove commented out code that wouldn't
394            belong in viewport anyway
395    
396    2003-07-24  Frank Koormann   <[email protected]>
397    
398            * Doc/manual/thuban-manual.xml: Added section on table management.
399    
400    2003-07-24  Bernhard Herzog  <[email protected]>
401    
402            * test/runtests.py (main): Recognize the long "verbose" option
403            correctly.
404    
405    2003-07-22  Jonathan Coles   <[email protected]>
406    
407            * Doc/manual/thuban-manual.xml: Continue to write first revision
408            of the manual.
409    
410            * Thuban/UI/renderer.py (MapRenderer.render_map): Wrap method
411            with Begin/EndDrawing() calls to ensure we aren't doing to
412            many updates to the dc during rendering.
413            (ScreenRenderer.draw_shape_layer): self.draw_point_shape takes
414            a pen and brush argument so they need to be passed to the function.
415    
416            * Thuban/UI/viewport.py (ViewPort.calc_min_max_scales): New.
417            Calculates the minimum and maximum scale values. Factored out
418            of set_view_transform so that it could be used to zoom all the
419            way into a single point.
420            (ViewPort.set_view_transform): Call calc_min_max_scales().
421            (ViewPort.FitSelectedToWindow): Zoom to the maximum scale
422            if only a single point is selected.
423    
424            * Doc/manual/images/1_2_legend_close.png,
425            Doc/manual/images/1_2_legend_dock.png,
426            Doc/manual/images/1_2_mainwindow.png,
427            Doc/manual/images/1_2_mainwindow.ps,
428            Doc/manual/images/1_2_mainwindow.sk,
429            Doc/manual/images/3_2_fullextent.png,
430            Doc/manual/images/3_2_fulllayerextent.png,
431            Doc/manual/images/3_2_fullshapeextent.png,
432            Doc/manual/images/3_2_pan.png,
433            Doc/manual/images/3_2_zoomin.png,
434            Doc/manual/images/3_2_zoomout.png,
435            Doc/manual/images/3_3_identify.png,
436            Doc/manual/images/3_3_label.png,
437            Doc/manual/images/3_5_invisible.png,
438            Doc/manual/images/3_5_movedown.png,
439            Doc/manual/images/3_5_moveup.png,
440            Doc/manual/images/3_5_props.png,
441            Doc/manual/images/3_5_tobottom.png,
442            Doc/manual/images/3_5_totop.png,
443            Doc/manual/images/3_5_visible.png: New. Images for the documentation.
444    
445    2003-07-18  Bernhard Herzog  <[email protected]>
446    
447            * Thuban/UI/messages.py (MAP_REPLACED): New message.
448    
449            * Thuban/UI/viewport.py (ViewPort.SetMap): Issue MAP_REPLACED
450            after the new map has been assigned
451    
452            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
453            Delegate MAP_REPLACED to the canvas too
454            (MainWindow.prepare_new_session): Removed. Thanks to the new
455            MAP_REPLACED message it's no longer needed
456            (MainWindow.OpenSession, MainWindow.NewSession):
457            prepare_new_session has been removed.
458    
459            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
460            MAP_REPLACED so that we can close the dialog if a new map is set.
461            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
462            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
463            dialog
464    
465            * test/test_viewport.py (SimpleViewPortTest)
466            (SimpleViewPortTest.test_default_size): Add doc-strings
467            (ViewPortTest.setUp): Bind map to self.map so we can use it in
468            tests. Subscribe to MAP_REPLACED messages too.
469            (ViewPortTest.tearDown): No need to explicitly unsubscribe
470            (ViewPortTest.test_set_map): New test for the SetMap method.
471    
472    2003-07-18  Bernhard Herzog  <[email protected]>
473    
474            * test/test_viewport.py (SimpleViewPortTest.test_default_size):
475            Move this test from ViewPortTest.setUp to this new separate test
476            case. setUp is not the place for the actual tests.
477            (ViewPortTest.test_inital_settings, ViewPortTest.setUp): Move some
478            more of the test from setUp to the new test test_inital_settings.
479            (ViewPortTest.test_win_to_proj, ViewPortTest.test_proj_to_win)
480            (ViewPortTest.test_proj_conv): Split test_proj_conv into
481            test_win_to_proj and test_proj_to_win and make the tests easier to
482            understand
483            (ViewPortTest.testFitRectToWindow, ViewPortTest.testZoomFactor)
484            (ViewPortTest.testZoomOutToRect, ViewPortTest.testTranslate)
485            (ViewPortTest.test_unprojected_rect_around_point)
486            (ViewPortTest.test_find_shape_at, ViewPortTest.testTools):
487            Reformat to increase readability.
488    
489    2003-07-18  Bernhard Herzog  <[email protected]>
490    
491            * Thuban/UI/view.py (MapCanvas.OnLeftDown): Capture the mouse.
492    
493    2003-07-18  Bernhard Herzog  <[email protected]>
494    
495            * test/runtests.py: The test suite can now be run without an X
496            connection. To make sure this remains true, remove the DISPLAY
497            environment variable so that an error occurs if the wxGTK is
498            imported accidentally
499    
500    2003-07-18  Bernhard Herzog  <[email protected]>
501    
502            * Thuban/UI/viewport.py: Remove unused imports
503    
504            * Thuban/UI/view.py: Remove unused imports
505    
506    2003-07-18  Bernhard Herzog  <[email protected]>
507    
508            * test/test_export.py Remove unused imports. The OutputTransform
509            function is now in viewport.py and is called output_transform
510            (TestScalebar.test_output_transform)
511            (TestScalebar.test_OutputTransform): Renamed to
512            test_output_transform and updated to use output_transform instead
513            of OutputTransform
514    
515            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
516            renamed.
517            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
518            renamed to output_transform
519    
520            * Thuban/UI/viewport.py (OutputTransform, output_transform):
521            Rename to output_transform
522    
523    2003-07-18  Bernhard Herzog  <[email protected]>
524    
525            * Thuban/Model/layer.py (Layer.__init__): Rename
526            classificationField to classificatin_column and init it here so
527            that it can be used in SetClassificationColumn
528            (Layer.GetClassificationColumn, Layer.GetClassificationField):
529            Rename to GetClassificationColumn.
530            (Layer.SetClassificationColumn, Layer.SetClassificationField):
531            Rename to SetClassificationColumn and issue a LAYER_CHANGED
532            message if the column changes.
533            (Layer._classification_changed, Layer.ClassChanged): Rename to
534            _classification_changed. Update the callers.
535            (Layer.SetShapeStore): Further field->column renames.
536    
537            * Thuban/Model/load.py (SessionLoader.start_classification)
538            (SessionLoader.start_clpoint): Updates because of
539            field->column method name changes in the Layer class
540    
541            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
542            because of field->column method name changes in the Layer class
543    
544            * Thuban/UI/classifier.py (Classifier.__init__)
545            (Classifier._OnTry, Classifier._OnRevert): Updates because of
546            field->column method name changes in the Layer class
547    
548            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
549            because of field->column method name changes in the Layer class
550    
551            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
552            of field->column method name changes in the Layer class
553    
554            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
555            (SaveSessionTest.testClassifiedLayer): Update because of
556            field->column method name changes in the Layer class
557    
558            * test/test_layer.py (SetShapeStoreTests.setUp)
559            (SetShapeStoreTests.test_sanity): Update because of field->column
560            method name changes in the Layer class
561            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
562            (TestLayerModification.test_sanity)
563            (TestLayerModification.test_initial_settings): remove unsued code
564            and rename to test_sanity.
565            (TestLayerModification.test_set_classification): New test for
566            SetClassification and SetClassificationField.
567    
568    2003-07-18  Bernhard Herzog  <[email protected]>
569    
570            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
571            the non-fixed values as well. The old test would have accepted a
572            fixed ramp that only returnes the fixed properties
573    
574    2003-07-17  Jonathan Coles   <[email protected]>
575    
576            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
577            shots for the manual. The XCF file is the source image and
578            has additional layers to support changes.
579    
580            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
581    
582            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
583            Return both the new class and the field name.
584    
585            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
586            fit the map to the window as this changes any zoom level that
587            the user may have set.
588    
589    2003-07-16  Jonathan Coles   <[email protected]>
590    
591            * Thuban/Model/classgen.py (generate_singletons,
592            generate_uniform_distribution, generate_quantiles): Remove
593            fixes parameter, but maintain the same functionality by having
594            the calling function pass a FixedRamp object for the ramp.
595            (FixedRamp): New. Adapts a ramp to have fixed property values.
596    
597            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
598            (Classification): Inherit from Publisher.
599            (Classification.__init__): Remove the layer parameter.
600            Classifications no longer need to have a parent layer.
601            (Classification.GetField, Classification.GetFieldType,
602            Classification.SetFieldInfo): Removed. The field name is stored
603            in the layer, and the type can be retreived by calling
604            Layer.GetFieldType().
605            (Classification._set_layer, Classification.GetLayer): Removed.
606            Classifications no longer have a parent layer.
607    
608            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
609            classification.
610            (Layer.SetShapeStore): Reset the classification first while
611            we still have the old shape store to work with.
612            (Layer.GetClassificationField, Layer.SetClassificationField):
613            New. Method for getting/setting the field to classify on.
614            (Layer.SetClassification): Simplified now that the layer
615            simply has to hold a reference to the classification and not
616            tell the classification who owns it.
617            Fixes RTbug #2023.
618    
619            * Thuban/Model/load.py (SessionLoader.start_classification):
620            Set the field name on the layer, not the classification.
621    
622            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
623            classification is modified.
624    
625            * Thuban/Model/save.py (SessionSaver.write_classification):
626            Get the field name and type from the layer.
627    
628            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
629            parameter records to rows and add docstring. Fixes RTbug #1997.
630    
631            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
632            ramp when we need to fix certain values of a ramp rather than
633            using the old fixes parameter. Fixes RTbug #2024.
634    
635            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
636            parameter.
637            (ClassTable.Reset): Add fieldType parameter and use it, rather
638            than asking the classification.
639            (Classifier.__init__): Remember the original class's field
640            and ask the layer for the field type, rather than the classification.
641            (Classifier.__SetGridTable): Retrieve the field and field type
642            for the table because they are not in the classification.
643            (Classifier._OnTry, Classifier._OnRevert): Set the classification
644            field on the layer in addition to the classification itself.
645    
646            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
647            classification field from layer.
648    
649            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
650            classification field from layer. Split up tests and remove
651            *-imports. Fixes RTbug #1992.
652    
653            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
654    
655            * test/test_classification.py
656            (TestClassification.test_classification): Remove tests for methods
657            that no longer exist.
658    
659            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
660            __init__ no longer has a field parameter, use SetClassificationField.
661            (SetShapeStoreTests.test_sanity): Use layer object to get class
662            field info.
663    
664            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
665            SetClassificationField on layer to set class field info.
666    
667            * test/test_viewport.py: Renamed from test/test_view.py.
668    
669    2003-07-16  Jan-Oliver Wagner <[email protected]>
670    
671            * Doc/manual/thuban-manual.xml: Added authors and an initial
672            coarse structure.
673    
674    2003-07-15  Bernhard Herzog  <[email protected]>
675    
676            * test/support.py (FloatComparisonMixin): This is a mix-in class
677            and therefore should not be derived from any other class.
678    
679            * test/test_range.py (RangeTest): FloatComparisonMixin is a
680            mix-in, so derive from TestCase as well.
681    
682    2003-07-15  Bernhard Herzog  <[email protected]>
683    
684            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
685            draw_func handling a bit to remove one layer of indirection. This
686            makes the renderer about 10% faster in the non-classifying case
687            and the code a bit cleaner
688            (MapRenderer.draw_point_shape): Add the pen and brush parameters
689            and set them in the dc. Now the draw_point_shape method and
690            wxproj's draw_polygon_shape function have basically the same
691            signature so that both can be directly used as draw_func
692    
693    2003-07-15  Bernhard Herzog  <[email protected]>
694    
695            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
696            string values (in addition to the labels) as UTF 8
697    
698            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
699            values if the field type is string
700    
701            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
702            saving a session with non-ascii string classification values.
703    
704            * test/test_load.py (TestClassification.file_contents)
705            (TestClassification.test): Check for non-ascii values in string
706            classifications
707    
708    2003-07-14  Jonathan Coles   <[email protected]>
709    
710            * test/test_view.py: New. Tests for ViewPort.
711    
712    2003-07-14  Frank Koormann   <[email protected]>
713    
714            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
715            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
716    
717            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
718            unicode strings from session file: session title, map title and
719            projection name.
720            
721    2003-07-10  Jonathan Coles   <[email protected]>
722    
723            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
724            drag_stop, not drag_move when the mouse is released.
725    
726    2003-07-10  Jonathan Coles   <[email protected]>
727    
728            The most important part of this is the seperation of view.py into
729            two pieces. viewport.py now has a class called ViewPort which
730            contains all the non-wx parts of view.py and can therefore be
731            tested. view.py contains only the wx-specific parts and is fairly
732            simple.
733    
734            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
735            RTTbug #1992.
736            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
737            RTTbug #1992.
738    
739            * Thuban/Model/classgen.py (generate_singletons,
740            generate_uniform_distribution, generate_quantiles):
741            Added 'fixes' parameter so that property attributes can
742            be held constant over the generated classification groups.
743            (CustomRamp.GetProperties): Remove unused variables.
744    
745            * Thuban/Model/map.py (Map.SetProjection): Send the old
746            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
747            event.
748    
749            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
750            parameter which is a list of records that restricts which
751            records are saved. Fixes RTbug #1997.
752    
753            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
754            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
755    
756            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
757            to allow the user to fix line color/width on generated groups.
758            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
759            functions to optionally fix group properties.
760    
761            * Thuban/UI/main.py (main): Set exception hook to the
762            ShowExceptionDialog. Fixes RTbug #1993.
763    
764            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
765            the table window when it is selectd to be shown.
766    
767            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
768            Export Selection button and move the export buttons underneath
769            the table.
770            (QueryTableFrame.UpdateStatusText): Added event argument so
771            that it can respond to grid selection events. The status text
772            is now updated even when the table is not associated with a
773            layer as was previously assumed.
774            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
775            UpdateStatusText responds to these events.
776            (QueryTableFrame.OnSaveAs): Renamed to doExport.
777            (QueryTableFrame.doExport): Helper function that saves the
778            entire table, or selected rows, to a file.
779            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
780            Respond to export button events and call doExport.
781    
782            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
783            the function doesn't return NULL without first setting a Python
784            Error.
785    
786            * test/runtests.py (main): Only print "Unknown option" for
787            unsupported options.
788    
789            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
790            optional epsilon argument to specify floating point accuracy.
791            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
792            for each item test.
793    
794            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
795            tests for saving selected records.
796    
797            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
798            tests for saving selected records.
799    
800            * test/test_map.py (TestMapWithContents.test_set_projection):
801            MAP_PROJECTION_CHANGED events send the old projection.
802    
803            * test/test_session.py
804            (TestSessionWithContent.test_forward_map_projection):
805            MAP_PROJECTION_CHANGED events send the old projection.
806    
807            * test/test_table.py (TableTest): Update tests to use non-deprecated
808            functions.
809    
810    2003-07-08  Bernhard Herzog  <[email protected]>
811    
812            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
813            constants in the column objects are the standard ones defined in
814            the table module.
815    
816            * test/test_transientdb.py
817            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
818            exporting transient tables as DBF works. This should catch the bug
819            just fixed in TransientTableBase.Width.
820    
821  2003-07-08  Bernhard Herzog  <[email protected]>  2003-07-08  Bernhard Herzog  <[email protected]>
822    
823          * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the          * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the

Legend:
Removed from v.1380  
changed lines
  Added in v.1569

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26