source: trunk/greenstone3-extensions/vishnu/src/vishnu/testvis/treemap/visual/NavigatorPanel.java@ 8189

Last change on this file since 8189 was 8189, checked in by kjdon, 20 years ago

first version of Imperial College's Visualiser code

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 6.4 KB
Line 
1/**
2 * @(#)NavigatorPanel.java 12/12/99
3 * @author Peter Au
4 * All rights reserved.
5 */
6
7package vishnu.testvis.treemap.visual;
8
9import vishnu.testvis.visual.Vishnu;
10import vishnu.testvis.object.ClusterObj;
11import vishnu.testvis.object.DataManager;
12import vishnu.testvis.treemap.table.*;
13import java.awt.*;
14import java.awt.event.*;
15import javax.swing.*;
16import javax.swing.event.*;
17import java.util.Vector;
18
19
20public class NavigatorPanel extends JComponent
21{
22 private JTable _table;
23 private JButton _showAllButton, _refineButton;
24 private JEditorPane _display;
25 private TMNavigator _outerFrame;
26 private ClusterObj _cObj;
27//public String _codeBase;
28
29 private RW_DataModel _dataModel; //-- this is created within this class
30
31
32 public NavigatorPanel(JTable t, /*JButton b1,*/ JButton b2,
33 JEditorPane d, TMNavigator f)
34 {
35 _table = t;
36 /*_showAllButton = b1;
37 _showAllButton.setActionCommand("showAllDoc");
38 _showAllButton.setToolTipText("show ALL documents within the selected cluster");
39 _showAllButton.addActionListener(new ButtonHandler());*/
40
41 _refineButton = b2;
42 _refineButton.setActionCommand("refineDoc");
43 _refineButton.setToolTipText("show documents with any of the selected related-words");
44 _refineButton.addActionListener(new ButtonHandler());
45
46 _display = d;
47 _outerFrame = f;
48
49 _display.addHyperlinkListener(new HyperlinkListener() {
50 public void hyperlinkUpdate(HyperlinkEvent e)
51 {
52 // Handle clicks; ignore mouseovers and other link-related events
53 if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
54 {
55 // Get the HREF of the link and display it.
56 String hpresult = e.getDescription();
57 int index = Integer.parseInt(hpresult);
58 System.out.println("hyperlink result: " + index);
59 if (index > 0)
60 _outerFrame._displayFrame.dataManager.fetchDocNo(index);
61 }
62 }
63 });
64 _dataModel = new RW_DataModel();
65 _table.setModel(_dataModel);
66
67
68
69 _cObj = null;
70 unableButtons();
71 setupRenderer();
72 }
73
74 private void unableButtons()
75 {
76 //_showAllButton.setEnabled(false);
77 _refineButton.setEnabled(false);
78 }
79 private void enableButtons()
80 {
81 //_showAllButton.setEnabled(true);
82 _refineButton.setEnabled(true);
83 }
84
85 public void clear()
86 {
87 _cObj = null;
88 _dataModel.clear();
89 _display.setText("");
90 unableButtons();
91 }
92
93
94
95 public void setData(String[] rw, ClusterObj c)
96 {
97 _cObj = c;
98 _dataModel.setData(rw, _cObj);
99 enableButtons();
100 setupRenderer();
101 }
102
103
104 private void setupRenderer()
105 {
106 BarRenderer bar = new BarRenderer();
107 //-- Have a number painted in the middle of the bar
108 bar.setStringPainted(true);
109 //-- setup the background color of the bar
110 bar.setBackground(_table.getBackground());
111
112 //-- render the last column as a bar
113 _table.getColumnModel().getColumn(2).setCellRenderer(bar);
114 }
115
116 public void showDocuments()
117 {
118 if( _cObj != null )
119 {
120 _display.setText(_cObj.formatDocs());
121 }
122 }
123
124
125 class ButtonHandler implements ActionListener
126 {
127 public void actionPerformed(ActionEvent event)
128 {
129 if (_cObj!=null)
130 {
131 String action = event.getActionCommand();
132 if (action.equals("showAllDoc"))
133 {
134 _outerFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
135 _display.setText(_cObj.formatDocs());
136 _outerFrame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
137 }
138 else if (action.equals("refineDoc"))
139 {
140 _outerFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
141 _display.setText( _dataModel.getRefinedDocs() );
142 _outerFrame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
143
144 _outerFrame._displayFrame.log.startsection("FILTERING");
145
146 String trec_id[] = _dataModel.getRefinedTrecIDs();
147 String filter_Words[] = _dataModel.getFilterWords();
148 String s = new String("");
149 for( int i = 0; i < filter_Words.length; i++ )
150 {
151 s += filter_Words[i] + " ";
152 }
153
154 _outerFrame._displayFrame.log.log("FILTER_WORDS",s);
155 _outerFrame._displayFrame.log.log("FILTERED_DOCS",Integer.toString(trec_id.length));
156
157 Vector performance = _outerFrame._displayFrame.queries.getPerformance(_outerFrame._displayFrame.query, trec_id);
158
159 _outerFrame._displayFrame.log.startsection("PERFORMANCE");
160
161 if( performance.size() > 0 )
162 {
163 Integer relvTotal = (Integer)performance.elementAt(performance.size()-2);
164 Integer relvRetr = (Integer)performance.elementAt(performance.size()-1);
165 _outerFrame._displayFrame.log.log("RELEVANT_TOTAL",Integer.toString(relvTotal.intValue()));
166 _outerFrame._displayFrame.log.log("RELEVANT_RETRIEVED",Integer.toString(relvRetr.intValue()));
167 for( int i = 0; i < performance.size()-2; i++ )
168 {
169 Integer perf = (Integer)performance.elementAt(i);
170 String str = "PRECISION_" + Integer.toString((i+1)*10);
171 _outerFrame._displayFrame.log.log(str,Integer.toString(perf.intValue()));
172 }
173 }
174 else
175 {
176 _outerFrame._displayFrame.log.log("INFO","No relevance data available");
177 }
178
179 _outerFrame._displayFrame.log.endsection("PERFORMANCE");
180 _outerFrame._displayFrame.log.endsection("FILTERING");
181
182 }
183 }
184 }
185 } //-- end ButtonHandler
186
187
188
189}
Note: See TracBrowser for help on using the repository browser.