/[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 1349 by jonathan, Tue Jul 1 16:12:38 2003 UTC revision 1540 by bh, Fri Aug 1 14:28:21 2003 UTC
# Line 1  Line 1 
1    2003-08-01  Bernhard Herzog  <[email protected]>
2    
3            First step towards PostGIS integration. More abstraction by movin
4            more code from the layer to the shapestore. More methods of the
5            layer are now simply delegated to the equivalent method of the
6            shapestore. The SHAPETYPE_* constants are now in data not in
7            layer.
8    
9            * Thuban/Model/data.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
10            (SHAPETYPE_POINT, Shape): Move these constants and classes from
11            layer.py to data.py
12            (ShapefileStore.__init__): More Initialization for the new methods
13            and functionality.
14            (ShapefileStore.ShapeType, ShapefileStore.NumShapes)
15            (ShapefileStore.BoundingBox, ShapefileStore.ShapesInRegion)
16            (ShapefileStore.Shape): New methods that were formerly implemented
17            in the layer.
18            (DerivedShapeStore.Shape, DerivedShapeStore.ShapesInRegion)
19            (DerivedShapeStore.ShapeType, DerivedShapeStore.NumShapes)
20            (DerivedShapeStore.BoundingBox): New. DerivedShapeStore
21            equivalents of the new shape methods. These versions are simply
22            delegated to the original shapstore.
23    
24            * Thuban/Model/layer.py (SHAPETYPE_POLYGON, SHAPETYPE_ARC)
25            (SHAPETYPE_POINT, Shape): Removed. They're now in data.py
26            (Layer.SetShapeStore): Removed the initializatin of instance
27            variables that were needed for the stuff that's now in
28            ShapefileStore
29            (Layer.BoundingBox, Layer.NumShapes, Layer.ShapeType)
30            (Layer.Shape, Layer.ShapesInRegion): Simply delegate to the
31            shapestore.
32    
33            * Thuban/UI/classifier.py, Thuban/UI/renderer.py,
34            Thuban/UI/viewport.py: Import the SHAPETYPE_* constants from data
35            instead of layer.
36    
37            * test/test_shapefilestore.py: New. Tests for ShapefileStore.
38    
39            * test/test_derivedshapestore.py: New. Tests for DerivedShapeStore.
40    
41            * test/test_layer.py: Import the SHAPETYPE_* constants from data
42            instead of layer.
43            (TestLayer.test_derived_store): Remove the test for the exception
44            when instantiating the DerivedShapeStore with an incompatible
45            table which is now in test_derivedshapestore.py. Add some more
46            tests of the layer methods to determine whether they work for a
47            DerivedShapeStore as well.
48    
49    2003-07-31  Jonathan Coles   <[email protected]>
50    
51            * Doc/manual/thuban-manual.xml: Fix the list of required packages
52            by just listing the name and where they can be found.
53    
54    2003-07-31  Frank Koormann   <[email protected]>
55    
56            * Doc/manual/thuban-manual.xml:
57            Changed the screenshot elements to figure.
58            Changed some variablelist elements to itemizedlist.
59            Added section on GDAL formats.
60    
61    2003-07-31  Jonathan Coles   <[email protected]>
62    
63            * Doc/manual/thuban-manual.xml: Added a few sentences about
64            the Fix Border Color option when generating classes.
65    
66    2003-07-30  Jonathan Coles   <[email protected]>
67    
68            * Thuban/Model/classgen.py: Add docstrings. Rename specific
69            Ramp instances to use lower_case_style.
70    
71            * Thuban/UI/classgen.py: Use renamed Ramp instances.
72            
73            * Thuban/UI/classifier.py: Add docstrings.
74    
75            * Thuban/UI/dock.py: Add docstrings.
76    
77            * test/test_classgen.py: Use renamed Ramp instances.
78    
79    2003-07-30  Bernhard Herzog  <[email protected]>
80    
81            * Thuban/Lib/connector.py (QueueingPublisher): Removed. This class
82            was never used in Thuban.
83    
84    2003-07-30  Bernhard Herzog  <[email protected]>
85    
86            * Thuban/UI/join.py (JoinDialog.__init__): Use the table's Title()
87            method directly instead of going through the transient_table
88            method. This faster because transient_table may force the copy of
89            a DBF file into the transient database and setting a table's title
90            doesnm't affect the title of the associated transient table, so
91            this fixes RT #2042
92    
93            * Thuban/UI/main.py (__version__): Don't import the already
94            removed show_exception_dialog.
95    
96    2003-07-29  Jonathan Coles   <[email protected]>
97    
98            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
99            Put back this method and remove the equivalent function since we
100            are setting the exception hook from within this class (OnInit).
101    
102    2003-07-29  Jonathan Coles   <[email protected]>
103    
104            * Doc/manual/images/5_2_custom_ramp.png,
105            Doc/manual/images/5_2_quantiles.png,
106            Doc/manual/images/5_2_uniform_dist.png,
107            Doc/manual/images/5_2_unique_values.png,
108            Doc/manual/images/8_int_error.png: New screen shots.
109    
110            * Doc/manual/thuban-manual.xml: Fixed typos and wording, clarified
111            some points, and added more screen shots.
112    
113    2003-07-29  Bernhard Herzog  <[email protected]>
114    
115            * Thuban/Model/data.py: Remove the now unused import of warnings
116    
117    2003-07-29  Bernhard Herzog  <[email protected]>
118    
119            * Thuban/Model/data.py (SimpleStore): Removed. This class has been
120            deprecated since before the 0.8 release and isn't used in Thuban
121            itself anymore.
122    
123            * Thuban/Model/transientdb.py: Remove some unnecessary imports
124    
125    2003-07-29  Jonathan Coles   <[email protected]>
126    
127            * Thuban/UI/application.py (ThubanApplication.OnInit): set the
128            python exception hook here so that we are sure to catch any
129            Thuban exception that happen during initialization.
130    
131            * Thuban/UI/main.py (main): Don't set the exception hook here,
132            it will get set in ThubanApplication.OnInit.
133    
134    2003-07-29  Jonathan Coles   <[email protected]>
135                                                                                
136            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
137            Removed and called it show_exception_dialog() so that the exception
138            handler can be set before the class is created.
139                                                                                
140            * Thuban/UI/main.py (main): Install the exception handler before
141            a ThubanApplication is created.
142                                                                                    
143    2003-07-29  Bernhard Herzog  <[email protected]>
144    
145            * po/it.po: New. Italian translation by Maurizio Napolitano
146    
147            * po/ru.po: New. Russian translation by Alex Shevlakov
148    
149    2003-07-29  Frank Koormann   <[email protected]>
150    
151            * Doc/manual/thuban-manual.xml: Extended section on supported
152            projections.
153            
154    2003-07-29  Frank Koormann   <[email protected]>
155    
156            * Doc/manual/thuban-manual.xml: gaspell-checked.
157    
158    2003-07-29  Jonathan Coles   <[email protected]>
159    
160            * Doc/manual/images/3_5_legend.png: Added border to improve look
161            on white background.
162    
163    2003-07-29  Jonathan Coles   <[email protected]>
164    
165            * Doc/manual/thuban-manual.xml: Fixed grammar and typos. Added
166            descriptions for the legend toolbar.
167    
168            * Doc/manual/images/4_2_raster_layer_properties.png: Removed
169            cursor from dialog box.
170    
171    2003-07-28  Jonathan Coles   <[email protected]>
172    
173            * Doc/manual/thuban-manual.xml: More screenshots and more chapters.
174    
175            * Doc/manual/images/2_4_session_tree.png,
176            Doc/manual/images/3_5_legend.png, Doc/manual/images/3_rename_map.png,
177            Doc/manual/images/4_2_layer_properties.png,
178            Doc/manual/images/4_2_raster_layer_properties.png,
179            Doc/manual/images/5_3_genclass.png,
180            Doc/manual/images/5_classification.png,
181            Doc/manual/images/6_projection.png,
182            Doc/manual/images/7_1_table_view.png,
183            Doc/manual/images/7_2_5_join.png: New screenshots.
184    
185    2003-07-24  Jonathan Coles   <[email protected]>
186    
187            * Doc/manual/thuban-manual.xml: Chapter on Projection Management.
188    
189    2003-07-24  Jonathan Coles   <[email protected]>
190    
191            * Doc/manual/thuban-manual.xml: Added EPS images and wrote
192            chapter on Layer Management.
193    
194            * Doc/manual/Makefile: New. Makefile to generate all formats for the
195            manual and images.
196    
197    2003-07-24  Bernhard Herzog  <[email protected]>
198    
199            * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
200            it annoys lintian which warns about these files not being
201            executable. The #1 isn't necessary here since if you absolutely
202            must execute them you can always say "python <filename>".
203    
204            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove
205            superfluous code to set brush and pen for point shapes
206    
207            * Thuban/UI/viewport.py: Remove commented out code that wouldn't
208            belong in viewport anyway
209    
210    2003-07-24  Frank Koormann   <[email protected]>
211    
212            * Doc/manual/thuban-manual.xml: Added section on table management.
213    
214    2003-07-24  Bernhard Herzog  <[email protected]>
215    
216            * test/runtests.py (main): Recognize the long "verbose" option
217            correctly.
218    
219    2003-07-22  Jonathan Coles   <[email protected]>
220    
221            * Doc/manual/thuban-manual.xml: Continue to write first revision
222            of the manual.
223    
224            * Thuban/UI/renderer.py (MapRenderer.render_map): Wrap method
225            with Begin/EndDrawing() calls to ensure we aren't doing to
226            many updates to the dc during rendering.
227            (ScreenRenderer.draw_shape_layer): self.draw_point_shape takes
228            a pen and brush argument so they need to be passed to the function.
229    
230            * Thuban/UI/viewport.py (ViewPort.calc_min_max_scales): New.
231            Calculates the minimum and maximum scale values. Factored out
232            of set_view_transform so that it could be used to zoom all the
233            way into a single point.
234            (ViewPort.set_view_transform): Call calc_min_max_scales().
235            (ViewPort.FitSelectedToWindow): Zoom to the maximum scale
236            if only a single point is selected.
237    
238            * Doc/manual/images/1_2_legend_close.png,
239            Doc/manual/images/1_2_legend_dock.png,
240            Doc/manual/images/1_2_mainwindow.png,
241            Doc/manual/images/1_2_mainwindow.ps,
242            Doc/manual/images/1_2_mainwindow.sk,
243            Doc/manual/images/3_2_fullextent.png,
244            Doc/manual/images/3_2_fulllayerextent.png,
245            Doc/manual/images/3_2_fullshapeextent.png,
246            Doc/manual/images/3_2_pan.png,
247            Doc/manual/images/3_2_zoomin.png,
248            Doc/manual/images/3_2_zoomout.png,
249            Doc/manual/images/3_3_identify.png,
250            Doc/manual/images/3_3_label.png,
251            Doc/manual/images/3_5_invisible.png,
252            Doc/manual/images/3_5_movedown.png,
253            Doc/manual/images/3_5_moveup.png,
254            Doc/manual/images/3_5_props.png,
255            Doc/manual/images/3_5_tobottom.png,
256            Doc/manual/images/3_5_totop.png,
257            Doc/manual/images/3_5_visible.png: New. Images for the documentation.
258    
259    2003-07-18  Bernhard Herzog  <[email protected]>
260    
261            * Thuban/UI/messages.py (MAP_REPLACED): New message.
262    
263            * Thuban/UI/viewport.py (ViewPort.SetMap): Issue MAP_REPLACED
264            after the new map has been assigned
265    
266            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages):
267            Delegate MAP_REPLACED to the canvas too
268            (MainWindow.prepare_new_session): Removed. Thanks to the new
269            MAP_REPLACED message it's no longer needed
270            (MainWindow.OpenSession, MainWindow.NewSession):
271            prepare_new_session has been removed.
272    
273            * Thuban/UI/classifier.py (Classifier.__init__): Subscribe to
274            MAP_REPLACED so that we can close the dialog if a new map is set.
275            (Classifier.unsubscribe_messages): Unsubscribe from MAP_REPLACED
276            (Classifier.map_replaced): Handle MAP_REPLACED by closing the
277            dialog
278    
279            * test/test_viewport.py (SimpleViewPortTest)
280            (SimpleViewPortTest.test_default_size): Add doc-strings
281            (ViewPortTest.setUp): Bind map to self.map so we can use it in
282            tests. Subscribe to MAP_REPLACED messages too.
283            (ViewPortTest.tearDown): No need to explicitly unsubscribe
284            (ViewPortTest.test_set_map): New test for the SetMap method.
285    
286    2003-07-18  Bernhard Herzog  <[email protected]>
287    
288            * test/test_viewport.py (SimpleViewPortTest.test_default_size):
289            Move this test from ViewPortTest.setUp to this new separate test
290            case. setUp is not the place for the actual tests.
291            (ViewPortTest.test_inital_settings, ViewPortTest.setUp): Move some
292            more of the test from setUp to the new test test_inital_settings.
293            (ViewPortTest.test_win_to_proj, ViewPortTest.test_proj_to_win)
294            (ViewPortTest.test_proj_conv): Split test_proj_conv into
295            test_win_to_proj and test_proj_to_win and make the tests easier to
296            understand
297            (ViewPortTest.testFitRectToWindow, ViewPortTest.testZoomFactor)
298            (ViewPortTest.testZoomOutToRect, ViewPortTest.testTranslate)
299            (ViewPortTest.test_unprojected_rect_around_point)
300            (ViewPortTest.test_find_shape_at, ViewPortTest.testTools):
301            Reformat to increase readability.
302    
303    2003-07-18  Bernhard Herzog  <[email protected]>
304    
305            * Thuban/UI/view.py (MapCanvas.OnLeftDown): Capture the mouse.
306    
307    2003-07-18  Bernhard Herzog  <[email protected]>
308    
309            * test/runtests.py: The test suite can now be run without an X
310            connection. To make sure this remains true, remove the DISPLAY
311            environment variable so that an error occurs if the wxGTK is
312            imported accidentally
313    
314    2003-07-18  Bernhard Herzog  <[email protected]>
315    
316            * Thuban/UI/viewport.py: Remove unused imports
317    
318            * Thuban/UI/view.py: Remove unused imports
319    
320    2003-07-18  Bernhard Herzog  <[email protected]>
321    
322            * test/test_export.py Remove unused imports. The OutputTransform
323            function is now in viewport.py and is called output_transform
324            (TestScalebar.test_output_transform)
325            (TestScalebar.test_OutputTransform): Renamed to
326            test_output_transform and updated to use output_transform instead
327            of OutputTransform
328    
329            * Thuban/UI/view.py (OutputTransform): Moved to viewport.py and
330            renamed.
331            (MapCanvas.Export, MapPrintout.draw_on_dc): OutputTransform was
332            renamed to output_transform
333    
334            * Thuban/UI/viewport.py (OutputTransform, output_transform):
335            Rename to output_transform
336    
337    2003-07-18  Bernhard Herzog  <[email protected]>
338    
339            * Thuban/Model/layer.py (Layer.__init__): Rename
340            classificationField to classificatin_column and init it here so
341            that it can be used in SetClassificationColumn
342            (Layer.GetClassificationColumn, Layer.GetClassificationField):
343            Rename to GetClassificationColumn.
344            (Layer.SetClassificationColumn, Layer.SetClassificationField):
345            Rename to SetClassificationColumn and issue a LAYER_CHANGED
346            message if the column changes.
347            (Layer._classification_changed, Layer.ClassChanged): Rename to
348            _classification_changed. Update the callers.
349            (Layer.SetShapeStore): Further field->column renames.
350    
351            * Thuban/Model/load.py (SessionLoader.start_classification)
352            (SessionLoader.start_clpoint): Updates because of
353            field->column method name changes in the Layer class
354    
355            * Thuban/Model/save.py (SessionSaver.write_classification): Updates
356            because of field->column method name changes in the Layer class
357    
358            * Thuban/UI/classifier.py (Classifier.__init__)
359            (Classifier._OnTry, Classifier._OnRevert): Updates because of
360            field->column method name changes in the Layer class
361    
362            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Updates
363            because of field->column method name changes in the Layer class
364    
365            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Updates because
366            of field->column method name changes in the Layer class
367    
368            * test/test_save.py (SaveSessionTest.testClassifiedLayer)
369            (SaveSessionTest.testClassifiedLayer): Update because of
370            field->column method name changes in the Layer class
371    
372            * test/test_layer.py (SetShapeStoreTests.setUp)
373            (SetShapeStoreTests.test_sanity): Update because of field->column
374            method name changes in the Layer class
375            (TestLayerModification.setUp): Subscribe to LAYER_CHANGED as well
376            (TestLayerModification.test_sanity)
377            (TestLayerModification.test_initial_settings): remove unsued code
378            and rename to test_sanity.
379            (TestLayerModification.test_set_classification): New test for
380            SetClassification and SetClassificationField.
381    
382    2003-07-18  Bernhard Herzog  <[email protected]>
383    
384            * test/test_classgen.py (TestFixedRamp.test): Extend test to check
385            the non-fixed values as well. The old test would have accepted a
386            fixed ramp that only returnes the fixed properties
387    
388    2003-07-17  Jonathan Coles   <[email protected]>
389    
390            * Doc/manual/mainwindow.png, Doc/manual/mainwindow.xcf: Screen
391            shots for the manual. The XCF file is the source image and
392            has additional layers to support changes.
393    
394            * Doc/manual/thuban-manual.xml: Wrote an initial Introduction.
395    
396            * Thuban/UI/classifier.py (Classifier.__BuildClassification):
397            Return both the new class and the field name.
398    
399            * Thuban/UI/mainwindow.py (MainWindow.ToggleLegend): Don't
400            fit the map to the window as this changes any zoom level that
401            the user may have set.
402    
403    2003-07-16  Jonathan Coles   <[email protected]>
404    
405            * Thuban/Model/classgen.py (generate_singletons,
406            generate_uniform_distribution, generate_quantiles): Remove
407            fixes parameter, but maintain the same functionality by having
408            the calling function pass a FixedRamp object for the ramp.
409            (FixedRamp): New. Adapts a ramp to have fixed property values.
410    
411            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
412            (Classification): Inherit from Publisher.
413            (Classification.__init__): Remove the layer parameter.
414            Classifications no longer need to have a parent layer.
415            (Classification.GetField, Classification.GetFieldType,
416            Classification.SetFieldInfo): Removed. The field name is stored
417            in the layer, and the type can be retreived by calling
418            Layer.GetFieldType().
419            (Classification._set_layer, Classification.GetLayer): Removed.
420            Classifications no longer have a parent layer.
421    
422            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
423            classification.
424            (Layer.SetShapeStore): Reset the classification first while
425            we still have the old shape store to work with.
426            (Layer.GetClassificationField, Layer.SetClassificationField):
427            New. Method for getting/setting the field to classify on.
428            (Layer.SetClassification): Simplified now that the layer
429            simply has to hold a reference to the classification and not
430            tell the classification who owns it.
431            Fixes RTbug #2023.
432    
433            * Thuban/Model/load.py (SessionLoader.start_classification):
434            Set the field name on the layer, not the classification.
435    
436            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
437            classification is modified.
438    
439            * Thuban/Model/save.py (SessionSaver.write_classification):
440            Get the field name and type from the layer.
441    
442            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
443            parameter records to rows and add docstring. Fixes RTbug #1997.
444    
445            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
446            ramp when we need to fix certain values of a ramp rather than
447            using the old fixes parameter. Fixes RTbug #2024.
448    
449            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
450            parameter.
451            (ClassTable.Reset): Add fieldType parameter and use it, rather
452            than asking the classification.
453            (Classifier.__init__): Remember the original class's field
454            and ask the layer for the field type, rather than the classification.
455            (Classifier.__SetGridTable): Retrieve the field and field type
456            for the table because they are not in the classification.
457            (Classifier._OnTry, Classifier._OnRevert): Set the classification
458            field on the layer in addition to the classification itself.
459    
460            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
461            classification field from layer.
462    
463            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
464            classification field from layer. Split up tests and remove
465            *-imports. Fixes RTbug #1992.
466    
467            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
468    
469            * test/test_classification.py
470            (TestClassification.test_classification): Remove tests for methods
471            that no longer exist.
472    
473            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
474            __init__ no longer has a field parameter, use SetClassificationField.
475            (SetShapeStoreTests.test_sanity): Use layer object to get class
476            field info.
477    
478            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
479            SetClassificationField on layer to set class field info.
480    
481            * test/test_viewport.py: Renamed from test/test_view.py.
482    
483    2003-07-16  Jan-Oliver Wagner <[email protected]>
484    
485            * Doc/manual/thuban-manual.xml: Added authors and an initial
486            coarse structure.
487    
488    2003-07-15  Bernhard Herzog  <[email protected]>
489    
490            * test/support.py (FloatComparisonMixin): This is a mix-in class
491            and therefore should not be derived from any other class.
492    
493            * test/test_range.py (RangeTest): FloatComparisonMixin is a
494            mix-in, so derive from TestCase as well.
495    
496    2003-07-15  Bernhard Herzog  <[email protected]>
497    
498            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
499            draw_func handling a bit to remove one layer of indirection. This
500            makes the renderer about 10% faster in the non-classifying case
501            and the code a bit cleaner
502            (MapRenderer.draw_point_shape): Add the pen and brush parameters
503            and set them in the dc. Now the draw_point_shape method and
504            wxproj's draw_polygon_shape function have basically the same
505            signature so that both can be directly used as draw_func
506    
507    2003-07-15  Bernhard Herzog  <[email protected]>
508    
509            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
510            string values (in addition to the labels) as UTF 8
511    
512            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
513            values if the field type is string
514    
515            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
516            saving a session with non-ascii string classification values.
517    
518            * test/test_load.py (TestClassification.file_contents)
519            (TestClassification.test): Check for non-ascii values in string
520            classifications
521    
522    2003-07-14  Jonathan Coles   <[email protected]>
523    
524            * test/test_view.py: New. Tests for ViewPort.
525    
526    2003-07-14  Frank Koormann   <[email protected]>
527    
528            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
529            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
530    
531            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
532            unicode strings from session file: session title, map title and
533            projection name.
534            
535    2003-07-10  Jonathan Coles   <[email protected]>
536    
537            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
538            drag_stop, not drag_move when the mouse is released.
539    
540    2003-07-10  Jonathan Coles   <[email protected]>
541    
542            The most important part of this is the seperation of view.py into
543            two pieces. viewport.py now has a class called ViewPort which
544            contains all the non-wx parts of view.py and can therefore be
545            tested. view.py contains only the wx-specific parts and is fairly
546            simple.
547    
548            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
549            RTTbug #1992.
550            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
551            RTTbug #1992.
552    
553            * Thuban/Model/classgen.py (generate_singletons,
554            generate_uniform_distribution, generate_quantiles):
555            Added 'fixes' parameter so that property attributes can
556            be held constant over the generated classification groups.
557            (CustomRamp.GetProperties): Remove unused variables.
558    
559            * Thuban/Model/map.py (Map.SetProjection): Send the old
560            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
561            event.
562    
563            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
564            parameter which is a list of records that restricts which
565            records are saved. Fixes RTbug #1997.
566    
567            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
568            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
569    
570            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
571            to allow the user to fix line color/width on generated groups.
572            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
573            functions to optionally fix group properties.
574    
575            * Thuban/UI/main.py (main): Set exception hook to the
576            ShowExceptionDialog. Fixes RTbug #1993.
577    
578            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
579            the table window when it is selectd to be shown.
580    
581            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
582            Export Selection button and move the export buttons underneath
583            the table.
584            (QueryTableFrame.UpdateStatusText): Added event argument so
585            that it can respond to grid selection events. The status text
586            is now updated even when the table is not associated with a
587            layer as was previously assumed.
588            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
589            UpdateStatusText responds to these events.
590            (QueryTableFrame.OnSaveAs): Renamed to doExport.
591            (QueryTableFrame.doExport): Helper function that saves the
592            entire table, or selected rows, to a file.
593            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
594            Respond to export button events and call doExport.
595    
596            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
597            the function doesn't return NULL without first setting a Python
598            Error.
599    
600            * test/runtests.py (main): Only print "Unknown option" for
601            unsupported options.
602    
603            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
604            optional epsilon argument to specify floating point accuracy.
605            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
606            for each item test.
607    
608            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
609            tests for saving selected records.
610    
611            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
612            tests for saving selected records.
613    
614            * test/test_map.py (TestMapWithContents.test_set_projection):
615            MAP_PROJECTION_CHANGED events send the old projection.
616    
617            * test/test_session.py
618            (TestSessionWithContent.test_forward_map_projection):
619            MAP_PROJECTION_CHANGED events send the old projection.
620    
621            * test/test_table.py (TableTest): Update tests to use non-deprecated
622            functions.
623    
624    2003-07-08  Bernhard Herzog  <[email protected]>
625    
626            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
627            constants in the column objects are the standard ones defined in
628            the table module.
629    
630            * test/test_transientdb.py
631            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
632            exporting transient tables as DBF works. This should catch the bug
633            just fixed in TransientTableBase.Width.
634    
635    2003-07-08  Bernhard Herzog  <[email protected]>
636    
637            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
638            interpolated colors correctly.
639    
640            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
641            New. Test case for the fix in classgen.py
642    
643    2003-07-08  Bernhard Herzog  <[email protected]>
644    
645            * test/runtests.py (main): Make the default output less verbose
646            and add a verbosity option (-v) to get the old output
647    
648    2003-07-08  Bernhard Herzog  <[email protected]>
649    
650            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
651            0.9.
652    
653            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
654            New. Return the join type
655    
656            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
657            DTD
658            (SessionSaver.write_data_containers): Save the join type for
659            joined tables
660    
661            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
662            namespace
663            (SessionLoader.start_jointable): Handle the jointype attribute
664    
665            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
666            as of Thuban 0.8. These are now tests to determine whether Thuban
667            can still read files generated by Thuban 0.8
668    
669            * test/test_load.py (LoadSessionTest.dtd)
670            (TestSingleLayer.file_contents)
671            (TestLayerVisibility.file_contents, TestLabels.file_contents)
672            (TestLayerProjection.file_contents)
673            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
674            (TestJoinedTable.file_contents)
675            (TestLoadError.file_contents): Update for new DTD
676            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
677            for new join type attribute
678    
679            * test/test_save.py (SaveSessionTest.dtd)
680            (SaveSessionTest.testEmptySession)
681            (SaveSessionTest.testSingleLayer)
682            (SaveSessionTest.testLayerProjection)
683            (SaveSessionTest.testRasterLayer)
684            (SaveSessionTest.testClassifiedLayer)
685            (SaveSessionTest.test_dbf_table)
686            (SaveSessionTest.test_joined_table): Update for new DTD
687            (SaveSessionTest.test_joined_table): Add test for new join type
688            attribute
689    
690    2003-07-04  Bernhard Herzog  <[email protected]>
691    
692            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
693            function for table_to_dbf
694            (table_to_dbf): Deal with names longer than the 10 character limit
695    
696            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
697            doc-string
698            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
699            long column names
700    
701    2003-07-03  Bernhard Herzog  <[email protected]>
702    
703            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
704    
705    2003-07-03  Bernhard Herzog  <[email protected]>
706    
707            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
708            for the Thuban manual and README with some basic information about
709            the manual
710    
711    2003-07-03  Bernhard Herzog  <[email protected]>
712    
713            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
714            Update doc-string
715            (TransientJoinedTable.create): Do not modify the column objects of
716            the input tables in place and copy all columns of the input tables
717            into the joined table after all.
718    
719            * test/test_transientdb.py
720            (TestTransientTable.test_transient_joined_table_same_column_name):
721            Update to reflect the new behavior
722            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
723            Update to reflect the new behavior
724            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
725            New test case for a bug which modified the column objects in place
726    
727    2003-07-02  Jonathan Coles   <[email protected]>
728    
729            * Thuban/Model/classgen.py (generate_singletons,
730            generate_uniform_distribution, generate_quantiles,
731            GenQuantiles0): Make sure maxValue isn't less than
732            one, otherwise we could divide by zero.
733    
734            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
735            ClassGenTest.doClassSingleTest): Call doBoundsTest to
736            check the end classification groups against the
737            proper property values.
738            (ClassGenTest.doBoundsTest): New. Checks the first and
739            last classification groups to make sure their properties
740            are the correct upper and lower bounds for a color ramp.
741    
742    2003-07-02  Jonathan Coles   <[email protected]>
743    
744            * Thuban/Model/classgen.py (generate_singletons,
745            generate_uniform_distribution, generate_quantiles,
746            GenQuantiles0): The denominator was one to high when
747            calculating the index for the ramp causing the index
748            to never to reach one.
749    
750    2003-07-02  Jonathan Coles   <[email protected]>
751    
752            Changed the singature of ClassGroupRange.__init__ and
753            ClassGroupRange.SetRange() so that the min/max values are
754            passed as a tuple. This makes a better calling scheme for
755            when a Range object is passed instead.
756    
757            * Thuban/Model/classgen.py: Fixed parameters to
758            ClassGroupRange constructor.
759    
760            * Thuban/Model/classification.py (ClassGroupRange.__init__):
761            Consolidate the min/max parameters into a single _range which
762            can either be a tuple or a Range object.
763            (ClassGroupRange.SetRange): Consolidate the min/max parameters
764            into a single _range which can either be a tuple or a Range object.
765    
766            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
767            call to ClassGroupRange constructor to use a tuple.
768    
769            * Thuban/Model/layer.py (Layer.SetClassification): Switch
770            the classification instance variable to the new class
771            before calling _set_layer otherwise subscribers to a
772            LAYER_CHANGED event will not see any difference.
773    
774            * test/test_classification.py: Fix tests of ClassGroupRange
775            so that they use the new signature.
776    
777            * test/test_load.py: Fix use of ClassGroupRange so that it
778            uses the new signature.
779    
780            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
781            uses the new signature.
782    
783            * test/test_save.py: Fix use of ClassGroupRange so that it
784            uses the new signature.
785    
786    
787  2003-07-01  Jonathan Coles   <[email protected]>  2003-07-01  Jonathan Coles   <[email protected]>
788    
789          * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.          * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.

Legend:
Removed from v.1349  
changed lines
  Added in v.1540

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26