/**
* Դ�������ƣ�MoveUpAction.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.emf.edit.domain.EditingDomain;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import com.hundsun.ares.studio.jres.metadata.ui.MetadataUI;
import com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataTreeContentProvider;
import com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataViewerUtil;
import com.hundsun.ares.studio.jres.metadata.ui.viewer.UncategorizedItemsCategoryImpl;
import com.hundsun.ares.studio.jres.model.metadata.MetadataCategory;
import com.hundsun.ares.studio.jres.model.metadata.MetadataItem;
import com.hundsun.ares.studio.jres.model.metadata.MetadataPackage;
import com.hundsun.ares.studio.ui.editor.actions.ColumnViewerMoveAction;
/**
* ����
* @author gongyf
*
*/
public class MoveUpAction extends ColumnViewerMoveAction {
/**
* @param viewer
* @param editingDomain
* @param moveUp
*/
public MoveUpAction(ColumnViewer viewer, EditingDomain editingDomain) {
super(viewer, editingDomain, true);
setText("����");
setToolTipText("����");
setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(MetadataUI.PLUGIN_ID, "icons/full/obj16/up.gif"));
setId(IMetadataActionIDConstant.CV_MOVE_UP);
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.actions.ColumnViewerMoveAction#getOwner()
*/
@Override
protected EObject getOwner() {
if (MetadataViewerUtil.isShowCategory(getViewer())) {
MetadataCategory category = MetadataViewerUtil.getSelectedCategory(getViewer(), true);
if (category instanceof UncategorizedItemsCategoryImpl) {
return null;
}
return category;
} else {
return MetadataViewerUtil.getMetadataModel(getViewer());
}
}
protected boolean isShowCategory() {
IContentProvider provider = getViewer().getContentProvider();
if (provider instanceof MetadataTreeContentProvider ) {
return ((MetadataTreeContentProvider) provider).isShowCategory();
}
return false;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.jres.ui.actions.ColumnViewerMoveAction#getReference()
*/
@Override
protected EReference getReference() {
if (MetadataViewerUtil.isShowCategory(getViewer())) {
// �������ƶ����黹���ƶ���Ŀ
List<Object> objects = getSelectedObjects();
if (objects.size() > 0) {
if (objects.get(0) instanceof MetadataItem) {
return MetadataPackage.Literals.METADATA_CATEGORY__ITEMS;
} else if (objects.get(0) instanceof MetadataCategory) {
return MetadataPackage.Literals.METADATA_CATEGORY__CHILDREN;
}
}
} else {
return MetadataPackage.Literals.METADATA_RESOURCE_DATA__ITEMS;
}
return null;
}
}