package jas.util;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Method;
public class CommandDispatcher implements ActionListener
{
public CommandDispatcher(Object p)
{
parent = p;
}
public void actionPerformed(ActionEvent evt)
{
String command = evt.getActionCommand();
if (command.endsWith("...")) command = command.substring(0,command.length()-3);
for (int i=command.indexOf(" "); i >= 0; i=command.indexOf(" "))
command = command.substring(0,i)+command.substring(i+1);
try
{
Class target = parent.getClass();
Class[] noarg = new Class[0];
Method dispatcher = target.getMethod("on"+command,noarg);
dispatcher.invoke(parent,null);
}
catch (Exception e)
{
System.out.println("Exception "+e+" dispatching command: "+command);
}
}
protected void invoke(Object target,Method method,Object[] args)
{
}
private Object parent;
}