/[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 1516 by bh, Tue Jul 29 14:59:21 2003 UTC revision 1596 by jan, Mon Aug 18 10:03:28 2003 UTC
# Line 1  Line 1 
1    2003-08-18  Jan-Oliver Wagner <[email protected]>
2    
3            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
4    
5    2003-08-15  Bernhard Herzog  <[email protected]>
6    
7            Change the way shapes are returned by a shape store. The
8            ShapesInRegion method returns an iterator over actual shape
9            objects instead of a list of shape ids.
10    
11            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
12            id.
13            (ShapefileStore.ShapesInRegion): Return an iterator over the
14            shapes which yields shape objects instead of returning a list of
15            shape ids
16            (ShapefileStore.AllShapes): New. Return an iterator over all
17            shapes in the shape store
18            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
19    
20            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
21            doc-string.
22    
23            * Thuban/UI/baserenderer.py
24            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
25            layer_shapes and make it return an iterator containg shapes
26            instead of a list of ids.
27            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
28            layer_shapes() change
29    
30            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
31            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
32    
33            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
34            changes in the ShapesInRegion return value.
35            (ViewPort._get_hit_tester): Remove commented out code
36    
37            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
38            new return value.
39            (SimpleShapeStore.AllShapes): New. Implement this method too.
40    
41            * test/test_layer.py (TestLayer.test_arc_layer)
42            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
43            (TestLayer.test_point_layer_with_projection)
44            (TestLayer.test_derived_store): Adapt to changes in the
45            ShapesInRegion return value.
46    
47            * test/test_shapefilestore.py
48            (TestShapefileStoreArc.test_shapes_in_region)
49            (TestShapefileStorePolygon.test_shapes_in_region)
50            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
51            in the ShapesInRegion return value.
52            (TestShapefileStorePoint.test_all_shapes)
53            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
54            methods
55    
56            * test/test_derivedshapestore.py
57            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
58            the ShapesInRegion return value.
59            (TestDerivedShapeStore.test_all_shapes)
60            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
61            methods
62    
63    2003-08-15  Bernhard Herzog  <[email protected]>
64    
65            Make the renderers deal correctly with raw vs. python level
66            representation of shape geometries
67    
68            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
69            Return a flag useraw in addition to the callable and the parameter
70            to indicate whether the callable can deal with the raw shape data
71            or uses the higher level python lists of coordinates. The callable
72            now should accept either the raw data or the return value of the
73            shape's Points() method.
74            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
75            change
76            (BaseRenderer.projected_points): Instead of the shape id use the
77            points list as parameter.
78            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
79            (BaseRenderer.draw_point_shape): Adapt to projected_points()
80            change and accept the points list as parameter instead of the
81            shape id.
82    
83            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
84            the useraw flag as required by the BaseRenderer
85            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
86            changes.
87    
88            * test/test_baserenderer.py
89            (TestBaseRenderer.test_point_with_classification): New test for
90            rendering a map with classifications.
91    
92    2003-08-15  Bernhard Herzog  <[email protected]>
93    
94            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
95            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
96            (ViewPort._get_hit_tester, ViewPort.projected_points)
97            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
98            (ViewPort._find_label_at): Split the find_shape_at method into
99            several new methods and use the functions in the hit-test module.
100    
101            * Thuban/UI/hittest.py: New module with Python-level hit-testing
102            functions
103    
104            * test/test_hittest.py: New. Test for the new hittest module
105    
106    2003-08-15  Bernhard Herzog  <[email protected]>
107    
108            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
109            projection to all corners of the bounding box to get a better
110            approximation of the projected bounding box
111    
112            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
113            New. Test coordinate handling of a layer with a projection.
114            Catches the bug fixed in Layer.ShapesInRegion
115    
116    2003-08-15  Bernhard Herzog  <[email protected]>
117    
118            Move some of the mock objects in test_baserenderer into their own
119            module so they can easily be used from other tests
120    
121            * test/mockgeo.py: New test helper module with some mock objects
122            for geometry related things like shapes, shapestores and
123            projections.
124    
125            * test/test_mockgeo.py: New. Tests for the new helper module
126    
127            * test/test_baserenderer.py: Some of the mock-objects are in
128            mockgeo now.
129    
130    2003-08-12  Jan-Oliver Wagner <[email protected]>
131    
132            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
133    
134    2003-08-12  Bernhard Herzog  <[email protected]>
135    
136            * po/de.po: New. German translations by Bjoern Broscheit
137    
138    2003-08-12  Bernhard Herzog  <[email protected]>
139    
140            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
141            strings have to be one string literal.
142    
143    2003-08-11  Bernhard Herzog  <[email protected]>
144    
145            * test/support.py (FloatComparisonMixin.assertPointListEquals):
146            New. This method was used in various derived classes, but it's
147            better to have it here.
148    
149            * test/test_shapefilestore.py
150            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
151            FloatComparisonMixin
152    
153            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
154            It's now in FloatComparisonMixin
155    
156            * test/test_derivedshapestore.py
157            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
158            in FloatComparisonMixin
159    
160    2003-08-11  Bernhard Herzog  <[email protected]>
161    
162            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
163            error message
164    
165    2003-08-08  Jan-Oliver Wagner <[email protected]>
166    
167            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
168            with version number.
169            Changed title to reflect version number of Thuban.
170    
171    2003-08-08  Jan-Oliver Wagner <[email protected]>
172    
173            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
174            the list corresponds to the "About" web page.
175    
176    2003-08-08  Bernhard Herzog  <[email protected]>
177    
178            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
179            Make sure translated strings are recognized as one string literal.
180    
181            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
182            Make sure translated strings are recognized as one string literal.
183    
184            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
185            translated strings are recognized as one string literal.
186    
187            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
188            sure translated strings are recognized as one string literal.
189    
190    2003-08-07  Bernhard Herzog  <[email protected]>
191    
192            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
193            Simply delegates to the original shapestore.
194    
195            * test/test_derivedshapestore.py
196            (TestDerivedShapeStore.test_raw_format): New. Test case for
197            DerivedShapeStore.RawShapeFormat
198    
199    2003-08-07  Bernhard Herzog  <[email protected]>
200    
201            Add raw data interface to shape objects.
202    
203            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
204            class to ShapefileShape which now holds shapefile specific
205            information.
206            (ShapefileShape.compute_bbox): Simplified to not cache any
207            information. The way this method is used that shouldn't matter
208            performance wise.
209            (ShapefileShape.RawData): New. Return the shapeid which is the raw
210            data format for shapes from shapefiles.
211            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
212            in the shape objects returned by a shapestore. For a
213            ShapefileStore this is always RAW_SHAPEFILE.
214            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
215            method.
216    
217            * test/test_shapefilestore.py
218            (TestShapefileStore.test_raw_format): New test to test the raw
219            format feature of shapes.
220    
221            * Thuban/Model/layer.py: Remove the unused import of Shape from
222            data. It was only there for interface compatibility but it's not
223            used inside of Thuban and the generic Shape class has gone away.
224    
225            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
226            the raw data format and only use an optimized version of its a
227            shapefile.
228    
229    2003-08-07  Bernhard Herzog  <[email protected]>
230    
231            * test/test_baserenderer.py (SimpleShape): Shape class for the
232            tests.
233            (SimpleShapeStore.Shape): Use SimpleShape instead of
234            Thuban.Model.data.Shape to make the tests independed of the coming
235            changes.
236    
237    2003-08-07  Bernhard Herzog  <[email protected]>
238    
239            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
240            (ThubanTestProgram): New classes that extend the respective
241            classes from unittest. These new version support skipping tests
242            under certain expected conditions. In the Thuban test suite we
243            uses this for tests that require the optional gdal support.
244            (run_tests): Use ThubanTestProgram instead of the unittest.main()
245    
246            * test/runtests.py (main): Use the new ThubanTestRunner instead of
247            the normal one from unittest
248    
249            * test/test_layer.py (TestLayer.test_raster_layer): If this test
250            is not run because gdal support isn't available report this to the
251            runner.
252    
253            * test/test_baserenderer.py
254            (TestBaseRenderer.test_raster_no_projection): Do not run this test
255            if gdal support isn't available and report this to the runner.
256    
257    2003-08-06  Bernhard Herzog  <[email protected]>
258    
259            Rearrange the renderers a bit, partly in preparation for changes
260            required for the postgis merge, partly to make it more testable.
261            Also make the representation of coordinates in Shapes more
262            consistent.
263    
264            * Thuban/UI/renderer.py (MapRenderer): Most of the code/methods in
265            this class is now in BaseRenderer. This class is now practically
266            only a specialization of BaseRenderer for rendering to an actual
267            wx DC.
268            (ScreenRenderer.draw_shape_layer): Use self.low_level_renderer()
269            to get the shapetype specific rendering functions.
270    
271            * Thuban/UI/baserenderer.py: New file with the basic rendering
272            logic. The code in this file is completely independend of wx.
273            (BaseRenderer): Class with the basic rendering logic
274    
275            * test/test_baserenderer.py: New. Test cases for BaseRenderer
276    
277            * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
278            error_on_redraw to guard agains endless loops and stack overflows
279            when there's a bug in the rendering code that raises exceptions.
280            (MapCanvas.OnIdle, MapCanvas._do_redraw): Split the actual
281            rendering into a separate method _do_redraw so that error handling
282            is a bit easier. When an exception occurs, set error_on_redraw to
283            true. When it's true on entry to OnIdle do nothing and return
284            immediately.
285    
286            * Thuban/Model/data.py (ShapefileStore.Shape): For consistency, a
287            Shape object will always have the coordinates as a list of list of
288            coordinate pairs (tuples).
289            (Shape.compute_bbox): Adapt to new representation.
290    
291            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
292            (ViewPort.LabelShapeAt): Adapt to new coordinate representation in
293            Shape objects.
294    
295            * test/test_shapefilestore.py
296            (ShapefileStoreTests.assertFloatTuplesEqual)
297            (ShapefileStoreTests.assertPointListEquals): Rename to
298            assertPointListEquals and change purpose to checking equality of
299            the lists returned by Shape.Points().
300            (TestShapefileStoreArc.test_shape)
301            (TestShapefileStorePolygon.test_shape)
302            (TestShapefileStorePoint.test_shape): Use the new
303            assertPointListEquals instead of assertFloatTuplesEqual
304    
305            * test/test_layer.py (TestLayer.assertFloatTuplesEqual)
306            (TestLayer.assertPointListEquals): Rename to assertPointListEquals
307            and change purpose to checking equality of the lists returned by
308            Shape.Points().
309            (TestLayer.test_arc_layer, TestLayer.test_arc_layer)
310            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
311            (TestLayer.test_derived_store): Use the new assertPointListEquals
312            instead of assertFloatTuplesEqual
313    
314            * test/test_derivedshapestore.py
315            (TestDerivedShapeStore.assertFloatTuplesEqual)
316            (TestDerivedShapeStore.assertPointListEquals): Rename to
317            assertPointListEquals and change purpose to checking equality of
318            the lists returned by Shape.Points().
319            (TestDerivedShapeStore.test_shape): Use the new
320            assertPointListEquals instead of assertFloatTuplesEqual
321    
322    2003-08-06  Jan-Oliver Wagner <[email protected]>
323    
324            * Thuban/UI/projdialog.py (UTMPanel._OnPropose): Added test for
325            a bounding box. A dialog is raised in case, no bounding box
326            is found. This fixes bug #2043:
327            https://intevation.de/rt/webrt?serial_num=2043
328    
329    2003-08-05  Bernhard Herzog  <[email protected]>
330    
331            * Thuban/Model/color.py (Color.__repr__): Make the repr of a color
332            object look like a Color instantiation. Formerly it looked like a
333            tuple.
334    
335            * test/test_color.py (TestColor.test_repr)
336            (TestColor.test_equality, TestColor.test_inequality): New. test
337            some more apects of the Color class
338            (TestTransparent.test_repr, TestTransparent.test_hex)
339            (TestTransparent.test_equality): New. Test cases for the
340            Transparent object.
341    
342    2003-08-04  Jan-Oliver Wagner <[email protected]>
343    
344            * Doc/manual/thuban-manual.xml: a number of small improvements.
345            The resulting file is the version submitted for GREAT-ER II.
346    
347    2003-08-01  Bernhard Herzog  <[email protected]>
348    
349            * Thuban/UI/resource.py, Thuban/UI/projdialog.py,
350            Thuban/UI/join.py, Thuban/UI/classgen.py, Thuban/UI/about.py,
351            Thuban/Model/resource.py: Insert cvs keywords and doc-strings.
352    
353            * Thuban/UI/common.py: Insert cvs keywords and doc-strings.
354            (Color2wxColour, wxColour2Color, ThubanBeginBusyCursor)
355            (ThubanEndBusyCursor): Add doc-strings
356    
357    2003-08-01  Bernhard Herzog  <[email protected]>
358    
359            First step towards PostGIS integration. More abstraction by movin
360            more code from the layer to the shapestore. More methods of the
361            layer are now simply delegated to the equivalent method of the
362            shapestore. The SHAPETYPE_* constants are now in data not in
363            layer.
364    
365            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
366            (SHAPETYPE_POINT, Shape): Move these constants and classes from
367            layer.py to data.py
368            (ShapefileStore.__init__): More Initialization for the new methods
369            and functionality.
370            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
371            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
372            (ShapefileStore.Shape): New methods that were formerly implemented
373            in the layer.
374            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
375            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
376            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
377            equivalents of the new shape methods. These versions are simply
378            delegated to the original shapstore.
379    
380            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
381            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
382            (Layer.SetShapeStore): Removed the initializatin of instance
383            variables that were needed for the stuff that's now in
384            ShapefileStore
385            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
386            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
387            shapestore.
388    
389            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
390            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
391            instead of layer.
392    
393            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
394    
395            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
396    
397            * test/test_layer.py: Import the SHAPETYPE_* constants from data
398            instead of layer.
399            (TestLayer.test_derived_store): Remove the test for the exception
400            when instantiating the DerivedShapeStore with an incompatible
401            table which is now in test_derivedshapestore.py. Add some more
402            tests of the layer methods to determine whether they work for a
403            DerivedShapeStore as well.
404    
405    2003-07-31  Jonathan Coles   <[email protected]>
406    
407            * Doc/manual/thuban-manual.xml: Fix the list of required packages
408            by just listing the name and where they can be found.
409    
410    2003-07-31  Frank Koormann   <[email protected]>
411    
412            * Doc/manual/thuban-manual.xml:
413            Changed the screenshot elements to figure.
414            Changed some variablelist elements to itemizedlist.
415            Added section on GDAL formats.
416    
417    2003-07-31  Jonathan Coles   <[email protected]>
418    
419            * Doc/manual/thuban-manual.xml: Added a few sentences about
420            the Fix Border Color option when generating classes.
421    
422    2003-07-30  Jonathan Coles   <[email protected]>
423    
424            * Thuban/Model/classgen.py: Add docstrings. Rename specific
425            Ramp instances to use lower_case_style.
426    
427            * Thuban/UI/classgen.py: Use renamed Ramp instances.
428            
429            * Thuban/UI/classifier.py: Add docstrings.
430    
431            * Thuban/UI/dock.py: Add docstrings.
432    
433            * test/test_classgen.py: Use renamed Ramp instances.
434    
435    2003-07-30  Bernhard Herzog  <[email protected]>
436    
437            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
438            was never used in Thuban.
439    
440    2003-07-30  Bernhard Herzog  <[email protected]>
441    
442            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
443            method directly instead of going through the transient_table
444            method. This faster because transient_table may force the copy of
445            a DBF file into the transient database and setting a table's title
446            doesnm't affect the title of the associated transient table, so
447            this fixes RT #2042
448    
449            * Thuban/UI/main.py (__version__): Don't import the already
450            removed show_exception_dialog.
451    
452    2003-07-29  Jonathan Coles   <[email protected]>
453    
454            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
455            Put back this method and remove the equivalent function since we
456            are setting the exception hook from within this class (OnInit).
457    
458    2003-07-29  Jonathan Coles   <[email protected]>
459    
460            * Doc/manual/images/5_2_custom_ramp.png,
461            Doc/manual/images/5_2_quantiles.png,
462            Doc/manual/images/5_2_uniform_dist.png,
463            Doc/manual/images/5_2_unique_values.png,
464            Doc/manual/images/8_int_error.png: New screen shots.
465    
466            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
467            some points, and added more screen shots.
468    
469  2003-07-29  Bernhard Herzog  <[email protected]>  2003-07-29  Bernhard Herzog  <[email protected]>
470    
471          * Thuban/Model/data.py: Remove the now unused import of warnings          * Thuban/Model/data.py: Remove the now unused import of warnings

Legend:
Removed from v.1516  
changed lines
  Added in v.1596

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26