/[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 1312 by jonathan, Thu Jun 26 17:01:28 2003 UTC revision 1442 by jonathan, Wed Jul 16 13:31:05 2003 UTC
# Line 1  Line 1 
1    2003-07-16  Jonathan Coles   <[email protected]>
2    
3            * Thuban/Model/classgen.py (generate_singletons,
4            generate_uniform_distribution, generate_quantiles): Remove
5            fixes parameter, but maintain the same functionality by having
6            the calling function pass a FixedRamp object for the ramp.
7            (FixedRamp): New. Adapts a ramp to have fixed property values.
8    
9            * Thuban/Model/classification.py: Use new CLASS_CHANGED message.
10            (Classification): Inherit from Publisher.
11            (Classification.__init__): Remove the layer parameter.
12            Classifications no longer need to have a parent layer.
13            (Classification.GetField, Classification.GetFieldType,
14            Classification.SetFieldInfo): Removed. The field name is stored
15            in the layer, and the type can be retreived by calling
16            Layer.GetFieldType().
17            (Classification._set_layer, Classification.GetLayer): Removed.
18            Classifications no longer have a parent layer.
19    
20            * Thuban/Model/layer.py (Layer.Destroy): Unsubscribe from the
21            classification.
22            (Layer.SetShapeStore): Reset the classification first while
23            we still have the old shape store to work with.
24            (Layer.GetClassificationField, Layer.SetClassificationField):
25            New. Method for getting/setting the field to classify on.
26            (Layer.SetClassification): Simplified now that the layer
27            simply has to hold a reference to the classification and not
28            tell the classification who owns it.
29            Fixes RTbug #2023.
30    
31            * Thuban/Model/load.py (SessionLoader.start_classification):
32            Set the field name on the layer, not the classification.
33    
34            * Thuban/Model/messages.py: Add CLASS_CHANGED for when a
35            classification is modified.
36    
37            * Thuban/Model/save.py (SessionSaver.write_classification):
38            Get the field name and type from the layer.
39    
40            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Renamed
41            parameter records to rows and add docstring. Fixes RTbug #1997.
42    
43            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Use a fixed
44            ramp when we need to fix certain values of a ramp rather than
45            using the old fixes parameter. Fixes RTbug #2024.
46    
47            * Thuban/UI/classifier.py (ClassGrid.CreateTable): Add fieldType
48            parameter.
49            (ClassTable.Reset): Add fieldType parameter and use it, rather
50            than asking the classification.
51            (Classifier.__init__): Remember the original class's field
52            and ask the layer for the field type, rather than the classification.
53            (Classifier.__SetGridTable): Retrieve the field and field type
54            for the table because they are not in the classification.
55            (Classifier._OnTry, Classifier._OnRevert): Set the classification
56            field on the layer in addition to the classification itself.
57    
58            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Get the
59            classification field from layer.
60    
61            * Thuban/UI/viewport.py (ViewPort.find_shape_at): Get the
62            classification field from layer. Split up tests and remove
63            *-imports. Fixes RTbug #1992.
64    
65            * test/test_classgen.py (TestFixedRamp): Test for the FixedRamp class.
66    
67            * test/test_classification.py
68            (TestClassification.test_classification): Remove tests for methods
69            that no longer exist.
70    
71            * test/test_layer.py (SetShapeStoreTests.setUp): Classification
72            __init__ no longer has a field parameter, use SetClassificationField.
73            (SetShapeStoreTests.test_sanity): Use layer object to get class
74            field info.
75    
76            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Use
77            SetClassificationField on layer to set class field info.
78    
79            * test/test_viewport.py: Renamed from test/test_view.py.
80    
81    2003-07-16  Jan-Oliver Wagner <[email protected]>
82    
83            * Doc/manual/thuban-manual.xml: Added authors and an initial
84            coarse structure.
85    
86    2003-07-15  Bernhard Herzog  <[email protected]>
87    
88            * test/support.py (FloatComparisonMixin): This is a mix-in class
89            and therefore should not be derived from any other class.
90    
91            * test/test_range.py (RangeTest): FloatComparisonMixin is a
92            mix-in, so derive from TestCase as well.
93    
94    2003-07-15  Bernhard Herzog  <[email protected]>
95    
96            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Rework the
97            draw_func handling a bit to remove one layer of indirection. This
98            makes the renderer about 10% faster in the non-classifying case
99            and the code a bit cleaner
100            (MapRenderer.draw_point_shape): Add the pen and brush parameters
101            and set them in the dc. Now the draw_point_shape method and
102            wxproj's draw_polygon_shape function have basically the same
103            signature so that both can be directly used as draw_func
104    
105    2003-07-15  Bernhard Herzog  <[email protected]>
106    
107            * Thuban/Model/save.py (SessionSaver.write_classification): Encode
108            string values (in addition to the labels) as UTF 8
109    
110            * Thuban/Model/load.py (SessionLoader.start_clpoint): Decode the
111            values if the field type is string
112    
113            * test/test_save.py (SaveSessionTest.testClassifiedLayer): Test
114            saving a session with non-ascii string classification values.
115    
116            * test/test_load.py (TestClassification.file_contents)
117            (TestClassification.test): Check for non-ascii values in string
118            classifications
119    
120    2003-07-14  Jonathan Coles   <[email protected]>
121    
122            * test/test_view.py: New. Tests for ViewPort.
123    
124    2003-07-14  Frank Koormann   <[email protected]>
125    
126            * Thuban/Model/load.py (SessionLoader.start_map): Encode map
127            title to latin1.  Fixes https://intevation.de/rt/webrt?serial_num=2013
128    
129            * test/test_load_0_8.py (TestUnicodeStrings): New, test load of
130            unicode strings from session file: session title, map title and
131            projection name.
132            
133    2003-07-10  Jonathan Coles   <[email protected]>
134    
135            * Thuban/UI/viewport.py (Tool.MouseUp): Should have called
136            drag_stop, not drag_move when the mouse is released.
137    
138    2003-07-10  Jonathan Coles   <[email protected]>
139    
140            The most important part of this is the seperation of view.py into
141            two pieces. viewport.py now has a class called ViewPort which
142            contains all the non-wx parts of view.py and can therefore be
143            tested. view.py contains only the wx-specific parts and is fairly
144            simple.
145    
146            * Thuban/UI/view.py: Stripped out all non-wx functionality. Fixes
147            RTTbug #1992.
148            * Thuban/UI/viewport.py: New. Contains non-wx view functionality.
149            RTTbug #1992.
150    
151            * Thuban/Model/classgen.py (generate_singletons,
152            generate_uniform_distribution, generate_quantiles):
153            Added 'fixes' parameter so that property attributes can
154            be held constant over the generated classification groups.
155            (CustomRamp.GetProperties): Remove unused variables.
156    
157            * Thuban/Model/map.py (Map.SetProjection): Send the old
158            projection as an argument to listeners of the MAP_PROJECTION_CHANGED
159            event.
160    
161            * Thuban/Model/table.py (table_to_dbf, table_to_csv): Added 'records'
162            parameter which is a list of records that restricts which
163            records are saved. Fixes RTbug #1997.
164    
165            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
166            Port exception dialog from GREAT-ER. Fixes RTbug #1993.
167    
168            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Add controls
169            to allow the user to fix line color/width on generated groups.
170            (ClassGenDialog.OnOK): Use new 'fixes' parameter of the generate_*
171            functions to optionally fix group properties.
172    
173            * Thuban/UI/main.py (main): Set exception hook to the
174            ShowExceptionDialog. Fixes RTbug #1993.
175    
176            * Thuban/UI/mainwindow.py (MainWindow.ShowTableView): Raise
177            the table window when it is selectd to be shown.
178    
179            * Thuban/UI/tableview.py (QueryTableFrame.__init__): Add an
180            Export Selection button and move the export buttons underneath
181            the table.
182            (QueryTableFrame.UpdateStatusText): Added event argument so
183            that it can respond to grid selection events. The status text
184            is now updated even when the table is not associated with a
185            layer as was previously assumed.
186            (QueryTableFrame.OnGridSelectRange, OnGridSelectCell): Removed.
187            UpdateStatusText responds to these events.
188            (QueryTableFrame.OnSaveAs): Renamed to doExport.
189            (QueryTableFrame.doExport): Helper function that saves the
190            entire table, or selected rows, to a file.
191            (QueryTableFrame.OnExport, QueryTableFrame.OnExportSel): New.
192            Respond to export button events and call doExport.
193    
194            * extensions/thuban/gdalwarp.cpp (ProjectRasterFile): Make sure
195            the function doesn't return NULL without first setting a Python
196            Error.
197    
198            * test/runtests.py (main): Only print "Unknown option" for
199            unsupported options.
200    
201            * test/support.py (FloatComparisonMixin.assertFloatEqual): Take
202            optional epsilon argument to specify floating point accuracy.
203            (FloatComparisonMixin.assertFloatSeqEqual): Call assertFloatEqual
204            for each item test.
205    
206            * test/test_csv_table.py (TestCSVTable.test_table_to_cvs): Add
207            tests for saving selected records.
208    
209            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
210            tests for saving selected records.
211    
212            * test/test_map.py (TestMapWithContents.test_set_projection):
213            MAP_PROJECTION_CHANGED events send the old projection.
214    
215            * test/test_session.py
216            (TestSessionWithContent.test_forward_map_projection):
217            MAP_PROJECTION_CHANGED events send the old projection.
218    
219            * test/test_table.py (TableTest): Update tests to use non-deprecated
220            functions.
221    
222    2003-07-08  Bernhard Herzog  <[email protected]>
223    
224            * Thuban/Model/transientdb.py (TransientTableBase.Width): The type
225            constants in the column objects are the standard ones defined in
226            the table module.
227    
228            * test/test_transientdb.py
229            (TestTransientTable.test_transienttable_to_dbf): New. Test whether
230            exporting transient tables as DBF works. This should catch the bug
231            just fixed in TransientTableBase.Width.
232    
233    2003-07-08  Bernhard Herzog  <[email protected]>
234    
235            * Thuban/Model/classgen.py (CustomRamp.GetProperties): Compute the
236            interpolated colors correctly.
237    
238            * test/test_classgen.py (TestCustomRamp.test_color_interpolation):
239            New. Test case for the fix in classgen.py
240    
241    2003-07-08  Bernhard Herzog  <[email protected]>
242    
243            * test/runtests.py (main): Make the default output less verbose
244            and add a verbosity option (-v) to get the old output
245    
246    2003-07-08  Bernhard Herzog  <[email protected]>
247    
248            * Resources/XML/thuban-0.9.dtd: New. This will become the DTD for
249            0.9.
250    
251            * Thuban/Model/transientdb.py (TransientJoinedTable.JoinType):
252            New. Return the join type
253    
254            * Thuban/Model/save.py (SessionSaver.write_session): Use new 0.9
255            DTD
256            (SessionSaver.write_data_containers): Save the join type for
257            joined tables
258    
259            * Thuban/Model/load.py (SessionLoader.__init__): Add the new 0.9
260            namespace
261            (SessionLoader.start_jointable): Handle the jointype attribute
262    
263            * test/test_load_0_8.py: New. Effectively a copy of test_load.py
264            as of Thuban 0.8. These are now tests to determine whether Thuban
265            can still read files generated by Thuban 0.8
266    
267            * test/test_load.py (LoadSessionTest.dtd)
268            (TestSingleLayer.file_contents)
269            (TestLayerVisibility.file_contents, TestLabels.file_contents)
270            (TestLayerProjection.file_contents)
271            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
272            (TestJoinedTable.file_contents)
273            (TestLoadError.file_contents): Update for new DTD
274            (TestJoinedTable.file_contents, TestJoinedTable.setUp): Add test
275            for new join type attribute
276    
277            * test/test_save.py (SaveSessionTest.dtd)
278            (SaveSessionTest.testEmptySession)
279            (SaveSessionTest.testSingleLayer)
280            (SaveSessionTest.testLayerProjection)
281            (SaveSessionTest.testRasterLayer)
282            (SaveSessionTest.testClassifiedLayer)
283            (SaveSessionTest.test_dbf_table)
284            (SaveSessionTest.test_joined_table): Update for new DTD
285            (SaveSessionTest.test_joined_table): Add test for new join type
286            attribute
287    
288    2003-07-04  Bernhard Herzog  <[email protected]>
289    
290            * Thuban/Model/table.py (_find_dbf_column_names): New. Helper
291            function for table_to_dbf
292            (table_to_dbf): Deal with names longer than the 10 character limit
293    
294            * test/test_dbf_table.py (TestTableToDBF.test_table_to_dbf): Add
295            doc-string
296            (TestTableToDBF.test_table_to_dbf_long_col_names): New test for
297            long column names
298    
299    2003-07-03  Bernhard Herzog  <[email protected]>
300    
301            * Doc/manual/thuban-manual.xml: Fix the CVS Revision Tag syntax
302    
303    2003-07-03  Bernhard Herzog  <[email protected]>
304    
305            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
306            for the Thuban manual and README with some basic information about
307            the manual
308    
309    2003-07-03  Bernhard Herzog  <[email protected]>
310    
311            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
312            Update doc-string
313            (TransientJoinedTable.create): Do not modify the column objects of
314            the input tables in place and copy all columns of the input tables
315            into the joined table after all.
316    
317            * test/test_transientdb.py
318            (TestTransientTable.test_transient_joined_table_same_column_name):
319            Update to reflect the new behavior
320            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
321            Update to reflect the new behavior
322            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
323            New test case for a bug which modified the column objects in place
324    
325    2003-07-02  Jonathan Coles   <[email protected]>
326    
327            * Thuban/Model/classgen.py (generate_singletons,
328            generate_uniform_distribution, generate_quantiles,
329            GenQuantiles0): Make sure maxValue isn't less than
330            one, otherwise we could divide by zero.
331    
332            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
333            ClassGenTest.doClassSingleTest): Call doBoundsTest to
334            check the end classification groups against the
335            proper property values.
336            (ClassGenTest.doBoundsTest): New. Checks the first and
337            last classification groups to make sure their properties
338            are the correct upper and lower bounds for a color ramp.
339    
340    2003-07-02  Jonathan Coles   <[email protected]>
341    
342            * Thuban/Model/classgen.py (generate_singletons,
343            generate_uniform_distribution, generate_quantiles,
344            GenQuantiles0): The denominator was one to high when
345            calculating the index for the ramp causing the index
346            to never to reach one.
347    
348    2003-07-02  Jonathan Coles   <[email protected]>
349    
350            Changed the singature of ClassGroupRange.__init__ and
351            ClassGroupRange.SetRange() so that the min/max values are
352            passed as a tuple. This makes a better calling scheme for
353            when a Range object is passed instead.
354    
355            * Thuban/Model/classgen.py: Fixed parameters to
356            ClassGroupRange constructor.
357    
358            * Thuban/Model/classification.py (ClassGroupRange.__init__):
359            Consolidate the min/max parameters into a single _range which
360            can either be a tuple or a Range object.
361            (ClassGroupRange.SetRange): Consolidate the min/max parameters
362            into a single _range which can either be a tuple or a Range object.
363    
364            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
365            call to ClassGroupRange constructor to use a tuple.
366    
367            * Thuban/Model/layer.py (Layer.SetClassification): Switch
368            the classification instance variable to the new class
369            before calling _set_layer otherwise subscribers to a
370            LAYER_CHANGED event will not see any difference.
371    
372            * test/test_classification.py: Fix tests of ClassGroupRange
373            so that they use the new signature.
374    
375            * test/test_load.py: Fix use of ClassGroupRange so that it
376            uses the new signature.
377    
378            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
379            uses the new signature.
380    
381            * test/test_save.py: Fix use of ClassGroupRange so that it
382            uses the new signature.
383    
384    
385    2003-07-01  Jonathan Coles   <[email protected]>
386    
387            * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.
388            Import used objects/class from color.
389            (generate_singletons): We don't
390            need the numGroups parameter anymore because we are using
391            the new ramps with GetProperties().
392            (generate_uniform_distribution): Use new ramp method
393            GetProperties().
394            (generate_quantiles, GenQuantiles0): Use new ramp method
395            GetProperties().
396            (CustomRamp.SetNumGroups): Removed. The ramps now map
397            a value from 0 to 1 to class properties so the number
398            of groups is not needed ahead of time.
399            (CustomRamp.next): Removed. CustomRamp does not support
400            interation anymore.
401            (CustomRamp.GetProperties): Returns a ClassGroupProperties
402            object based on the index value from 0 to 1 that is
403            passed to it.
404            (GreyRamp, RedRamp, GreenRamp, BlueRamp, GreenToRedRamp):
405            Made into instances of Monochromatic class instread of
406            deriving from it.
407            (HotToCold.SetNumGroups): Removed. See CustomRamp.
408            (HotToCold.next): Removed. See CustomRamp.
409    
410            * Thuban/Model/classification.py: Fixes RTbug #1973, 1971.
411            (Classification.SetField, Classification.SetFieldType):
412            Replaced with SetFieldInfo.
413            (Classification.SetFieldInfo): New. Does a better job of
414            what SetField and SetFieldType used to do by combining
415            their function since they should really always be done
416            at the same time.
417            (Classification.SetLayer): Renamed to _set_layer.
418            (Classification._set_layer): Should only be called from
419            Layer's SetClassification. This does not cause a recursive
420            call as SetLayer did because we know that Layer knows about
421            the classification.
422    
423            * Thuban/Model/color.py: Fixes RTbug #1971.
424            (_Transparent): Renamed from Transparent so it doesn't
425            conflict with the module variable.
426            (Transparent, Black): Renamed from Color.Transparent,
427            Color.Black so they are not class variables.
428    
429            * Thuban/Model/layer.py: Fixes RTbug #1971, 1973.
430            (Layer.Destroy): We don't need to call SetClassification
431            anymore to clear out the back reference in the classifcation
432            to the layer. It's better to set it to None using _set_layer,
433            and we won't be creating another clas object too.
434            (Layer.SetClassification): Classification._set_layer is not
435            recursive so remove all the locking variables. Also clean
436            up the code so that it remains unchanged if something fails.
437    
438            * Thuban/Model/load.py: Fixes RTbug #1971.
439            (SessionLoader.start_classification): Call
440            Classification.SetFieldInfo().
441    
442            * Thuban/Model/save.py: Removed import of Color which wasn't
443            being used.
444    
445            * Thuban/UI/classgen.py: Fixes RTbug #1972.
446            (ClassGenDialog.__init__): Color ramps are now instances
447            already so we don't need to create any new objects.
448            (ClassGenDialog.OnOK): Check for numGroups is no longer
449            necessary because we never use it.
450    
451            * Thuban/UI/classifier.py: Fixes RTbug #1971.
452            (Classifier.__BuildClassification, Classifier.__SetGridTable):
453            Call Classification.SetFieldInfo() instead of SetFieldType.
454    
455            * Thuban/UI/renderer.py: Fixes RTbug #1971.
456    
457            * Thuban/UI/view.py: Fixes RTbug #1974, 1971.
458            (MapCanvas.__init__): Subscribe to the idle time event. Set
459            background color to white.
460            (MapCanvas.OnPaint): Set a flag indicating that we should
461            render the map during idle time. If we already have a bitmap
462            just draw it now.
463            (MapCanvas.OnIdle): New. Render the map only during idle time.
464            This also fixes a problem with the busy cursor under gtk.
465    
466            * test/test_classgen.py (ClassGenTest.test_generate_singletons):
467            Fix calls to generate_singletons because the signature changed.
468    
469            * test/test_classification.py: Fix color references and
470            change calls to Classification.[SetField|SetFieldType] to
471            SetFieldInfo.
472    
473            * test/test_load.py: Fix color references.
474    
475            * test/test_load_0_2.py: Fix color references.
476    
477            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
478            Change calls to Classification.[SetField|SetFieldType] to
479            SetFieldInfo.
480    
481    2003-07-01  Frank Koormann   <[email protected]>
482    
483            MERGE from the greater-ms3 branch.
484    
485            * test/test_transientdb.py
486            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
487            New. Test join of two tables with partly equal column names.
488    
489            * Thuban/Model/transientdb.py (TransientJoinedTable.create):
490            If duplicates in left and right tables column names are found,
491            append '_' (underscores) to the name until it is unique.
492            Create always new internal names for the resulting table and reference
493            columns in the join statement with <table>.<column>
494    
495    2003-07-01  Bernhard Herzog  <[email protected]>
496    
497            * test/test_transientdb.py
498            (TestTransientTable.test_transient_joined_table_same_column_name):
499            New. Test whether joining on columns with the same names in both
500            tables works.
501            
502            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
503            sure to use the right internal names even when joining on field
504            with the same names in both tables. Also, detect duplicate names
505            in the joined table correctly.
506    
507    2003-07-01  Frank Koormann   <[email protected]>
508    
509            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
510            Reverse List of layers to render in same order as in desktop legend.
511    
512    2003-06-30  Jonathan Coles   <[email protected]>
513    
514            * Thuban/version.py (make_tuple): Takes a version string
515            and splits it into a tuple of at most three integers.
516            Used make_tuple() to make tuple versions of the version
517            numbers.
518    
519            * Thuban/UI/about.py: Add Thuban email addresses.
520    
521    2003-06-30  Jonathan Coles   <[email protected]>
522    
523            * Thuban/version.py: SQLite/PySQLite version dependencies
524            were too high.
525    
526    2003-06-30  Jonathan Coles   <[email protected]>
527    
528            * Thuban/version.py: Update version to 0.8.1
529            
530            * MANIFEST.in: Added Projections so that default.proj is
531            included.
532    
533  2003-06-26  Jonathan Coles   <[email protected]>  2003-06-26  Jonathan Coles   <[email protected]>
534    
535          New About box with lots more information including library          New About box with lots more information including library

Legend:
Removed from v.1312  
changed lines
  Added in v.1442

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26