001    package nl.cwi.sen1.util;
002    
003    import java.awt.event.ActionEvent;
004    
005    import javax.swing.AbstractAction;
006    
007    import nl.cwi.sen1.configapi.Factory;
008    import nl.cwi.sen1.configapi.types.Event;
009    import toolbus.AbstractTool;
010    import aterm.ATerm;
011    import aterm.pure.PureFactory;
012    
013    public class MenuAction extends AbstractAction {
014            private final Factory factory;
015            private final ATerm id;
016            private final AbstractTool bridge;
017            private final Event event;
018            
019            public MenuAction(ATerm id, AbstractTool bridge, Event event)  {
020                    super(event.toTerm().toString());
021                    this.factory = Factory.getInstance((PureFactory) id.getFactory());
022                    this.bridge = bridge;
023                    this.id = id;
024                    this.event = event;
025            }
026            
027            public void actionPerformed(ActionEvent e) {
028            ATerm event = factory.getPureFactory().make(
029                    "menu-event(<term>,<term>)", id, this.event.toTerm());
030            bridge.postEvent(event);
031        }
032    }