createshapeaction.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 102 行
JAVA
102 行
package net.sf.freenote.action;
import net.sf.freenote.ShapesEditor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.internal.part.NullEditorInput;
/**
* 新建文件的action
* @author levin
* @since 2008-1-26 下午05:40:27
*/
public class CreateShapeAction implements IWorkbenchWindowActionDelegate,IWorkbenchWindowPulldownDelegate {
private IWorkbenchWindow window;
private Menu exampleMenu;
private static String[] examples=new String[]{"形状示例","用例图示例","系统概念图示例","组织结构图示例","思维图示例"};
@Override
public void dispose() {
}
@Override
public void init(IWorkbenchWindow window) {
this.window=window;
}
@Override
public void run(IAction action) {
try {
window.getActivePage().openEditor(new NullEditorInput(), ShapesEditor.ID, true);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
}
@Override
public Menu getMenu(Control parent) {
if (exampleMenu != null) {
exampleMenu.dispose();
}
exampleMenu = new Menu(parent);
fillMenu(exampleMenu);
return exampleMenu;
}
private void fillMenu(Menu menu) {
for(String s:examples){
MenuItem choice = new MenuItem(menu, SWT.PUSH);
choice.setData(s);
choice.setText(s);
choice.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent se) {
String example = (String) ((MenuItem)(se.getSource())).getData();
openShapeFile(example);
}});
}
}
private boolean openShapeFile(String example) {
String path="docs/"+example+".fnt";
try {
window.getActivePage().openEditor(new ExampleNullEditorInput(path), ShapesEditor.ID, true);
return true;
} catch (PartInitException e) {
e.printStackTrace();
}
return false;
}
class ExampleNullEditorInput extends NullEditorInput{
private String toolTipText;
public ExampleNullEditorInput(String toolTipText) {
this.toolTipText = toolTipText;
}
public String getToolTipText() {
return toolTipText;
}
public void setToolTipText(String toolTipText) {
this.toolTipText = toolTipText;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?