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