Bug 750

Summary: [Chameleon - doc builder] Automating tag code structure.
Product: Chameleon Reporter: Chris Thorne <cthorne@dmsolutions.ca>
Component: AutoDocAssignee: William Bronsema <wbronsema@dmsolutions.ca>
Status: NEW    
Severity: enhancement CC: chameleon-dev@lists.maptools.org
Priority: P2    
Version: 1.99   
Target Milestone: FUTURE   
Hardware: PC   
OS: Windows 2000   
Whiteboard: Task For Discussion - 20041102

Description From 2004-10-22 08:56:03
As a result of fixing bug 742, this opened up the possibility to re incorparate
the old automated tag structure code. The reason why it was not added before
what the simple fact that the old tag structure code did not format the widget
tag string.

Currently to add these tag structures to the widget doc is a manual process.
Below is an example of an xml structure:

<cham:widgetdoc>
<cham:tagstructures>
<cham:tagstructure>
<cham:code>
  <cham:codeblock bold="true" >
    <cham:line>&lt;CWC2 TYPE=&quot;MapSize&quot;</cham:line>
  </cham:codeblock>
  <cham:codeblock  bold="false">
    <cham:line>   ENABLED=&quot;[TRUE|FALSE]&quot;</cham:line>
    <cham:line>   FORMINDEX=&quot;[0 &lt; integer]&quot;</cham:line>
    <cham:line>   VISIBLE=&quot;[TRUE|FALSE]&quot;</cham:line>
    <cham:line></cham:line>
    <cham:line>   &lt;!-- MapSize Attributes --&gt;</cham:line>
    <cham:line></cham:line>
    <cham:line>   EMBEDDED=&quot;[TRUE|FALSE]&quot;</cham:line>
    <cham:line></cham:line>
    <cham:line>   &lt;!-- Popup Attribute Group --&gt;</cham:line>
    <cham:line></cham:line>
  </cham:codeblock>                 
  <cham:codeblock bold="true" >      
    <cham:line>&lt;CWC2 TYPE=&quot;Cursorpos&quot;</cham:line> 
  </cham:codeblock>
  <cham:codeblock  bold="false">
    <cham:line>   ENABLED=&quot;[TRUE|FALSE]&quot;</cham:line>
    <cham:line>   FORMINDEX=&quot;[0 &lt; integer]&quot;</cham:line>
    <cham:line>   VISIBLE=&quot;[TRUE|FALSE]&quot;</cham:line>
    <cham:line></cham:line>
    <cham:line>   &lt;!-- CursorPos Attributes--&gt;</cham:line>
  </cham:codeblock>
  <cham:codeblock  bold="true">  
    <cham:line>   AXIS=&quot;[X|Y]&quot;</cham:line>
  </cham:codeblock>    
  <cham:codeblock  bold="false">  
    <cham:line>   TEXTFIELDSIZE=&quot;[0 &lt; integer]&quot;</cham:line>
    <cham:line>   WIDGETCLASS=&quot;[string]&quot;</cham:line>
    <cham:line>   WIDGETSTYLE=&quot;[string]&quot;</cham:line>
    <cham:line></cham:line>
    <cham:line>   &lt;!-- Label Attribute Group--&gt;</cham:line>
    <cham:line></cham:line>
    <cham:line>   LABEL=&quot;[string]&quot;</cham:line>
    <cham:line>   LABELPOSITION=&quot;[0 &lt; integer &lt; 8]&quot;</cham:line>
    <cham:line>   LABELHALIGN=&quot;[LEFT|CENTER|RIGHT]&quot;</cham:line>
    <cham:line>   LABELVALIGN=&quot;[TOP|MIDDLE|BOTTOM]&quot;</cham:line>
    <cham:line>   LABELCLASS=&quot;[string]&quot;</cham:line>
    <cham:line>   LABELSTYLE=&quot;[string]&quot;/&gt;</cham:line>
  </cham:codeblock>      
</cham:code>
</cham:tagstructure>
</cham:tagstructures>
</cham:widgetdoc>

Things to make note of:

* bold="true|false" define what is a require tag feature of the tag structure:
* each<cham:line> represents a <br>.
* It is important that the spaces between <cham:line> </cham:line> are added and
maintained. These spaces allow indentation and proper formatting of the code.
 
The next questions are:
* how much effort would this be, (bill)?
* when should this be implemented, (darren/paul)?
------- Comment #1 From 2004-10-22 08:59:56 -------
oops please us this tag structure example not the last one (copy/paste mistake):

<cham:widgetdoc>
<cham:tagstructures>
<cham:tagstructure>
<cham:code>
<cham:codeblock bold="true" >      
  <cham:line>&lt;CWC2 TYPE=&quot;Cursorpos&quot;</cham:line> 
</cham:codeblock>
<cham:codeblock  bold="false">
  <cham:line>   ENABLED=&quot;[TRUE|FALSE]&quot;</cham:line>
  <cham:line>   FORMINDEX=&quot;[0 &lt; integer]&quot;</cham:line>
  <cham:line>   VISIBLE=&quot;[TRUE|FALSE]&quot;</cham:line>
  <cham:line></cham:line>
  <cham:line>   &lt;!-- CursorPos Attributes--&gt;</cham:line>
</cham:codeblock>
<cham:codeblock  bold="true">  
  <cham:line>   AXIS=&quot;[X|Y]&quot;</cham:line>
</cham:codeblock>    
<cham:codeblock  bold="false">  
  <cham:line>   TEXTFIELDSIZE=&quot;[0 &lt; integer]&quot;</cham:line>
  <cham:line>   WIDGETCLASS=&quot;[string]&quot;</cham:line>
  <cham:line>   WIDGETSTYLE=&quot;[string]&quot;</cham:line>
  <cham:line></cham:line>
  <cham:line>   &lt;!-- Label Attribute Group--&gt;</cham:line>
  <cham:line></cham:line>
  <cham:line>   LABEL=&quot;[string]&quot;</cham:line>
  <cham:line>   LABELPOSITION=&quot;[0 &lt; integer &lt; 8]&quot;</cham:line>
  <cham:line>   LABELHALIGN=&quot;[LEFT|CENTER|RIGHT]&quot;</cham:line>
  <cham:line>   LABELVALIGN=&quot;[TOP|MIDDLE|BOTTOM]&quot;</cham:line>
  <cham:line>   LABELCLASS=&quot;[string]&quot;</cham:line>
  <cham:line>   LABELSTYLE=&quot;[string]&quot;/&gt;</cham:line>
</cham:codeblock> 
</cham:code>
</cham:tagstructure>
</cham:tagstructures>
</cham:widgetdoc>
------- Comment #2 From 2004-11-25 14:55:03 -------
bill please read comment 1 and make comments on this.... I cannot descide its
importants without your input.

Personnelly it will make the job easier to create the widget docs. The issue
here is about the effort required to do this. 

there is code from the old doc builder process could this be reused?
------- Comment #3 From 2004-11-25 15:43:27 -------
Chris, are you asking if it is possible for doc_builder to automatically add
"<cham:line>" whereever you want <cr>?

Technically this is possible (all though fairly complex), but the codeblock is
built manually anyway so it doesn't make a lot of sense to require you to run
doc_builder, edit the file, then run doc builder again, does it?

No, there is no code that can be reused for this, it would be written from scratch.
------- Comment #4 From 2004-11-29 14:10:32 -------
ok, I think I know how to create tag syntax based on the values entered in the
<ca:widgettag> setion using xslt to edit the xml doc itself.

This will probably a future enhancement to doc builder. 

Setting Target to FUTURE.