📄 dbdesignernavigatoractionprovider.java
字号:
package dbdesigner.diagram.navigator;
import dbdesigner.diagram.edit.parts.DatabaseEditPart;
import dbdesigner.diagram.part.DbdesignerDiagramEditor;
import dbdesigner.diagram.part.DbdesignerDiagramEditorPlugin;
import dbdesigner.diagram.part.DbdesignerVisualIDRegistry;
import java.util.Iterator;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.emf.common.ui.URIEditorInput;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.navigator.CommonActionProvider;
import org.eclipse.ui.navigator.ICommonActionConstants;
import org.eclipse.ui.navigator.ICommonActionExtensionSite;
import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
import org.eclipse.ui.part.FileEditorInput;
/**
* @generated
*/
public class DbdesignerNavigatorActionProvider extends CommonActionProvider {
/**
* @generated
*/
private boolean myContribute;
/**
* @generated
*/
private OpenDiagramAction myOpenDiagramAction;
/**
* @generated
*/
public void init(ICommonActionExtensionSite aSite) {
super.init(aSite);
if (aSite.getViewSite() instanceof ICommonViewerWorkbenchSite) {
myContribute = true;
makeActions((ICommonViewerWorkbenchSite) aSite.getViewSite());
} else {
myContribute = false;
}
}
/**
* @generated
*/
private void makeActions(ICommonViewerWorkbenchSite viewerSite) {
myOpenDiagramAction = new OpenDiagramAction(viewerSite);
}
/**
* @generated
*/
public void fillActionBars(IActionBars actionBars) {
if (!myContribute) {
return;
}
IStructuredSelection selection = (IStructuredSelection) getContext()
.getSelection();
myOpenDiagramAction.selectionChanged(selection);
if (myOpenDiagramAction.isEnabled()) {
actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN,
myOpenDiagramAction);
}
}
/**
* @generated
*/
public void fillContextMenu(IMenuManager menu) {
}
/**
* @generated
*/
private class OpenDiagramAction extends Action {
/**
* @generated
*/
private Diagram myDiagram;
/**
* @generated
*/
private ICommonViewerWorkbenchSite myViewerSite;
/**
* @generated
*/
public OpenDiagramAction(ICommonViewerWorkbenchSite viewerSite) {
super("Open Diagram");
myViewerSite = viewerSite;
}
/**
* @generated
*/
public final void selectionChanged(IStructuredSelection selection) {
myDiagram = null;
if (selection.size() == 1) {
Object selectedElement = selection.getFirstElement();
if (selectedElement instanceof DbdesignerNavigatorItem) {
selectedElement = ((DbdesignerNavigatorItem) selectedElement)
.getView();
} else if (selectedElement instanceof IAdaptable) {
selectedElement = ((IAdaptable) selectedElement)
.getAdapter(View.class);
}
if (selectedElement instanceof Diagram) {
Diagram diagram = (Diagram) selectedElement;
if (DatabaseEditPart.MODEL_ID
.equals(DbdesignerVisualIDRegistry
.getModelID(diagram))) {
myDiagram = diagram;
}
}
}
setEnabled(myDiagram != null);
}
/**
* @generated
*/
public void run() {
if (myDiagram == null || myDiagram.eResource() == null) {
return;
}
IEditorInput editorInput = getEditorInput();
IWorkbenchPage page = myViewerSite.getPage();
try {
page.openEditor(editorInput, DbdesignerDiagramEditor.ID);
} catch (PartInitException e) {
DbdesignerDiagramEditorPlugin.getInstance().logError(
"Exception while openning diagram", e);
}
}
/**
* @generated
*/
private IEditorInput getEditorInput() {
Resource diagramResource = myDiagram.eResource();
for (Iterator it = diagramResource.getContents().iterator(); it
.hasNext();) {
EObject nextEObject = (EObject) it.next();
if (nextEObject == myDiagram) {
return new FileEditorInput(WorkspaceSynchronizer
.getFile(diagramResource));
}
if (nextEObject instanceof Diagram) {
break;
}
}
return new URIEditorInput(diagramResource.getURI().appendFragment(
diagramResource.getURIFragment(myDiagram)));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -