Developing a Lightweight DND Portal
February 13th, 2008 Posted in JAVA, Web | 1 Comment »Many web sites have this drag-n-drop portal management feature like the home page for iGoogle. Google created their Google Gadgets that are simple HTML and JavaScript mini-applications served in iFrames that can be embedded in webpages and other apps.
Although there are several technologies available that one could use to develop this functionality within their web application, this article will focus on requirements, technology alternatives and in latter posts I will develop this technology with our chose technology alternative.
Requirements:
- Drag - and - Drop AJAX functionality which allows customization for logged on users.
- There will be a fixed number of components that can be displayed.
- Each component has its own display and controller for handling requests. All components are developed to a standard interface.
- Each component has a wrapper that contains a title bar and menu.
Technology Alternatives:
- JSR 168 / 268 Solution
- Utilize YUI Drag & Drop Component
- Utilize Google Web Toolkit (GWT) with DND extensions by Allen Sauer
The JSR 168 defines a Java Portlet Specification that defines a contract between the portlet container and portlets and provides a convenient programming model for portlet developers. There are many commercial and open source portal servers:
Commercial Portal Servers:
- IBM WEbSphere
- Sun Java System Portal Server
- BEA Weblogic
- Oracle iAS
- Liferay
- Vignette
- SAP
- TIBCO
- uPortal
- OpenPortal
Open Source Portal Servers:
- JBoss Enterprise Portal Platform
- Apache Pluto
- JetSpeed Portal
- eXo Platform Portal
The JSR 168 standard is an overkill to our solution and require s a full blown portal server which is not what we are looking for.
YUI has some amazing components and I use these on several web sites. They have a Drag & Drop component that could be used but from my experience this control would only give me a partial solution which then would require modification of the YUI javascript. I don’t mind tweaking 3rd party components but this would require major modification to achieve our requirements.
From my initial research I believe the only alternative would be to develop a component using GWT. Future articles will describe the development of this component that we will call PortLight.