/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Diff of /branches/greater-ms3/thuban/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 701 by bh, Thu Apr 17 16:18:48 2003 UTC revision 724 by jonathan, Thu Apr 24 16:05:17 2003 UTC
# Line 1  Line 1 
1    2003-04-25  Jonathan Coles   <[email protected]>
2    
3            * Thuban/Model/layer.py (Layer.GetProjection): New. Needed to
4            implement the interface that the ProjFrame dialog expects.
5    
6            * Thuban/Model/proj.py (Projection.SetName): New. Allows the
7            name of the projection to be changed.
8            (ProjFile): Use a dictionary instead of a list so that removing
9            projections is easier and we are sure about uniqueness.
10            (ProjFile.Remove): Remove the given projection object.
11    
12            * Thuban/Model/resource.py (GetSystemProjFiles, GetUserProjFiles):
13            Return a list with only one projection file instead of searching for
14            any projection file. This simplifies many things if the user can
15            only have one system file and one user file.
16    
17            * Thuban/UI/classgen.py: Change all references to
18            genCombo to genChoice.
19    
20            * Thuban/UI/mainwindow.py: Add a Projection option under the
21            layer menu.
22            (MainWindow.LayerProjection): New. Open up a projection window
23            for a layer.
24    
25            * Thuban/UI/projdialog.py: Large changes to how the dialog is
26            laid out. Use three panels instead of one. One for the list of
27            projections, one for the edit controls, and one for the buttons.
28            Fixed resizing problems so that the dialog resizes correctly
29            when the projection panel changes. Added import/export, save, and
30            new buttons/functionality.
31    
32    2003-04-24  Bernhard Herzog  <[email protected]>
33    
34            First step towards table management. Introduce a simple data
35            abstraction so that we replace the data a layer uses more easily
36            in the next step.
37    
38            * Thuban/Model/data.py: New file with a simple data abstraction
39            that bundles shapefile and dbffile into one object.
40    
41            * Thuban/Model/session.py (Session.OpenShapefile): New method to
42            open shapefiles and return a shape store object
43    
44            * Thuban/Model/layer.py (Layer.__init__): Pass the data as a store
45            object instead of a shapefile filename. This introduces a new
46            instance variable store holding the datastore. For intermediate
47            backwards compatibility keep the old instance variables.
48            (open_shapefile): Removed. No longer needed with the shape store.
49            (Layer.SetShapeStore, Layer.ShapeStore): New methods to set and
50            get the shape store used by a layer.
51            (Layer.Destroy): No need to explicitly destroy the shapefile or
52            table anymore.
53    
54            * Thuban/UI/mainwindow.py (MainWindow.AddLayer)
55            (MainWindow.AddLayer): Use the session's OpenShapefile method to
56            open shapefiles
57    
58            * Thuban/Model/load.py (ProcessSession.start_layer): Use the
59            session's OpenShapefile method to open shapefiles
60    
61            * test/test_classification.py
62            (TestClassification.test_classification): Use the session's
63            OpenShapefile method to open shapefiles and build the filename in
64            a more platform independed way
65    
66            * test/test_layer.py (TestLayer.setUp, TestLayer.tearDown):
67            Implement to have a session to use in the tests
68            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
69            (TestLayer.test_point_layer, TestLayer.test_empty_layer): Use the
70            session's OpenShapefile method to open shapefiles
71            (TestLayerLegend.setUp): Instantiate a session so that we can use
72            it to open shapefiles.
73            (TestLayerLegend.tearDown): Make sure that all references to
74            layers and session are removed otherwise we may get a resource
75            leak
76    
77            * test/test_map.py (TestMapAddLayer.test_add_layer)
78            (TestMapWithContents.setUp): Instantiate a session so that we can
79            use it to open shapefiles.
80            (TestMapWithContents.tearDown): Make sure that all references to
81            layers, maps and sessions are removed otherwise we may get a
82            resource leak
83            ("__main__"): use support.run_tests() so that more info about
84            uncollected garbage is printed
85    
86            * test/test_save.py (SaveSessionTest.testSingleLayer): Use the
87            session's OpenShapefile method to open shapefiles
88            ("__main__"): use support.run_tests() so that more info about
89            uncollected garbage is printed
90    
91            * test/test_selection.py (TestSelection.tearDown): Make sure that
92            all references to the session and the selection are removed
93            otherwise we may get a resource leak
94            (TestSelection.get_layer): Instantiate a session so that we can
95            use it to open shapefiles.
96            ("__main__"): use support.run_tests() so that more info about
97            uncollected garbage is printed
98    
99            * test/test_session.py (TestSessionBase.tearDown)
100            (TestSessionWithContent.tearDown): Make sure that all references
101            to the session and layers are removed otherwise we may get a
102            resource leak
103            (TestSessionWithContent.setUp): Use the session's OpenShapefile
104            method to open shapefiles
105    
106    2003-04-24  Jonathan Coles   <[email protected]>
107    
108            * Thuban/Model/load.py (XMLReader.read): Should have been checking
109            if the file_or_filename object had the 'read' attribute.
110    
111    2003-04-23  Jonathan Coles   <[email protected]>
112    
113            * Thuban/Model/resource.py: Fixes RTbug #1813.
114            (ReadProjFile): Add documentation about which exceptions are raised.
115            Always pass the exceptions up to the caller.
116            (GetProjFiles): If the directory can't be read return an empty list.
117            If any of the proj files can't be read skip that file and go
118            on to the next one.
119    
120            * test/test_proj.py: Added test cases to handle nonexistent files,
121            unreadable files, and files that don't parse correctly.
122    
123    2003-04-23  Jonathan Coles   <[email protected]>
124    
125            Projection dialog. Allows the user to select from a list
126            of projection templates and optionally edit them and save new ones.
127    
128            * Thuban/UI/projdialog.py (ProjFrame): New. Main dialog.
129            (ProjPanel): Base class for projection specific panels.
130            (TMPanel): Projection panel for Transverse Mercartor.
131            (UTMPanel): Projection panel for Universal Transverse Mercartor.
132            (LCCPanel): Projection panel for Lambert Conic Conformal.
133            (GeoPanel): Projetion panel for Geographic Projection.
134    
135    2003-04-23  Jonathan Coles   <[email protected]>
136    
137            * Thuban/Model/load.py (XMLReader): Renamed from XMLProcessor to
138            promote symmetry. There now exists XMLReader and XMLWriter.
139            (XMLReader.read): New. Call to read the given file descriptor or
140            filename.
141            (XMLReader.close): New. Make sure the file is closed.
142            (XMLReader.GetFileName): New. Return just the file name that is being
143            read from.
144            (XMLReader.GetDirectory): New. Return just the directory of the file
145            that is being read.
146            (XMLReader.AddDispatchers): New. Take a dictionary which contains
147            the names of functions to call as the XML tree is parsed.
148            (XMLReader.startElementNS): Updated to use new dispatcher dictionary.
149            (XMLReader.endElementNS): Updated to use new dispatcher dictionary.
150            (SessionLoader): Removed class variables start_dispatcher and
151            end_dispatcher since this functionality is now part of a class
152            instance. Fixes RTbug #1808.
153            (SessionLoader.__init__): Add dispatcher functions.
154            (load_xmlfile): Code was moved into the XMLReader.read().
155            (load_session): Use modified SessionLoader.
156    
157            * Thuban/Model/map.py (Map.GetProjection): New. Returns the
158            map's projection.
159    
160            * Thuban/Model/proj.py (Projection.GetParameters): Renamed to
161            GetAllParameters.
162            (Projection.GetParameter): Returns the value for the given parameter.
163    
164            * Thuban/Model/resource.py: Use XMLReader and XMLWriter.
165            (GetProjFiles): Renamed from GetProjections. Now returns a list
166            of ProjFile objects.
167            (GetSystemProjFiles): Renamed from GetSuppliedProjections. Returns
168            a list of ProjFile objects whose files are not user defined.
169            (GetUserProjFiles): Renamed from GetUserProjections. Returns a
170            list of ProjFile objects whose files are user defined.
171            (ProjFileReader): Extend new XMLReader.
172    
173            * Thuban/Model/save.py (XMLWriter): Renamed from XMLSaver to
174            promote symmetry.
175    
176            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Use a wxChoice
177            control instead of a wxComboBox. wxChoice controls do not generate
178            events as the uses highlights possible choices which fixes problems
179            with resizing the dialog when the use selects an option.
180    
181            * Thuban/UI/classifier.py (Classifier.__init__): Use a wxChoice
182            control instead of a wxComboBox.
183    
184            * Thuban/UI/mainwindow.py (MainWindow.Projection): Use new projection
185            dialog.
186    
187            * test/test_proj.py (TestProjection.test): New tests for GetParameter
188            method.
189    
190    2003-04-22  Bernhard Herzog  <[email protected]>
191    
192            * Thuban/UI/mainwindow.py: Remove some unused imports and global
193            constants
194    
195            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape)
196            (IdentifyGridCtrl.selected_shape): Use table, not shapetable.
197    
198  2003-04-17  Bernhard Herzog  <[email protected]>  2003-04-17  Bernhard Herzog  <[email protected]>
199    
200          * Thuban/Model/layer.py: Don't import LAYER_LEGEND_CHANGED.          * Thuban/Model/layer.py: Don't import LAYER_LEGEND_CHANGED.

Legend:
Removed from v.701  
changed lines
  Added in v.724

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26