gnue-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnue-designer


From: Randall Whitman
Subject: Re: gnue-designer
Date: Thu, 30 Sep 2010 11:36:35 -0700

> maxLength is now simply called "length", both are still generally
> allowed (of course "length" is preferred"), they are just forbidden for
> field datatypes with implicit length (boolean, date...)

Right, i see i typo-omitted "date" one of the most important words in the
sentence; let's try again:
3. Do not put [max]length attribute in <field> elements whose types carry
   implicit length (date, boolean...), as Forms now strictly forbids that.
   (keep length attr for fields whose type does not imply its length.)

> Yes, with the sizer: namespace, there is sizer:min_width,
> sizer:max_width etc.

OK, as an exercise in better understanding the use of hbox/vbox - well
the use of managed layout - I started manually making a managed-layout
equivalent of absolute.gfd .  Made quick attempt to add max-length to
one entry - looks like i didnt get it right yet, dont see max-length
in samples.
(migrate1.gfd below)

> However, I'm not really happy with the way it works now, and I'm
> considering to change how this works. Maybe it's best to just not
> support this feature in designer for the time being.

Well, it may have to be incremental in any case.  It may be that partway
through, Designer serves to make a first pass, then app developer has to
refine the XML by hand, which is at least one step forward from having to
start from scratch.

> Other than that, gnue-forms automatically decides the entry size based
> on the length of the attached field, and this is what makes the most
> sense anyway.

Would we consider absolute.gfd a bit anomalous in having all unbound fields?

> [Can we give the option to migrate old to new?]
> Some things which have changed could surely be automated, like name
> changes of attributes (e.g. "maxLength" -> "length").

I've been brainstorming some ideas for migration.
Not sure that any of them will pan out, but if even one does, great.

   a. maybe dialog on Open of old file:
   ( ) Continue using old format
   ( ) Migrate to new format
       [ ] make backup now as xzy.gf~
       [ ] choose new name now [________]
   b. Layout:Char - Layout:Sizers
      "maxLength" -> "length"
      maybe some more straightforward text substitutions
   c. <entry>,<label> pairs - to <entry> with label= attr.
   d. define some sort/ordering of the existing elements, by X-Y coordinates?
      is the ordering of <field> elements meaningful (order in the XML)?
   e. add a vbox element (required or optional?); existing <box> -> vbox
   o. just b-e will not preserve the positional/visual layout of existing form.
      does current managed-layout give person designing form, much control?

   ( ) Continue using absolute positioning (old format)
   ( ) Redo form with managed layout - you will have to reposition the entries
       Backup or rename:
       ( ) make backup now as [xyz.gf~]
       ( ) choose new name now [xyz2.gfd]
       General/overall layout structure of your form:
       ( ) 1-column
       ( ) 2-column
       ( ) 2-column
       ( ) 2-row
       ( ) Other
                    [OK]

    Make histogram of X (and/or Y) coordinates.
    Look for biggest gaps in X-coord and conclude columns/members (|Y/row).
    Then w/in deduced columns (vbox in hbox), order by Y-coord (|rows/X).

    Assume that most forms have far fewer rows than columns [char/abs]
    (at least for ISO-8859-1 scope).  Make a histogram of number of entries
    per row, and from that make deductions about rows/column box/groups.

____________________________________________

<?xml version="1.0"?>

<form title="Migrate from Absolute to Managed">
  <options>
    <version/>
  </options>

  <logic>
    <block name="blk">
      <field name="text1"/>
      <field name="text2"/>
      <field name="text3"/>
      <field name="text4"/>
      <field name="bool1" typecast="boolean"/>
      <field name="bool2" typecast="boolean"/>
      <field name="bool3" typecast="boolean"/>
      <field name="bool4" typecast="boolean"/>
    </block>
  </logic>

  <layout xmlns:s="GNUe:Layout:Sizer">
   <page name="main">
    <hbox name="try">
     <vbox name="v1">
      <vbox name="v1a" label="Entries">
       <entry block="blk" field="text1" label="First:" s:width="20"/>
       <entry block="blk" field="text2" label="Second:" s:length="20"/>
       <entry block="blk" field="text3" label="Third:" s:max_width="20"/>
       <entry block="blk" field="text4" label="Fourth:"/>
      </vbox>
      <vbox name="v1b" label="Labels">
       <entry s:width="20" block="blk" field="text1" style="label" 
label="Number One:"/>
       <entry s:width="20" block="blk" field="text2" style="label" 
label="Number Two:"/>
       <entry s:width="20" block="blk" field="text3" style="label" 
label="Number Three:"/>
       <entry s:width="20" block="blk" field="text4" style="label" 
label="Number Four:"/>
      </vbox>
      <vbox name="v1c" label="Checkboxes">
       <entry s:width="38" block="blk" field="bool1" style="checkbox" 
label="First Checkbox"/>
       <entry s:width="38" block="blk" field="bool2" style="checkbox" 
label="Second Checkbox"/>
       <entry s:width="38" block="blk" field="bool3" style="checkbox" 
label="Third Checkbox"/>
       <entry s:width="38" block="blk" field="bool4" style="checkbox" 
label="Fourth Checkbox"/>
      </vbox>
     </vbox>
     <vbox name="v2">
      <vbox name="v2a" label="Labels">
       <entry s:length="20" block="blk" field="text1" style="label" 
label="Number One:"/>
       <entry s:width="20" block="blk" field="text2" style="label" 
label="Number Two:"/>
       <entry s:max_width="20" block="blk" field="text3" style="label" 
label="Number Three:"/>
      </vbox>
      <vbox name="v2b" label="Multi">
       <entry s:width="38" s:height="2" block="blk"
        field="text1" style="multiline"/>
       <entry s:width="38" s:height="2" block="blk"
        field="text2" style="multiline"/>
      </vbox>
      <vbox name="v2c" label="Button">
       <button s:width="38" label="Button 1"/>
       <button s:width="38" label="Button 2"/>
       <button s:width="38" label="Button 3"/>
       <button s:width="38" label="Button 4"/>
      </vbox>
     </vbox>
     <vbox name="v3">
      <entry s:width="20" block="blk" field="text1" />
      <entry s:width="20" block="blk" field="text2" />
      <entry s:width="20" block="blk" field="text3" />
      <entry s:width="20" block="blk" field="text4" />
      <entry s:width="20" block="blk" field="text1" />
      <entry s:width="20" block="blk" field="text2" />
      <entry s:width="20" block="blk" field="text3" />
      <entry s:width="20" block="blk" field="text4" />
      <entry s:width="20" block="blk" field="text1" />
      <entry s:width="20" block="blk" field="text2" />
      <entry s:width="20" block="blk" field="text3" />
      <entry s:width="20" block="blk" field="text4" />
      <entry s:width="20" block="blk" field="text1" />
      <entry s:width="20" block="blk" field="text2" />
      <entry s:width="20" block="blk" field="text3" />
      <entry s:width="20" block="blk" field="text4" />
      <entry s:width="20" block="blk" field="text1" />
      <entry s:width="20" block="blk" field="text2" />
     </vbox>
    </hbox> 
   </page>
  </layout>
</form>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]