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.
- Login or register to post comments
- 3772 reads
- Printer-friendly version
(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