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

Legend:
Removed from v.1418  
changed lines
  Added in v.1560

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26