Digital Edition

SYS-CON.TV
Sneak Peek: Tapestry Palette - My First Eclipse Plugin
Sneak Peek: Tapestry Palette - My First Eclipse Plugin

In working with Tapestry I find myself getting confused by the number of components and their parameters, even when using the excellent Spindle plugin. I haven't written an Eclipse plugin yet so I put together a plugin, building on the Spindle classes to browse the components available in my project.

The plugin adds a new view the 'Palette' to Eclipse. The image below shows the Palette on the left of the source code editor area (click on the image to see a larger view).


The Palette consists of a tree of Tapestry components, organized by namespace. Selecting a component in the tree displays a summary in the lower part of the view showing the component description and listing required and optional parameters along with their descriptions.


Once I got this far I looked into using the Palette as a source for component editing data. I reviewed the Eclipse drag and drop API and eclipse extensions for adding drag and drop functionality to existing views and editors. I was able to add drop functionality to the Spindle TemplateEditor so that dragging a component out of the Palette onto the editor inserts a <span> tag with an implicit component declaration, including attributes for required parameters at the current insertion point (you have to click in the editor at the point at which you want the component declaration to be inserted). If a range of text is selected and the dragged component allows a body the span will wrap the selection, otherwise an error dialog appears. Warning: The drop/editing code works on Linux but not on Mac OS X.

This is my first cut at the plugin, there is only minimal error checking. The Palette requires that a Tapestry project (created with Spindle) is the current project and there is at least one open source code editor in the workspace when the Palette is opened. It refreshes too often and there are some issues with resizing the view.

The plugin requires that the Spindle plugin is installed.

Download the plugin: tapestry-palette-0.01.zip

Unzip in your Eclipse install directory and restart Eclipse.

To open the Palette use the Window > Show View > Other > Tapestry > Palette menu. Make sure a Tapestry project is the current project and at least one editor window is open.



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
I'd like to add support for adding component declarations to the specification file, a wizard for setting component id and parameter values and support for inserting tags other than <span> for certain components, such as <input> tags for components representing form elements.

Many of the components, especially in the contrib library are missing descriptions and many components, have no descriptions for their parameters.

I'm working on getting the drag and drop working on Mac OS X so I can work on this on my powerbook.

About Mike Henderson
Mike Henderson is an independent consultant based in Southern California. He has been working with Java since 1999, prior to that he concentrated on Objective-C development and was a WebObjects consultant with NeXT Software. Mike has extensive experience developing Web applications with component-based frameworks and over 15 years
experience developing distributed software systems in a broad range of industries.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

The palette has matured since this article was written, visit the SourceForge site at :

http://tapestrypalette.sf.net

to see the new features. Now you can download and installTapestry component libraries via drag and drop




ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

Everyone wants the rainbow - reduced IT costs, scalability, continuity, flexibility, manageability, ...
Founded in 2000, Chetu Inc. is a global provider of customized software development solutions and IT...
The standardization of container runtimes and images has sparked the creation of an almost overwhelm...
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 1...
Most DevOps journeys involve several phases of maturity. Research shows that the inflection point wh...
Dynatrace is an application performance management software company with products for the informatio...
Today, we have more data to manage than ever. We also have better algorithms that help us access our...
Andi Mann, Chief Technology Advocate at Splunk, is an accomplished digital business executive with e...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: D...
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held Novemb...
DXWorldEXPO LLC announced today that ICOHOLDER named "Media Sponsor" of Miami Blockchain Event by Fi...
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22...
SYS-CON Events announced today that IoT Global Network has been named “Media Sponsor” of SYS-CON's @...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitori...
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news an...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018,...
DXWorldEXPO | CloudEXPO are the world's most influential, independent events where Cloud Computing w...
Disruption, Innovation, Artificial Intelligence and Machine Learning, Leadership and Management hear...
"We host and fully manage cloud data services, whether we store, the data, move the data, or run ana...
Enterprises are striving to become digital businesses for differentiated innovation and customer-cen...