Revision: 18976
http://sourceforge.net/p/gate/code/18976
Author: adamfunk
Date: 2015-10-29 15:16:00 +0000 (Thu, 29 Oct 2015)
Log Message:
-----------
Fixed numeric column sorting in the GUI
Modified Paths:
--------------
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankTableModel.java
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
Modified:
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankTableModel.java
===================================================================
---
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankTableModel.java
2015-10-29 09:42:12 UTC (rev 18975)
+++
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankTableModel.java
2015-10-29 15:16:00 UTC (rev 18976)
@@ -17,8 +17,10 @@
import gate.termraider.util.TermComparator;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableRowSorter;
public class TermbankTableModel extends AbstractTableModel {
@@ -80,4 +82,29 @@
return this.scoreTypes.get(col - 1).toString();
}
+
+ public void setComparators(TableRowSorter<TermbankTableModel> sorter) {
+ Comparator<Number> numberComparator = new NumberComparator();
+ for (int i = 1 ; i < this.getColumnCount() ; i++ ) {
+ sorter.setComparator(i, numberComparator);
+ }
+ }
+
+
}
+
+
+class NumberComparator implements Comparator<Number> {
+
+ @Override
+ public int compare(Number o1, Number o2) {
+ if (o1.doubleValue() == o2.doubleValue()) {
+ return 0;
+ }
+ if (o1.doubleValue() < o2.doubleValue()) {
+ return -1;
+ }
+ return 1;
+ }
+
+}
Modified:
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
===================================================================
--- gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
2015-10-29 09:42:12 UTC (rev 18975)
+++ gate/trunk/plugins/TermRaider/src/gate/termraider/gui/TermbankViewer.java
2015-10-29 15:16:00 UTC (rev 18976)
@@ -56,6 +56,7 @@
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableRowSorter;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import org.xhtmlrenderer.simple.XHTMLPanel;
@@ -154,7 +155,8 @@
controlPanel.repaint();
termbankTable = new JTable();
- termbankTable.setAutoCreateRowSorter(true);
+ // The auto thing may interfere with the manual one
+ termbankTable.setAutoCreateRowSorter(false);
// Set the table model later, because the specific type of termbank
// will determine the number of columns
freqScrollPane = new JScrollPane(termbankTable,
@@ -293,6 +295,10 @@
sliderPanel.reformat();
termbankTableModel = new TermbankTableModel(this.termbank);
termbankTable.setModel(termbankTableModel);
+ TableRowSorter<TermbankTableModel> sorter = new
TableRowSorter<TermbankTableModel>(termbankTableModel);
+ termbankTableModel.setComparators(sorter);
+ // above calls sorter.setComparator(column, comparator) on all Number
columns
+ termbankTable.setRowSorter(sorter);
miscTable.setModel(new MiscTableModel(termbank.getMiscDataForGui()));
}
@@ -460,3 +466,5 @@
}
}
+
+
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs