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

Legend:
Removed from v.1403  
changed lines
  Added in v.1556

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26