/[formed]/trunk/ChangeLog
ViewVC logotype

Diff of /trunk/ChangeLog

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

revision 6 by teichmann, Mon Aug 6 19:57:35 2007 UTC revision 152 by teichmann, Sun Sep 9 20:47:38 2007 UTC
# Line 1  Line 1 
1    2007-09-05 Sascha L. Teichmann <[email protected]>
2    
3            * tools/formed/formed/model/memory.py,
4              tools/formed/formed/model/persistent.py: Add a getValue() method
5                    to dataset abstraction. This is a bit of a workaround to bring
6                    global access across pages for rule checking to work.
7    
8            * tools/formed/formed/model/data.py: Fixed: When setting a new expression
9              the compiled version was not stored in the RuleLeaf.
10    
11            * tools/formed/formed/model/expr.py: shlex lexer does not like unicode.
12              convert the expression string to ascii for compilation.
13    
14            * tools/formed/formed/plugins/web/semantic.py: Remove the 'box' because
15              valid data is stored to the dataset immediately now. Fixed a bug
16                    with integer handler.
17    
18            * tools/formed/formed/plugins/web/controllers.py: Removed the semantic 'box'
19              stuff. When a submit is done extract the rules from the tree document
20                    that are effected by the modified variables and check them.
21    
22            * tools/formed/formed/plugins/web/renderer.py: Fixed exception handling
23              when dealing with templates.
24    
25    2007-09-07 Torsten Irlaender <[email protected]>
26            * tools/formed/formed/plugins/web/controllers.py,
27              tools/formed/formed/plugins/web/renderer.py: Moved more render
28              functions into renderer.py. New render classes are:
29              DataSetDigestRenderer, DataSetNavigationRenderer,
30              DataSetFormularRenderer, ConfirmationDialogRenderer
31    
32              Note: The new methods are only called from selected handlers. Other
33              handlers call the renderes in the old way.
34    
35    2007-09-07 Torsten Irlaender <[email protected]>
36            * tools/formed/formed/plugins/web/form_renderer.py: Renamed
37              renderer.py to form_renderer.py. This file will contain formular
38              specfic render methods in the future.
39            * tools/formed/formed/plugins/web/renderer.py: Added new renderer.py
40              which will contain general render methods.
41            * tools/formed/formed/plugins/web/controllers.py: Began to move all
42              rendering into renderer.py or form_renderer.py. This file will only
43              contain teh handlers in the future.
44    
45    2007-09-07 Torsten Irlaender <[email protected]>
46            * tools/formed/formed/plugins/web/renderer.py,
47              tools/formed/formed/plugins/web/controller.py:
48              Renderes now get an instance of the formdata object to provide
49              access the data needed to render various infoboxes etc. Handler
50              instanciate the formdata.
51            
52    2007-09-06 Torsten Irlaender <[email protected]>
53            * tools/formed/formed/plugins/web/renderer.py: Mainly tried to get the
54              getFormData interface to work. Added two small semantic fixes, but
55              did not manage to get it up. Need to exime this a little bit more
56            * tools/formed/formed/plugins/web/controllers.py: Put <div> tags
57              around the menus on the right side to be able to assign different
58              styles. Added dataset actions while editing a dataset.
59            
60    2007-09-05 Torsten Irlaender <[email protected]>
61            * tools/formed/formed/model/memory.py: Fixed deleting datasets by
62              removing unwanted del method
63            * tools/formed/formed/plugins/web/controllers.py: Implemented
64              confiration dialogs for create, delete, and select aof datasets. Started to use
65              templates as well for larger information units like the dataset summary.
66            
67    2007-09-05 Sascha L. Teichmann <[email protected]>
68    
69            * tools/formed/formed/model/nodecomponents.py: Added a
70              method to document to find index of page.
71    
72            * tools/formed/formed/plugins/web/semantic.py: Added getValue()
73              to fetch data from semantic box.
74    
75            * tools/formed/formed/plugins/web/controllers.py: Added new
76              FormData implementation to support DB and semantic box.
77    
78    2007-09-05 Sascha L. Teichmann <[email protected]>
79    
80            * tools/formed/formed/plugins/web/renderer.py: escaped
81              error message.
82    
83            * tools/formed/formed/plugins/web/controllers.py: Don't fetch
84              dataset from backend each time a page is up to edit.
85    
86    2007-09-05 Sascha L. Teichmann <[email protected]>
87    
88            * tools/formed/formed/plugins/web/renderer.py: SimplePageRenderer
89              returns "Page not found" if given page is None.
90    
91            * tools/formed/formed/plugins/web/controllers.py: Added checks
92              to avoid crashing when ask for a non-existent page.
93    
94    2007-09-05 Sascha L. Teichmann <[email protected]>
95    
96            * tools/formed/formed/plugins/web/controllers.py: Some clean-ups.
97    
98    2007-09-05 Sascha L. Teichmann <[email protected]>
99    
100            * tools/formed/formed/plugins/web/plugin.py: Remove request handlers
101              and renderers.
102    
103            * tools/formed/formed/plugins/web/controllers.py: New. Contains handlers
104              and renderers now. TODO: Move renderers to renderer.py
105    
106    2007-09-05 Torsten Irlaender <[email protected]>
107    
108            * tools/formed/formed/plugins/web/www/main.tmpl: Adopted web template
109              and bound in the the new added functions to create, edit, delete and
110              show formdata.
111            
112    2007-09-05 Sascha L. Teichmann <[email protected]>
113    
114            * tools/formed/formed/model/memory.py: Removed bisect and use a
115              simple linear scan for dataset lookup now.
116    
117            * tools/formed/formed/plugins/web/plugin.py: Fixed various issues
118              of different sizes.
119    
120    2007-09-05 Torsten Irlaender <[email protected]>
121    
122            * tools/formed/formed/plugins/web/memory.py: Fixed getDataSetById
123              fuction
124                    
125            * tools/formed/formed/plugins/web/persistent.py: Added store() method
126              to the DataSet interface
127    
128            * tools/formed/formed/plugins/web/renderer.py: Added handlers and
129              renderes for create, update, delete and show actions on formular data.
130    
131    2007-09-04 Sascha L. Teichmann <[email protected]>
132    
133            * tools/formed/formed/plugins/web/server.py: The mapping
134              to methods is now driven by regualar expressions and
135                    a dictionary. Response objects are now able to send
136                    error codes.
137    
138            * tools/formed/formed/plugins/web/renderer.py: Fixed an issue
139              when help in Formdata is None. Moved text for help into
140                    a top level '''...''' variable.
141    
142            * tools/formed/test-data/simple.xml: Added test for help.
143    
144            * tools/formed/formed/plugins/web/help.py: extra None check.
145    
146            * tools/formed/formed/plugins/web/plugin.py: Uses the new
147              table driven mapping of reguest handling. TODO: split the
148                    WebPlugIn.pageHandler() method further to smaller handlers.
149                    Smaller clean ups and better exception handling.
150    
151            * tools/formed/formed/plugins/web/cache.py: Report OSErrors
152              and do not catch them.
153    
154    2007-09-04 Torsten Irlaender <[email protected]>
155    
156            * tools/formed/formed/plugins/web/renderer.py,
157            * tools/formed/formed/plugins/web/plugin.py: Added Interface to
158              the HelpProvider and inserted help icons to the html output.
159              Added decorator for Formelemnts, so textfields, choices etc. are now
160              within a <div> tag.
161              Modified the error messages.
162    
163    2007-09-04 Sascha L. Teichmann <[email protected]>
164    
165            * tools/formed/formed/plugins/web/cache.py: New. Implements
166              the server-side caching more clean. Fixes a bug with
167                    serving static content.
168    
169            * tools/formed/formed/plugins/web/plugin.py: Use the new cache.
170    
171    2007-09-04 Sascha L. Teichmann <[email protected]>
172    
173            * tools/formed/formed/plugins/web/plugin.py: Set MIME type
174              to "application/xhtml+xml" when serving help texts.
175    
176    2007-09-03 Sascha L. Teichmann <[email protected]>
177    
178            * tools/formed/formed/plugins/export/diff.py: New. Exports
179              pairwise differences between all modes.
180    
181            * tools/formed/formed/config.py: Use new export filter.
182    
183    2007-09-03 Sascha L. Teichmann <[email protected]>
184    
185            * tools/formed/formed/plugins/web/help.py: New. Parses an
186              XHTML document for id'ed divs and builds a help lookup.
187    
188            * tools/formed/formed/plugins/web/www/help.tmpl: Template for
189              the help content frame.
190    
191            * tools/formed/formed/plugins/web/www/help.xhtml: Some simple
192              help text index.
193    
194            * tools/formed/formed/plugins/web/plugin.py: Serves the help
195              texts now.
196    
197    2007-09-03 Torsten Irlaender <[email protected]>
198    
199            * tools/formed/formed/plugins/web/plugin.py: Only visible group
200              elements will be rendered in the formular navigation.
201              Formular pages in the navigation now have their own css-style
202              attributes.
203    
204    2007-09-03 Torsten Irlaender <[email protected]>
205    
206            * tools/formed/formed/plugins/web/www/main.tmpl: Added div area for page
207              errors in template
208            * tools/formed/formed/plugins/web/plugin.py: Fixed undefined
209              pageerrors variable
210    
211    2007-09-03 Frank Koormann <[email protected]>
212    
213            * tools/formed/formed/plugins/export/html.py
214            (RecursiveExporter): Added annotation to export
215            (fillRow()): Renamed old fillNine to this more generic name.
216            
217    
218    2007-09-03 Sascha L. Teichmann <[email protected]>
219    
220            * tools/formed/formed/plugins/web/renderer.py: Using the decorator
221              from model.misc now.
222    
223    2007-09-03 Sascha L. Teichmann <[email protected]>
224    
225            * tools/formed/formed/model/nodecomponents.py: Added an
226              'annotation' attribute to node components. This is to
227                    enable FormEd document authors to add comments to groups
228                    and fields.
229    
230    2007-09-03 Frank Koormann <[email protected]>
231    
232            * tools/formed/formed/model/nodecomponents.py
233            (NodeComponent.getParent): New method to get node components parent.
234    
235            * tools/formed/formed/plugins/export/html.py: Export Choice option
236            as simple list instead of collection of bools.
237    
238    2007-09-02 Sascha L. Teichmann <[email protected]>
239    
240            * tools/formed/formed/model/persistent.py: Interfaces to abstract
241              from persistent storage details.
242    
243            * tools/formed/formed/model/memory.py: In core implementation
244              of the persistent interfaces.
245    
246            * tools/formed/formed/main.py: Holds a memory data store now.
247    
248    2007-09-02 Sascha L. Teichmann <[email protected]>
249    
250            * tools/formed/formed/plugins/export/sql.py,
251              tools/formed/formed/plugins/export/html.py: Fixed constructor chains
252                    for FileDialogFilter sub classes.
253    
254    2007-09-02 Sascha L. Teichmann <[email protected]>
255    
256            * tools/formed/formed/model/misc.py: Checking the mode in recursive
257              tree traversals is a common task. To ease this a decorator function
258                    checkMode in union with sub classing ModeChecker can be used.
259                    To make it work simply subclass from ModeChecker and add the decorator
260                    to the methods that need mode tracking. Before you start the recursion
261                    call self.prepareDescent().
262    
263            * tools/formed/formed/plugins/export/html.py: Uses the new decorator scheme
264              now which replace the old. TODO: Make the web renderer use the new scheme
265                    too.
266    
267    2007-09-02 Sascha L. Teichmann <[email protected]>
268    
269            * tools/formed/formed/plugins/export/sql.py: Removed needless import.
270    
271            * tools/formed/formed/plugins/export/html.py: HTML table exporter
272              uses new FileDialogFilter base class too.
273    
274    2007-09-02 Sascha L. Teichmann <[email protected]>
275    
276            * tools/formed/formed/plugins/ui/*: New. All file exporters
277              need a file dialog. Till now each of them pulled up its
278                    own. This was silly code replication. Now there is an abstract
279                    base class 'FileDialogFilter' which implements the common
280                    behavior. The file exporters should subclass it.
281    
282            * tools/formed/formed/plugins/export/sql.py: Subclass the SQL
283              exporters from the new base class. TODO: Subclass the HTML
284                    exporter too.
285    
286    2007-08-31 Sascha L. Teichmann <[email protected]>
287    
288            * tools/formed/formed/plugins/export/html.py: Make mode check
289              work (again).
290    
291    2007-08-31 Torsten Irlaender <[email protected]>
292    
293            * tools/formed/formed/plugins/export/html.py: Rendering of the HTML
294              exprt works now in a recursive way. This change was needed because
295              the structure of the formedtree has changed to be able to render
296              full hirachically document stuctures. (nested lists)
297              TODO: Fix modechecking
298    
299    2007-08-31 Torsten Irlaender <[email protected]>
300    
301            * tools/formed/formed/plugins/web/plugin.py: Navigation rendering works
302              now in recursive way. This change was needed because the structure
303              of the formedtree has changed to be able to render full hirachically
304              document stuctures. (nested lists)
305    
306    2007-08-31 Sascha L. Teichmann <[email protected]>
307    
308            * tools/formed/formed/model/nodecomponents.py: use discard()
309              instead of remove on sets.
310    
311            * tools/formed/formed/plugins/export/sql.py: Added an
312              exporter for table views.
313    
314            * tools/formed/formed/config.py: Added the new exporter
315              to the list of export filters.
316    
317    2007-08-30 Sascha L. Teichmann <[email protected]>
318    
319            * tools/formed/formed/model/data.py: Fixed a bug in
320              Page.allWidgets()
321    
322            * tools/formed/formed/plugins/export/sql.py: Added an exporter
323              for stored procudeures.
324    
325            * tools/formed/formed/config.py: Add the new SP exporter.
326    
327    2007-08-29 Torsten Irlaender <[email protected]>
328    
329            * tools/formed/formed/plugins/web/plugin.py,
330              tools/formed/formed/plugins/web/error_renderer.py: Added interface
331              to get the errors for a whole page in te formular. These errors can
332              now be displayed on the top of the formular.
333    
334    2007-08-29 Torsten Irlaender <[email protected]>
335    
336            * tools/formed/formed/plugins/web/renderer.py: Finished implementation
337              of the getFromData interface and prepared the rederer for generating
338              nice error messages
339    
340    2007-08-28 Frank Koormann <[email protected]>
341    
342            * tools/formed/formed/plugins/export/sql.py
343            (SchemaCreator.createSchema, SchemaCreator._createGroup):
344            Fixed typo in created DDS (PRIMRAY -> PRIMARY)
345    
346    2007-08-28 Torsten Irlaender <[email protected]>
347    
348            * tools/formed/formed/plugins/export/sql.py: Added small helper
349              function to generated valid quotes within the sql statements
350    
351    2007-08-29 Sascha L. Teichmann <[email protected]>
352    
353            * tools/formed/formed/plugins/export/sql.py: Added foreign keys
354              for repeat tables.
355              
356    2007-08-29 Sascha L. Teichmann <[email protected]>
357    
358            * tools/formed/formed/plugins/export/sql.py: When generating
359              an extra table check in a table of same content exists. In
360                    this case reference the existing table.
361    
362    2007-08-29 Sascha L. Teichmann <[email protected]>
363    
364            * tools/formed/formed/plugins/export/sql.py: Rewritten to produce
365              _real_ SQL and respect repeat groups.
366    
367            * tools/formed/formed/model/data.py: Fixed bug with Group.isRepeat()
368    
369            * tools/formed/formed/plugins/web/renderer.py: Use "".join([])
370              instead of expensive += string concat in some places.
371    
372    2007-08-29 Sascha L. Teichmann <[email protected]>
373    
374            * tools/formed/formed/model/data.py: Renamed GroupNode.getRepeat()
375              to .isRepeat and return a bool. Fixed a bug in Page.allWidgets().
376    
377    2007-08-28 Torsten Irlaender <[email protected]>
378    
379            * tools/formed/plugins/web/renderer.py: Added Formdata interface.
380            * tools/formed/model/data.py: Implements Formadata interface to
381              textfields. Fieldset generated depends now on the "invisible"
382              attribute of the groupnode. Field-label generation slightly changed.
383              Added error indication to textfields
384    
385    2007-08-28 Sascha L. Teichmann <[email protected]>
386    
387            * tools/formed/formed/model/data.py,
388              tools/formed/formed/io/document.py: Removed support
389                    of logical groups.
390    
391    2007-08-28 Sascha L. Teichmann <[email protected]>
392    
393            * tools/formed/formed/io/document.py: Avoid saving empty
394              attributes.
395    
396            * tools/formed/test-data/simple.xml: Applied.
397    
398    2007-08-28 Sascha L. Teichmann <[email protected]>
399    
400            * tools/formed/formed/model/data.py: Added 'repeat' and
401              'invisible' attributes to group. TODO: remove logical group.
402    
403    2007-08-27 Torsten Irlaender <[email protected]>
404    
405            * tools/formed/plugins/web/plugin.py,
406              tools/formed/plugins/web/renderer.py: Started to  include stylesheet
407              depending tags in the html generation.
408    
409    2007-08-27 Sascha L. Teichmann <[email protected]>
410    
411            * tools/formed/formed/model/data.py,
412              tools/formed/formed/io/document.py: Added a logical group.
413                    It has an attribute 'repeat' to indicate that it might
414                    be worthy an external table in DB schema.
415    
416    2007-08-27 Sascha L. Teichmann <[email protected]>
417    
418            * tools/formed/formed/plugins/web/plugin.py: Support
419              serving of static content.
420    
421            * tools/formed/formed/plugins/web/server.py: Removed
422              old send code.
423    
424    2007-08-27 Sascha L. Teichmann <[email protected]>
425    
426            * tools/formed/formed/plugins/web/plugin.py: Use new
427              Response object. Fix typo.
428    
429            * tools/formed/formed/plugins/web/server.py: support
430              response object to serve different MIME types.
431    
432    2007-08-27 Sascha L. Teichmann <[email protected]>
433    
434            * tools/formed/formed/plugins/web/plugin.py: Add web.path
435              to FORMED environment  variable to specify the
436                    root of the static content.
437    
438    2007-08-26 Sascha L. Teichmann <[email protected]>
439    
440            * tools/formed/formed/model/data.py,
441              tools/formed/formed/model/nodecomponents.py: Fixed mode issues.
442    
443            * tools/formed/formed/plugins/web/www,
444              tools/formed/formed/plugins/web/www/main.tmpl: New. Contains
445                    a template for the HTML output.
446    
447            * tools/formed/formed/plugins/web/plugin.py: Fixes several smaller
448              mode issues. Introduces CSS support. Simplified the action
449                    handling.
450    
451            * tools/formed/formed/plugins/web/renderer.py: Removed the
452              nagivation code.
453    
454            * tools/formed/formed/plugins/web/server.py: Added missing import.
455    
456    2007-08-26 Sascha L. Teichmann <[email protected]>
457    
458            * tools/formed/formed/model/data.py: Added missing broadcast
459              parameter to setAttribute() of RuleLeaf.
460    
461            * tools/formed/formed/plugins/web/plugin.py: Factorize
462              HTTP server code out to separate module.
463    
464            * tools/formed/formed/plugins/web/renderer.py: Removed
465              needless -1 from pop()
466    
467            * tools/formed/formed/plugins/web/server.py: New. Contains
468              the HTTP server code now.
469    
470    2007-08-26 Sascha L. Teichmann <[email protected]>
471    
472            * tools/formed/test-data/simple.xml: Modified to contain a rule.
473    
474            * tools/formed/formed/model/expr.py: Added. A simple RPN
475              expression evaluator. To avoid the problem of eval()ing
476                    arbitrary python expressions I've decided to use a very
477                    basic and limited stack machine to support rule checking.
478    
479            * tools/formed/formed/model/data.py: Added a RuleLeaf.
480    
481            * tools/formed/formed/io/document.py: Added factories for rules.
482    
483            * tools/formed/formed/model/nodecomponents.py: Add a method
484              to find all items of a given type in document for a given
485                    mode. Usefull to find all rules in the tree.
486    
487            * tools/formed/formed/ui/controls.py: Added a listener mechanism
488              to attribute table to report exceptions when setting a value
489                    from GUI. Useful to report compilation errors when setting
490                    expr of rule leafs.
491    
492            * tools/formed/formed/main.py: Added a method to track exceptions
493              from the attribute table and pop up dialogs if they occur.
494                    Added a counter of rule modifications in tree. Useful if you
495                    want build cached data structures like rule sets and you want
496                    to know if they are still valid.
497    
498    2007-08-24 Torsten Irlaender <[email protected]>
499    
500            * tools/formed/formed/plugins/export/sql.py: Fixed CHECK-constraint
501              for checkbox values. (Syntax error).
502    
503            * tools/formed/formed/plugins/names/filter.py: Fixes in formularname
504              generation  
505    
506    2007-08-24 Torsten Irlaender <[email protected]>
507    
508            * tools/formed/formed/plugins/names/filter.py: Separated Class for
509              making the formularnames more database friendly. Added some more
510              checks.
511            * tools/formed/formed/plugins/export/sql.py: Make use of the fresh
512              separated class, and some fixes in sql generation.
513    
514    2007-08-24 Sascha L. Teichmann <[email protected]>
515    
516            * tools/formed/formed/plugins/export/html.py: Print lengths
517              of external choice list.
518    
519    2007-08-24 Sascha L. Teichmann <[email protected]>
520    
521            * tools/formed/formed/main.py: Little workaround for
522              mode selection if someone adds an removes a mode.
523    
524    2007-08-24 Sascha L. Teichmann <[email protected]>
525    
526            * tools/formed/test-data/simple.xml: Better test case for
527              mode depended leaf items.
528    
529            * tools/formed/formed/model/nodecomponents.py: Added a method
530              to calculate the effective mode of an item.
531    
532            * tools/formed/formed/plugins/export/html.py: Use effective
533              mode. TODO: the 'all' modus return false results sometimes.
534                    Cause: The modes are only cumulated over time. Removal is
535                    not done.
536    
537    2007-08-24 Sascha L. Teichmann <[email protected]>
538    
539            * tools/formed/formed/plugins/export/html.py: Dump the items
540              of radio groups and choices too.
541    
542    2007-08-24 Torsten Irlaender <[email protected]>
543    
544            * tools/formed/formed/plugins/names/filter.py: Modified the renaming
545              by formular names to make the naming more database friendly.
546              Now only alphanumeric and underscore chars is allowed.
547    
548    2007-08-24 Sascha L. Teichmann <[email protected]>
549    
550            * tools/formed/formed/plugins/export/html.py: Tweaked
551              HTML table exporter a bit to be on par with the XSLT
552                    script. TODO: Dump items in radio and choice groups.
553    
554    2007-08-23 Sascha L. Teichmann <[email protected]>
555    
556            * tools/formed/formed/plugins/names/filter.py: Removed
557              HTML and SQL exporters.
558    
559            * tools/formed/formed/plugins/export,
560              tools/formed/formed/plugins/export/__init__.py,
561              tools/formed/formed/plugins/export/sql.py,
562              tools/formed/formed/plugins/export/html.py: New: Contain
563                    the HTML and the SQL exporters now.
564    
565            * tools/formed/formed/config.py: Use exporters from different
566              package now.
567    
568    2007-08-23 Torsten Irlaender <[email protected]>
569    
570            * tools/formed/formed/plugins/names/filter.py: Added an
571              pseudo SQL export filters. TODO: Move HTML and SQL filter
572              in a new file (formed/plugins/export/htmlexport.py and
573              sqlexport.py?)
574    
575            * tools/formed/formed/config.py: Install the new SQL filter.
576    
577    2007-08-23 Sascha L. Teichmann <[email protected]>
578    
579            * tools/formed/formed/model/nodecomponents.py: Added a depth()
580              method to determine the depth of particular tree item.
581    
582            * tools/formed/formed/plugins/names/filter.py: Added an
583              HTML export filters. TODO: needs more work.
584    
585            * tools/formed/formed/config.py: Install the new HTML filter.
586    
587    2007-08-23 Torsten Irlaender <[email protected]>
588    
589            * contrib/extract-xfa-fields_and_options.xsl: Added small xsl script
590              to extract fields and options in the XFA Data in teh PDF. This
591              script might me handy to indicate changes between the different
592              formular versions.
593            
594    2007-08-23 Sascha L. Teichmann <[email protected]>
595    
596            * tools/formed/formed/main.py: Add an 'all' mode to
597              select all modes. ;-)
598    
599    2007-08-22 Sascha L. Teichmann <[email protected]>
600    
601            * tools/formed/test-data/simple.xml,
602              tools/formed/formed/model/data.py,
603              tools/formed/formed/plugins/web/plugin.py,
604              tools/formed/formed/plugins/web/renderer.py,
605              tools/formed/formed/io/document.py,
606              tools/formed/formed/main.py: Removed support for switch nodes.
607              BEWARE: This breaks compatibility with older documents!
608    
609    2007-08-22 Sascha L. Teichmann <[email protected]>
610    
611            * tools/formed/formed/plugins/web/plugin.py: Uses the
612              getSelectedMode() from main now.
613    
614            * tools/formed/formed/main.py: selected mode is now hold
615              in main.
616    
617            * tools/formed/formed/config.py: removed selected mode from
618              env configuration.
619    
620    2007-08-22 Sascha L. Teichmann <[email protected]>
621    
622            * tools/formed/formed/ui/controls.py: Attributes in GUI attribute
623              table are now alphabetically sorted.
624    
625    2007-08-22 Sascha L. Teichmann <[email protected]>
626    
627            * tools/formed/formed/model/nodecomponents.py: Added code to
628              establish the new 'modes' recursively.
629    
630            * tools/formed/formed/plugins/plugin.py: Pass main instead
631              of cfg on plug-in start-up.
632    
633            * tools/formed/formed/plugins/web/plugin.py: Use the new
634              'modes' attribute for rendering.
635    
636            * tools/formed/formed/plugins/web/renderer.py: Use decorators
637              to check the new modes.
638    
639            * tools/formed/formed/main.py: Adjusted to new infrastructure.
640    
641    2007-08-22 Sascha L. Teichmann <[email protected]>
642    
643            * tools/formed/formed/model/nodecomponents.py: Added an
644              attribute 'modes' to NodeComponents.
645    
646    2007-08-22 Sascha L. Teichmann <[email protected]>
647    
648            * tools/formed/formed/model/data.py: Small cosmetic cleanups
649    
650    2007-08-21 Sascha L. Teichmann <[email protected]>
651    
652            * tools/formed/formed/plugins/web/renderer.py: Another fix
653              for the hidden field. Argh!
654    
655    2007-08-21 Sascha L. Teichmann <[email protected]>
656    
657            * tools/formed/formed/plugins/web/renderer.py: Fixed double
658              generation of hidden page field.
659    
660    2007-08-21 Sascha L. Teichmann <[email protected]>
661    
662            * tools/formed/formed/plugins/web/semantic.py: Added semantic
663              checks for radio groups.
664    
665    2007-08-21 Sascha L. Teichmann <[email protected]>
666    
667            * tools/formed/formed/plugins/web/semantic.py: Added semantic
668              checks for choices.
669    
670    2007-08-21      Frank Koormann <[email protected]>
671    
672            * contrib/convert-formedtree2html.xsl: Display switch nodes as
673            alternatives.
674            
675    2007-08-21      Frank Koormann <[email protected]>
676    
677            * contrib/convert-formedtree2html.xsl:
678            Replace technical types with readable descriptions
679    
680    2007-08-21 Sascha L. Teichmann <[email protected]>
681    
682            * tools/formed/formed/plugins/web/plugin.py: Fix a few smaller
683              issues. 'action' looks for all widgets on a page now, goes
684                    through all passed parameters, tries to match them with the
685                    widgets of the page and put them into the semantic box.
686                    Afterwards a list of untouched page parameters are left
687                    which will be deleted from the semantic box.
688    
689            * tools/formed/formed/plugins/web/semantic.py: Simplified.
690              The NodeComponent is passed as an argument now.
691    
692            * tools/formed/formed/plugins/web/renderer.py: Generate a
693              hidden field to store the name of the page.
694    
695    2007-08-21 Sascha L. Teichmann <[email protected]>
696    
697            * tools/formed/formed/plugins/web/plugin.py: Fixed an encoding
698              issue with incoming UTF-8 data.
699    
700    2007-08-21 Sascha L. Teichmann <[email protected]>
701    
702            * tools/formed/test-data/simple.xml: Improve test for widgets
703              in switches.
704    
705            * tools/formed/formed/model/data.py: Added a method to find all
706              widgets in a given page. Fixed a bug when walking in switch
707                    with a given mode.
708    
709            * tools/formed/formed/plugins/web/plugin.py: Simple test for
710              listing all widgets in page.
711    
712    2007-08-21 Torsten Irlaender <[email protected]>
713    
714            * tools/formed/formed/plugins/names/filter.py: Fixed file-encoding to
715              latin-1
716    
717    2007-08-21 Sascha L. Teichmann <[email protected]>
718    
719            * tools/formed/formed/model/data.py: Added mode parameter to
720              walk.
721                    
722            * tools/formed/formed/model/nodecomponents.py: SwitchNode overwrites
723              walk() with usage of the new mode parameter. Added a method to
724                    give children in a given mode.
725    
726            * tools/formed/formed/plugins/web/renderer.py: Simplified to use
727              new Switch.childrenInMode() method.
728    
729    2007-08-21 Sascha L. Teichmann <[email protected]>
730    
731            * tools/formed/formed/plugins/web/semantic.py: Add checks for
732              texts and text areas.
733    
734            * tools/formed/formed/plugins/web/renderer.py: Set accept-charset
735              to UTF-8 in generated form.
736    
737    2007-08-20 Sascha L. Teichmann <[email protected]>
738    
739            * tools/formed/formed/plugins/web/semantic.py: Added semantic
740              tests for dates.
741    
742    2007-08-20 Sascha L. Teichmann <[email protected]>        
743    
744            * tools/formed/test-data/simple.xml: Tweak a bit for integer
745              range test.
746    
747            * tools/formed/formed/model/nodecomponents.py: Added a method
748              to find a tree item for a given name.
749    
750            * tools/formed/formed/plugins/web/semantic.py: New: Box for
751              semantic checking. Has check for integers.
752    
753            * tools/formed/formed/plugins/web/plugin.py: Use semantic
754              check.
755    
756    2007-08-20      Torsten Irlaender <[email protected]>
757    
758            * tools/formed/formed/plugins/web/renderer.py: Fixed Syntax in
759              selection-field generation (Removed quote)
760    
761    2007-08-18      Sascha L. Teichmann <[email protected]>
762    
763            * tools/formed/formed/plugins/web/plugin.py,
764              tools/formed/formed/plugins/web/renderer.py: Added a
765              simple cookie based session management to the HTML
766              renderer. This submit parameters are stored in the
767              session now. This will ease testing the constraint
768              tests which need to be written soon.
769                    
770              BEWARE: The session management is _not_ made for production!
771              Denial of service attacks are too easy, and the
772              cryptographical strength of the session id is doubtful.
773    
774    2007-08-18      Sascha L. Teichmann <[email protected]>
775    
776            * tools/formed/formed/plugins/web/renderer.py: Escaping text
777              coming from the document tree now when inserting it into the
778              HTML output.
779    
780    2007-08-18      Sascha L. Teichmann <[email protected]>
781    
782            * tools/formed/formed/plugins/plugin.py: Added a new kind
783              of plug-in: Filter. They have a short and a long description
784              and can be hooked automatically into the new 'Filters'
785              sub menu under 'Extra'. They got called when the user
786              selects their respective menu item.
787                    
788            * tools/formed/formed/config.py: Contains the list of
789              installed filters.
790    
791            * tools/formed/formed/main.py: Builds the Extra->Filters
792              sub menu during gui initialization. The hard wired code
793              for make unique and formular name/description -> name
794              is removed because they are implemented as filters now.
795    
796            * tools/formed/formed/model/nodecomponents.py,
797              tools/formed/formed/model/data.py: Removed the make
798              unique and formular name/description -> name code.
799    
800            * tools/formed/formed/plugins/names,
801              tools/formed/formed/plugins/names/__init__.py,
802              tools/formed/formed/plugins/names/filter.py: Added. Contains
803              the make unique and formular name/description -> name code
804              in form of filters.
805    
806            * tools/formed/test-data/simple.xml: Modified to be a better
807              test for the formular name/description -> name filter.
808    
809    2007-08-18      Sascha L. Teichmann <[email protected]>
810    
811            * tools/formed/formed.py, tools/formed/formed/main.py: First
812              command line argument is interpreted as filename of document
813              to be loaded at program startup.
814    
815    2007-08-17      Frank Koormann <[email protected]>
816    
817            * contrib/convert-formedtree2html.xsl:
818            Heading level depending on depth of group node.
819            In case of radio/choice/check only list of options.
820    
821    2007-08-17      Torsten Irlaender <[email protected]>
822    
823            * contrib/convert-formedtree2html.xsl: Output is now generated with
824              HTML doc-string and charset information in the meta-header.
825    
826    2007-08-17      Torsten Irlaender <[email protected]>
827    
828            * contrib/convert-formedtree2html.xsl: Added small script for
829              exporting the formed tree to html
830    
831    2007-08-17      Torsten Irlaender <[email protected]>
832    
833            * tools/formed/model/nodecomponents.py: Added function to rename
834              the set the name of the node to the formularname. The formularname
835              gets shorten to <=64 by removing vowels and is stored lowercase.
836              If the name is not unique and additional id value is appended.
837            
838            * tools/formed/formed/model/data.py: Overwritten renaming-function for
839              bool-leafs
840    
841            * tools/formed/formed/main.py: Added menuitem for renaming the names
842              of the element
843    
844    2007-08-16      Sascha L. Teichmann <[email protected]>
845    
846            * tools/formed/formed/main.py: Swaped order of
847              'Make names unique' and 'Selected mode...' in Extra
848                    menu and put a separator between them.
849    
850    2007-08-15      Sascha L. Teichmann <[email protected]>
851    
852            * tools/formed/formed/model/data.py: SwitchNodes can add
853              their modes to a given set now.
854    
855            * tools/formed/formed/plugins/plugin.py: Simplified
856              the plug-in interface. Only the reference to the
857                    global configuration is passed at setup time.
858    
859            * tools/formed/formed/plugins/web/plugin.py: Adjusted
860              to new plug-in setup. The traveral mode is now taken
861                    from the global configuration each time a rendering
862                    is triggered. The FORMED parameter is now named
863                    'doc.mode' instead of 'web.mode'. The parameter
864                    is not needed any more because it can be configured
865                    at runtime.
866    
867            * tools/formed/formed/main.py: Adjusted to new plugin
868              setup. Added a new menu item Extra->Select Mode...
869                    to select the traversal mode. It is stored in the
870                    global config.
871    
872            * tools/formed/formed/config.py: Simplified. Only uses
873              one env dictionary to store global configuration parameters.
874    
875            * tools/formed/formed/ui/controls.py: Add a control to
876              select one item from a list of given strings.
877    
878    2007-08-15      Sascha L. Teichmann <[email protected]>
879    
880            * tools/formed/formed/plugins/web/plugin.py,
881              tools/formed/formed/plugins/web/renderer.py: Added parameter
882                    print out in web plugin.
883    
884    2007-08-15      Torsten Irlaender <[email protected]>
885    
886            * contrib/convert-formedtree2csv.xsl: Added small script for
887              exporting the formed tree to csv
888    
889    2007-08-14      Sascha L. Teichmann <[email protected]>
890    
891            * tools/formed/formed/model/data.py,
892              tools/formed/formed/model/nodecomponents.py,
893              tools/formed/formed/io/document.py: Added a 'switch' node.
894    
895            * tools/formed/formed/plugins/web/renderer.py:Render the
896              new 'switch' node.
897    
898            * tools/formed/formed/plugins/web/plugin.py,
899              tools/formed/formed/config.py: Added a 'web.mode' parameter
900                    to FORMED environment variable.
901                    e.g. 'FORMED=web.mode:modeX' sets the mode 'modeX'.
902                    Defaults to 'default'.
903    
904            * tools/formed/test-data/simple.xml: Added test for switch.
905    
906    2007-08-14      Sascha L. Teichmann <[email protected]>
907    
908            * tools/formed/formed/model/nodecomponents.py: Added an
909              attribute 'formularname' to base class of node components.
910    
911    2007-08-13      Sascha L. Teichmann <[email protected]>
912    
913            * tools/formed/formed/io/document.py,
914              tools/formed/formed/model/data.py,
915              tools/formed/formed/model/nodecomponents.py: Added an item
916                    to model external item lists.
917    
918            * tools/formed/formed/plugins/web/renderer.py: Render new item
919              list.
920            * tools/formed/formed/main.py: Added a forgotten 'self.'
921    
922            * contrib/extract-xfa-items.sh: Modified to generate
923              documents to be loadable from new item lists
924    
925    2007-08-13      Sascha L. Teichmann <[email protected]>
926    
927            * tools/formed/formed/main.py: Fixed typo
928    
929    2007-08-13      Sascha L. Teichmann <[email protected]>
930    
931            * contrib/extract-xfa-items.sh: New. Can be used to extract longer
932              choice item lists for a given field from XFA files. e.g. with
933                    './contrib/extract-xfa-items.sh Muttersprache alles.xml'
934    
935    2007-08-12      Sascha L. Teichmann <[email protected]>
936    
937            * tools/formed/formed/model/data.py,
938              tools/formed/formed/plugins/web/renderer.py,
939                    tools/formed/formed/io/document.py: Changed the structure
940                    of choice constructs. The idea to hold the different items
941                    of a particular choice in a semicolon separated list was bad.
942                    Now choices are groups and  the option items are modelled as
943                    embedded bools. (mainly Torsten Irländer's idea).
944    
945                    WARNING: this makes old document files containing choices incompatible!!!
946                    Use the following XSLT to reestablish compatibility.
947                    
948            * contrib/itemize-choices.xsl: New converts old to new structure.
949              Needs exslt.org's string extensions (which xsltproc includes)
950    
951            * tools/formed/test-data/simple.xml: Ajusted to new structure
952    
953            * tools/formed/formed/plugins/web/plugin.py: remove debug output
954    
955            * tools/formed/formed/model/nodecomponents.py: fixed a small bug in
956              node finding code. It now uses the walk() generator, too.
957    
958    2007-08-12      Sascha L. Teichmann <[email protected]>
959    
960            * tools/formed/formed/main.py: Added a clone item on the toolbar which
961              copies the currently selected item and appends it after the selection.
962    
963            * tools/formed/formed/model/nodecomponents.py: Added code to clone parts
964              of the tree.
965                    
966            * tools/formed/formed/ui/controls.py: Added a getSelected method.
967    
968            * tools/formed/formed/model/misc.py: Fixed a programming bug.
969              forgot a 'self.' prefix.
970    
971    2007-08-12      Sascha L. Teichmann <[email protected]>
972    
973            * tools/formed/formed/model/nodecomponents.py: Added a method to append
974              a second document to the current.
975    
976            * tools/formed/formed/main.py: Added an 'Import' file menu item to load
977              a second document to be appended to the current.
978    
979    2007-08-12      Sascha L. Teichmann <[email protected]>
980    
981            * tools/formed/formed/main.py: Added a 'New' item in file menu which creates
982              a new document when triggered.
983    
984    2007-08-12      Sascha L. Teichmann <[email protected]>
985    
986            * tools/formed/formed/model/nodecomponents.py: Added walk generator over all
987              items in the document tree. Added a method to eliminated duplicated names
988                    in document tree.
989    
990            * tools/formed/formed/model/misc.py: Added update mechanism for id generator
991              after names collisions are eliminated.
992    
993            * tools/formed/formed/main.py: Added an 'Extra' menu with item
994              'Make names   unique'.
995    
996    2007-08-11      Sascha L. Teichmann <[email protected]>
997    
998            * tools/formed/formed/model/data.py,
999              tools/formed/formed/plugins/web/renderer.py: Removed support
1000                    for 'text' attributes in bool items. They were never really
1001                    used and the 'description' attributes fulfill the same
1002                    purpose.
1003    
1004            * contrib/remove-bool-text.xsl: Transform to remove the
1005              'text' attributes from bool items. Apply with:
1006                    'xsltproc contrib/remove-bool-text.xsl old.xml > new.xml'
1007    
1008            * tools/formed/test-data/simple.xml: Removed 'text' attributes
1009              from bool items.
1010    
1011    2007-08-11      Sascha L. Teichmann <[email protected]>
1012    
1013            * contrib/convert-choices.xsl: Simpified.
1014    
1015    2007-08-11      Sascha L. Teichmann <[email protected]>
1016    
1017            * tools/formed/formed/model/data.py: Removed 'options' attribute
1018              from ChoiceLeaf. Use 'value' instead, please!
1019    
1020            * tools/formed/formed/plugins/web/renderer.py: use 'value' attribute
1021              instead of 'options' to render choices.
1022    
1023            * contrib/convert-choices.xsl: Added to convert document files
1024              which use the choice 'option' attribute to usage of 'value'.
1025                    Apply with e.g. 'xsltproc convert-choices.xsl old.xml > new.xml'
1026    
1027    2007-08-10      Sascha L. Teichmann <[email protected]>
1028    
1029            * tools/formed/formed/plugins/web/renderer.py: radio buttons
1030              are selected by 'checked' and not by 'selected'. Fixed.
1031    
1032    2007-08-10      Sascha L. Teichmann <[email protected]>
1033    
1034            * tools/formed/formed/model/data.py: ChoiceLeafs are now
1035              initialized with size = 1.
1036    
1037    2007-08-10      Sascha L. Teichmann <[email protected]>
1038    
1039            * tools/formed/formed/model/data.py: TextLeafs are now
1040              initialized with size = 40, maxlength = 60
1041    
1042    2007-08-10      Sascha L. Teichmann <[email protected]>
1043    
1044            * tools/formed/formed/plugins/web/renderer.py: Fixed: choices
1045              are renderered with description now.
1046    
1047    2007-08-10      Sascha L. Teichmann <[email protected]>
1048    
1049            * tools/formed/formed/plugins/web/renderer.py: Added rendering
1050              for date items. Added missing ids for texts and textareas.
1051    
1052    2007-08-10      Sascha L. Teichmann <[email protected]>
1053    
1054            * tools/formed/formed/config.py: Evaluate the environment
1055              variable 'FORMED'. Snytax: FORMED='key1:value1;key2:value2'
1056    
1057            * tools/formed/formed/plugins/plugin.py: Give a reference
1058              to the config at setup time.
1059    
1060            * tools/formed/formed/plugins/web/plugin.py: To determine
1061              the port look at FORMED dictionary first. Key is 'web.port'.
1062                    e.g. FORMED='web.port:8888'
1063    
1064            * tools/formed/formed/main.py: Call the plugin setup with
1065              the reference to the config.
1066    
1067    2007-08-10      Sascha L. Teichmann <[email protected]>
1068    
1069            * tools/formed/test-data/simple.xml: removed 'text' attributes from
1070              info tags. Use the 'value' attributes for same purpose now, please!
1071    
1072            * tools/formed/formed/model/data.py: removed text attributes from
1073              InfoLeaf.
1074    
1075            * tools/formed/formed/plugins/web/renderer.py: Rendering of info
1076              now uses the 'value' instead of the 'text' attributes.
1077    
1078    2007-08-09      Sascha L. Teichmann <[email protected]>
1079    
1080            * tools/formed/formed/model/data.py: next/prevPage() are
1081              methods of PageNode now.
1082    
1083            * tools/formed/formed/model/nodecomponents.py: findByClassAndName()
1084              is method of Document now.
1085    
1086            * tools/formed/formed/plugins/web/plugin.py: Factored out
1087              the HTML renderer.
1088    
1089            * tools/formed/formed/plugins/web/renderer.py: New: contains
1090              the HTML renderer now.
1091    
1092            * tools/formed/test-data/simple.xml: Fixed typo
1093    
1094    2007-08-09      Sascha L. Teichmann <[email protected]>
1095    
1096            * tools/formed/formed/plugins/web/plugin.py: Fixed a bug
1097              in calculation of width of bounded int fields.
1098    
1099    2007-08-09      Sascha L. Teichmann <[email protected]>
1100    
1101            * tools/formed/test-data/simple.xml: Make demo Int fancier.
1102    
1103            * tools/formed/formed/model/data.py: Added attributes to IntLeaf
1104    
1105            * tools/formed/formed/plugins/web/plugin.py: Added rendering for
1106              Ints
1107    
1108    2007-08-09      Sascha L. Teichmann <[email protected]>
1109    
1110            * tools/formed/test-data/simple.xml: Added demo textarea
1111    
1112            * tools/formed/formed/model/data.py: Added TextAreaLeaf
1113    
1114            * tools/formed/formed/io/document.py: register builder
1115              for loading of textareas
1116    
1117            * tools/formed/formed/plugins/web/plugin.py: Added rendering
1118              for textareas.
1119    
1120    2007-08-09      Sascha L. Teichmann <[email protected]>
1121    
1122            * tools/formed/test-data/simple.xml: Make demo choice fancier.
1123    
1124            * tools/formed/formed/model/data.py: Added attributes for texts
1125            
1126            * tools/formed/formed/plugins/web/plugin.py: Added rendering
1127              for texts
1128    
1129    2007-08-09      Sascha L. Teichmann <[email protected]>
1130    
1131            * tools/formed/test-data/simple.xml: Make demo choice fancier.
1132    
1133            * tools/formed/formed/model/data.py: Added attributes for choices.
1134    
1135            * tools/formed/formed/plugins/web/plugin.py: Added rendering
1136              for choices
1137    
1138    2007-08-09      Sascha L. Teichmann <[email protected]>
1139    
1140            * tools/formed/formed/model/data.py,
1141              tools/formed/formed/model/nodecomponents.py: Added new
1142                    attributes.
1143    
1144            * tools/formed/formed/plugins/web/plugin.py: Added rendering
1145              for checkboxes and radio buttons.
1146    
1147    2007-08-08      Sascha L. Teichmann <[email protected]>
1148    
1149            * tools/formed/test-data/simple.xml: Added some descriptions
1150    
1151            * tools/formed/formed/model/data.py: set attributes in constructors
1152              directly.
1153    
1154            * tools/formed/formed/model/nodecomponents.py: Added description
1155              attribute in the NodeComponent base class.
1156    
1157            * tools/formed/formed/plugins/web/plugin.py: Render description
1158              as legend in fieldset for GroupNodes.
1159    
1160    2007-08-08      Sascha L. Teichmann <[email protected]>
1161    
1162            * tools/formed/formed/plugins/web/plugin.py: make UTF-8
1163              output work.
1164    
1165    2007-08-08      Sascha L. Teichmann <[email protected]>
1166    
1167            * tools/formed/formed/model/data.py: Added get/setText() method
1168    
1169            * tools/formed/formed/plugins/web/plugin.py: Added a first
1170              version of a recursive HTML renderer based on the document
1171                    tree.
1172    
1173    2007-08-08      Sascha L. Teichmann <[email protected]>
1174    
1175            * tools/formed/formed/plugins/*: New: plug-in infrastructure.
1176            
1177            * tools/formed/formed/plugins/web/*: new: A simple web server
1178              which is intended to serve pages of the current formular.
1179    
1180            * tools/formed/formed/main.py: start the plug-ins
1181    
1182            * tools/formed/formed/config.py: configuration class. Used
1183              for the plug-ins.
1184    
1185    2007-08-08      Sascha L. Teichmann <[email protected]>
1186    
1187            * tools/formed/formed/model/nodecomponents.py: Fixed broadcasting
1188              issue with zero length tree paths.
1189    
1190            * tools/formed/formed/model/misc.py: New: contains a class
1191              for generating unique ids.
1192    
1193            * tools/formed/formed/main.py: Added an instance of an
1194              unique id generator for naming of new made tree items.
1195    
1196    2007-08-07      Sascha L. Teichmann <[email protected]>
1197    
1198            * tools/formed/formed/main.py: Added event route document ->
1199              attribute table to get informed when selected item is delete
1200                    or an attribute is changed from the outside.
1201    
1202            * tools/formed/formed/ui/controls.py: Fixed. In older versions of
1203              wxPython 2.6.x ListCtrl.InsertStringItem takes 2 instead
1204                    of 3 argument. Uses icons+tooltips for tree navigation now.
1205    
1206    2007-08-07      Sascha L. Teichmann <[email protected]>
1207    
1208            * tools/formed/formed/model/nodecomponents.py: Set name
1209              attribute in base class.
1210    
1211            * tools/formed/formed/io/document.py: Added a table
1212              names -> classes.
1213    
1214            * tools/formed/formed/main.py: Added a toolbar. Added code
1215              to create and delete tree items.
1216    
1217            * tools/formed/formed/ui/controls.py: Added code to
1218              insert and delete new tree items.
1219    
1220    2007-08-07      Sascha L. Teichmann <[email protected]>
1221    
1222            * tools/formed/formed/model/nodecomponents.py: Fixed event
1223              broadcasting for attribute changes.
1224    
1225            * tools/formed/formed/ui/controls.py: Add a list/table control to
1226              edit the attributes of a selected item.
1227    
1228            * tools/formed/formed/main.py: Added code to bind the new
1229              list/table control.
1230    
1231  2007-08-06      Sascha L. Teichmann <[email protected]>  2007-08-06      Sascha L. Teichmann <[email protected]>
1232    
1233          * tools/formed/formed/main.py: Added event routes to move          * tools/formed/formed/main.py: Added event routes to move

Legend:
Removed from v.6  
changed lines
  Added in v.152

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26