/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.execute;
import java.util.Comparator;
import org.eclipse.swt.SWT;
import de.rcenvironment.core.component.workflow.model.api.WorkflowNode;
/**
* Helper class providing a Comparator to sort a given attribute in both ways. Used when setting up the content for the table.
* {@link WorkflowDescriptionContentProvider}.
*
* @author Goekhan Guerkan
*/
public class ComperatorHelper implements Comparator<WorkflowNode> {
private int direction = SWT.UP;
private String compareAttribute;
public ComperatorHelper(int direction, String compareAttribute) {
this.direction = direction;
this.compareAttribute = compareAttribute;
}
@Override
public int compare(WorkflowNode node1, WorkflowNode node2) {
if (compareAttribute.equals(TableSortSelectionListener.COLUMN_NAME)) {
String compname1 = node1.getName();
String compname2 = node2.getName();
if (direction == SWT.UP) {
return compname1.compareTo(compname2);
} else {
return compname2.compareTo(compname1);
}
} else if (compareAttribute.equals(TableSortSelectionListener.COLUMN_INSTANCE)) {
String compname1 = node1.getComponentDescription().getNode().toString();
String compname2 = node2.getComponentDescription().getNode().toString();
if (direction == SWT.UP) {
return compname1.compareTo(compname2);
} else {
return compname2.compareTo(compname1);
}
} else {
// this should never happen
return 0;
}
}
}