/**
* @version $Id: ExtractCooccurrenceTableSorter.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $
*
* 2013/02/18 16:31:27
* @author s.takuro
*
* Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved.
*/
package com.tida_okinawa.corona.ui.editors.extract;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
/**
* @author s.takuro
*
*/
public class ExtractCooccurrenceTableSorter extends ViewerSorter {
private int sortOrder = 1;
private int pos = -1;
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
if (pos == -1) {
return 0;
}
/* パターンの種類のカラム選択時 */
else if (pos == 0) {
String value1 = ((ExtractCooccurrenceElement) e1).getPatternType();
String value2 = ((ExtractCooccurrenceElement) e2).getPatternType();
return value1.compareTo(value2) * sortOrder;
}
/* 出現回数のカラム選択時 */
else if (pos == 1) {
int integer1 = Integer.parseInt(((ExtractCooccurrenceElement) e1).getTerm(pos - 1));
int integer2 = Integer.parseInt(((ExtractCooccurrenceElement) e2).getTerm(pos - 1));
return (integer1 - integer2) * sortOrder;
}
/* 単語のカラム選択時 */
else {
String value1 = ((ExtractCooccurrenceElement) e1).getTerm(pos - 1);
String value2 = ((ExtractCooccurrenceElement) e2).getTerm(pos - 1);
return value1.compareTo(value2) * sortOrder;
}
}
/**
* ソート順を逆転する
*/
public void changeSortMode() {
this.sortOrder *= -1;
}
/**
* カラムの位置を設定する
*
* @param pos
* カラムの位置
*/
public void setPos(int pos) {
this.pos = pos;
}
}