package module7; import gate.*; import gate.creole.*; import gate.creole.metadata.CreoleResource; import gate.gui.*; import java.awt.event.*; import java.util.*; import javax.swing.*; @CreoleResource(name = "Cumulative statistics") public class CumulativeStats extends AbstractLanguageAnalyser implements ActionsPublisher { private int totalTokens; public void execute() throws ExecutionException { int tokens = document.getAnnotations().get("Token").size(); document.getFeatures().put("token_count", tokens); totalTokens += tokens; } private List<Action> actions; public List<Action> getActions() { if(actions == null) { actions.add(new AbstractAction("Reset counter") { public void actionPerformed(ActionEvent e) { // reset the totalTokens counter } }); actions.add(new AbstractAction("Show current total") { public void actionPerformed(ActionEvent e) { // show the current value of totalTokens, either to System.out or // using a JOptionPane. For a JOptionPane you can use // MainFrame.getInstance() as the parent component: // JOptionPane.showMessageDialog(MainFrame.getInstance(), "Message") } }); } return actions; } }