pastetemplateaction.java

来自「一个eclipse插件源代码。用于web开发」· Java 代码 · 共 95 行

JAVA
95
字号
/*
 * $Header: /home/cvs/WEBPUMP2.0/WebPumpIDE_Src/WebPumpIDE/src/com/webpump/ui/gefmodule/action/PasteTemplateAction.java,v 1.1.1.1 2004/07/01 09:07:46 wang_j Exp $
 * $Revision: 1.1.1.1 $
 * $Date: 2004/07/01 09:07:46 $
 *
 * ====================================================================
 *
 * The NanJing HopeRun(IT-FOREST) Software License, Version 2.0.0
 *
 * Copyright 2003-2004 by NanJing HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and
 *                        IT Forest Corporation
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of
 * HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
 * You shall not disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into with
 * HopeRun(IT-FOREST) Information System Co., Ltd, CHINA and IT Forest Corporation.
 */
 
package com.webpump.ui.gefmodule.action;

import org.eclipse.ui.IWorkbenchPart;

import org.eclipse.draw2d.geometry.Point;

import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.CompoundCommand;
import org.eclipse.gef.requests.CreateRequest;
import org.eclipse.gef.requests.CreationFactory;
import org.eclipse.gef.ui.actions.*;

import com.webpump.ui.gefmodule.ModuleEditor;
import com.webpump.ui.gefmodule.command.AddCommand;
import com.webpump.ui.gefmodule.edit.ModuleEditPart;
import com.webpump.ui.gefmodule.model.ModelSubpart;
import com.webpump.ui.gefmodule.model.Module;
import com.webpump.ui.gefmodule.model.Page;
import com.webpump.ui.gefmodule.model.Task;
import com.webpump.ui.gefmodule.util.DataTransfer;
import com.webpump.ui.perspective.MacroResource;
import com.webpump.ui.perspective.WebpumpIDEPlugin;

/**
 * Class for PasteTemplateAction
 * 
 * @author shi_l
 * @version 2.0.0 2004-5-30
 */
public abstract class PasteTemplateAction extends SelectionAction {

	/**create request*/
	private CreateRequest request;
	
	/**times of paste*/
	public static int TIMES = 1;

	/**
	 * Constructor for PasteTemplateAction.
	 * @param editor
	 */
	public PasteTemplateAction(IWorkbenchPart editor) {
		super(editor);
		setToolTipText(WebpumpIDEPlugin.getResourceString(MacroResource.GEF_MODULE_ACTION_PASTE));
	}

	/**
	 * Returns <code>true</code> if the {@link Clipboard clipboard's} contents are not
	 * <code>null</code> and the command returned by {@link #createPasteCommand()} can
	 * execute.
	 */
	protected boolean calculateEnabled() {
		Command command = createPasteCommand();
		return getClipboardContents() != null && command != null && command.canExecute();
	}

	/**
	 * Creates and returns a command (which may be <code>null</code>) to create a new EditPart
	 * based on the template on the clipboard.
	 * @return the paste command
	 */
	protected Command createPasteCommand() {
		//当前位置不能粘贴或者剪贴板中没有内容
		if (getSelectedObjects() == null
			|| getSelectedObjects().isEmpty()
			|| getClipboardContents() == null)
			return null;

		//当前焦点在编辑器上
		if (getSelectedObjects().get(0) instanceof ModuleEditPart) {
			CompoundCommand cc = new CompoundCommand();
			Object obj = getClipboardContents();
			if (obj instanceof Object[]) {
				for (int i = 0; i < ((Object[]) obj).length; i++) {
					//页面对

⌨️ 快捷键说明

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