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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26