[
https://issues.apache.org/jira/browse/PIVOT-445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anthony J. Bufort updated PIVOT-445:
------------------------------------
Description:
Provide a mechanism (directive) by which WTKX snippets may be included within
larger WTKX files. Ideally, inclusion mechanism would provide option to pass
String arguments to snippets being included. Snippets used in such a manner
could then function as templates into which variable data can be poured for
flexible reuse.
Included files, once parsed, could even be cacheable such that future reads can
be done from cache instead of always going to the filesystem (perhaps, via a
boolean 'cache' attribute). A value of "true" would populate the cache with the
sub-component if it isn't already present. If it is present, it would read
from it instead of going out to the filesystem. A value of "false" would cause
a read from the filesystem.
EXAMPLE:
(file to include sub-component in)
<Window title="Hello WTKX!" maximized="true"
xmlns:wtkx="http://pivot.apache.org/wtkx"
xmlns="org.apache.pivot.wtk">
<content>
<Panel wtkx:id="master_panel" styles="{backgroundColor:'#ffffff'}">
<FlowPane wtkx:id="maste_flowpane" styles="{verticalSpacing:'20'}"
x="40" y="40" width="500" height="300">
<Include file="subcomponents/ButtonPairComponent.wtkx"
args="{'row_1','Button Text #1', 'Button Text #2'}" cache="true"/>
<Include file="subcomponents/ButtonPairComponent.wtkx"
args="{'row_2','Button Text #3', 'Button Text #4'}" cache="true"/>
<Include file="subcomponents/ButtonPairComponent.wtkx"
args="{'row_3','Button Text #5', 'Button Text #6'}" cache="true"/>
</FlowPane>
<Label text="HEADER" preferredWidth="170"/>
</Panel>
</content>
</Window>
(included sub-component)
<BoxPane wtkx:id="$1" styles="{spacing:'75'}">
<PushButton buttonData="$2" preferredWidth="170" styles="{}"/>
<PushButton buttonData="$3" preferredWidth="170" styles="{}"/>
</BoxPane>
Additionally, a version of include for URLs can also be provided.
EXAMPLE CALL:
<Include
url="http://www.myurl.com/myapp/wtkx/subcomponents/ButtonPairComponent.wtkx"
args="{'row_4','Button Text #7', 'Button Text #8'}" cache="false"/>
Note that in the above sub-component, empty "styles" atributes exist. This
highlights the idea that, instead of needing to provide styles every time this
sub-component would have been rewritten without the include mechanism, they now
need only be provided in one file.
The author is aware that programmatic inclusion might well be achievable with
the current codebase, but is suggesting a higher, and more convenient, standard
here. It would be familiar to JSPers, and useful to both desktop and web app
developers alike. Most importantly, all GUI elements would remain within the
WTKX layer.
was:
Provide a mechanism (directive) by which WTKX snippets may be included within
larger WTKX files. Ideally, inclusion mechanism would provide option to pass
String arguments to snippets being included. Snippets used in such a manner
could then function as templates into which variable data can be poured for
flexible reuse.
Included files, once parsed, could even be cacheable such that future reads can
be done from cache instead of always going to the filesystem (perhaps, via a
boolean 'cache' attribute). A value of "true" would populate the cache with the
sub-component if it isn't already present. If it is present, it would read
from it instead of going out to the filesystem. A value of "false" would cause
a read from the filesystem.
EXAMPLE:
(file to include sub-component in)
<Window title="Hello WTKX!" maximized="true"
xmlns:wtkx="http://pivot.apache.org/wtkx"
xmlns="org.apache.pivot.wtk">
<content>
<Panel wtkx:id="master_panel" styles="{backgroundColor:'#ffffff'}">
<FlowPane wtkx:id="maste_flowpane" styles="{verticalSpacing:'20'}"
x="40" y="40" width="500" height="300">
<Include file="subcomponents/ButtonPairComponent.wtkx"
args="{'row_1','Button Text #1', 'Button Text #2'}" cache="true"/>
<Include file="subcomponents/ButtonPairComponent.wtkx"
args="{'row_2','Button Text #3', 'Button Text #4'}" cache="true"/>
<Include file="subcomponents/ButtonPairComponent.wtkx"
args="{'row_3','Button Text #5', 'Button Text #6'}" cache="true"/>
</FlowPane>
<Label text="HEADER" preferredWidth="170"/>
</Panel>
</content>
</Window>
(included sub-component)
<BoxPane wtkx:id="$1" styles="{spacing:'75'}">
<PushButton buttonData="$2" preferredWidth="170" styles="{}"/>
<PushButton buttonData="$3" preferredWidth="170" styles="{}"/>
</BoxPane>
Additionally, a version of include for URLs can also be provided.
EXAMPLE CALL:
<Include
url="http://www.myurl.com/myapp/wtkx/subcomponents/ButtonPairComponent.wtkx"
args="{'row_4','Button Text #7', 'Button Text #8'}" cache="false"/>
> Provide Inclusion Mechanism WIthin WTKX Files to Allow For Reusable WTKX
> Sub-Components
> ---------------------------------------------------------------------------------------
>
> Key: PIVOT-445
> URL: https://issues.apache.org/jira/browse/PIVOT-445
> Project: Pivot
> Issue Type: New Feature
> Components: wtk-wtkx
> Reporter: Anthony J. Bufort
>
> Provide a mechanism (directive) by which WTKX snippets may be included within
> larger WTKX files. Ideally, inclusion mechanism would provide option to pass
> String arguments to snippets being included. Snippets used in such a manner
> could then function as templates into which variable data can be poured for
> flexible reuse.
> Included files, once parsed, could even be cacheable such that future reads
> can be done from cache instead of always going to the filesystem (perhaps,
> via a boolean 'cache' attribute). A value of "true" would populate the cache
> with the sub-component if it isn't already present. If it is present, it
> would read from it instead of going out to the filesystem. A value of
> "false" would cause a read from the filesystem.
> EXAMPLE:
> (file to include sub-component in)
> <Window title="Hello WTKX!" maximized="true"
> xmlns:wtkx="http://pivot.apache.org/wtkx"
> xmlns="org.apache.pivot.wtk">
> <content>
> <Panel wtkx:id="master_panel" styles="{backgroundColor:'#ffffff'}">
> <FlowPane wtkx:id="maste_flowpane"
> styles="{verticalSpacing:'20'}" x="40" y="40" width="500" height="300">
> <Include file="subcomponents/ButtonPairComponent.wtkx"
> args="{'row_1','Button Text #1', 'Button Text #2'}" cache="true"/>
> <Include file="subcomponents/ButtonPairComponent.wtkx"
> args="{'row_2','Button Text #3', 'Button Text #4'}" cache="true"/>
> <Include file="subcomponents/ButtonPairComponent.wtkx"
> args="{'row_3','Button Text #5', 'Button Text #6'}" cache="true"/>
> </FlowPane>
> <Label text="HEADER" preferredWidth="170"/>
> </Panel>
> </content>
> </Window>
> (included sub-component)
> <BoxPane wtkx:id="$1" styles="{spacing:'75'}">
> <PushButton buttonData="$2" preferredWidth="170" styles="{}"/>
> <PushButton buttonData="$3" preferredWidth="170" styles="{}"/>
> </BoxPane>
> Additionally, a version of include for URLs can also be provided.
> EXAMPLE CALL:
> <Include
> url="http://www.myurl.com/myapp/wtkx/subcomponents/ButtonPairComponent.wtkx"
> args="{'row_4','Button Text #7', 'Button Text #8'}" cache="false"/>
> Note that in the above sub-component, empty "styles" atributes exist. This
> highlights the idea that, instead of needing to provide styles every time
> this sub-component would have been rewritten without the include mechanism,
> they now need only be provided in one file.
> The author is aware that programmatic inclusion might well be achievable with
> the current codebase, but is suggesting a higher, and more convenient,
> standard here. It would be familiar to JSPers, and useful to both desktop
> and web app developers alike. Most importantly, all GUI elements would
> remain within the WTKX layer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.