package rtt.ui.content.history;
import rtt.core.archive.history.Version;
import rtt.core.manager.data.history.IHistoryManager;
import rtt.core.manager.data.history.OutputDataManager.OutputDataType;
import rtt.ui.content.IContent;
import rtt.ui.content.main.AbstractContent;
import rtt.ui.content.main.ContentIcon;
public class HistoryContent extends AbstractContent {
public enum VersionType {
INPUT("Input data", ContentIcon.INPUT_HISTORY), REFERENCE("Reference data",
ContentIcon.REFERENCE_HISTORY), TEST("Test data",
ContentIcon.TEST_HISTORY);
protected String baseText;
protected ContentIcon icon;
private VersionType(String baseText, ContentIcon icon) {
this.baseText = baseText;
this.icon = icon;
}
}
private VersionType type;
private int childCount;
public HistoryContent(IContent parent, IHistoryManager manager,
VersionType type) {
super(parent);
this.type = type;
this.childCount = 0;
for (Version version : manager.getHistory().getVersion()) {
childs.add(getChild(version, type, manager.getSuiteName(), manager.getCaseName()));
childCount++;
}
}
private IContent getChild(Version version, VersionType type, String suiteName, String caseName) {
switch (type) {
case INPUT:
return new InputVersionContent(this, version, suiteName, caseName);
case REFERENCE:
return new OutputVersionContent(this, version, suiteName, caseName, OutputDataType.REFERENCE);
case TEST:
return new OutputVersionContent(this, version, suiteName, caseName, OutputDataType.TEST);
}
return null;
}
@Override
public String getText() {
return type.baseText + " (" + childCount + ")";
}
@Override
protected ContentIcon getIcon() {
return type.icon;
}
}