example with Property Columns in editor [message #559838] |
Sun, 19 September 2010 21:20 |
Jay Norwood Messages: 155 Registered: July 2009 |
Senior Member |
|
|
Here is an example using Property Columns in the emf generated editor. It will display properties "Value" and "Description" from your model. You can edit in the property cells in the table, and can move around the columns. This is derived from bits and pieces of posts on the web. I commented out the FilteredTree for now, which has some bug.
Some things I learned:
1. The default generated label provider has to come before the column label provider code since the default one provides a label provider for the whole table.
2. The table edit cells require selection of the associated tree node before selecting the cell. I've tried turning on SWT.FULL_SELECTION to see if that fixes the problem, but there are still sync issues.
So just call this createExtraPages() in your generated editor, in its createPages(), after the other pages are created.
private void createExtraPages(){
// This is the page for the filtered table tree viewer.
//
{
ViewerPane viewerPane =
new ViewerPane(getSite().getPage(), Nodes2Editor.this) {
@Override
public Viewer createViewer(Composite composite) {
// PatternFilter filter = new PatternFilter();
// Boolean useNewLook = false;
// FilteredTree ft = new FilteredTree(composite, SWT.FULL_SELECTION/*| SWT.MULTI */| SWT.H_SCROLL
// | SWT.V_SCROLL| SWT.BORDER, filter,useNewLook);
// TreeViewer tv = ft.getViewer();
// return (Viewer) tv;
return new TreeViewer(composite);
}
@Override
public void requestActivation() {
super.requestActivation();
setCurrentViewerPane(this);
}
};
viewerPane.createControl(getContainer());
treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
Tree tree = treeViewerWithColumns.getTree();
tree.setLayoutData(new FillLayout());
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
objectColumn.setText(getString("_UI_ObjectColumn_label"));
objectColumn.setResizable(true);
objectColumn.setWidth(250);
treeViewerWithColumns.setColumnProperties(new String [] {"a", "b", "c"});
treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
{
TreeColumn treeColumn = new TreeColumn ( tree, SWT.NONE ) ;
treeColumn.setText ( "Value" ) ;
treeColumn.setResizable ( true ) ;
treeColumn.setWidth ( 200 ) ;
treeColumn.setMoveable(true);
TreeViewerColumn treeViewerColumn = new TreeViewerColumn ( treeViewerWithColumns, treeColumn ) ;
treeViewerColumn.setLabelProvider ( new PropertyColumnLabelProvider ( new AdapterFactoryContentProvider(adapterFactory), "Value" )) ;
treeViewerColumn.setEditingSupport ( new PropertyEditingSupport ( treeViewerWithColumns, new AdapterFactoryContentProvider(adapterFactory), "Value" )) ;
}
{
TreeColumn treeColumn = new TreeColumn ( tree, SWT.NONE ) ;
treeColumn.setText ( "Description" ) ;
treeColumn.setResizable ( true ) ;
treeColumn.setWidth ( 200 ) ;
treeColumn.setMoveable(true);
TreeViewerColumn treeViewerColumn = new TreeViewerColumn ( treeViewerWithColumns, treeColumn ) ;
treeViewerColumn.setLabelProvider ( new PropertyColumnLabelProvider ( new AdapterFactoryContentProvider(adapterFactory), "Description" )) ;
treeViewerColumn.setEditingSupport ( new PropertyEditingSupport ( treeViewerWithColumns, new AdapterFactoryContentProvider(adapterFactory), "Description" )) ;
}
createContextMenuFor(treeViewerWithColumns);
int pageIndex = addPage(viewerPane.getControl());
setPageText(pageIndex, "FilteredTree");
}
}
|
|
|
Powered by
FUDForum. Page generated in 0.02869 seconds