Revision: 17374
http://sourceforge.net/p/gate/code/17374
Author: adamfunk
Date: 2014-02-20 16:37:15 +0000 (Thu, 20 Feb 2014)
Log Message:
-----------
More debugging info for later, although the tables themselves need a little
debugging.
Modified Paths:
--------------
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
Modified:
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
===================================================================
---
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
2014-02-20 16:20:31 UTC (rev 17373)
+++
gate/trunk/plugins/TermRaider/src/gate/termraider/gui/DocumentFrequencyViewer.java
2014-02-20 16:37:15 UTC (rev 17374)
@@ -23,6 +23,7 @@
import java.util.*;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
@@ -42,9 +43,10 @@
private JScrollPane freqScrollPane;
private DocumentFrequencyBank dfb;
- private JTable freqTable;
+ private JTable freqTable, typeTable, langTable;
private JTabbedPane tabbedPane;
private DFTableModel freqTableModel;
+ private ListTableModel typeTableModel, langTableModel;
private JTextField docsField;
@Override
@@ -57,11 +59,11 @@
private void initGuiComponents() {
setLayout(new BorderLayout());
tabbedPane = new JTabbedPane();
- JPanel tableTab = new JPanel(new BorderLayout());
- tabbedPane.addTab("Document Frequency", tableTab);
+ JPanel dfTab = new JPanel(new BorderLayout());
+ tabbedPane.addTab("Document frequencies", dfTab);
docsField = new JTextField("...");
- tableTab.add(docsField, BorderLayout.NORTH);
+ dfTab.add(docsField, BorderLayout.NORTH);
freqTableModel = new DFTableModel();
freqTable = new JTable(freqTableModel);
@@ -69,19 +71,39 @@
freqScrollPane = new JScrollPane(freqTable,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- tableTab.add(freqScrollPane, BorderLayout.CENTER);
+ dfTab.add(freqScrollPane, BorderLayout.CENTER);
+ JSplitPane listsTab = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
+ typeTableModel = new ListTableModel("Term annotation types");
+ typeTable = new JTable(typeTableModel);
+ langTableModel = new ListTableModel("Language codes");
+ langTable = new JTable(langTableModel);
+ listsTab.setLeftComponent(typeTable);
+ listsTab.setRightComponent(langTable);
+ tabbedPane.addTab("Types and languages", listsTab);
+
+ // TODO
+ // wrap each table in a pane with optional scrolling
+ /*
+ termTable.setAutoCreateRowSorter(true);
+ pairTable.setAutoCreateRowSorter(true);
+ termPane = new JScrollPane(termTable,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ pairPane = new JScrollPane(pairTable,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ splitPane.setLeftComponent(termPane);
+ splitPane.setRightComponent(pairPane);
+
+ */
+
this.add(tabbedPane, BorderLayout.CENTER);
tabbedPane.validate();
tabbedPane.repaint();
}
- private void setDocsField() {
- docsField.setText("Doc count = " + this.dfb.getTotalDocs());
- }
-
-
public void processFinished() {
setTarget(dfb);
}
@@ -97,14 +119,17 @@
}
dfb = (DocumentFrequencyBank) target;
- setDocsField();
+ docsField.setText("Doc count = " + this.dfb.getTotalDocs());
freqTableModel.setBank(this.dfb);
+ typeTableModel.setList(dfb.getTypes());
+ langTableModel.setList(dfb.getLanguages());
}
}
class DFTableModel extends AbstractTableModel {
- private static final long serialVersionUID = -7654670667296912991L;
+ private static final long serialVersionUID = 7536874522584055763L;
+
private List<Term> terms;
private String[] columnNames = {"term", "doc frequency"};
private Map<Term, Integer> docFrequencies;
@@ -153,3 +178,42 @@
}
}
+
+
+
+class ListTableModel extends AbstractTableModel {
+ private static final long serialVersionUID = 8277085631925984080L;
+
+ private List<String> strings;
+ private String heading;
+
+ public ListTableModel(String heading) {
+ this.heading = heading;
+ }
+
+ public void setList(Collection<String> strings) {
+ this.strings = new ArrayList<String>(strings);
+ Collections.sort(this.strings);
+ }
+
+ public int getColumnCount() {
+ return 1;
+ }
+
+ public int getRowCount() {
+ return this.strings.size();
+ }
+
+ public Object getValueAt(int row, int col) {
+ return this.strings.get(row);
+ }
+
+ public Class<?> getColumnClass(int col) {
+ return String.class;
+ }
+
+ public String getColumnName(int col) {
+ return heading;
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs