package org.xmind.ui.tabfolder;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.SubActionBars;
import org.eclipse.ui.part.IPageSite;
public class NestedPageSite implements IPageSite {
private IPageSite parentSite;
private ISelectionProvider selectionProvider;
private SubActionBars actionBars;
public NestedPageSite(IPageSite parentSite) {
this.parentSite = parentSite;
this.actionBars = new SubActionBars(parentSite.getActionBars(), this);
}
public IWorkbenchPage getPage() {
return parentSite.getPage();
}
public ISelectionProvider getSelectionProvider() {
return selectionProvider;
}
public Shell getShell() {
return parentSite.getShell();
}
public IWorkbenchWindow getWorkbenchWindow() {
return parentSite.getWorkbenchWindow();
}
public void setSelectionProvider(ISelectionProvider provider) {
this.selectionProvider = provider;
}
@SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) {
if (adapter == ISelectionProvider.class)
return getSelectionProvider();
return parentSite.getAdapter(adapter);
}
@SuppressWarnings("unchecked")
public Object getService(Class api) {
return parentSite.getService(api);
}
public boolean hasService(Class api) {
return parentSite.hasService(api);
}
public void registerContextMenu(String menuId, MenuManager menuManager,
ISelectionProvider selectionProvider) {
parentSite.registerContextMenu(menuId, menuManager, selectionProvider);
}
public IActionBars getActionBars() {
return actionBars;
}
/**
*
*/
protected void dispose() {
actionBars.dispose();
}
}