Sciology = Science + Technology

Commonsense in Technology

Archive for the ‘PShelf’ Category

org.eclipse.swt.SWTException: Unable to load graphics library [GDI+ is required] (java.lang.NoClassDefFoundError)

Posted by sureshkrishna on August 25, 2007

This is the SWTException that you might see on the W2K machine. This cause for this exception is absence of GDI+ library (gdiplus.dll) on Windows 2000. On WindowsXP and Vista they come by default and its taken care of.

Don’t be dis-hearted by this, you can download from Microsoft site and every thing should work fine. For those who want to have some additional information…〈=en&rss=ct2357lotus


Posted in Eclipse, Exceptions, Plug-ins, Plugin, PShelf, RCP, SWT, Uncategorized | 4 Comments »

PShelf Widget in Eclipse

Posted by sureshkrishna on December 21, 2006

PShelf Widget is really cool, if you want to implement a kind of Accordion widget in Eclipse. The Accordion widget is been gaining popularity in the end user community, especially with the AJAX and SOA presence.

Currently for simple implementations it looks quite stable. I had no problems till now. I have no idea when this project nebula is going to get integrated, but i am looking forward to it.

One good thing about this widget is that we can increase or decrease the time delay in the shelf roll-out. It also gives a very smooth transition from shelf to shelf. Can be very easily embedded into a View.

I am just adding a small snippet for the PShelf usage in a View. Hope this helps. Also this widget library it self is very very small, so you can include it very easily.

public void createPartControl(Composite parent) {
/* Create a grid layout object so the text and treeviewer
* are layed out the way I want. */
GridLayout layout = new GridLayout();
layout.numColumns = 1;
layout.verticalSpacing = 2;
layout.marginWidth = 0;
layout.marginHeight = 2;
text = new Text(parent, SWT.READ_ONLY | SWT.SINGLE | SWT.BORDER);
// layout the text field above the treeviewer
GridData layoutData = new GridData();
layoutData.grabExcessHorizontalSpace = true;
layoutData.horizontalAlignment = GridData.FILL;
PShelf shelf = new PShelf(parent, SWT.BORDER);
PShelfItem shelfGroup1 = new PShelfItem(shelf, SWT.NONE);
shelfGroup1.setText("Group 1");
shelfGroup1.getBody().setLayout(new FillLayout());
Table componentTable = new Table(shelfGroup1.getBody(), SWT.NONE);
createTableItem(componentTable, "Item11");
PShelfItem shelfGroup2 = new PShelfItem(shelf, SWT.NONE);
shelfGroup2.setText("Group 2");
shelfGroup2.getBody().setLayout(new FillLayout());
Table containerTable = new Table(shelfGroup2.getBody(), SWT.NONE);
createTableItem(containerTable, "Item21");
PShelfItem shelfGroup3 = new PShelfItem(shelf, SWT.NONE);
shelfGroup3.setText("Group 3");
shelfGroup3.getBody().setLayout(new FillLayout());
Table advancedWidgets = new Table(shelfGroup3.getBody(), SWT.NONE);
createTableItem(advancedWidgets, "Item31");
GridData shelfLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);

Posted in Eclipse, JFace, PShelf, SWT | 1 Comment »

Showing Hierarchical data in Eclipse

Posted by sureshkrishna on December 9, 2006

Withe the introduction of RCP, EMF-RCP, GEF and GMF, now there are plethora of choices to display hierarchical or grouped data. I have been struggling with all these varieties to choose one amongst them. Its quite clear why would you choose a viewer (Tree, Table, etc…), so i am not going to write much about it. The real challenge is to choose between the available widgets appropriate for your application.

The Hierarchical data that need to be presented to the end user can be in many ways. It can be a TreeView, TableView, TableTreeView, Nebula PShelf Widget, ExpandBar. Probably there can be more viewers/widgets that i am not aware of.

The real important difference is to make sure that we have the right Widget and right Viewer to represent the data. Pretty clearly, many of the widgets from SWT can not manage the complex data manipulation. That’s the reason we have a very user friendly layer called JFace on the top of it 🙂

Recently i also fiddled around with the PaletteView in GEF. This is also a very good starting point to represent collection of artifacts, from which we are going to select a specific action or tool. To provide a select-drag-create kind of scenario, i love to use PaletteView, TreeView, PShelf.

A more dynamic scenario is supported by the TreeView (as it has the providers behind) . If we are sure of the artifacts to be represented at the design and development time, its better to go with the PaletteView, PShelf kind.

Posted in Eclipse, EMF, ExpandBar, GEF, GMF, JFace, PShelf, RCP, SWT, TableTreeView, TableView, TreeView | Leave a Comment »