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

Reply via email to