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

Legend:
Removed from v.1770  
changed lines
  Added in v.1862

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26