package agg.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import agg.gui.cpa.CriticalPairAnalysis;
import agg.gui.event.EditEventListener;
import agg.gui.event.EditEvent;
import agg.gui.options.OptionGUI;
import agg.gui.ruleappl.ApplicabilityRuleSequence;
import agg.gui.termination.TerminationAnalysis;
import agg.gui.treeview.GraGraTreeView;
/**
* The class creates an AGG analizer.
*
* @author $Author: olga $
* @version $ID
*/
public class AGGAnalyzer implements EditEventListener {
/** Creates a new instance of the AGG analysis */
public AGGAnalyzer(AGGAppl appl, GraGraTreeView tree) {
this.parent = appl;
// this.treeView = tree;
this.menus = new Vector<JMenu>(1);
this.menu = new JMenu("Analyzer", true);
this.menu.setMnemonic('A');
this.menus.addElement(this.menu);
}
public void addCriticalPairAnalysis(CriticalPairAnalysis cpa) {
this.criticalPairAnalysis = cpa;
for (Enumeration<JMenu> e = cpa.getMenus(); e.hasMoreElements();) {
this.menu.add(e.nextElement());
}
this.menu.addSeparator();
}
public void addApplicabilityRuleSequence(ApplicabilityRuleSequence applRuleSeq) {
this.applRuleSequence = applRuleSeq;
for (Enumeration<JMenu> e = this.applRuleSequence.getMenus(); e.hasMoreElements();) {
this.menu.add(e.nextElement());
}
this.menu.addSeparator();
}
public void addConstraints(AGGConstraints constraints) {
this.aggConstraints = constraints;
for (Enumeration<JMenu> e = constraints.getMenus(); e.hasMoreElements();) {
this.menu.add(e.nextElement());
}
this.menu.addSeparator();
}
public void addTerminationAnalysis(TerminationAnalysis term) {
this.termination = term;
this.menu.add(term.getMenuItem());
this.menu.addSeparator();
}
public void addCPAOptions() {
cpaOoptions = new JMenuItem("CPA Options...");
cpaOoptions.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (parent != null)
parent.getPreferences().showOptionGUI(OptionGUI.CRITICAL_PAIRS);
}
});
this.menu.add(cpaOoptions);
}
public Enumeration<JMenu> getMenus() {
return this.menus.elements();
}
public CriticalPairAnalysis getCriticalPairAnalysis() {
return this.criticalPairAnalysis;
}
public AGGConstraints getConstraints() {
return this.aggConstraints;
}
public TerminationAnalysis getTerminationAnalysis() {
return this.termination;
}
public void editEventOccurred(EditEvent e) {
if (e.getMsg() == EditEvent.MENU_KEY)
if (e.getMessage().equals("Analyzer"))
this.menu.doClick();
}
private CriticalPairAnalysis criticalPairAnalysis;
private ApplicabilityRuleSequence applRuleSequence;
private AGGConstraints aggConstraints;
private TerminationAnalysis termination;
private final JMenu menu;
private JMenuItem cpaOoptions;
private final Vector<JMenu> menus;
// private final GraGraTreeView treeView;
private final agg.gui.AGGAppl parent;
}