|
Project Information
Featured
|
NOTEIf you are interested in Eclipse WTP based TapestryTools, you can get the relative info here, but we will not update this old version TapestryTools. This year, we will create a brand new XML editor based lightweight TapestryTools. You can find the design details in the following words. GSoC 2012 project proposal - Lightweight TapestryTools
AbstractApache Tapestry supplies powerful component structure, and it offered a number of other powerful features that proved to be critical in our work. It allowed a clean separation between Java and HTML, make it possible for the design work on the application to continue well after the code had been completed, and becoming more and more popular today. This project aims to build a lightweight Tapestry visual editor on Eclipse XML editor. Detail DescriptionWe build an Eclipse WTP based Tapestry 5 visual editor as GSoC 2011 project, called it TapestryTools (http://code.google.com/p/tapestrytools/). Now, it can works well on Eclipse Helios/Indigo. But there are still some problems:
After my GSoC mentor Igor Drobiazko suggested, we discussed this problem with Tapestry developers and users in mail list. They indicate that they prefer a brand new simple tool which supplies some special practical and facile Tapestry 5 features, more important, can run without heavyweight complex plugins such as Eclipse WTP. This is the reason why this project proposal was born. Here, thanks for all the help and advises from Tapestry community, users, developers and Tapestry committers even PMCs. Link 1:http://mail-archives.apache.org/mod_mbox/tapestry-users/201202.mbox/browser Link 2:http://mail-archives.apache.org/mod_mbox/tapestry-dev/201202.mbox/browser New Lightweight TapestryTool DesignThe brand new lightweight TapestryTools will be just a normal Eclipse plug-in, does not need many special dependencies, more focus, easy to install, easy to use. And also, we can supply practical and welcomed features: Project Feature List1. Easy to install and Easy to upgradeIt will be very easy to install the brand new TapestryTools in different Eclipse version, supply good compatibility between different versions. Tapestry developers who use Eclipse Java version can install it without any other plugins. We will supply Eclipse Marketplace support as well as individual update center. Eclipse with Marketplace client(Such as Eclipse IDE for Java developer) users can install this lightweight TapestryTools from menu Help -> Eclipse Marketplace very easily. 2. Tapestry wizardsIt will still supply Tapestry 5 page and component creation wizard. 3. Convenient switchTapestry developers really like this feature. They can use command to switch between tml file and corresponding java, It shoule be possible both by menu and short keys, we use "CTRL + R" in PC and "COMMAND + R" in Mac. 4. XML editor based .tml editorAs our lightweight TapestryTools does not need Eclipse WTP, we can not use WTP's Web Page Editor any more and have to build another editor for Tapestry's .tml file. In fact, tml file is one special format XML, and many tapestry developers are accustomed to edit .tml file by XML editor, meanwhile XML editor is included in Eclipse Java release. So, we will extend XML editor to supply a brand new TML editor for Tapestry. 5. Autocompletion featuresThis light weight TapestryTools will still supply autocompletion features, includes three mainly aspects:
For example, there is a parameter bound using the @Component annotation inside the class: @Property private String name; Or such a method in Test.java: public String getName(){
return "Gavin Lei";
}Then, in Test.tml, once you typed ${ , you can get "name" and "getName" in content assist list.
If we want to add actionlink component, such as: <t:actionlink t:id="logout">Log out</t:actionlink> In blank space, pop up content assist, it is "ALT + /" in my Eclipse, all the Tapestry 5 components will be list in content assist, just select "ActionLink", it will insert corresponding code for you. Or when you type <t: the content assist dialog comes up, you can choose one from the list and then completes it with the required parameters listed.
Suppose there is an ActionLink component in current .tml file <t:actionlink >delete</t:actionlink> We want to add some attribute for this component, place the curson here <t:actionlink Pop up content assist, it will come up with a list of component attributes that we can use here, we can select attribute names in the list. 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. Custom component support in autocompletion featureBesides Tapestry build in component, custom components will also be in the auto-completion list. You can find the design details here. Optional FeaturesIf we have enough time in GSoC period, we also plan to supply these features: 1. Add another Page/Component class content tab in TML editor, users can use shortcut to switch between class tab and template tab. 2. Import Tapestry jar of special version to project 3. Validation function in Tapestry .tml file source view Supplies semantic validation of the Tapestry standard tag libraries for both EL and non-EL attribute values in .tml file 4. Hyperlink function in Tapestry .tml file source view Hyperlink to the Java editor from property and method referenced in the Expression Language(EL) of a tag-attribute, click (CTRL + property or method ), it will jump to the corresponding Java Classfile. Project Current StatusWe have started development job already, and finished basic auto-complete feature for TML editor(see Must Have feature 5 above) such as Tapestry built in components, component attrubites and host code in Google code http://code.google.com/p/tapestrytools/ If you are interested, you can check out the source code, and have a trial of it.
Additional InfoTime Schedule
Something about meI have been working with both Eclipse and Tapestry for years, have much Eclipse plug-in development experience. Since last year, i discussed with Tapestry community much, this project proposal comes from Tapestry community's demand. I gather feedback and advises from mail list since February, keep improving feature list then get this final proposal. Thanks for self-giving open source developers and open source spirit. My name is Gavin Lei, master student of University of Science and Technology Beijing. My major is computer scienece and technology, I am familar with Eclipse,Java and some other open source projects,such as struts,spring,jstl,dojo and so on and have several years of Java development experience.I am familiar with many project in Apache Foundation,Eclipse Foundation as well as Dojo Foundation. |