/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.execute;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.TableColumn;
/**
* Listener for sorting the table in the WorkflowExecutionWizard.
*
* @author Goekhan Guerkan
*/
public class TableSortSelectionListener implements SelectionListener {
/**
* Constant to check which column was clicked.
*/
public static final String COLUMN_NAME = "COLUMN_NAME";
/**
* Constant to check which column was clicked.
*/
public static final String COLUMN_INSTANCE = "COLUMN_INSTANCE";
private TableViewer viewer;
private TableColumn column;
private int currentDirection;
private TableBehaviour updaterTable;
public TableSortSelectionListener(TableViewer viewer, TableColumn column, int startDirection) {
this.currentDirection = startDirection;
this.viewer = viewer;
this.column = column;
this.column.addSelectionListener((SelectionListener) this);
}
private void setSortDirection() {
currentDirection = viewer.getTable().getSortDirection();
if (currentDirection == SWT.UP) {
viewer.getTable().setSortDirection(SWT.DOWN);
} else {
viewer.getTable().setSortDirection(SWT.UP);
}
}
@Override
public void widgetSelected(SelectionEvent e) {
updaterTable.saveIndexOfComboBeforeRefresh();
viewer.getTable().setSortColumn(column);
updaterTable.disposeWidgets();
if (column.getData().equals(COLUMN_INSTANCE)) {
viewer.setContentProvider(new WorkflowDescriptionContentProvider(currentDirection, COLUMN_INSTANCE));
updaterTable.setCurrentlyUsedSortingColumn(2);
} else {
viewer.setContentProvider(new WorkflowDescriptionContentProvider(currentDirection, COLUMN_NAME));
updaterTable.setCurrentlyUsedSortingColumn(1);
}
updaterTable.disposeWidgets();
viewer.refresh();
updaterTable.checkifAllClicked();
updaterTable.checkIfDisableMasterBtn();
updaterTable.setSavedComboIndex();
setSortDirection();
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
this.widgetSelected(e);
}
public void setUpdaterTable(TableBehaviour updaterTable) {
this.updaterTable = updaterTable;
}
}