/[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 1237 by jonathan, Wed Jun 18 15:30:14 2003 UTC revision 1299 by jonathan, Tue Jun 24 18:00:36 2003 UTC
# Line 1  Line 1 
1    2003-06-24  Jonathan Coles   <[email protected]>
2    
3            * Thuban/UI/renderer.py (ExportRenderer.render_legend):
4            Check that a layer has a classification before trying
5            to get it. Raster layers don't have classifications.
6    
7    2003-06-23  Jonathan Coles   <[email protected]>
8            
9            * setup.py: Add Resources/XML to resource list.
10        
11    2003-06-23  Jonathan Coles   <[email protected]>
12    
13            * setup.cfg: Fix copyright dates
14        
15    2003-06-23  Jonathan Coles   <[email protected]>
16    
17            * MANIFEST.in: Update with Resources/XML
18    
19            * setup.py: Don't include Locale resources yet as we don't
20            have any and it causes problems building the distribution
21            for Windows. Update version to 0.8.0.
22    
23            * Doc/thuban.dtd: Removed since it is now in Resources/XML.
24    
25            * Thuban/UI/mainwindow.py: Add blank line at the end because
26            file was not being read correctly building the Windows
27            distribution.
28    
29    2003-06-23  Jonathan Coles   <[email protected]>
30    
31            * Thuban/UI/mainwindow.py (MainWindow.About): Fix text.
32    
33            * Thuban/version.py: Temporarily update longversion for
34            the 0.8 release so that it doesn't have the cvs revision.
35    
36    2003-06-23  Jonathan Coles   <[email protected]>
37    
38            * Thuban/UI/common.py (ThubanBeginBusyCursor): Call wxSafeYield
39            to make sure that we don't create reentrant possibilities with
40            wxYield.
41    
42            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxBeginBusyCursor()
43            directly to avoid the wxSafeYield() call which generates an
44            OnPaint event causing infinite recursion. Don't try to catch
45            exception anymore. This was for before there were limits on map
46            scaling.
47    
48    2003-06-23  Bernhard Herzog  <[email protected]>
49    
50            Bug fix for RT #1961:
51    
52            * Thuban/Model/load.py (SessionLoader.start_derivedshapesource):
53            Register DerivedShapestores with the session
54    
55            * Thuban/Model/session.py (Session.Tables): Make sure each table
56            is only listed once.
57    
58            * test/test_load.py (TestJoinedTable.test): Add check_format call.
59            Update file contents to match the one written out.
60    
61    2003-06-20  Bernhard Herzog  <[email protected]>
62    
63            * test/xmlsupport.py (SaxEventLister.startElementNS)
64            (SaxEventLister.endElementNS): Do not include the qname. Python
65            2.2.1 and 2.2.2 and 2.2.3 differ in this regard. In 2.2.1 qname it
66            is (presumably incorrectly) None, whereas it's a string with the
67            element name in the later versions.
68    
69            * test/test_xmlsupport.py (TestEventList.test_even_list_simple)
70            (TestEventList.test_even_list_namespace): Update tests to reflect
71            the new behaviour
72            (TestEventList.test_even_list_id_normalization): Fix doc-string
73    
74    2003-06-20  Jonathan Coles   <[email protected]>
75    
76            * Thuban/Model/layer.py (BaseLayer.HasShapes): New. Overridden
77            by deriving classes to determine if that layer supports shapes.
78            (Layer): Override HasShapes and return true.
79    
80            * Thuban/UI/classgen.py: Use Thuban[Begin|End]BusyCursor()
81            instead of a direct call to wx[Begin|End]CusyCursor().
82            (GenUniquePanel._OnRetrieve): Set busy cursor while retrieving
83            table data.
84    
85            * Thuban/UI/common.py (ThubanBeginBusyCursor, ThubanEndBusyCursor):
86            New. Wrappers around the wxWindows functions that allow us to
87            make additional calls such as wxYield which gives the native
88            system a chance to update the cursor correctly.
89    
90            * Thuban/UI/tableview.py: Use Thuban[Begin|End]BusyCursor()
91            instead of a direct call to wx[Begin|End]CusyCursor().
92    
93            * Thuban/UI/view.py: Use Thuban[Begin|End]BusyCursor()
94            instead of a direct call to wx[Begin|End]CusyCursor().
95            (MapCanvas.find_shape_at): Check if the current search layer
96            support shapes, otherwise go on to the next layer.
97    
98            * test/test_layer.py: Add tests in each type of layer for
99            HasClassification() and HasShapes()
100    
101    2003-06-20  Jonathan Coles   <[email protected]>
102    
103            * Thuban/UI/view.py (MapCanvas.OnPaint): Call wxYield after
104            turning on the busy cursor to allow the system to change the
105            cursor before we begin painting. This fixes a problem that
106            was occuring only under GTK. Fixes RTbug #1840.
107    
108    2003-06-20  Bernhard Herzog  <[email protected]>
109    
110            * Resources/XML/thuban-0.8.dtd: New DTD for the new file format
111            version.
112    
113            * Thuban/Model/save.py (sort_data_stores): New. Make topological
114            sort of the data sources so they can be written with sources that
115            data sources that depend on other data sources come after the
116            sources they depend on.
117            (SessionSaver.__init__): Add idmap instance variable to map from
118            objects to the ids used in the file.
119            (SessionSaver.get_id, SessionSaver.define_id)
120            (SessionSaver.has_id): New. Methods to manage the idmap
121            (SessionSaver.write): Use thuban-0.8.dtd
122            (SessionSaver.write_session): Add a namespace on the session and
123            write out the data sources before the maps.
124            (SessionSaver.write_data_containers): New. Write the data
125            containers.
126            (SessionSaver.write_layer): Layer elements now refer to a
127            shapestore and don't contain filenames anymore.
128    
129            * Thuban/Model/load.py (LoadError): Exception class to raise when
130            errors in the files are discovered
131            (SessionLoader.__init__): Define dispatchers for elements with a
132            thuban-0.8 namespace too.
133            (SessionLoader.check_attrs): New helper method to check and
134            convert attributes
135            (AttrDesc): New. Helper class for SessionLoader.check_attrs
136            (SessionLoader.start_fileshapesource)
137            (SessionLoader.start_derivedshapesource)
138            (SessionLoader.start_filetable, SessionLoader.start_jointable):
139            Handlers for the new elements in the new fileformat
140            (SessionLoader.start_layer): Handle the shapestore attribute in
141            addition to filename.
142            (SessionLoader.start_table, SessionLoader.end_table): Removed.
143            They were never used in the old formats and aren't needed for the
144            new.
145    
146            * Thuban/Model/session.py (Session.DataContainers): New method to
147            return all "data containers", i.e. shapestores and tables
148    
149            * test/xmlsupport.py (SaxEventLister.__init__)
150            (SaxEventLister.startElementNS, sax_eventlist): Add support to
151            normalize IDs.
152    
153            * test/test_xmlsupport.py
154            (TestEventList.test_even_list_id_normalization): New test case for
155            id normalization
156    
157            * test/test_load.py (LoadSessionTest.check_format): Use ID
158            normalization
159            (LoadSessionTest.thubanids, LoadSessionTest.thubanidrefs): New
160            class atrributes used for ID normalization
161            (TestSingleLayer, TestLayerVisibility, TestLabels.test)
162            (TestLayerProjection.test, TestRasterLayer.test): Adapt to new
163            file format
164            (TestJoinedTable): New test for loading sessions with joined
165            tables.
166            (TestLoadError): New. Test whether missing required attributes
167            cause a LoadError.
168    
169            * test/test_save.py (SaveSessionTest.thubanids)
170            (SaveSessionTest.thubanidrefs): New class attributes for ID
171            normalization in .thuban files.
172            (SaveSessionTest.compare_xml): Use id-normalization.
173            (SaveSessionTest.testEmptySession)
174            (SaveSessionTest.testLayerProjection)
175            (SaveSessionTest.testRasterLayer)
176            (SaveSessionTest.testClassifiedLayer): Adapt to new file format.
177            (SaveSessionTest.testLayerProjection): The filename used was the
178            same as for testSingleLayer. Use a different one.
179            (SaveSessionTest.test_dbf_table)
180            (SaveSessionTest.test_joined_table): New test cases for saving the
181            new data sources structures.
182            (TestStoreSort, MockDataStore): Classes to test the sorting of the
183            data stores for writing.
184    
185            * test/runtests.py: Add CVS keywords
186    
187    2003-06-20  Jonathan Coles   <[email protected]>
188    
189            * test/test_session.py
190            (UnreferencedTablesTests.test_unreferenced_tables_with_joins):
191            Use the cultural_landmark-point.dbf file for the store so that
192            the table rows and shape count match.
193    
194    2003-06-20  Jonathan Coles   <[email protected]>
195    
196            * Thuban/Model/data.py (DerivedShapeStore.__init__): Raise
197            an exception if the number of shapes is different from the
198            number of rows in the table. Address RTbug #1933.
199    
200            * test/test_layer.py (TestLayer.test_derived_store): Add
201            a test for the new exception in DerivedShapeStore.__init__.
202    
203            * test/support.py (FloatTestCase): Removed since there is
204            already FloatComparisonMixin. Fixes RTbug #1954.
205            (FloatComparisonMixin.assertFloatEqual): Include test for
206            infinity that was part of FloatTestCase.
207    
208            * test/test_range.py (RangeTest): Inherit from
209            support.FloatComparisonMixin now that we don't have
210            support.FloatTestCase.
211    
212    2003-06-20  Bernhard Herzog  <[email protected]>
213    
214            * test/test_save.py (SaxEventLister, sax_eventlist): Removed. Use
215            the implementation in xmlsupport instead.
216            (SaveSessionTest.compare_xml): sax_eventlist is now in xmlsupport
217    
218            * test/test_proj.py: Import sax_eventlist from xmlsupport instead
219            of test_save
220    
221    2003-06-20  Bernhard Herzog  <[email protected]>
222    
223            * test/test_load.py (LoadSessionTest.check_format): New helper
224            method to make sure the test files we load might have been written
225            by the current thuban version.
226            (ClassificationTest.TestLayers, TestSingleLayer.test)
227            (TestLayerVisibility.test, TestClassification.test)
228            (TestLabels.test, TestLayerProjection.test, TestRasterLayer.test):
229            Add check_format() calls and fix the thuban data to match the data
230            that would be written by saving the session loaded from it.
231    
232            * test/xmlsupport.py (SaxEventLister, sax_eventlist): Copies of
233            the same class and function in test_save.
234    
235            * test/test_xmlsupport.py (TestEventList): New. test cases for
236            sax_eventlist
237    
238    2003-06-20  Bernhard Herzog  <[email protected]>
239    
240            * Resources/XML/thuban.dtd: Add comment about which versions of
241            Thuban are covered by this DTD
242            (map): Fix content model for layers and raster layers. There can
243            be any number or layers and raster layers in any order.
244    
245    2003-06-20  Jonathan Coles   <[email protected]>
246    
247            This is mainly about fixing RTbug #1949.
248    
249            * Thuban/Model/classification.py: Remove "from __future__"
250            import statement since python 2.2 is the earliest supported
251            version.
252    
253            * Thuban/Model/proj.py (Projection.GetProjectedUnits): New.
254            Currently returns PROJ_UNITS_METERS or PROJ_UNITS_DEGREES
255            depending on the units this projection *forwards* into.
256    
257            * Thuban/Model/save.py (SessionSaver.write_classification):
258            Remove unnecessary use of lambdas and nested functions.
259    
260            * Thuban/UI/legend.py (ScaleBarBitmap.__SetScale): Do scale
261            adjustment here if the map projection uses degrees.
262    
263            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Remove
264            scale adjust code since it is now done before calling
265            this method. Don't do anything if the map projection
266            is None.
267    
268    2003-06-19  Bernhard Herzog  <[email protected]>
269    
270            Move version specific load tests to their own file.
271    
272            * test/test_load.py: Expand the doc-string to explain a bit how to
273            handle file format changes.
274            (TestClassification.test): Update the docstring as this test is
275            not about Thuban 0.2 anymore.
276    
277            * test/test_load_0_2.py: New file with the load tests for thuban
278            files created with Thuban 0.2 and earlier.
279    
280    2003-06-19  Bernhard Herzog  <[email protected]>
281    
282            Add XML validation to some of the tests. Validation will only be
283            done if pyRXP is installed (http://reportlab.com/xml/pyrxp.html).
284            To make the DTD available to the test cases it's moved into
285            Resources/XML
286    
287            * Resources/XML/thuban.dtd: New. This is now the real Thuban DTD
288            for versions up to and including 0.2. Two slight changes: added an
289            encoding specification and fixed the comment which refered to
290            GRASS, not Thuban
291    
292            * test/xmlsupport.py: New support module for tests involving XML.
293            Currently there's a mix-in class for XML validation.
294    
295            * test/test_xmlsupport.py: New. Tests for the xmlsupport module
296    
297            * test/test_save.py (SaveSessionTest): Derive from ValidationTest
298            so that we can validate the
299            (SaveSessionTest.testEmptySession)
300            (SaveSessionTest.testSingleLayer)
301            (SaveSessionTest.testSingleLayer)
302            (SaveSessionTest.testLayerProjection)
303            (SaveSessionTest.testRasterLayer)
304            (SaveSessionTest.testClassifiedLayer): Validate the generated XML
305    
306            * test/runtests.py (main): Call print_additional_summary instead
307            of print_garbage_information
308    
309            * test/support.py (resource_dir): New function to return the
310            "Resource" subdirectory
311            (print_additional_summary): New function to combine several
312            summary functions
313            (run_tests): Use print_additional_summary instead of calling
314            print_garbage_information directly
315    
316    2003-06-19  Bernhard Herzog  <[email protected]>
317    
318            * Doc/thuban.dtd (classification): Correct the content model of
319            the classification element.
320            (projection): Add the "name" attribute
321    
322    2003-06-19  Frank Koormann   <[email protected]>
323    
324            MERGE from the greater-ms3 branch.
325    
326            * Thuban/UI/scalebar.py (ScaleBar.DrawScaleBar): Apply conversion to
327            scale if projection is latlong to get better estimate.
328    
329            Fix problem of hidden properties dialog under windows after double
330            click on layer tree:
331            The tree control always gets an Expanded / Collapsed event after
332            the ItemActivated  on double click, which raises the main window again.         We add a second ItemActivated event to the queue, which simply
333            raises the already displayed window.
334    
335            * Thuban/UI/legend.py (LegendTree.__init__): Instance variable
336            raiseProperties initialized to prevent endless loops
337            (LegendTree._OnItemActivated): Depending on self.raiseProperties
338            simply raise the properties or open the dialog and issue a second
339            event.
340    
341    2003-06-18  Jonathan Coles   <[email protected]>
342    
343            * setup.py: Fix a few problems that occured under Windows.
344    
345  2003-06-18  Jonathan Coles   <[email protected]>  2003-06-18  Jonathan Coles   <[email protected]>
346    
347          When Thuban loaded the map was redrawn twice because the          When Thuban loaded the map was redrawn twice because the

Legend:
Removed from v.1237  
changed lines
  Added in v.1299

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26