/[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 1267 by jonathan, Fri Jun 20 14:36:46 2003 UTC revision 1368 by bh, Thu Jul 3 16:25:48 2003 UTC
# Line 1  Line 1 
1    2003-07-03  Bernhard Herzog  <[email protected]>
2    
3            * Doc/manual/thuban-manual.xml, Doc/manual/README: New. Skeleton
4            for the Thuban manual and README with some basic information about
5            the manual
6    
7    2003-07-03  Bernhard Herzog  <[email protected]>
8    
9            * Thuban/Model/transientdb.py (TransientJoinedTable.__init__):
10            Update doc-string
11            (TransientJoinedTable.create): Do not modify the column objects of
12            the input tables in place and copy all columns of the input tables
13            into the joined table after all.
14    
15            * test/test_transientdb.py
16            (TestTransientTable.test_transient_joined_table_same_column_name):
17            Update to reflect the new behavior
18            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
19            Update to reflect the new behavior
20            (TestTransientTable.test_transient_joined_table_name_collisions_dont_modify_in_place):
21            New test case for a bug which modified the column objects in place
22    
23    2003-07-02  Jonathan Coles   <[email protected]>
24    
25            * Thuban/Model/classgen.py (generate_singletons,
26            generate_uniform_distribution, generate_quantiles,
27            GenQuantiles0): Make sure maxValue isn't less than
28            one, otherwise we could divide by zero.
29    
30            * test/test_classgen.py (ClassGenTest.doClassRangeTest,
31            ClassGenTest.doClassSingleTest): Call doBoundsTest to
32            check the end classification groups against the
33            proper property values.
34            (ClassGenTest.doBoundsTest): New. Checks the first and
35            last classification groups to make sure their properties
36            are the correct upper and lower bounds for a color ramp.
37    
38    2003-07-02  Jonathan Coles   <[email protected]>
39    
40            * Thuban/Model/classgen.py (generate_singletons,
41            generate_uniform_distribution, generate_quantiles,
42            GenQuantiles0): The denominator was one to high when
43            calculating the index for the ramp causing the index
44            to never to reach one.
45    
46    2003-07-02  Jonathan Coles   <[email protected]>
47    
48            Changed the singature of ClassGroupRange.__init__ and
49            ClassGroupRange.SetRange() so that the min/max values are
50            passed as a tuple. This makes a better calling scheme for
51            when a Range object is passed instead.
52    
53            * Thuban/Model/classgen.py: Fixed parameters to
54            ClassGroupRange constructor.
55    
56            * Thuban/Model/classification.py (ClassGroupRange.__init__):
57            Consolidate the min/max parameters into a single _range which
58            can either be a tuple or a Range object.
59            (ClassGroupRange.SetRange): Consolidate the min/max parameters
60            into a single _range which can either be a tuple or a Range object.
61    
62            * Thuban/Model/load.py (SessionLoader.start_clrange): Fix
63            call to ClassGroupRange constructor to use a tuple.
64    
65            * Thuban/Model/layer.py (Layer.SetClassification): Switch
66            the classification instance variable to the new class
67            before calling _set_layer otherwise subscribers to a
68            LAYER_CHANGED event will not see any difference.
69    
70            * test/test_classification.py: Fix tests of ClassGroupRange
71            so that they use the new signature.
72    
73            * test/test_load.py: Fix use of ClassGroupRange so that it
74            uses the new signature.
75    
76            * test/test_load_0_2.py: Fix use of ClassGroupRange so that it
77            uses the new signature.
78    
79            * test/test_save.py: Fix use of ClassGroupRange so that it
80            uses the new signature.
81    
82    
83    2003-07-01  Jonathan Coles   <[email protected]>
84    
85            * Thuban/Model/classgen.py: Fixes RTbug #1972, 1971.
86            Import used objects/class from color.
87            (generate_singletons): We don't
88            need the numGroups parameter anymore because we are using
89            the new ramps with GetProperties().
90            (generate_uniform_distribution): Use new ramp method
91            GetProperties().
92            (generate_quantiles, GenQuantiles0): Use new ramp method
93            GetProperties().
94            (CustomRamp.SetNumGroups): Removed. The ramps now map
95            a value from 0 to 1 to class properties so the number
96            of groups is not needed ahead of time.
97            (CustomRamp.next): Removed. CustomRamp does not support
98            interation anymore.
99            (CustomRamp.GetProperties): Returns a ClassGroupProperties
100            object based on the index value from 0 to 1 that is
101            passed to it.
102            (GreyRamp, RedRamp, GreenRamp, BlueRamp, GreenToRedRamp):
103            Made into instances of Monochromatic class instread of
104            deriving from it.
105            (HotToCold.SetNumGroups): Removed. See CustomRamp.
106            (HotToCold.next): Removed. See CustomRamp.
107    
108            * Thuban/Model/classification.py: Fixes RTbug #1973, 1971.
109            (Classification.SetField, Classification.SetFieldType):
110            Replaced with SetFieldInfo.
111            (Classification.SetFieldInfo): New. Does a better job of
112            what SetField and SetFieldType used to do by combining
113            their function since they should really always be done
114            at the same time.
115            (Classification.SetLayer): Renamed to _set_layer.
116            (Classification._set_layer): Should only be called from
117            Layer's SetClassification. This does not cause a recursive
118            call as SetLayer did because we know that Layer knows about
119            the classification.
120    
121            * Thuban/Model/color.py: Fixes RTbug #1971.
122            (_Transparent): Renamed from Transparent so it doesn't
123            conflict with the module variable.
124            (Transparent, Black): Renamed from Color.Transparent,
125            Color.Black so they are not class variables.
126    
127            * Thuban/Model/layer.py: Fixes RTbug #1971, 1973.
128            (Layer.Destroy): We don't need to call SetClassification
129            anymore to clear out the back reference in the classifcation
130            to the layer. It's better to set it to None using _set_layer,
131            and we won't be creating another clas object too.
132            (Layer.SetClassification): Classification._set_layer is not
133            recursive so remove all the locking variables. Also clean
134            up the code so that it remains unchanged if something fails.
135    
136            * Thuban/Model/load.py: Fixes RTbug #1971.
137            (SessionLoader.start_classification): Call
138            Classification.SetFieldInfo().
139    
140            * Thuban/Model/save.py: Removed import of Color which wasn't
141            being used.
142    
143            * Thuban/UI/classgen.py: Fixes RTbug #1972.
144            (ClassGenDialog.__init__): Color ramps are now instances
145            already so we don't need to create any new objects.
146            (ClassGenDialog.OnOK): Check for numGroups is no longer
147            necessary because we never use it.
148    
149            * Thuban/UI/classifier.py: Fixes RTbug #1971.
150            (Classifier.__BuildClassification, Classifier.__SetGridTable):
151            Call Classification.SetFieldInfo() instead of SetFieldType.
152    
153            * Thuban/UI/renderer.py: Fixes RTbug #1971.
154    
155            * Thuban/UI/view.py: Fixes RTbug #1974, 1971.
156            (MapCanvas.__init__): Subscribe to the idle time event. Set
157            background color to white.
158            (MapCanvas.OnPaint): Set a flag indicating that we should
159            render the map during idle time. If we already have a bitmap
160            just draw it now.
161            (MapCanvas.OnIdle): New. Render the map only during idle time.
162            This also fixes a problem with the busy cursor under gtk.
163    
164            * test/test_classgen.py (ClassGenTest.test_generate_singletons):
165            Fix calls to generate_singletons because the signature changed.
166    
167            * test/test_classification.py: Fix color references and
168            change calls to Classification.[SetField|SetFieldType] to
169            SetFieldInfo.
170    
171            * test/test_load.py: Fix color references.
172    
173            * test/test_load_0_2.py: Fix color references.
174    
175            * test/test_save.py (SaveSessionTest.testClassifiedLayer):
176            Change calls to Classification.[SetField|SetFieldType] to
177            SetFieldInfo.
178    
179    2003-07-01  Frank Koormann   <[email protected]>
180    
181            MERGE from the greater-ms3 branch.
182    
183            * test/test_transientdb.py
184            (TestTransientTable.test_transient_joined_table_with_equal_column_names):
185            New. Test join of two tables with partly equal column names.
186    
187            * Thuban/Model/transientdb.py (TransientJoinedTable.create):
188            If duplicates in left and right tables column names are found,
189            append '_' (underscores) to the name until it is unique.
190            Create always new internal names for the resulting table and reference
191            columns in the join statement with <table>.<column>
192    
193    2003-07-01  Bernhard Herzog  <[email protected]>
194    
195            * test/test_transientdb.py
196            (TestTransientTable.test_transient_joined_table_same_column_name):
197            New. Test whether joining on columns with the same names in both
198            tables works.
199            
200            * Thuban/Model/transientdb.py (TransientJoinedTable.create): Make
201            sure to use the right internal names even when joining on field
202            with the same names in both tables. Also, detect duplicate names
203            in the joined table correctly.
204    
205    2003-07-01  Frank Koormann   <[email protected]>
206    
207            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
208            Reverse List of layers to render in same order as in desktop legend.
209    
210    2003-06-30  Jonathan Coles   <[email protected]>
211    
212            * Thuban/version.py (make_tuple): Takes a version string
213            and splits it into a tuple of at most three integers.
214            Used make_tuple() to make tuple versions of the version
215            numbers.
216    
217            * Thuban/UI/about.py: Add Thuban email addresses.
218    
219    2003-06-30  Jonathan Coles   <[email protected]>
220    
221            * Thuban/version.py: SQLite/PySQLite version dependencies
222            were too high.
223    
224    2003-06-30  Jonathan Coles   <[email protected]>
225    
226            * Thuban/version.py: Update version to 0.8.1
227            
228            * MANIFEST.in: Added Projections so that default.proj is
229            included.
230    
231    2003-06-26  Jonathan Coles   <[email protected]>
232    
233            New About box with lots more information including library
234            versions and credits. More/better version checking before
235            Thuban starts.
236    
237            * Thuban/UI/about.py: New. New About box that displays
238            library version information and credits.
239    
240            * Thuban/version.py: Added new 'versions' dictionary which
241            contains the verions of various libraries which are checked
242            when the module loads.
243            (verify_versions): Check all version numbers and returns
244            a list of errors.
245    
246            * Thuban/UI/classifier.py (Classifier.__EnableButtons):
247            Reset the status of the buttons as the situation warrants,
248            but in a better more reliable way by not relying on the
249            current status to determine what needs to change.
250    
251            * Thuban/UI/main.py (wxCHECK_VERSION): Removed. Not needed.
252            (verify_versions): Remove most of the code since it is
253            now in Thuban.version.verify_versions.o
254    
255            * Thuban/UI/mainwindow.py (MainWindow.About): Call new
256            About box in Thuban.UI.about.
257    
258            * extensions/thuban/gdalwarp.cpp (get_gdal_version): New.
259            Returns the version of gdal library being used as a string.
260    
261            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
262            Removed.
263            (get_proj_version): Return the version of PROJ that the file
264            was compiled with.
265            (get_gtk_version): Return th version of GTK that the file
266            was compiled with.
267    
268    2003-06-25  Jonathan Coles   <[email protected]>
269    
270            * Thuban/UI/classifier.py (Classifier.EditSymbol): The parent
271            of the SelectPropertiesDialog should be self so the window
272            appears on top.
273            (ClassGroupPropertiesCtrl.DoEdit): The parent
274            of the SelectPropertiesDialog should be self so the window
275            appears on top.
276    
277            * Thuban/UI/resource.py: Cleaned up how we determine file
278            extensions.
279            (GetImageResource): Return an wxImage from our Resources.
280    
281    2003-06-24  Jonathan Coles   <[email protected]>
282    
283            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
284            Check that a layer has a classification before trying
285            to get it. Raster layers don't have classifications.
286    
287    2003-06-23  Jonathan Coles   <[email protected]>
288            
289            * setup.py: Add Resources/XML to resource list.
290        
291    2003-06-23  Jonathan Coles   <[email protected]>
292    
293            * setup.cfg: Fix copyright dates
294        
295    2003-06-23  Jonathan Coles   <[email protected]>
296    
297            * MANIFEST.in: Update with Resources/XML
298    
299            * setup.py: Don't include Locale resources yet as we don't
300            have any and it causes problems building the distribution
301            for Windows. Update version to 0.8.0.
302    
303            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
304    
305            * Thuban/UI/mainwindow.py: Add blank line at the end because
306            file was not being read correctly building the Windows
307            distribution.
308    
309    2003-06-23  Jonathan Coles   <[email protected]>
310    
311            * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.
312    
313            * Thuban/version.py: Temporarily update longversion for
314            the 0.8 release so that it doesn't have the cvs revision.
315    
316    2003-06-23  Jonathan Coles   <[email protected]>
317    
318            * Thuban/UI/common.py (ThubanBeginBusyCursor): Call wxSafeYield
319            to make sure that we don't create reentrant possibilities with
320            wxYield.
321    
322            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxBeginBusyCursor()
323            directly to avoid the wxSafeYield() call which generates an
324            OnPaint event causing infinite recursion. Don't try to catch
325            exception anymore. This was for before there were limits on map
326            scaling.
327    
328    2003-06-23  Bernhard Herzog  <[email protected]>
329    
330            Bug fix for RT #1961:
331    
332            * Thuban/Model/load.py (SessionLoader.start_derivedshapesource):
333            Register DerivedShapestores with the session
334    
335            * Thuban/Model/session.py (Session.Tables): Make sure each table
336            is only listed once.
337    
338            * test/test_load.py (TestJoinedTable.test): Add check_format call.
339            Update file contents to match the one written out.
340    
341    2003-06-20  Bernhard Herzog  <[email protected]>
342    
343            * test/xmlsupport.py (SaxEventLister.startElementNS)
344            (SaxEventLister.endElementNS): Do not include the qname. Python
345            2.2.1 and 2.2.2 and 2.2.3 differ in this regard. In 2.2.1 qname it
346            is (presumably incorrectly) None, whereas it's a string with the
347            element name in the later versions.
348    
349            * test/test_xmlsupport.py (TestEventList.test_even_list_simple)
350            (TestEventList.test_even_list_namespace): Update tests to reflect
351            the new behaviour
352            (TestEventList.test_even_list_id_normalization): Fix doc-string
353    
354    2003-06-20  Jonathan Coles   <[email protected]>
355    
356            * Thuban/Model/layer.py (BaseLayer.HasShapes): New. Overridden
357            by deriving classes to determine if that layer supports shapes.
358            (Layer): Override HasShapes and return true.
359    
360            * Thuban/UI/classgen.py: Use Thuban[Begin|End]BusyCursor()
361            instead of a direct call to wx[Begin|End]CusyCursor().
362            (GenUniquePanel._OnRetrieve): Set busy cursor while retrieving
363            table data.
364    
365            * Thuban/UI/common.py (ThubanBeginBusyCursor, ThubanEndBusyCursor):
366            New. Wrappers around the wxWindows functions that allow us to
367            make additional calls such as wxYield which gives the native
368            system a chance to update the cursor correctly.
369    
370            * Thuban/UI/tableview.py: Use Thuban[Begin|End]BusyCursor()
371            instead of a direct call to wx[Begin|End]CusyCursor().
372    
373            * Thuban/UI/view.py: Use Thuban[Begin|End]BusyCursor()
374            instead of a direct call to wx[Begin|End]CusyCursor().
375            (MapCanvas.find_shape_at): Check if the current search layer
376            support shapes, otherwise go on to the next layer.
377    
378            * test/test_layer.py: Add tests in each type of layer for
379            HasClassification() and HasShapes()
380    
381    2003-06-20  Jonathan Coles   <[email protected]>
382    
383            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxYield after
384            turning on the busy cursor to allow the system to change the
385            cursor before we begin painting. This fixes a problem that
386            was occuring only under GTK. Fixes RTbug #1840.
387    
388    2003-06-20  Bernhard Herzog  <[email protected]>
389    
390            * Resources/XML/thuban-0.8.dtd: New DTD for the new file format
391            version.
392    
393            * Thuban/Model/save.py (sort_data_stores): New. Make topological
394            sort of the data sources so they can be written with sources that
395            data sources that depend on other data sources come after the
396            sources they depend on.
397            (SessionSaver.__init__): Add idmap instance variable to map from
398            objects to the ids used in the file.
399            (SessionSaver.get_id, SessionSaver.define_id)
400            (SessionSaver.has_id): New. Methods to manage the idmap
401            (SessionSaver.write): Use thuban-0.8.dtd
402            (SessionSaver.write_session): Add a namespace on the session and
403            write out the data sources before the maps.
404            (SessionSaver.write_data_containers): New. Write the data
405            containers.
406            (SessionSaver.write_layer): Layer elements now refer to a
407            shapestore and don't contain filenames anymore.
408    
409            * Thuban/Model/load.py (LoadError): Exception class to raise when
410            errors in the files are discovered
411            (SessionLoader.__init__): Define dispatchers for elements with a
412            thuban-0.8 namespace too.
413            (SessionLoader.check_attrs): New helper method to check and
414            convert attributes
415            (AttrDesc): New. Helper class for SessionLoader.check_attrs
416            (SessionLoader.start_fileshapesource)
417            (SessionLoader.start_derivedshapesource)
418            (SessionLoader.start_filetable, SessionLoader.start_jointable):
419            Handlers for the new elements in the new fileformat
420            (SessionLoader.start_layer): Handle the shapestore attribute in
421            addition to filename.
422            (SessionLoader.start_table, SessionLoader.end_table): Removed.
423            They were never used in the old formats and aren't needed for the
424            new.
425    
426            * Thuban/Model/session.py (Session.DataContainers): New method to
427            return all "data containers", i.e. shapestores and tables
428    
429            * test/xmlsupport.py (SaxEventLister.__init__)
430            (SaxEventLister.startElementNS, sax_eventlist): Add support to
431            normalize IDs.
432    
433            * test/test_xmlsupport.py
434            (TestEventList.test_even_list_id_normalization): New test case for
435            id normalization
436    
437            * test/test_load.py (LoadSessionTest.check_format): Use ID
438            normalization
439            (LoadSessionTest.thubanids, LoadSessionTest.thubanidrefs): New
440            class atrributes used for ID normalization
441            (TestSingleLayer, TestLayerVisibility, TestLabels.test)
442            (TestLayerProjection.test, TestRasterLayer.test): Adapt to new
443            file format
444            (TestJoinedTable): New test for loading sessions with joined
445            tables.
446            (TestLoadError): New. Test whether missing required attributes
447            cause a LoadError.
448    
449            * test/test_save.py (SaveSessionTest.thubanids)
450            (SaveSessionTest.thubanidrefs): New class attributes for ID
451            normalization in .thuban files.
452            (SaveSessionTest.compare_xml): Use id-normalization.
453            (SaveSessionTest.testEmptySession)
454            (SaveSessionTest.testLayerProjection)
455            (SaveSessionTest.testRasterLayer)
456            (SaveSessionTest.testClassifiedLayer): Adapt to new file format.
457            (SaveSessionTest.testLayerProjection): The filename used was the
458            same as for testSingleLayer. Use a different one.
459            (SaveSessionTest.test_dbf_table)
460            (SaveSessionTest.test_joined_table): New test cases for saving the
461            new data sources structures.
462            (TestStoreSort, MockDataStore): Classes to test the sorting of the
463            data stores for writing.
464    
465            * test/runtests.py: Add CVS keywords
466    
467  2003-06-20  Jonathan Coles   <[email protected]>  2003-06-20  Jonathan Coles   <[email protected]>
468    
469          * test/test_session.py          * test/test_session.py

Legend:
Removed from v.1267  
changed lines
  Added in v.1368

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26