You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by Ross Gardler <rg...@opendirective.com> on 2011/09/28 12:27:42 UTC
[proposal] Widget templating
This post is cross-posted to the Wookie and Rave in Context project
lists. Rave in Context is a short term project I am working. The goal
of that project is to create a set of usable and accessible widget
templates for common functionality such as login, result list search
and browse and data entry. The Rave part in the title is there because
our final deployment platform will be Rave (and yes, that means I have
to integrate Wookie and Rave).
I want to bring the templating functionality into Wookie itself. The
Rave in Context project is short lived and I want its outputs to live
beyond the project itself. Consequently I want to do the design and
development in the Wookie project if the community is interested
(there is no Rave in Context community and we have no intention of
building one).
Here's my rational for offering the code to Wookie:
The template system that I built so far in Wookie is really just a set
of demonstration widgets. You create a widget then edit it to make it
do what you need. Each widget needs to be maintained independently,
which can be time consuming and error prone.
The Rave in Context widgets need to be built from a common set of
templates so that they can all be updated quickly and cheaply. The
goal is for all the widgets to have the same look and feel. Since the
templates themselves will focus on usability, learnabilty and
accessbility this means that we will have a high quality set of
templates from which to build W3C widgets.
I've begun work and have a very simple templating system up and
running [1]. It is a long way from complete, but already we can define
a widget simply by creating a properties file such as:
ric.template.name=home
ric.widget.shortname=myExperiment
ric.widget.name=myExperiment Mobile
ric.widget.description=myExperiment makes it easy to find, use and
share scientific workflows and other Research Objects, and to build
communities.
ric.widget.help=<p>There is no help for this widget at present, please
contact the <a href="http://wiki.myexperiment.org/">myExperiment
community</a> for support.</p>
Then by running "ant generate-widgets" we generate the widget
described by the properties file (along with any others that have been
defined).
Clearly this is very limited right now. There is currently no ability
to significantly customise the generated widget. For example, at
present all the widgets generated have examctly the same login/signup
buttons. Even worse they will all have the myExperiment action buttons
(which are only appropriate to myExperiment widgets).
My next development goal is to use a templating engine to allow for
widget customisation. I'm thinking of Apache Velocity at present, it's
old but it is simple and it works, at a later date we could introduce
more complex systems to do really cleaver stuff, but for now I just
want to make it work.
Once implemented widget definitions will be able to define something like:
ric.login.enabled=false
ric.widget.content=content.vm
Where content.vm is a template that is included in a predefined
location in the template and ric.login.enabled indicates whether the
login buttons should be included. Now we have truly individual widget
but with a consistent look and feel.
My question to the Wookie list is "do you want to see this work in the
scratchpad area of Wookie rather than in it's current invisible home
at Rave in Context".
I'd be thrilled if people here wanted to help develop the code, but
I'm very happy to drive this forwards myself and welcome feedback and
suggestions along the way. I won't get any of that in the Rave in
Context project so I want to bring it here early.
Ross
[1] If anyone wants to have a look at how it works then run an
instance of Wookie, checkout the code at [2] and do "ant
generate-test-widgets" then look in your Wookie widget gallery for the
Rave in Context logo.
[2] http://code.google.com/a/apache-extras.org/p/rave-in-context/source/checkout
--
Ross Gardler (@rgardler)
Programme Leader (Open Development)
OpenDirective http://opendirective.com
Re: [proposal] Widget templating
Posted by Ross Gardler <rg...@opendirective.com>.
On 28 September 2011 13:05, Paul Sharples <p....@bolton.ac.uk> wrote:
> On 28/09/2011 12:48, Ross Gardler wrote:
>>
>> On 28 September 2011 12:36, Paul Sharples<p....@bolton.ac.uk> wrote:
>>>
>>> On 28/09/2011 12:16, Ross Gardler wrote:
>>>>
>>>> On 28 September 2011 12:10, Scott Wilson<sc...@gmail.com>
>>>> wrote:
>>>>>
>>>>> On 28 Sep 2011, at 11:27, Ross Gardler wrote:
>>>>>
>>>>>> This post is cross-posted to the Wookie and Rave in Context project
>>>>>> lists. Rave in Context is a short term project I am working. The goal
>>>>>> of that project is to create a set of usable and accessible widget
>>>>>> templates for common functionality such as login, result list search
>>>>>> and browse and data entry. The Rave part in the title is there because
>>>>>> our final deployment platform will be Rave (and yes, that means I have
>>>>>> to integrate Wookie and Rave).
>>>>>
>>>>> I think Paul has also done some more work on that recently.
>>>>
>>>> It would be nice to get some visibility into that rather than duplicate
>>>> work.
>>>
>>> I released a snapshot of the wookie java connector at the end of last
>>> week
>>> in the apache snapshots repo. I have Rave using it now on my local setup
>>> -
>>> but it doesn't do a great deal yet. TBH I'm stick kicking the tyres just
>>> yet and trying to figure out how things should work.
>>
>> OK.
>>
>> You won't beleive this but I actually completed the full integration
>> of Rave and Wookie over two months ago. Then I changed jobs and had to
>> give my laptop back. I backed up the *wrong* checkout of Rave and
>> trashed all my work.
>>
>> I suspect that, having done the work once, I'll do it quickly and
>> easily the second time. I hope to do this very soon (before end of
>> next week at latest). If you want to sit back and be happy that you
>> speeded me on my why by doing the connector jar then I'm OK with that.
>>
>> Ross
>>
> Yes, I've also done similar things to that before now :-) If you want to
> reassemble what you previously did, then by all means go ahead. (it makes
> sense if you've already done it before)
> I'll still be hacking with it too anyway.
>
> FYI: I added...
>
> <!-- wookie -->
> <dependency>
> <groupId>org.apache.wookie</groupId>
> <artifactId>wookie-java-connector</artifactId>
> <type>jar</type>
> <scope>compile</scope>
> <version>0.9.1-incubating-SNAPSHOT</version>
> </dependency>
>
> ...to the pom.xml in rave-core. "WookieWidgetService" found in
> rave/provider/w3c/service/impl/ can then access it.
>
> Hope this helps
Indeed it does, saves me looking it up - thank you.
Ross
--
Ross Gardler (@rgardler)
Programme Leader (Open Development)
OpenDirective http://opendirective.com
Re: [proposal] Widget templating
Posted by Paul Sharples <p....@bolton.ac.uk>.
On 28/09/2011 12:48, Ross Gardler wrote:
> On 28 September 2011 12:36, Paul Sharples<p....@bolton.ac.uk> wrote:
>> On 28/09/2011 12:16, Ross Gardler wrote:
>>> On 28 September 2011 12:10, Scott Wilson<sc...@gmail.com>
>>> wrote:
>>>> On 28 Sep 2011, at 11:27, Ross Gardler wrote:
>>>>
>>>>> This post is cross-posted to the Wookie and Rave in Context project
>>>>> lists. Rave in Context is a short term project I am working. The goal
>>>>> of that project is to create a set of usable and accessible widget
>>>>> templates for common functionality such as login, result list search
>>>>> and browse and data entry. The Rave part in the title is there because
>>>>> our final deployment platform will be Rave (and yes, that means I have
>>>>> to integrate Wookie and Rave).
>>>> I think Paul has also done some more work on that recently.
>>> It would be nice to get some visibility into that rather than duplicate
>>> work.
>> I released a snapshot of the wookie java connector at the end of last week
>> in the apache snapshots repo. I have Rave using it now on my local setup -
>> but it doesn't do a great deal yet. TBH I'm stick kicking the tyres just
>> yet and trying to figure out how things should work.
> OK.
>
> You won't beleive this but I actually completed the full integration
> of Rave and Wookie over two months ago. Then I changed jobs and had to
> give my laptop back. I backed up the *wrong* checkout of Rave and
> trashed all my work.
>
> I suspect that, having done the work once, I'll do it quickly and
> easily the second time. I hope to do this very soon (before end of
> next week at latest). If you want to sit back and be happy that you
> speeded me on my why by doing the connector jar then I'm OK with that.
>
> Ross
>
Yes, I've also done similar things to that before now :-) If you want to
reassemble what you previously did, then by all means go ahead. (it
makes sense if you've already done it before)
I'll still be hacking with it too anyway.
FYI: I added...
<!-- wookie -->
<dependency>
<groupId>org.apache.wookie</groupId>
<artifactId>wookie-java-connector</artifactId>
<type>jar</type>
<scope>compile</scope>
<version>0.9.1-incubating-SNAPSHOT</version>
</dependency>
...to the pom.xml in rave-core. "WookieWidgetService" found in
rave/provider/w3c/service/impl/ can then access it.
Hope this helps
Re: [proposal] Widget templating
Posted by Ross Gardler <rg...@opendirective.com>.
On 28 September 2011 12:36, Paul Sharples <p....@bolton.ac.uk> wrote:
> On 28/09/2011 12:16, Ross Gardler wrote:
>>
>> On 28 September 2011 12:10, Scott Wilson<sc...@gmail.com>
>> wrote:
>>>
>>> On 28 Sep 2011, at 11:27, Ross Gardler wrote:
>>>
>>>> This post is cross-posted to the Wookie and Rave in Context project
>>>> lists. Rave in Context is a short term project I am working. The goal
>>>> of that project is to create a set of usable and accessible widget
>>>> templates for common functionality such as login, result list search
>>>> and browse and data entry. The Rave part in the title is there because
>>>> our final deployment platform will be Rave (and yes, that means I have
>>>> to integrate Wookie and Rave).
>>>
>>> I think Paul has also done some more work on that recently.
>>
>> It would be nice to get some visibility into that rather than duplicate
>> work.
>
> I released a snapshot of the wookie java connector at the end of last week
> in the apache snapshots repo. I have Rave using it now on my local setup -
> but it doesn't do a great deal yet. TBH I'm stick kicking the tyres just
> yet and trying to figure out how things should work.
OK.
You won't beleive this but I actually completed the full integration
of Rave and Wookie over two months ago. Then I changed jobs and had to
give my laptop back. I backed up the *wrong* checkout of Rave and
trashed all my work.
I suspect that, having done the work once, I'll do it quickly and
easily the second time. I hope to do this very soon (before end of
next week at latest). If you want to sit back and be happy that you
speeded me on my why by doing the connector jar then I'm OK with that.
Ross
Re: [proposal] Widget templating
Posted by Paul Sharples <p....@bolton.ac.uk>.
On 28/09/2011 12:16, Ross Gardler wrote:
> On 28 September 2011 12:10, Scott Wilson<sc...@gmail.com> wrote:
>> On 28 Sep 2011, at 11:27, Ross Gardler wrote:
>>
>>> This post is cross-posted to the Wookie and Rave in Context project
>>> lists. Rave in Context is a short term project I am working. The goal
>>> of that project is to create a set of usable and accessible widget
>>> templates for common functionality such as login, result list search
>>> and browse and data entry. The Rave part in the title is there because
>>> our final deployment platform will be Rave (and yes, that means I have
>>> to integrate Wookie and Rave).
>> I think Paul has also done some more work on that recently.
> It would be nice to get some visibility into that rather than duplicate work.
I released a snapshot of the wookie java connector at the end of last
week in the apache snapshots repo. I have Rave using it now on my local
setup - but it doesn't do a great deal yet. TBH I'm stick kicking the
tyres just yet and trying to figure out how things should work.
>
> ...
>
>>> My question to the Wookie list is "do you want to see this work in the
>>> scratchpad area of Wookie rather than in it's current invisible home
>>> at Rave in Context".
>> Yes!
> :-)
>
> I'll leave it for a few days for objections, but will state now that I
> would love to integrate this work with Paul. I have deadlines and I'm
> sure Paul does too. It would be good for us both to work in our own
> scratchpad areas and try and converge whereever possible.
>
>>> I'd be thrilled if people here wanted to help develop the code, but
>>> I'm very happy to drive this forwards myself and welcome feedback and
>>> suggestions along the way. I won't get any of that in the Rave in
>>> Context project so I want to bring it here early.
>> I also went to an event run by a project called Widgat recently which is looking at doing template-driven widget authoring:
>>
>> http://arc.tees.ac.uk/WIDGaT/?p=367
> Interesting, I just received an invite to another of their later
> events later this year. I was planning on attending.
>
>> There seems to be some potential commonality here.
> Exactly.
>
> Ross
Re: [proposal] Widget templating
Posted by Ross Gardler <rg...@opendirective.com>.
On 28 September 2011 12:10, Scott Wilson <sc...@gmail.com> wrote:
>
> On 28 Sep 2011, at 11:27, Ross Gardler wrote:
>
>> This post is cross-posted to the Wookie and Rave in Context project
>> lists. Rave in Context is a short term project I am working. The goal
>> of that project is to create a set of usable and accessible widget
>> templates for common functionality such as login, result list search
>> and browse and data entry. The Rave part in the title is there because
>> our final deployment platform will be Rave (and yes, that means I have
>> to integrate Wookie and Rave).
>
> I think Paul has also done some more work on that recently.
It would be nice to get some visibility into that rather than duplicate work.
...
>> My question to the Wookie list is "do you want to see this work in the
>> scratchpad area of Wookie rather than in it's current invisible home
>> at Rave in Context".
>
> Yes!
:-)
I'll leave it for a few days for objections, but will state now that I
would love to integrate this work with Paul. I have deadlines and I'm
sure Paul does too. It would be good for us both to work in our own
scratchpad areas and try and converge whereever possible.
>> I'd be thrilled if people here wanted to help develop the code, but
>> I'm very happy to drive this forwards myself and welcome feedback and
>> suggestions along the way. I won't get any of that in the Rave in
>> Context project so I want to bring it here early.
>
> I also went to an event run by a project called Widgat recently which is looking at doing template-driven widget authoring:
>
> http://arc.tees.ac.uk/WIDGaT/?p=367
Interesting, I just received an invite to another of their later
events later this year. I was planning on attending.
> There seems to be some potential commonality here.
Exactly.
Ross
Re: [proposal] Widget templating
Posted by Scott Wilson <sc...@gmail.com>.
On 28 Sep 2011, at 11:27, Ross Gardler wrote:
> This post is cross-posted to the Wookie and Rave in Context project
> lists. Rave in Context is a short term project I am working. The goal
> of that project is to create a set of usable and accessible widget
> templates for common functionality such as login, result list search
> and browse and data entry. The Rave part in the title is there because
> our final deployment platform will be Rave (and yes, that means I have
> to integrate Wookie and Rave).
I think Paul has also done some more work on that recently.
>
> I want to bring the templating functionality into Wookie itself. The
> Rave in Context project is short lived and I want its outputs to live
> beyond the project itself. Consequently I want to do the design and
> development in the Wookie project if the community is interested
> (there is no Rave in Context community and we have no intention of
> building one).
>
> Here's my rational for offering the code to Wookie:
>
> The template system that I built so far in Wookie is really just a set
> of demonstration widgets. You create a widget then edit it to make it
> do what you need. Each widget needs to be maintained independently,
> which can be time consuming and error prone.
>
> The Rave in Context widgets need to be built from a common set of
> templates so that they can all be updated quickly and cheaply. The
> goal is for all the widgets to have the same look and feel. Since the
> templates themselves will focus on usability, learnabilty and
> accessbility this means that we will have a high quality set of
> templates from which to build W3C widgets.
Sounds good!
>
> I've begun work and have a very simple templating system up and
> running [1]. It is a long way from complete, but already we can define
> a widget simply by creating a properties file such as:
>
> ric.template.name=home
> ric.widget.shortname=myExperiment
> ric.widget.name=myExperiment Mobile
> ric.widget.description=myExperiment makes it easy to find, use and
> share scientific workflows and other Research Objects, and to build
> communities.
> ric.widget.help=<p>There is no help for this widget at present, please
> contact the <a href="http://wiki.myexperiment.org/">myExperiment
> community</a> for support.</p>
>
> Then by running "ant generate-widgets" we generate the widget
> described by the properties file (along with any others that have been
> defined).
>
> Clearly this is very limited right now. There is currently no ability
> to significantly customise the generated widget. For example, at
> present all the widgets generated have examctly the same login/signup
> buttons. Even worse they will all have the myExperiment action buttons
> (which are only appropriate to myExperiment widgets).
>
> My next development goal is to use a templating engine to allow for
> widget customisation. I'm thinking of Apache Velocity at present, it's
> old but it is simple and it works, at a later date we could introduce
> more complex systems to do really cleaver stuff, but for now I just
> want to make it work.
>
> Once implemented widget definitions will be able to define something like:
>
> ric.login.enabled=false
> ric.widget.content=content.vm
>
> Where content.vm is a template that is included in a predefined
> location in the template and ric.login.enabled indicates whether the
> login buttons should be included. Now we have truly individual widget
> but with a consistent look and feel.
>
> My question to the Wookie list is "do you want to see this work in the
> scratchpad area of Wookie rather than in it's current invisible home
> at Rave in Context".
Yes!
>
> I'd be thrilled if people here wanted to help develop the code, but
> I'm very happy to drive this forwards myself and welcome feedback and
> suggestions along the way. I won't get any of that in the Rave in
> Context project so I want to bring it here early.
I also went to an event run by a project called Widgat recently which is looking at doing template-driven widget authoring:
http://arc.tees.ac.uk/WIDGaT/?p=367
There seems to be some potential commonality here.
>
> Ross
>
> [1] If anyone wants to have a look at how it works then run an
> instance of Wookie, checkout the code at [2] and do "ant
> generate-test-widgets" then look in your Wookie widget gallery for the
> Rave in Context logo.
>
> [2] http://code.google.com/a/apache-extras.org/p/rave-in-context/source/checkout
>
> --
> Ross Gardler (@rgardler)
> Programme Leader (Open Development)
> OpenDirective http://opendirective.com