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

Legend:
Removed from v.1424  
changed lines
  Added in v.1600

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26