/** * <p>Copyright: Copyright 2010</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.control.deprecated; import java.util.List; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.operations.AbstractOperation; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; /** * �ɳ��������ı������item���� * @author maxh * */ public class TableAddItemOperation extends AbstractOperation { TableViewerExComponent tableComponent; List addItems; int startIndex; public TableAddItemOperation(String label,TableViewerExComponent tableComponent,List addItems,int startIndex) { super(label); this.tableComponent = tableComponent; this.addItems = addItems; this.startIndex = startIndex; } @Override public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { if(tableComponent != null && addItems != null){ if(tableComponent.getInput() instanceof List){ ((List)tableComponent.getInput()).addAll(startIndex, addItems); tableComponent.getViewer().refresh(); return Status.OK_STATUS; } } return Status.CANCEL_STATUS; } @Override public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { // TODO Auto-generated method stub return execute(monitor, info); } @Override public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { if(tableComponent.getInput() instanceof List){ for(int i = 0;i < addItems.size();i++){ ((List)tableComponent.getInput()).remove(startIndex); } tableComponent.getViewer().refresh(); return Status.OK_STATUS; } return Status.CANCEL_STATUS; } }