You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Gavin Lei (JIRA)" <ji...@apache.org> on 2011/03/31 10:17:05 UTC

[jira] [Updated] (TAP5-1490) Eclipse WTP based Tapestry visual editor project proposal

     [ https://issues.apache.org/jira/browse/TAP5-1490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gavin Lei updated TAP5-1490:
----------------------------

    Description: 
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, this function is not special but it is basic and important, just help us to do some boring jars download job. In the dynamic web application create wizard, if we select "Import Tapestry libraries", it will add jars into "WEB-INF/lib" directory. In the future, we can select Tapestry version (4 or 5, for example) here.

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 actionlink component, such as:
<t:actionlink t:id="logout">Log out</t:actionlink>
,So when you type
<t:
it comes up with a list you can choose from and then completes it with the required parameters listed.

Suppose that we define a pagelink component in Java class file:
@Component(parameters = { "page=start" }) 
private PageLink goToStart;
and we want to use it in .tml file:
<span t:id="goToStart">Log out</span>
So when we type
<span t:id="
it will also come up with a list of components that we can use here, we can select goToStart component name in the list.

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.

8. Tapestry's built in Live Class Reloading support

It should be possible to change Java code, template files, properties etc, and see the results without to restart the web server. In the past there were some problems with WTP and Live Class Reloading, our project will fix this problem.

Optional features
9. 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.

10. 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/

  was:
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/


> Eclipse WTP based Tapestry visual editor project proposal  
> -----------------------------------------------------------
>
>                 Key: TAP5-1490
>                 URL: https://issues.apache.org/jira/browse/TAP5-1490
>             Project: Tapestry 5
>          Issue Type: Task
>         Environment: Eclipse in all OS
>            Reporter: Gavin Lei
>            Assignee: Igor Drobiazko
>              Labels: gsoc, gsoc2011, mentor
>   Original Estimate: 1680h
>  Remaining Estimate: 1680h
>
> 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, this function is not special but it is basic and important, just help us to do some boring jars download job. In the dynamic web application create wizard, if we select "Import Tapestry libraries", it will add jars into "WEB-INF/lib" directory. In the future, we can select Tapestry version (4 or 5, for example) here.
> 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 actionlink component, such as:
> <t:actionlink t:id="logout">Log out</t:actionlink>
> ,So when you type
> <t:
> it comes up with a list you can choose from and then completes it with the required parameters listed.
> Suppose that we define a pagelink component in Java class file:
> @Component(parameters = { "page=start" }) 
> private PageLink goToStart;
> and we want to use it in .tml file:
> <span t:id="goToStart">Log out</span>
> So when we type
> <span t:id="
> it will also come up with a list of components that we can use here, we can select goToStart component name in the list.
> 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.
> 8. Tapestry's built in Live Class Reloading support
> It should be possible to change Java code, template files, properties etc, and see the results without to restart the web server. In the past there were some problems with WTP and Live Class Reloading, our project will fix this problem.
> Optional features
> 9. 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.
> 10. 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