changelayoutaction.java

来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 48 行

JAVA
48
字号
package net.sf.freenote.mindmap;

import net.sf.freenote.FreeNoteConstants;
import net.sf.freenote.commands.ModelPropertyCommand;
import net.sf.freenote.mindmap.model.BranchShape;

import org.eclipse.gef.ui.actions.SelectionAction;
import org.eclipse.ui.IWorkbenchPart;

/**
 * 更换mm的布局,支持
 * 1.星形
 * 2.横向
 * 3.竖向
 * @author levin
 * @since 2008-2-24 下午10:20:23
 */
public class ChangeLayoutAction extends SelectionAction {
	private String layout;
	public ChangeLayoutAction(IWorkbenchPart part,String layout) {
		super(part);
		this.layout=layout;
		setText(layout);
		setToolTipText("调整布局样式为"+layout);
		setId(FreeNoteConstants.CHANGE_LAYOUT_ACTION+"."+layout);
	}

	@Override
	protected boolean calculateEnabled() {
		if (getSelectedObjects().size() == 1 && getSelectedObjects().get(0) instanceof BranchEditPart) {
			return true;
		}
		return false;
	}

	@Override
	public void run() {
		BranchEditPart part=(BranchEditPart) getSelectedObjects().get(0);
		BranchShape shape=part.getCastedModel();
		int style=2;
		if(layout.equals(FreeNoteConstants.LAYOUT_HANGING))
			style=1;
		else if(layout.equals(FreeNoteConstants.LAYOUT_STAR))
			style=3;
		getCommandStack().execute(new ModelPropertyCommand(shape,style,FreeNoteConstants.STYLE_PROP));
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?