Skip to main content



      Home
Home » Eclipse Projects » Eclipse Platform » TreeViewer Selection problem in Multipage Editor
TreeViewer Selection problem in Multipage Editor [message #289129] Fri, 29 July 2005 16:48
Eclipse UserFriend
I'm trying to write a multipage editor (based on the "Plug-in with a
multi-page editor" template) with an XML-esque editor (based on the
"Plug-in with an editor" template) as one page, and a TreeViewer I had
written into an editor I've written previously. I'm still using the
createPage0(), createPage1(), createPage2() methods, and currently my
createPage1() method, which creates the TreeViewer looks like:

void createPage1() {
Composite composite = new Composite(getContainer(), SWT.NONE);
composite.setLayout(new GridLayout(1,false));
viewer = new TreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL |
SWT.V_SCROLL | SWT.CURSOR_IBEAM);
viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
DrillDownAdapter drillDownAdapter = new DrillDownAdapter(viewer);
contentProvider = new IOMLTreeContentProvider(viewer, this);
viewer.setContentProvider(contentProvider);
IOMLTreeLabelProvider labelProvider = new IOMLTreeLabelProvider();
viewer.setLabelProvider(labelProvider);
viewer.setInput(ResourcesPlugin.getWorkspace());

this.addPropertyListener(
new IPropertyListener() {
public void propertyChanged(Object o, int i)
{}
}
);
int index = addPage(composite);
setPageText(index, "Tree View");
}

Initially I had just been setting the site's selection provider to
viewer in that particular class, but found that to throw errors when
switching back to the XML editor. I now check to see which page is being
activated and switch the selection provider accordingly. The relevant
code is:

protected void pageChange(int newPageIndex) {
if (prevProvider != null)
getSite().setSelectionProvider(prevProvider);
if (newPageIndex == 1) {
if (prevProvider == null) {
prevProvider = getSite().getSelectionProvider();
}
getSite().setSelectionProvider(null);
getSite().setSelectionProvider(viewer);
}
super.pageChange(newPageIndex);
...

The problem, then, is that my TreeViewer connects the Properties View
usually when a selection is made on a Tree node, but since I moved the
setting of the selection provider to pageChange(int) this no longer
works. I've stopped getting the error when I switch back to the XML
editor, but I cannot edit any of my properties on the TreeViewer's page.
What am I doing wrong?

Thanks in advance,
John Bowers
Marquis Software Development
Previous Topic:TextEditor scanners seem to be toppling over one another
Next Topic:Plug-in package options
Goto Forum:
  


Current Time: Sun Jun 08 01:36:59 EDT 2025

Powered by FUDForum. Page generated in 0.02759 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top