blob: e72b1f6c6d996a8c963a3fe7ea3d9e093b4bf297 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.common.tests.ui.manager;
import java.util.Vector;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.wst.common.environment.ILog;
import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
public abstract class BaseOperation extends AbstractDataModelOperation {
public static Vector resultList;
public static Vector undoList;
private IStatus status;
private boolean checkModels;
private boolean modelsOK = false;
public BaseOperation() {
super();
}
public void setStatus(IStatus status) {
this.status = status;
}
public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
resultList.add(getID());
getDataModel().setProperty("executedOps", resultList);
getDataModel().setProperty("executedUndoOps", undoList);
if (checkModels)
modelsOK = checkModels();
getEnvironment().getLog().log(ILog.OK, 1234, this, "BaseOperation", (Throwable) null); //$NON-NLS-1$
return status;
}
public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
return Status.OK_STATUS;
}
public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
resultList.remove(resultList.size() - 1);
undoList.add(getID());
return Status.OK_STATUS;
}
public void setCheckModels(boolean checkModels) {
this.checkModels = checkModels;
}
public boolean getModelsOK() {
return modelsOK;
}
private boolean checkModels() {
IDataModel model = getDataModel();
boolean containsModel1 = model.isNestedModel("testprovider1");
boolean containsModel2 = model.isNestedModel("testprovider2");
boolean prop1 = model.isPropertySet("provider1Prop1");
boolean prop2 = model.isPropertySet("provider1Prop2");
boolean prop3 = model.isPropertySet("provider1Prop3");
boolean prop4 = model.isPropertySet("provider1Prop4");
boolean prop5 = model.isPropertySet("provider2Prop1");
boolean prop6 = model.isPropertySet("provider2Prop2");
boolean prop7 = model.isPropertySet("provider2Prop3");
boolean prop8 = model.isPropertySet("provider2Prop4");
boolean value1 = model.getProperty("provider1Prop1").equals("11");
boolean value2 = model.getProperty("provider1Prop2").equals("22");
boolean value3 = model.getProperty("provider1Prop3").equals("33");
boolean value4 = model.getProperty("provider1Prop4").equals("44");
boolean value5 = model.getProperty("provider2Prop1").equals("1111");
boolean value6 = model.getProperty("provider2Prop2").equals("2222");
boolean value7 = model.getProperty("provider2Prop3").equals("3333");
boolean value8 = model.getProperty("provider2Prop4").equals("4444");
return containsModel1 && containsModel2 && prop1 && prop2 && prop3 && prop4 && prop5 && prop6 && prop7 && prop8 && value1 && value2 && value3 && value4 && value5 && value6 && value7 && value8;
}
}