/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.editor.properties;
/**
*
* Abstract common base for {@link WorkflowLabelCommand}s.
*
* @author Marc Stammerjohann
*/
public abstract class AbstractWorkflowLabelCommand extends WorkflowLabelCommand {
private boolean done = false;
public AbstractWorkflowLabelCommand() {
// do nothing
}
@Override
public void initialize() {
// do nothing
}
@Override
public boolean canExecute() {
return !canUndo();
}
@Override
public boolean canUndo() {
return done;
}
@Override
public void execute() {
try {
execute2();
} finally {
done = true;
}
}
protected abstract void execute2();
@Override
public void undo() {
try {
undo2();
} finally {
done = false;
}
}
protected abstract void undo2();
}