/*
* This file is part of a hands-on exercise for the third GATE training course,
* Montreal, August/September 2010. It is released under the GNU Lesser
* General Public Licence version 3.0, a copy of which is available at
* http://gate.ac.uk/gate/licence.html
*
* Original code (c) 2010 The University of Sheffield.
*/
package module7;
import javax.swing.*;
import gate.*;
import gate.creole.*;
import gate.creole.metadata.CreoleResource;
import gate.creole.metadata.GuiType;
import gate.event.FeatureMapListener;
@CreoleResource(name="Statistics Viewer",
comment="Shows document statistics",
resourceDisplayed="gate.Document",
guiType=GuiType.LARGE,
mainViewer=true)
public class StatsViewer extends AbstractVisualResource implements FeatureMapListener {
private JTextPane textPane;
private FeatureMap targetFeatures;
@Override
public Resource init() throws ResourceInstantiationException {
textPane = new JTextPane();
add(new JScrollPane(textPane));
return this;
}
@Override
public void setTarget(Object target) {
if(targetFeatures != null) targetFeatures.removeFeatureMapListener(this);
targetFeatures = ((Document)target).getFeatures();
targetFeatures.addFeatureMapListener(this);
featureMapUpdated();
}
public void featureMapUpdated() {
textPane.setText(targetFeatures.toString()+"\n\n");
}
}