Dynamic JFace XML TableViewer Tutorial

The following tutorial will show you how to build a dynamic JFace TableViewer driven from an XML file. The beauty of this solution is that your data model is decoupled from view logic so when the XML data changes you don’t need to change the concrete code.


It’s a pretty simple tutorial which should take around 5 – 10 minutes to complete.

Step 1. Create a new project in eclipse 3.4

Open Eclipse -> Click File -> new Plug-in project -> Next

To keep the examples simple type galang.research in the project name and click next. You can type any name you want though you’ll need to factor this into all the code samples I will provide.

Select Yes in the Rich Client Application section, click next.

Select RCP application with a view, click next.

Select Add Branding.

Click finish, then Yes.

Unzip the file located at the URL below and save the test.xml within the zip file as /temp/test.xml to your local pc.

https://sourceforge.net/project/showfiles.php?group_id=228168&package_id=299144&release_id=640558

Right click project and configure build path, link source, then click browse and select the src location to where you have unzipped the file above.

Enter srcExt fo folder name

Your package explorer should look like this.

Modfy View.java in the galang.research package with the following code.

/**

* This is a callback that will allow us to create the viewer and initialize

* it.

*/

public void createPartControl(Composite parent) {

viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL

| SWT.V_SCROLL);





viewer.setContentProvider(new RowContentProvider());

RowLabelProvider labelProvider = new RowLabelProvider();

labelProvider.createColumns(viewer);

viewer.setLabelProvider(labelProvider);

viewer.setInput(getViewSite()); 

}

And add the following imports to View.java

import galang.research.jface.RowContentProvider;

import galang.research.jface.RowLabelProvider;

 

Double click plugin-xml and click the Lanch eclipse application.

Congratulations, you’ve just completed this tutorial. Have a play around with the /test/temp.xml and see how it dynamically impacts the RCP application after restarting it.

From http://ggalangblog.blogspot.com.

References
0

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

ggalang replied on Thu, 2008/11/20 - 4:37am

Thanks to those of you out there that have done the tutorial, I'm thinking of doing a follow up tutorial to this by expanding on this solution to add some of the following features:

 

1) show how to do sorting of columns

2) show how to get eclipse forms and JFace to interact via seperate views

3) add editing support for the JFace table viewer and save back out to disk

 

Let me know via a comment here if you are interested in any of the above and Ill put together that part tutorial.

marcf replied on Thu, 2008/12/11 - 12:59pm

Very nice. Thanks for sharing your knowledge! This is in the direction of what I would like to do: dynamically create a tabular editor for GMF models, independently from the actual model type. I think your example will help to get a good start.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.