Log in Help
Print
Homesaletalksgate-course-may10track-2module-7-creolehands-onsrcmodule7 〉 StatsViewer.java
 
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()); 
  } 
}