/[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 1757 by bh, Fri Sep 26 14:04:08 2003 UTC revision 1847 by bh, Tue Oct 21 10:50:07 2003 UTC
# Line 1  Line 1 
1    2003-10-21  Bernhard Herzog  <[email protected]>
2    
3            Add EPSG projection handling to .thuban files
4    
5            * test/test_save.py (SaveSessionTest.dtd)
6            (SaveSessionTest.testEmptySession)
7            (SaveSessionTest.testLayerProjection)
8            (SaveSessionTest.testRasterLayer)
9            (SaveSessionTest.testClassifiedLayer)
10            (SaveSessionTest.test_dbf_table)
11            (SaveSessionTest.test_joined_table)
12            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
13            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
14            use a and epsg projection to test saving them
15    
16            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
17            namespace
18            (TestLayerVisibility.file_contents, TestLabels.file_contents)
19            (TestLayerProjection.file_contents)
20            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
21            (TestPostGISLayer.file_contents)
22            (TestPostGISLayerPassword.file_contents)
23            (TestLoadError.file_contents, TestLoadError.test): Update to use
24            1.0-dev namespace
25            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
26            use 1.0-dev namespace and use an EPSG projection to test whether
27            loading it works
28    
29            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
30            as of Thuban 0.9. These are now tests to determine whether Thuban
31            can still read files generated by Thuban 0.9
32    
33            * Thuban/Model/save.py (SessionSaver.write)
34            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
35            namespace
36            (SessionSaver.write_projection): Write the projection's epsg
37            attribute
38    
39            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
40            thuban-1.0-dev.dtd namespace
41            (SessionLoader.check_attrs): Allow a callable object as conversion
42            too
43            (SessionLoader.start_projection, SessionLoader.end_projection)
44            (SessionLoader.start_parameter): Handle the epsg attribute and
45            rename a few instance variables to lower case
46    
47            * Resources/XML/thuban-1.0.dtd: New. Only difference to
48            thuban-0.9.dtd is the epsg attribute for projections.
49    
50    2003-10-21  Bernhard Herzog  <[email protected]>
51    
52            * test/runtests.py (main): Let the user specify which tests to run
53            on the command line
54    
55            * test/support.py (ThubanTestResult.getDescription): Override to
56            give a better short description. The description can be used as a
57            parameter to run_tests to run that particular test in isolation.
58    
59    2003-10-21  Frank Koormann   <[email protected]>
60    
61            Popup menu for legend. Scheduled for the 1.2 release this was too
62            simple to implement: The popup menu is bound to the legend tree, while
63            the events are hanlded by its anchestor, the legend panel. This
64            allows reuse of all the event handlers already implemented for the
65            legend toolbar buttons.
66    
67            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
68            to add handlers for the events issued by the popup menu.
69            (LegendPanel._OnToggleVisibility): Handler for toggling layer
70            visibility event
71            (LegendPanel._OnProjection): Handler for layer projection event.
72            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
73            (LegendTree._OnRightClick): Event handler for right click, select item
74            and pop up menu.
75            (LegendTree.ToggleVisibility): Toggle layer visibility
76            (LegendTree.LayerProjection): Raise layer projection dialog for
77            current layer.
78    
79    2003-10-21  Bernhard Herzog  <[email protected]>
80    
81            * Resources/Projections/defaults.proj: Use correct DOCTYPE
82            declaration. The top-level element is projectionlist not projfile
83    
84    2003-10-20  Bernhard Herzog  <[email protected]>
85    
86            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
87            method to write a projfile and display a busy cursor and error
88            dialogs.
89            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
90            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
91            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
92            busy cursor while loading the user and system prj files.
93    
94    2003-10-16  Bernhard Herzog  <[email protected]>
95    
96            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
97            ProjFile objects
98            (clear_proj_file_cache): New function to clear the cache. Mainly
99            useful for use by the test suite
100            (read_proj_file): Use the cache.
101    
102            * test/test_proj.py (TestProjFile): Clarify the doc-string
103            (ProjFileReadTests): Update doc-string
104            (ProjFileReadTests.test_get_system_proj_file): Check whether the
105            system proj files is cached.
106            (ProjFileLoadTestCase): New base class for the proj file tests
107            derived from support.FileLoadTestCase to provide some common
108            behavior.
109            (TestLoadingProjFile)
110            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
111            (TestProjFileWithInvalidParameters.file_contents): Derive from
112            ProjFileLoadTestCase
113            (TestLoadingProjFile.test_caching): New. Test whether the cache
114            works
115    
116    2003-10-16      Silke Reimer    <[email protected]>
117    
118            * debian/*: New directory with configuration files for building a thuban
119              deb-package.
120    
121    2003-10-14  Bernhard Herzog  <[email protected]>
122    
123            * test/test_proj.py: Execute support.run_tests when run as
124            __main__ so that missing unsubscribes are detected
125            (TestProjFile.tearDown): Destroy the proj_file properly
126    
127    2003-10-14  Bernhard Herzog  <[email protected]>
128    
129            * Thuban/Model/messages.py (PROJECTION_ADDED)
130            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
131            the ProjFile objects
132    
133            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
134            easily send messages when the projections change
135            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
136            when the change was successful
137    
138            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
139            proj file messages
140            (TestProjFile.test_add_remove)
141            (TestProjFile.test_remove_non_existing)
142            (TestProjFile.test_replace)
143            (TestProjFile.test_replace_non_existing): Test whether the right
144            messages are sent
145    
146    2003-10-14  Bernhard Herzog  <[email protected]>
147    
148            * test/test_proj.py (TestProjFile.test): Refactor into several
149            tests
150            (TestProjFile.test_add_remove)
151            (TestProjFile.test_remove_non_existing)
152            (TestProjFile.test_replace)
153            (TestProjFile.test_replace_non_existing): Some of the new
154            individual test cases
155            (TestProjFileSimple): New class for the rest of the test cases
156            that came out of the refactoring
157            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
158            derived classes don't have to
159    
160    2003-10-13  Bernhard Herzog  <[email protected]>
161    
162            Add an optional EPSG code to the projection objects and extend the
163            .proj file format accordingly.
164    
165            * Resources/XML/projfile.dtd (element projection): Add epsg
166            attribute
167    
168            * Thuban/Model/proj.py (Projection.__init__): New parameter and
169            instance variable epsg. Update doc-string
170            (Projection.EPSGCode, Projection.Label): New methods to provide
171            access to EPSG code and a label for use in dialogs
172    
173            * Thuban/Model/resource.py (ProjFileReader.start_projection)
174            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
175            Handle the epsg code attribute when reading or writing proj files
176    
177            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
178            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
179            (ProjFrame.__FillAvailList): Use the projection's Label method to
180            get the string for the list box
181    
182            * test/test_proj.py (TestProjection.test_label)
183            (TestProjection.test_label_epsg)
184            (TestProjection.test_epsgcode_for_non_epsg_projection)
185            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
186            for the label and EPSGCode methods
187            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
188            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
189            objects in the test cases and put the expected contents into the
190            test case methods too. Update doTestWrite accordingly
191            (TestLoadingProjFile)
192            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
193            read tests from TestProjFile.
194            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
195            tests are now in the new classes.
196            (sample_projfile, sample_projfile_data)
197            (sample_projfile2, sample_projfile_data2): Removed. Not used
198            anymore.
199            (TestProjFile.test_read_unreadable_file): No need to reset the
200            permissions at the end anymore since we use a unique filename
201    
202    2003-10-13  Bernhard Herzog  <[email protected]>
203    
204            * test/test_proj.py: Some more refactoring of the test cases
205            (ProjFileTest): New base class for the proj file tests.
206            (TestProjFile): Derive from ProjFileTest
207            (TestProjFile.test_read_unreadable_file)
208            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
209            the new filename method to get a unique filename
210            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
211            (WriteProjFileTests): New class for proj file write tests.
212            Contains the write test that were in TestProjFile originally.
213    
214    2003-10-13  Bernhard Herzog  <[email protected]>
215    
216            * test/test_proj.py (TestProjFile.testRead)
217            (TestProjFile.test_read_non_existing_file)
218            (TestProjFile.test_read_unreadable_file)
219            (TestProjFile.test_read_empty_file): Split into several methods.
220    
221    2003-10-10  Bernhard Herzog  <[email protected]>
222    
223            * Thuban/UI/sizers.py: New file with custom sizers.
224    
225            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): Instantiate
226            all projection type specific panels and put them into a
227            NotebookLikeSizer. This way the dialog doesn't change its size
228            when a different projection is selected
229            (ProjFrame.__init__): Rename projection_panels
230            projection_panel_defs and reuse projection_panels for a list of
231            the instantiated panels.
232            (ProjFrame._show_proj_panel, ProjFrame.__DoOnProjAvail)
233            (ProjFrame.__DoOnProjChoice): Changes due to the new handling of
234            the panels
235            (UnknownProjPanel._DoLayout): Place the newlines in the message
236            differently to make the panel narrower.
237            (TMPanel._DoLayout): Layout the parameters in one column.
238    
239    2003-10-10  Bernhard Herzog  <[email protected]>
240    
241            * Thuban/UI/projdialog.py (ProjFrame.build_dialog): New method
242            that contains all the setup for the dialog's widgets, layout and
243            event handling.
244            (__): Call build_dialog to build the dialog.
245            (ProjFrame.__set_properties, ProjFrame.__do_layout): Removed.
246            Their functionality is now in build_dialog
247            (ProjFrame.__VerifyButtons, ProjFrame.__VerifyButtons)
248            (ProjFrame.__DoOnProjAvail, ProjFrame.__DoOnProjAvail)
249            (ProjFrame.__DoOnProjChoice): Small updates due to slightly
250            different widget names and hierarchy introduced with build_dialog.
251    
252    2003-10-10  Bernhard Herzog  <[email protected]>
253    
254            * README: Fix typo.
255    
256    2003-10-09  Bernhard Herzog  <[email protected]>
257    
258            * Thuban/Model/proj.py (ProjFile.Add): Do not check whether the
259            projection is already in the list. This is *a lot* faster when
260            loading files with hundreds of projections since it saves a linear
261            search. OTOH this will allow adding the same projection to the
262            user.proj file multiple times in the projection dialog but we'll
263            deal with that later
264    
265    2003-10-09  Jan-Oliver Wagner <[email protected]>
266    
267            * devtools: New. Directory for developer tools that are not intended
268            for the regular user.
269    
270            * devtools/create_epsg.py: New. Convert the epsg file of proj into
271            a python .proj file.
272    
273    2003-10-09  Bernhard Herzog  <[email protected]>
274    
275            * test/test_proj.py
276            (TestProjection.test_get_parameter_without_equals_sign): New. Test
277            whether GetParameter handles parameters without "=" sign correctly
278    
279            * Thuban/Model/proj.py (Projection.GetParameter): Handle
280            parameters that do not contain a "=". Update the doc-string
281    
282    2003-10-08  Bernhard Herzog  <[email protected]>
283    
284            * Thuban/UI/projdialog.py (ProjFrame.__set_properties): Remove the
285            length limit on the projname text control
286    
287    2003-10-08  Bernhard Herzog  <[email protected]>
288    
289            * test/test_proj.py (TestProjection.test_get_projection_units_geo)
290            (TestProjection.test_get_projection_units_normal): New. Tests for
291            the Projection.GetProjectedUnits method
292    
293    2003-10-08  Jan-Oliver Wagner <[email protected]>
294    
295            * Thuban/Model/resource.py (get_user_proj_file): small bug-fix:
296            Added missing 'val' parameter.
297    
298    2003-10-08  Bernhard Herzog  <[email protected]>
299    
300            * Thuban/UI/projdialog.py (ProjFrame.__DoOnProjAvail): When the
301            projection type of the currently selected projection is not known,
302            i.e. there's no panel for it, use the UnknownProjPanel
303            (ProjFrame.__DoOnProjChoice, ProjFrame._show_proj_panel): Split
304            the actual replacing of the proj panel into the new method
305            _show_proj_panel.
306            (UnknownProjPanel): Add doc-string.
307            (UnknownProjPanel._DoLayout): Insert a newline into the text so
308            that the panel is not so wide.
309    
310    2003-10-08  Bernhard Herzog  <[email protected]>
311    
312            * Thuban/Model/resource.py (read_proj_file): Return the warnings
313            too. Update the doc-string
314            (get_proj_files): Removed. It wasn't used anywhere
315            (get_system_proj_files, get_system_proj_file): Rename to
316            get_system_proj_file and return the ProjFile object and not a list
317            of ProjFile objects. Update the callers.
318            (get_user_proj_files, get_user_proj_file): Rename to
319            get_user_proj_file return the ProjFile object and not a list of
320            ProjFile objects. Update the callers.
321            (ProjFileReader.__init__): New instance variable for the warnings.
322            Rename the __pf ivar to projfile. Update the methods referring to
323            __pf
324            (ProjFileReader.end_projection): Catch any errors raised when
325            instantiating the projection and record that as an error. The
326            projection will not be in the final ProjFile object.
327            (ProjFileReader.GetWarnings): New method to return the warnings.
328    
329            * Thuban/UI/projdialog.py (ProjFrame.show_warnings): New method to
330            show the warnings from the projfile reader
331            (ProjFrame._OnImport): Deal with any warnings returned by
332            read_proj_file
333            (ProjFrame.__FillAvailList): Deal with any warnings returned by
334            get_system_proj_file or get_user_proj_file.
335    
336            * test/test_proj.py (TestProjFile.doTestRead): Check the warnings.
337            (TestProjFileWithInvalidParameters.file_contents): New test cases
338            to test whether read_proj_file handles invalid projection
339            parameters correctly
340            (TestProjFile.test_get_system_proj_file): New. Simple test for
341            resource.get_system_proj_file
342    
343    2003-10-07  Bernhard Herzog  <[email protected]>
344    
345            * test/test_derivedshapestore.py
346            (TestDerivedShapeStoreExceptions.tearDown): Clear the session
347            properly so that the temporary directories get deleted correctly
348    
349    2003-10-06  Bernhard Herzog  <[email protected]>
350    
351            Handle the title changes in a proper MVC way.
352    
353            * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
354            canvas' TITLE_CHANGED messages
355            (MainWindow.update_title): New. Update the main window's title
356            (MainWindow.__SetTitle): Removed. Use update_title instead.
357            (MainWindow.SetMap): Use update_title instead of __SetTitle
358            (MainWindow.RenameMap): Do change the window title explicitly
359            here. That's handled in a proper MVC way now.
360            (MainWindow.title_changed): New. Subscriber for the TITLE_CHANGED
361            messages
362    
363            * Thuban/Lib/connector.py (Conduit): New class to help classes
364            that forward messages
365    
366            * Thuban/UI/viewport.py: Forward the map's TITLE_CHANGED messages
367            (ViewPort): Derive from Conduit instead of Publisher
368            (ViewPort.Subscribe, ViewPort.Unsubscribe): Use the new base class
369            when calling the inherited versions
370            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): New helper
371            methods to subscribe and unsubscribe map messages
372            (ViewPort.SetMap, ViewPort.Destroy): Use the new helper methods to
373            handle the map subscriptions
374            (ViewPort.Map, ViewPort.map_projection_changed)
375            (ViewPort.layer_projection_changed): Add or update doc-strings
376    
377            * test/test_connector.py (TestPublisher.test_issue_simple): Fix
378            typo
379            (MyConduit): Helper class for the Conduit test.
380            (TestConduit): Test cases for Conduit
381    
382            * test/test_connector.py: Use support.run_tests as main.
383    
384            * test/test_viewport.py (ViewPortTest.setUp): Also subscribe to
385            the TITLE_CHANGED messages
386            (ViewPortTest.test_forwarding_title_changed): New test to check
387            whether the viewport forwards the map's TITLE_CHANGED messages
388            (TestViewportWithPostGIS.tearDown): Call the map's Destroy method
389            after the port's because the latter may require a still functional
390            map.
391    
392    2003-10-06  Bernhard Herzog  <[email protected]>
393    
394            * Thuban/UI/application.py (ThubanApplication.maps_changed): Add
395            doc-string
396    
397    2003-10-06  Bernhard Herzog  <[email protected]>
398    
399            * test/test_viewport.py (ViewPortTest.setUp)
400            (SimpleViewPortTest.test_init_with_size): Move the test for the
401            initial size as a constructor parameter from ViewPortTest.setUp
402            method to a new separate test in SimpleViewPortTest.
403    
404    2003-10-06  Bernhard Herzog  <[email protected]>
405    
406            * test/test_viewport.py (MockView): New class derived from
407            ViewPort with a mock implementation of GetTextExtent to be used in
408            the test cases
409            (ViewPortTest.setUp): Use MockView instead of ViewPort
410    
411            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
412            into what would be a "pure virtual function" in C++: always raise
413            NotImplementedError. Mock implementations for test cases don't
414            belong into the real code
415    
416    2003-10-02  Bernhard Herzog  <[email protected]>
417    
418            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
419            close the dbf file we create so that it's contents have been
420            written properly.
421    
422            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
423            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
424            Update to shapelib 1.2.10
425    
426    2003-10-01  Jan-Oliver Wagner <[email protected]>
427    
428            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
429            it annoys lintian which warns about these files not being
430            executable. The #! isn't necessary here since if you absolutely
431            must execute them you can always say "python <filename>".
432    
433    2003-09-26  Bernhard Herzog  <[email protected]>
434    
435            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
436            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
437            is ported to a newer the import will fail, so it should be noticed
438            immediately that this function is gone.
439            Fixes RT#1919
440    
441  2003-09-26  Bernhard Herzog  <[email protected]>  2003-09-26  Bernhard Herzog  <[email protected]>
442    
443          Add a DTD for the projection files and make thuban write valid          Add a DTD for the projection files and make thuban write valid
# Line 1413  Line 1853 
1853    
1854          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1855          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1856          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1857          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1858    
1859          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1757  
changed lines
  Added in v.1847

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26