package org.objectstyle.wolips.componenteditor.inspector; import org.eclipse.jdt.core.IType; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.part.IPage; import org.eclipse.ui.part.PageBook; import org.eclipse.ui.part.PageBookView; import org.objectstyle.wolips.componenteditor.part.ComponentEditor; import org.objectstyle.wolips.wodclipse.core.completion.WodParserCache; public class WOBrowserPageBookView extends PageBookView { private ComponentEditor _componentEditor; public WOBrowserPageBookView() { // TODO Auto-generated constructor stub } @Override protected IPage createDefaultPage(PageBook book) { WOBrowserPage page = new WOBrowserPage(null); initPage(page); page.createControl(book); return page; } @Override protected PageRec doCreatePage(IWorkbenchPart part) { PageRec pageRec = null; if (part instanceof ComponentEditor) { _componentEditor = (ComponentEditor) part; try { WodParserCache cache = _componentEditor.getParserCache(); IType componentType = cache.getComponentType(); WOBrowserPage page = new WOBrowserPage(componentType); initPage(page); page.createControl(getPageBook()); pageRec = new PageRec(part, page); } catch (Exception e) { e.printStackTrace(); pageRec = null; } } else { _componentEditor = null; pageRec = null; } return pageRec; } @Override protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) { System.out.println("WOBrowserPageBookView.doDestroyPage: " + part); if (pageRecord != null) { WOBrowserPage page = (WOBrowserPage) pageRecord.page; page.dispose(); pageRecord.dispose(); } } @Override protected IWorkbenchPart getBootstrapPart() { return null; } @Override protected boolean isImportant(IWorkbenchPart part) { System.out.println("WOBrowserPageBookView.isImportant: " + part); return part instanceof ComponentEditor; } }