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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26