Eclipse WTP based Tapestry visual editor project proposal  
-----------------------------------------------------------

                 Key: TAPESTRY-2777
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2777
             Project: Tapestry
          Issue Type: Task
         Environment: Eclipse in all OS
            Reporter: Gavin Lei


Introduction
Apache Tapestry supplies powerful component structure, and it offered a number 
of other powerful features that proved to be critical in our work.

The Eclipse Web Tools Platform (WTP) project extends the Eclipse platform with 
tools for developing Web and Java EE applications. It includes source and 
graphical editors for a variety of languages, wizards and built-in applications 
to simplify development, and tools and APIs to support deploying, running, and 
testing apps.WTP supplies Web Page Editor for us to edit HTML page, JSP page 
and JSF-JSP web page.

Tapestry was used widely nowadays, it allowed a clean separation between Java 
and HTML, and made it possible for the design work on the application to 
continue well after the code had been completed, It is becoming more and more 
popular today. But we can not find a proper Tapestry visual editor, Eclipse WTP 
is popular in Web application development, but it is a shame that Eclipse WTP 
does not support Tapestry, so i think it is a good idea to build a Tapestry 
visual editor on Eclipse WTP.

This editor should have following mainly functions:

Note GSoC supplies us only 3 months to finish our project, so this project will 
focus on Tapestry 5, after that, if we have enough time, will supply other 
Tapestry version support

Must have functions
1. Tapertry libraries import wizard

Add necessary Tapestry 5 relative jars into web project.

2. Tapestry page/component creation wizard

It will supply a wizard helping us to create the .tml file and .java file 
together for a Tapestry page/component.

3. Add Tapestry component support for WTP web editor palette

If we open a Tapestry page/component with WTP Web Page Editor, its palette will 
contains three main section, HTML,Tapestry core and Tapestry custom component. 
Then, we can drap-and-drop the components in the palette to the canvas. WTP web 
editor supplies property view for us already, we can improve the property to 
support Tapestry component. In Tapestry Core section, it includes Tapestry 
standard components, Foreach, Insert,Image,Conditional, Form components and the 
other standard components.

NOTE Eclipse WTP supplies relative interface for us to change palette components

4. Add convenient way for the Web Page Editor to change-over between a Tapestry 
page's .tml file and .java file

5. Add Tapestry built in and custom components autocomplete function for WTP 
Web Page Editor's source view

If we add component insert code, such as

<span jwcid="@Insert"/>
,So when you type

<span jwcid="@
it comes up with a list you can choose from and then completes it with the 
required parameters listed.

6.Tapestry component's parameters property view

We select a component in canvas design view or source view, the Eclipse 
property view will list this component's parameters and we can edit the 
parameters here.

7.Autocomplete of properties from the .java page when editing the .tml file

In the Source Page of the Web Page Editor, add the Tapestry tag, (for example 
${prop:index}). With the cursor inside the brackets, hit Ctrl+spacebar, should 
see a pop-up with a list of all the available properties defined in the 
corresponding java class.

Optional features
8. Validation function in Tapestry .tml file source view

Beyond the basic JSP validation already provided with the JSP editor, this 
editor supplies semantic validation of the Tapestry standard tag libraries for 
both EL and non-EL attribute values.

9. Hyperlink function in Tapestry .tml file source view

Hyperlink to the Java editor from Managed Bean variable, Managed Bean property 
and Managed Bean method referenced in the Expression Language(EL) of a 
tag-attribute.

I have finished some research job and familiar with Eclipse WTP source code, so 
i think it is definitely for us to finish function 1-7 during this summer. 
Function 8 and 9 are more complex and not so necessary, so i mark them as 
optional features. Once i finished must-have functions development job, i will 
start option features job.

Online design demo
You can go here[1] to see project proposal details with picture demos.
[1] http://visual-tapestry.appspot.com/

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to