/[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 1550 by jan, Wed Aug 6 11:19:41 2003 UTC revision 1594 by bh, Fri Aug 15 14:10:48 2003 UTC
# Line 1  Line 1 
1    2003-08-15  Bernhard Herzog  <bh@intevation.de>
2    
3            Change the way shapes are returned by a shape store. The
4            ShapesInRegion method returns an iterator over actual shape
5            objects instead of a list of shape ids.
6    
7            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
8            id.
9            (ShapefileStore.ShapesInRegion): Return an iterator over the
10            shapes which yields shape objects instead of returning a list of
11            shape ids
12            (ShapefileStore.AllShapes): New. Return an iterator over all
13            shapes in the shape store
14            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
15    
16            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
17            doc-string.
18    
19            * Thuban/UI/baserenderer.py
20            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
21            layer_shapes and make it return an iterator containg shapes
22            instead of a list of ids.
23            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
24            layer_shapes() change
25    
26            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
27            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
28    
29            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
30            changes in the ShapesInRegion return value.
31            (ViewPort._get_hit_tester): Remove commented out code
32    
33            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
34            new return value.
35            (SimpleShapeStore.AllShapes): New. Implement this method too.
36    
37            * test/test_layer.py (TestLayer.test_arc_layer)
38            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
39            (TestLayer.test_point_layer_with_projection)
40            (TestLayer.test_derived_store): Adapt to changes in the
41            ShapesInRegion return value.
42    
43            * test/test_shapefilestore.py
44            (TestShapefileStoreArc.test_shapes_in_region)
45            (TestShapefileStorePolygon.test_shapes_in_region)
46            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
47            in the ShapesInRegion return value.
48            (TestShapefileStorePoint.test_all_shapes)
49            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
50            methods
51    
52            * test/test_derivedshapestore.py
53            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
54            the ShapesInRegion return value.
55            (TestDerivedShapeStore.test_all_shapes)
56            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
57            methods
58    
59    2003-08-15  Bernhard Herzog  <bh@intevation.de>
60    
61            Make the renderers deal correctly with raw vs. python level
62            representation of shape geometries
63    
64            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
65            Return a flag useraw in addition to the callable and the parameter
66            to indicate whether the callable can deal with the raw shape data
67            or uses the higher level python lists of coordinates. The callable
68            now should accept either the raw data or the return value of the
69            shape's Points() method.
70            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
71            change
72            (BaseRenderer.projected_points): Instead of the shape id use the
73            points list as parameter.
74            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
75            (BaseRenderer.draw_point_shape): Adapt to projected_points()
76            change and accept the points list as parameter instead of the
77            shape id.
78    
79            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
80            the useraw flag as required by the BaseRenderer
81            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
82            changes.
83    
84            * test/test_baserenderer.py
85            (TestBaseRenderer.test_point_with_classification): New test for
86            rendering a map with classifications.
87    
88    2003-08-15  Bernhard Herzog  <bh@intevation.de>
89    
90            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
91            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
92            (ViewPort._get_hit_tester, ViewPort.projected_points)
93            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
94            (ViewPort._find_label_at): Split the find_shape_at method into
95            several new methods and use the functions in the hit-test module.
96    
97            * Thuban/UI/hittest.py: New module with Python-level hit-testing
98            functions
99    
100            * test/test_hittest.py: New. Test for the new hittest module
101    
102    2003-08-15  Bernhard Herzog  <bh@intevation.de>
103    
104            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
105            projection to all corners of the bounding box to get a better
106            approximation of the projected bounding box
107    
108            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
109            New. Test coordinate handling of a layer with a projection.
110            Catches the bug fixed in Layer.ShapesInRegion
111    
112    2003-08-15  Bernhard Herzog  <bh@intevation.de>
113    
114            Move some of the mock objects in test_baserenderer into their own
115            module so they can easily be used from other tests
116    
117            * test/mockgeo.py: New test helper module with some mock objects
118            for geometry related things like shapes, shapestores and
119            projections.
120    
121            * test/test_mockgeo.py: New. Tests for the new helper module
122    
123            * test/test_baserenderer.py: Some of the mock-objects are in
124            mockgeo now.
125    
126    2003-08-12  Jan-Oliver Wagner <jan@intevation.de>
127    
128            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
129    
130    2003-08-12  Bernhard Herzog  <bh@intevation.de>
131    
132            * po/de.po: New. German translations by Bjoern Broscheit
133    
134    2003-08-12  Bernhard Herzog  <bh@intevation.de>
135    
136            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
137            strings have to be one string literal.
138    
139    2003-08-11  Bernhard Herzog  <bh@intevation.de>
140    
141            * test/support.py (FloatComparisonMixin.assertPointListEquals):
142            New. This method was used in various derived classes, but it's
143            better to have it here.
144    
145            * test/test_shapefilestore.py
146            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
147            FloatComparisonMixin
148    
149            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
150            It's now in FloatComparisonMixin
151    
152            * test/test_derivedshapestore.py
153            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
154            in FloatComparisonMixin
155    
156    2003-08-11  Bernhard Herzog  <bh@intevation.de>
157    
158            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
159            error message
160    
161    2003-08-08  Jan-Oliver Wagner <jan@intevation.de>
162    
163            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
164            with version number.
165            Changed title to reflect version number of Thuban.
166    
167    2003-08-08  Jan-Oliver Wagner <jan@intevation.de>
168    
169            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
170            the list corresponds to the "About" web page.
171    
172    2003-08-08  Bernhard Herzog  <bh@intevation.de>
173    
174            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
175            Make sure translated strings are recognized as one string literal.
176    
177            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
178            Make sure translated strings are recognized as one string literal.
179    
180            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
181            translated strings are recognized as one string literal.
182    
183            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
184            sure translated strings are recognized as one string literal.
185    
186    2003-08-07  Bernhard Herzog  <bh@intevation.de>
187    
188            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
189            Simply delegates to the original shapestore.
190    
191            * test/test_derivedshapestore.py
192            (TestDerivedShapeStore.test_raw_format): New. Test case for
193            DerivedShapeStore.RawShapeFormat
194    
195    2003-08-07  Bernhard Herzog  <bh@intevation.de>
196    
197            Add raw data interface to shape objects.
198    
199            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
200            class to ShapefileShape which now holds shapefile specific
201            information.
202            (ShapefileShape.compute_bbox): Simplified to not cache any
203            information. The way this method is used that shouldn't matter
204            performance wise.
205            (ShapefileShape.RawData): New. Return the shapeid which is the raw
206            data format for shapes from shapefiles.
207            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
208            in the shape objects returned by a shapestore. For a
209            ShapefileStore this is always RAW_SHAPEFILE.
210            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
211            method.
212    
213            * test/test_shapefilestore.py
214            (TestShapefileStore.test_raw_format): New test to test the raw
215            format feature of shapes.
216    
217            * Thuban/Model/layer.py: Remove the unused import of Shape from
218            data. It was only there for interface compatibility but it's not
219            used inside of Thuban and the generic Shape class has gone away.
220    
221            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
222            the raw data format and only use an optimized version of its a
223            shapefile.
224    
225    2003-08-07  Bernhard Herzog  <bh@intevation.de>
226    
227            * test/test_baserenderer.py (SimpleShape): Shape class for the
228            tests.
229            (SimpleShapeStore.Shape): Use SimpleShape instead of
230            Thuban.Model.data.Shape to make the tests independed of the coming
231            changes.
232    
233    2003-08-07  Bernhard Herzog  <bh@intevation.de>
234    
235            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
236            (ThubanTestProgram): New classes that extend the respective
237            classes from unittest. These new version support skipping tests
238            under certain expected conditions. In the Thuban test suite we
239            uses this for tests that require the optional gdal support.
240            (run_tests): Use ThubanTestProgram instead of the unittest.main()
241    
242            * test/runtests.py (main): Use the new ThubanTestRunner instead of
243            the normal one from unittest
244    
245            * test/test_layer.py (TestLayer.test_raster_layer): If this test
246            is not run because gdal support isn't available report this to the
247            runner.
248    
249            * test/test_baserenderer.py
250            (TestBaseRenderer.test_raster_no_projection): Do not run this test
251            if gdal support isn't available and report this to the runner.
252    
253    2003-08-06  Bernhard Herzog  <bh@intevation.de>
254    
255            Rearrange the renderers a bit, partly in preparation for changes
256            required for the postgis merge, partly to make it more testable.
257            Also make the representation of coordinates in Shapes more
258            consistent.
259    
260            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
261            this class is now in BaseRenderer. This class is now practically
262            only a specialization of BaseRenderer for rendering to an actual
263            wx DC.
264            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
265            to get the shapetype specific rendering functions.
266    
267            * Thuban/UI/baserenderer.py: New file with the basic rendering
268            logic. The code in this file is completely independend of wx.
269            (BaseRenderer): Class with the basic rendering logic
270    
271            * test/test_baserenderer.py: New. Test cases for BaseRenderer
272    
273            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
274            error_on_redraw to guard agains endless loops and stack overflows
275            when there's a bug in the rendering code that raises exceptions.
276            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
277            rendering into a separate method _do_redraw so that error handling
278            is a bit easier. When an exception occurs, set error_on_redraw to
279            true. When it's true on entry to OnIdle do nothing and return
280            immediately.
281    
282            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
283            Shape object will always have the coordinates as a list of list of
284            coordinate pairs (tuples).
285            (Shape.compute_bbox): Adapt to new representation.
286    
287            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
288            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
289            Shape objects.
290    
291            * test/test_shapefilestore.py
292            (ShapefileStoreTests.assertFloatTuplesEqual)
293            (ShapefileStoreTests.assertPointListEquals): Rename to
294            assertPointListEquals and change purpose to checking equality of
295            the lists returned by Shape.Points().
296            (TestShapefileStoreArc.test_shape)
297            (TestShapefileStorePolygon.test_shape)
298            (TestShapefileStorePoint.test_shape): Use the new
299            assertPointListEquals instead of assertFloatTuplesEqual
300    
301            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
302            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
303            and change purpose to checking equality of the lists returned by
304            Shape.Points().
305            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
306            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
307            (TestLayer.test_derived_store): Use the new assertPointListEquals
308            instead of assertFloatTuplesEqual
309    
310            * test/test_derivedshapestore.py
311            (TestDerivedShapeStore.assertFloatTuplesEqual)
312            (TestDerivedShapeStore.assertPointListEquals): Rename to
313            assertPointListEquals and change purpose to checking equality of
314            the lists returned by Shape.Points().
315            (TestDerivedShapeStore.test_shape): Use the new
316            assertPointListEquals instead of assertFloatTuplesEqual
317    
318  2003-08-06  Jan-Oliver Wagner <jan@intevation.de>  2003-08-06  Jan-Oliver Wagner <jan@intevation.de>
319    
320          * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for          * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for

Legend:
Removed from v.1550  
changed lines
  Added in v.1594

root@scm.wald.intevation.org
ViewVC Help
Powered by ViewVC 1.1.26