/** * Դ�������ƣ�CopyAction.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui * ����˵����Ԫ�����û��༭��UIչ����ع��� * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.metadata.ui.actions; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.jface.viewers.ColumnViewer; import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerCopyAction; /** * ���� * @author gongyf * */ public class CopyAction extends ColumnViewerCopyAction { /* * DESIGN#����ճ��#��Ҷ��#����#�����#ʵ�ֱ༭���ĸ���ճ�� * * ���и���ճ�������ColumnVewerͨ�õ� * ��Ҫ��2��Transfer��һ�����ڲ��ģ�����ֱ�ӷ����ڴ����Ҳ����EObject����EObject����Ӧ���Ǹ��� * Ҫ��ֹ������һ������û��ճ��������£��������������޸ģ�������ճ����Ķ����Ǹ���ʱ��״̬ * Ҳ���Ǹ����ǶԶ������һ������ * * ���û����ⲿճ����ʱ��Ӧ�ÿ���ճ�����������һ�У�ÿ����tab�ָ����ַ��� * ��Ҫʹ��TextTransfer * */ /** * @param viewer */ public CopyAction(ColumnViewer viewer) { super(viewer); } // ����ͬʱ���Ʒ����Item protected boolean calculateEnabled() { List<EObject> objects = getSelectedObjects(); return !objects.isEmpty() && isSameConainer(objects); } /** * �ж��Ƿ���һ��������һ�������� * @param eObjs * @return */ boolean isSameConainer(List<EObject> eObjs) { EObject contaier = eObjs.get(0).eContainer(); EReference reference = eObjs.get(0).eContainmentFeature(); for (EObject eObject : eObjs) { if (eObject.eContainer() != contaier || eObject.eContainmentFeature() != reference) { return false; } } return true; } }