/[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 405 by bh, Fri Feb 14 17:40:41 2003 UTC revision 490 by jonathan, Mon Mar 10 10:44:24 2003 UTC
# Line 1  Line 1 
1    2003-03-10  Jonathan Coles   <[email protected]>
2    
3            * Thuban/Model/classification.py (Classification): Don't use
4            layer's message function directly, use the ClassChanged() method
5            when then classification changes. SetField/SetFieldType/SetLayer
6            must keep the information about field name and field type in
7            sync when an owning layer is set or removed.
8    
9            * Thuban/Model/layer.py: Added ClassChanged() so that the
10            classification can tell the layer when its data has changed.
11            (Layer.SetClassification): Accepts None as an arguement to
12            remove the current classification and correctly handles
13            adding a new classification.
14    
15            * Thuban/Model/load.py: Comment out print statement
16    
17            * test/test_classification.py, test/test_save.py: New and
18            improved tests.
19    
20    2003-03-07  Jonathan Coles   <[email protected]>
21    
22            * Thuban/Model/classification.py: Implemented __copy__ and
23            __deepcopy__ for ClassGroup* and ClassGroupProperites so
24            they can easily be copied by the classifier dialog.
25            (ClassGroupProperites.__init__): The default line color should
26            have been Color.Black.
27    
28            * Thuban/UI/classifier.py: Setting and Getting table values now
29            uses a consistent set of functions.
30            (Classifier): Now non-modal. Has field type label which changes
31            as the field changes. Keep track of buttons in a list so that
32            we can enable/disable the buttons when the None field is selected.
33            (SelectPropertiesDialog): Add buttons to make the colors transparent.
34    
35            * Thuban/UI/dialogs.py (NonModalDialog.Shutdown): New method which
36            does what OnClose did, but can be called by the application to
37            close a window. Needed when a session changes, and we have to
38            close the classifier windows.
39    
40            * Thuban/UI/mainwindow.py (MainWindow.prepare_new_session):
41            Shuts down open dialogs. Used when a new session is created
42            or a session is opened.
43            (MainWindow.SaveSession): Should only call application.SaveSession()
44            if we don't call SaveSessionAs first.
45            (MainWindow.Classify): Allow different classifier dialogs for
46            different layers.
47    
48            * Thuban/UI/tree.py (SessionTreeView): Remove OnClose and let
49            the parent class handle it. Add Shutdown() to unsubscibe from
50            event notification and call the parent Shutdown(). This was
51            necessary so the application can close the tree window.
52    
53    2003-03-06  Jonathan Coles   <[email protected]>
54    
55            * Thuban/Model/classification.py: Minor documentation changes,
56            Addition of __eq__ and __ne__ methods.
57            (Classification.SetLayer): prevent recursion between this method
58            and Layer.SetClassification().
59    
60            * Thuban/Model/color.py: Addition of __eq__ and __ne__ methods.
61    
62            * Thuban/Model/layer.py (SetClassification): prevent recursion
63            between this method and Classification.SetLayer().
64    
65            * test/test_classification.py, test/test_load.py,
66            test/test_session.py: Fixed and added tests for the classification
67            classes.
68    
69    2003-03-06  Bernhard Herzog  <[email protected]>
70    
71            * Thuban/UI/classifier.py (ClassGrid.__init__)
72            (ClassGrid.CreateTable): Move the SetSelectionMode call to
73            CreateTable because otherwise it triggers an assertion in
74            wxPython/wxGTK 2.4.
75    
76    2003-03-05  Jonathan Coles   <[email protected]>
77    
78            * Thuban/common.py: Move FIELDTYPE constants back to table.py.
79    
80            * Thuban/Model/load.py: import FIELDTYPE constants from table.
81    
82            * Thuban/UI/classifier.py: import FIELDTYPE constants from table.
83    
84            * Thuban/Model/table.py: Put FIELDTYPE constants back.
85    
86    2003-03-05  Jonathan Coles   <[email protected]>
87    
88            * Thuban/UI/classifier.py: Added class documentation.
89            Fixed RTbug #1713, #1714. Added Move[Up|Down] buttons.
90            Store just the groups in the table and generate the other
91            column information when it is requested. Add "None" field
92            to pull-down to select no classification.
93    
94            * Thuban/common.py: Moved FIELDTYPE constants from table.py
95            (Str2Num): Only catch ValueError exceptions.
96    
97            * Thuban/Model/classification.py: Class documentation. Renaming
98            of methods with Stroke to Line. Groups are stored in a single
99            list with the default as the first element. Groups are searched
100            in the order they appear in the list.
101    
102            * Thuban/Model/color.py: Documentation.
103    
104            * Thuban/Model/layer.py (Layer): Add GetFieldType to retreive
105            the kind of data represented by a field.
106    
107            * Thuban/Model/load.py (ProcessSession): Use proper string
108            conversion function; fixes RTbug #1713.
109    
110            * Thuban/Model/save.py (Saver): Store field type information.
111    
112            * Thuban/Model/table.py: Put FIELDTYPE constants in common.py.
113            (Table): Add field_info_by_name() to retrieve field information
114            by specifying the field name, not the number.
115    
116            * Thuban/UI/mainwindow.py: Function name changes.
117    
118            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Only
119            get the layer classification once. Don't try to classify
120            values when the field is None: just use the default properties.
121    
122            * Thuban/UI/view.py: Function name changes.
123    
124            * Doc/thuban.dtd: Add field_type attribute to a classification.
125    
126    2003-03-04  Bernhard Herzog  <[email protected]>
127    
128            * Doc/thuban.dtd: Use correct syntax for optional attributes. Make
129            the fill and stroke layer attributes optional with suitable
130            default values. Add the stroke_width layer attribute. Use correct
131            syntax for empty elements. Make the attribute list for labels
132            refer to the label element.
133    
134    2003-03-04  Bernhard Herzog  <[email protected]>
135    
136            * setup.py (thuban_build_py.build): Add a comment about distutils in
137            Python 2.3 containing some of the functionality we implement in
138            setup.py ourselves.
139    
140            * Thuban/UI/classifier.py (ClassGrid.__init__): Set the table
141            before the selection mode. Doing it the other way round triggers
142            an assertion in wxWindows.
143    
144            * Thuban/Model/save.py (escape): Fix typo in doc-string
145    
146            * Thuban/Model/classification.py: Remove unnecessary wxPython
147            import
148    
149    2003-03-04  Jonathan Coles   <[email protected]>
150    
151            * Thuban/Model/classification.py (ClassGroupRange.GetProperties):
152            Parameter 'value' should default to None.
153    
154            * Thuban/UI/mainwindow.py: Use Layer.GetClassification() since
155            the class attribute __classification is now private.
156    
157            * Thuban/UI/classifier.py (ClassGrid): Moved OnCellDClick() from
158            Classifier to ClassGrid. Added support for removing selected rows,
159            which including code for keeping track of when cells are selected,
160            and deselected.
161            (ClassTable): Support for added/removing rows. Fixed a problem
162            with __ParseInput whereby it would not allow strings (only numbers)
163            to be entered.
164            (Classifier): Added button and supporting code for removing
165            selected rows.
166    
167    2003-02-27  Jonathan Coles   <[email protected]>
168    
169            * Thuban/common.py: Moved color conversion functions into
170            Thuban/UI/common.py.
171            (Str2Num): Now converts the float (not the string) to a long/int
172            so that an exception isn't thrown.
173    
174            * Thuban/UI/common.py: Common functions used in several UI modules
175    
176            * Thuban/Model/classification.py: Changed the class hierarchy
177            so that a Classification consists of Groups which return
178            Properties when a value matches a Group.
179    
180            * Thuban/Model/layer.py: Fixed name resolution problem.
181    
182            * Thuban/Model/load.py: Use new Classification and Group functions.
183    
184            * Thuban/Model/save.py (Saver.write_attribs): Fixes a test case
185            failure.
186            (Saver.write_classification): Use new Classification and Group
187            functions.
188    
189            * Thuban/UI/classifier.py: Changes to use new Classification and Group
190            functions. Fix to create a tuple with a single value instead of
191            simply returning the value.
192    
193            * Thuban/UI/renderer.py: Use new Classification and Group functions.
194            Use common.py functions.
195    
196            * Thuban/UI/tree.py: Use common.py functions.
197            
198            * test/test_classification.py: Use new Classification and Group
199            classes.
200    
201    2003-02-24  Jonathan Coles   <[email protected]>
202    
203            * Thuban/common.py (Color2wxColour, wxColour2Color): Conversion
204            functions from Thuban color objects to wxWindow colour objects.
205    
206            * Thuban/Model/classification.py (Classification): Renamed
207            GetProperties() to GetClassData(). Used the new iterator
208            in TreeInfo().
209            (ClassIterator): Iterator implementation to iterate over the
210            ClassData objects in a classification object.
211    
212            * Thuban/Model/save.py (Saver.write_classificaton): Uses
213            the new iterator to save the classification information.
214    
215            * Thuban/UI/classifier.py (SelectPropertiesDialog): Support
216            for changing the stroke and fill colors and previewing the
217            changes.
218    
219            * Thuban/UI/mainwindow.py (MainWindow.OpenSession,
220            MainWindow.SaveSessionAs): Text string changes so the dialogs
221            have more meaningful titles.
222    
223            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Change
224            Classification method name from GetProperties to GetClassData.
225    
226            * Thuban/UI/view.py (MapCanvas.find_shape_at): Use method calls
227            instead of accessing now non-existent class variables.
228    
229    2003-02-24  Bernhard Herzog  <[email protected]>
230    
231            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Remove
232            unneeded Shape() call. Rendering is substantially faster without
233            it and it avoids some problems with broken shape files.
234    
235    2003-02-20  Frank Koormann   <[email protected]>
236    
237            Force minimal size of identify and label dialogs. The autosizing
238            looked too ugly.
239    
240            * Thuban/UI/controls.py (RecordListCtrl): Set minimal width for columns.
241            * Thuban/UI/labeldialog.py (LabelDialog.dialog_layout):
242            Set size of listctrl.
243            * Thuban/UI/identifyview.py (IdentifyView.__init__):
244            Set size of dialog.
245    
246    2003-02-19  Jonathan Coles   <[email protected]>
247    
248            * test/test_classification.py, test/test_layer.py,
249            test/test_load.py, test/test_map.py, test/test_session.py:
250            Updated the tests to use the new functions that are in the
251            respective classes.
252    
253            * Thuban/Model/classification.py (Classification):
254            Uses the new ClassData* classes. Modification messages are
255            passed up to the parent layer (if it exists).
256            (ClassData): New class to encapsulate the common data in each
257            classification property.
258            (ClassDataDefault): Represents the Default class. data.
259            (ClassDataPoint): Represents a single class. data point
260            (ClassDataRange): Represents a class. range
261            (ClassDataMap): Represents a class. map (unused).
262    
263            * Thuban/Model/color.py: Added Color.None to represent something
264            with no color. Color.Black represents the color black.
265            (NoColor): Helper class derived from Color to represent something
266            with no color.
267    
268            * Thuban/Model/layer.py (Layer): Removed references to fill, stroke,
269            stroke_width attributes. Made the 'classification' attribute private.
270            New methods for setting/getting the classification.
271    
272            * Thuban/Model/load.py (ProcessSession): Use new methods on Layer
273            to get the classifcation and use the new ClassData* classes to
274            hold the classification data. Use Str2Num to convert numbers
275            properly.
276    
277            * Thuban/Model/save.py (Saver): Use new Color and Classification
278            methods
279    
280            * Thuban/UI/classifier.py (ClassGrid): New class to represent a
281            custom grid.
282            (ClassTable): Support for editing Values and Labels and for
283            changing what type (point or range) of data is stored in each
284            property based on how the user enters the data.
285            (Classifier): Support for saving the new classifications and
286            launching the dialog to edit a property.
287            (SelectPropertiesDialog): New class for editing the visual
288            properties of a classification (stroke color, width, and fill color)
289            (ClassPreviewer): Took the Draw method from ClassRenderer and
290            made most of it into this new class. Intend to use this class in
291            the SelectPropertiesDialog for previewing changes.
292    
293            * Thuban/UI/renderer.py: Use new Color and Classification methods.
294    
295            * Thuban/UI/tree.py: Formatting changes.
296    
297            * Doc/thuban.dtd: Add 'label' element
298    
299            * Thuban/common.py: New. Contains common routines used throughout
300            the code.
301            (Str2Num): Takes a string and converts it to the "best" type of
302            number.
303    
304  2003-02-14  Bernhard Herzog  <[email protected]>  2003-02-14  Bernhard Herzog  <[email protected]>
305    
306          * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the          * Thuban/UI/view.py (MapCanvas.OnLeftUp): Make sure that the

Legend:
Removed from v.405  
changed lines
  Added in v.490

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26