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(); } @Override public void featureMapUpdated() { textPane.setText(targetFeatures.toString()); } }