Sciology = Science + Technology

Religious Programming (Eclipse; AJAX; SOA; Mashups; XP + SCRUM).

Archive for the 'Eclipse' Category


Save time with Pulse 2.1

Posted by sureshkrishna on May 14, 2008

Pulse has been of a great help for me personally to manage versions, plugins and to share profiles. It is a great sign of relief to many developers and also corporates as it eased the plugin configuration. I quickly checked with the new pulse release and its very interesting and matured a lot. Following are some interesting features that i noticed with Pulse 2.1

  • Seamless support (Select -> Add -> Done) for building a customized eclipse config
  • Features selection automatically prompts for the related software. This is especially useful when we want to customize the features getting added to the Eclipse Configuration.
  • Improved set of plugins support (Add-On Software -> Browse Categories)
  • Improved UI interactions and Response Time
  • And finally Pulse Freelance seems to be a nice value added feature for corporates. According to the features description, i understand that the organizations would be able to add their custom / specific plugins to the catalog, share the configuration with development groups or individuals and have a private update site.

Addition Plugin Categories

Related Plugins

Posted in Eclipse, Plug-ins, Plugin | Tagged: , | 1 Comment »

My JDeveloper Training

Posted by sureshkrishna on March 27, 2008

I have been undergoing the Oracle ADF and JDeveloper training for a future project. It was pretty hard for me to accept that i am undergoing this training considering my strong belief in eclipse-as-a-platform. I started the training by asking, if all/many of the JDeveloper features are available in Eclipse and soon realized that JDeveloper does have a strong set of database feature set.

There are some discrete set of database features that are available for Eclipse. These 2 projects do provide good plugins to improve the productivity of the database developer on Eclipse.

OK, but dont feel happy about it. For the set of features that JDeveloper has, its difficult to compare the feature set with Eclipse. In my view we should not even compare. At the end of the training, i am sort of started believing that its apt to call JDeveloper as Integrated Services Environment (ISE). Its has many things inside. For me it looked like the concepts of Application, Project, Module, Entity Object and View Objects are tightly integrated with JDeveloper. I cant imagine to build a complex application “-which is tightly integrated with DataBase and ADF-” without JDeveloper.

Of-course i “think” its possible to develop some decent ADF applciations without JDeveloper. We can still develop the UI with the help of the ADF Faces and JSF in Eclipse, but there is no support (as i know) of ADF BusinessComponents in Eclipse till date (03/27/2008). I guess people can still develop some good Oracle ADF applications with the help of EJB3 and JPA stuff.

In the end JDeveloper does many things with Database/Class Diagrams, ADF Components, Business Rules, EJB, Toplink, WebServices, Database Connection, SOA Stuff (not sure what exactly it does with SOA), JSP, JSF, Struts and much more. Some of the features can be pulled into the eclipse and one can use pulse to do this.

As an Eclipse lover, i am just waiting for a good ADF plugin into the Eclipse world. ahem….

Posted in Eclipse, JDeveloper, Java | Tagged: , , | 1 Comment »

JFace Dialogs : which one is right for you ?

Posted by sureshkrishna on March 15, 2008

JFace framework of Eclipse provides many standard and useful dialogs and a framework to build custom dialogs and wizards. When the standard dialogs seems to be too simple for your plugin or RCP developement, one can extend the standard dialogs to suite their own needs. The aim of this article is to provide example oriented approach to dialogs and see in depth of all frequently used dialogs. I am hoping to have this article as the point of reference for many developers to get Dialogs overview.

Dialogs are modal UI components which would do some user interaction tasks. Traditionally Dialogs are used to enter a simple input, to select a choice from a list, to select multiple nodes from a tree, to inform about a success/failure from an operation, to input confirmations from the user, etc…

Eclipse provides standard dialogs from two different frameworks, SWT provides very basic dialogs like FontDialog, ColorDialog, DirectoryDialog, FileDialog and FontDialog. These SWT dialogs are coming out of the SWT as they are very basic and has close connection to the OS. All these Dialogs are available from org.eclipse.swt.widgets package from the org.eclipse.swt.<platform>.jar.

JFace provides a variety of Dialogs for the implementers to extend or to use them directly. Its interesting to look into variety of dialogs provided by JFace and i would leave the usage to your imagination and context. Rest of this article is mostly code, screen shots and less of textual description. I tried to keep the short, sweet and simple.

FileDialog: This is a SWT Dialog but worth mentioning under the general concept of the Dialogs.

“Instances of this class allow the user to navigate the file system and select or enter a file name. Note: Only one of the styles SAVE and OPEN may be specified.

IMPORTANT: This class is intended to be subclassed <em>only</em> within the SWT implementation.”

File Dialog

Information Dialogs: These dialogs are used to inform user about some event and take some necessary action. There are different Dialogs under this category.

ErrorDialog : A dialog to display one or more errors to the user, as contained in an IStatus object. If an error contains additional detailed information then a Details button is automatically supplied, which shows or hides an error details viewer when pressed by the user.

Error Dialog

MessageDialog : “A dialog for showing messages to the user. This concrete dialog class can be instantiated as is, or further subclassed as required.

Information Dialog
Question Dialog

InputDialog: This Dialog is used for a very general paradigm to process some input from the user. Generally its not recommended to use this for input of complex data and for large number of input fields.

InputDialog

PrinterDialog: “Instances of this class allow the user to select a printer and various print-related parameters prior to starting a print job. IMPORTANT: This class is intended to be subclassed only within the SWT implementation.

Print Dialog

ProgressMonitorDialog: This is a very important Dialog component most of the applications would use. This Dialog is used to represent any time consuming task or to provide a long running workspace task to the user. Proper care must be taken to show accurate information of progress information to the user.

Progress Dialog

TitleAreaDialog: “A dialog that has a title area for displaying a title and an image as well as a common area for displaying a description, a message, or an error message. This dialog class may be subclassed.

This is the class that i often use for “About MyCompany” kind of dialogs.

TitleArea Dialog

ElementListSelectionDialog:A class to select elements out of a list of elements.

ElementListSelectionDialog

ListDialog:A dialog that prompts for one element out of a list of elements. Uses IStructuredContentProvider to provide the elements and ILabelProvider to provide their labels.

ListDialog

TwoPaneElementSelector:A list selection dialog with two panes. Duplicated entries will be folded together and are displayed in the lower pane (qualifier).”

TwoPaneElementDialog

List SelectionDialog:A standard dialog which solicits a list of selections from the user. This class is configured with an arbitrary data model represented by content and label provider objects. The getResult method returns the selected elements.

ListSelectionDialog

ElementTreeSelectionDialog:A dialog class to select elements out of a tree structure.

ElementTreeSelectionDialog

CheckedTreeSelectionDialog: “A dialog class to select elements out of a tree structure”

CheckedTreeSelectionDialog

Some Notes :

  • YesNoCancelListSelectionDialog has been Deprecated in 3.3 of Eclipse.
  • RCP Product extensions and custmizations can be done via AboutDialogs.
    • AboutDialog
    • AboutFeaturesDialog
    • AboutPluginsDialog
    • AboutSystemDialog

    Note : Above Dialogs are internal dialogs and not APIs. They are mentioned only as a reference.

  • PrintDialog is intended to be sub-classes by the clients and use it for identifying the printers and other parameters for print job.
  • SaveAsDialog is not available in Eclipse 3.3

Conclusion: Dialogs are a great way to present simple data and receive user input. Its very important to understand several Dialogs provided by JFace and use them appropriately.

References:

Posted in 343278, Eclipse, Plugin, RCP, Uncategorized | Tagged: , , , | 2 Comments »

Eclipse Help vs Cheat Sheets ?

Posted by sureshkrishna on March 1, 2008

Did you ever got into such an argument from your boss or colleague ? During the documentation time, many categorize the tasks/topics into either of Eclipse Help Content or Cheat Sheets. Depending on the task, domain and business at hand, its very tricky to decide if a topic falls into the category of Cheat Sheet or Help. Oops… i am not sure, if cheat sheets are used by many organizations, but i did use them in couple of projects and customers loved them. Its been quite easy to decide what goes into Cheat Sheets, if we follow a task based approach.

Following are few hints and tips, that i use to decide when to use Help and when to use Cheat Sheets.

Cheat Sheets :

  • Let the user accomplish a TASK using a cheat sheet.
  • Cheat sheet assists the user in a step-by-step manner.
  • When there is some Dynamic Data to be filled-in, use cheat sheet.
  • Cheat sheet is more appropriate to accomplishing a task might take…
    • Invoking a Wizard
    • Filling the Data in Multiple Wizard Pages
    • Use a search criteria to get data from DataBase, do data/wizard validations
    • Invoking a View, etc…

Help Content :

  • Explain the system/modules with the help of Help
  • Describe the specific Views, Perspectives, etc… with in Help
  • Describe the content, allowed values of a Wizard or Action with the help of Help
  • DO NOT describe steps to accomplish a complex task in Help (there are high chances that users might ignore it). Instead, do it in Cheat Sheet.

When we follow the above hints, i guess there is no argument on what to use when. I hope many of you would have used help and cheat sheets in combination and i would love to hear your experiences.

Posted in Eclipse | Tagged: , , | No Comments »

Eclipse Shortcuts

Posted by sureshkrishna on February 21, 2008

Its been a long time i have updated my knowledge on eclipse shortcuts. I have compiled default shortcuts from eclipse 3.3 and i am planning to release one for eclipse 3.4 very soon. There is a significant change from eclipse 3.2 to eclipse 3.3 and eclipse 3.4 that the preference pages for shortcuts. There was a possibility to export entire shortcuts to a csv file and use it. Unfortunately there is no export feature in eclipse 3.3 and 3.4.

For all the good old eclipse developers, i am providing a shortcut document as pdf. Eclipse Shortcuts

Enjoy your eclipse.

Posted in Eclipse | Tagged: , | 2 Comments »

Are we not supporting WTP-all-in-one downloads ?

Posted by sureshkrishna on February 6, 2008

WTP project comes with lot of added frameworks and tools for any EE and Web developer. When i tried to download the latest maintenance build, there is no option of the all-in-one package instead there are bunch of other plugins required along with WTP [Eclipse Platform (Platform, JDT), Eclipse Modeling Framework (EMF, XSD InfoSet, SDO), Graphical Editing Framework (GEF), Data Tools Platform (DTP) (required only for EJB or JPT development), Eclipse Test Framework (required only for Automated JUnit tests), Eclipse releng tool (required only for committers to more easily "release" code to a build), Third Parthy code from Orbit (currently much more than needed for WTP, but some committers like having the whole heap in their target)].

And now the problem for an end user(probably an IT developer/developer) is that, he has to download and struggle with the versions and other incompatibilities. I especially loved the idea of distributing all-in-one so that any user can simply download and use it right away. If at all eclipse WTP project is thinking to discontinue, i would sincerely request not to do so. It really saves a lot of time and frustration for the developers. I guess some users do have options like myeclipse and pluse, but i would love to see these bundling concept from eclipse itself.

Posted in Eclipse, Plug-ins, Plugin | Tagged: , | 2 Comments »

Getting ready for my short-talk at EclipseCon 2008

Posted by sureshkrishna on January 24, 2008

Happy New Year 2008 to everyone. This is my first blog in 2008. Last year ended with some sadness as i lost my backpack containing laptop, camera and some other important belongings in New York airport. I could not trace it till date and i my hopes have been diminishing. It took a little while for me to get a new laptop, prepare it for the daily routine.

Past 1.5 year i have been concentrating on tweaking, customizing and writing plugins for the Web 2.0 frameworks. I was quite successful in providing a good IDE to the IT developers with a good set of code generation features. Thanks to WTP, EMF, Eclipse DnD and in the end Eclipse Platform. In the meantime, i have also encountered with the basic question of “Can Eclipse UI be similar to other widget frameworks out there in Web 2.0 space ?“. I was haunted with this question all the time and probably in Oct 2007, i was ready for an answer. While its not possible to expect a very similar UI in eclipse as in GWT, Dojo, Rico, Zimbra, Flash, etc… , it’s definitely possible to get some-what-close look as in Web 2.0 kind of applications.

I am sharing all my experiences to make an eclipse application to give a look of Web 2.0 application. I thank SWT, JFace  and Nebula to provide such versatile framework. I hope this short-talk would help many of us to have some dangling ideas about how to achieve a “Web 2.0 style widgets and look”.

I am very excited to see you all at eclipse and share my experiences. I would love to see and chat with my previous colleagues Stephan Eberle, Frank Gerhardt, Elias Volanakis and many others.

Posted in AJAX, Eclipse, Plug-ins, Plugin | Tagged: , , , , , | 2 Comments »

Eclipse as a Platform

Posted by sureshkrishna on December 16, 2007

Eclipse, the ubiquitous platform, has survived another challenge by releasing Europa and the incredible download numbers speak for it’s success. Initially it was perceived as a Java IDE , then a tools development environment, then a Rich Client Platform (RCP), then Tool Integration Platform, and now it’s an eco-system of platform, application frameworks, tools, runtimes, and especially a universal tool platform - an open, extensible IDE for anything, but nothing in particular. The intent of the article is to highlight the different areas of the industry and how Eclipse is used by different category of users.

The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different “pillars” or categories:

  1. Enterprise Development
  2. Embedded and Device Development
  3. Rich Client Platform
  4. Rich Internet Applications
  5. Application Frameworks
  6. Application Lifecycle Management (ALM)
  7. Service Oriented Architecture (SOA)

The list gives a fair understanding of the different areas where eclipse is getting popular and also the business verticals that can be transformed. It is very interesting to see what Eclipse means to different people. The following scenarios give a better understanding of what can be done with Eclipse.

Eclipse - Java IDE

As envisioned in early 2000 (even now after the Europa release), it’s a Java IDE with which Java developers can create, modify, debug, and build Java projects. Eclipse provides different features like code refactoring, syntax highlighting, syntax/code checks, code completion, quick fix, compile/build, team integration with CVS, debug, jarring, and so on. In this use-case scenario, Eclipse is being primarily used as Java IDE. Eclipse + JDT = Java IDE. The Eclipse Platform contains basic UI elements (SWT, JFace), a runtime, a help system, debug support, search support, and some other IDE elements. The Java IDE can be downloaded from Eclipse Site.

Eclipse as IDE

Eclipse - Plugin/Tool Development IDE

Along the similar lines of the Java IDE, the C/C++ development tools, the PHP development tools, the Cobol development tools, and so on, have brought fabulous features in the Eclipse ecosystem. These development tools not only improved the productivity of the developers but also Myth-Busters for many managers, developers. This gave the real value for Eclipse as an open, extensible IDE for anything, but nothing in particular. Vendors were successfully able to adopt the Eclipse Platform and build tools and Language Editors around it. The ground rule of “Everything is a contribution” perfectly fits in this scenario.
PDE (Plugin Development Environment) and JDT (Java Development Tools) are the ones that support and enable this use-case. A plugin can be developed, debugged, deployed with the help of these two tools. The PHP Editor Plugin is developed with the help of the PDE and JDT. When a developer is using Eclipse to develop the PHP, it looks as though Eclipse is a PHP IDE. In this scenario, the developer might not necessarily know that PDE and JDT exist in the Eclipse that is being used. Thus depending on the user and what he is trying to achieve, the perception changes.

Eclipse + Ruby on Rails = RadRails
Eclipse + Ruby on Rails = 3rdRails
Eclipse + JDT = Java IDE
Eclipse + PHP = PHP IDE
Eclipse + CDT = C/C++ IDE

Eclipse as Plugin Development Environment


Eclipse – RCP

Application development requires a platform to rely upon, i.e., a basis upon which an organization’s software product lines can be built. The Rich Client Platform (RCP) of Eclipse uses the windowing and UI features of the underlying OS platform. It enables the application to use the native look-and-feel, native widgets, and all the available UI features. In the end, users and IT departments want to have a uniform architecture and common look-and-feel over all the applications. Eclipse RCP is considered as the minimal set of plugins that are required to build rich applications. In short, if the SDK capabilities and Platform capabilities are removed, the resulting set of plugins would be RCP.
An interesting set of applications can be built with the help of Eclipse RCP.

A few examples from Open Source RCP applications included, but not limited to…

· JPMorgan’s Banking application

· Maestro – NASA Space Mission Management -

· GumTree - Australian Nuclear Science and Technology Organization - GumTree is an open source multi-platform scientific workbench for performing scientific experiments using a server-client environment. It provides an easy-to-use graphical user interface for instrument data acquisition, online or offline data visualization and analysis.

· RSSOwl - Applications that collect data from RSS-compliant sites are called RSS readers or “aggregators.” RSSOwl is such an application.

· Talend Open Studio 1.0 - Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load)

The following are examples for Commercial plugins

· Actuate BIRT Report Designer - The Actuate BIRT Report Designer is a powerful tool for designing and deploying reports against data sources ranging from typical business SQL databases, to XML data sources, to in-memory Java objects.

· BSI CRM on Eclipse - This Customer Relationship Management (CRM) solution is a fully configured RCP application to support the whole customer contact process from first contact to the successful project implementation as wells as retention management.

· IBM Workplace Client Technology - IBM Workplace Client Technology is a strategic new IBM framework to enable the creation of server-managed rich client applications.

· MyEclipse - SNAPs - Lightweight, Individual, Task-Based Developement Tools FREE as Part of the MyEclipse Distribution. MyEclipse SNAPs (Simple Non-integrated Applications) are special-purpose, Windows-integrated appliations that are targeted for quick, non-IDE based development tasks.

If required, one can use plugins other than core RCP plugins, e.g., one might want to use the help plugins, search plugins, and so on.

Eclipse RCP Application

Eclipse - Tools Framework

Plugins make Eclipse what ever one wants it to be. For the tool integrators, this is a universal platform to which everyone can contribute extensions. Tool development on Eclipse leverages the existing platform infrastructure to contribute new functionaility and to extend existing functionality.

Many of such tools are very popular and include

· Web Tools Project (WTP)

· Eclipse Modeling Framework (EMF)

· Graphical Editing Framework (GEF)

· Business Intelligence and Reporting Tools (BIRT)

· Test and Performance Tooling Project (TPTP)

· Aptana Web2.0 IDE

· MyEclipse

Eclipse as Tooling Framework

Eclipse - Application Framework

For enterprises it makes sense to have a single application framework so that all the tools and frameworks can be built on a common basis. Individuals and enterprises can leverage frameworks and tools provided by the Eclipse eco-system and also benefit from the different release time lines of Eclipse. One of the example is to be able to support the entire development life cycle of a complex engineering activity flow of an organization using to Eclipse. Various development stages such as system requirements, software requirements, component design, function design, coding, unit testing, integration testing, system testing, delivery, and finally the issue tracking can be integrated into Eclipse. On the technical level this transforms to writing new tools/plugins if necessary, using plugins from 3rd party vendors, using the tools and frameworks from the Eclipse community and finally completing the maze by integration.

Genuitec is one of the companies that extensively use the Eclipse platform and other frameworks of Eclipse to have a set of seamlessly integrated tools.

Robert Bosch is a leader in automotive supplier in Europe and North America. Bosch has adapted Eclipse and developed applications based on the Eclipse, EMF and GEF.

Eclipse Application Framework

Summary
Eclipse is an IDE and application framework for anything and nothing in particular. It depends on the user’s/developer’s perception and what is targeted to achieve with the help of Eclipse. With the contribution rules of Eclipse and platform architecture, its easy to contribute one’s own functionality and/or extend Eclipse.

References

1) Eclipse Platform Overview http://www.eclipse.org/platform/overview.php
2) Eclipse House Rules http://udig.refractions.net/help/index.jsp?topic=/net.refractions.udig.doc/html/Eclipse%20House%20Rules.html
3) Eclipse RCP Applications http://www.eclipse.org/community/example_rcp_applications_v2.pdf

Posted in Eclipse, Plug-ins, Plugin | Tagged: , | 2 Comments »

Any recommended strategy for eclipse plugin build ?

Posted by sureshkrishna on December 11, 2007

I am on a cross-road and i have too many choices to make. My requirement is pretty simple that i need to able to build the plugins and my RCP application via automated build. Our server side product runs on the cruise control and src code is in SVN; so, i would like to use the same infrastructure for eclipse plugin build too. Unfortunately i do not see or i am not aware of any of recommended strategies for the plugin build and also some tips on automated nightly builds. I am aware of the following strategies.

  • A simple ant script
  • Maven Project
  • PDE Build

Which of the above  strategies would anyone recommend and why ? For me i also have the requirement that my plugins should be compiled against a specific eclipse versions and we want to have this as an Eclipse IDE application.

Can anyone point me to the right resources ? And also its interesting to know the build system used by Eclipse and other  product leaders like Instantiations, Genuitec and Innopract.

Posted in Eclipse, Plug-ins, Plugin, RCP | Tagged: , , | 7 Comments »

UI Designers dilemma !!!

Posted by sureshkrishna on December 7, 2007

Eclipse Visual Editor, NetBeans Matisse project and Instantiations SWT Designer are wonderful WYSIWYG editors that i have used till now. With few projects that i have done, i have always hand coded the UI’s. And of course i have done UI development on the Eclipse through out. So all the perspectives, views, editors, wizards, preferences and properties are hand coded and i am quite comfortable with it. I do agree that probably it takes more time for me to hand code but i feel “personally” satisfied.

When i discuss this with few of my colleagues, there are for and against the UI Designers. For me and many others, Layouts and adjusting the controls on the screen are the challenges. I do spend a lot of time in adjusting the controls in a layout.

Why they like UI Designers…

  •  UI can be build very very fast, without knowing whats in the code
  • With the advanced UI Designers, its easy to adjust/auto-adjust the Layouts
  • The easy-to-use drag-and-drop paradigm makes it easy to quickly visualize
  • Properties are set in the palette and the same is reflected dynamically on the UI preview
  • Control and Widget hierarchy is what many appreciate. I know precisely, which controls are in UI

Why they want to handcode…

  • I can code. I am a developer. I am used to it.
  • Code generated by UI Designers are not optimized. I want my code to be optimized.
  • Many a times, generated code is not readable to customize.
  • It might make me less creative and insecure, as i do not know whats happening at the code level.

I am sure many of us share some of the above views and you might definitely have great experience in building UIs. Its really interesting to know, if there are really more number of developers who would use UI Designers. For now i would stick to the hand-coding. Do share your experiences with the UI Designers …

Posted in Eclipse, Java, Net Beans 6.0, SWT | Tagged: , , , | 6 Comments »