/* * JavaXYQ Engine * * javaxyq@2008 all rights. * http://www.javaxyq.com */ package com.javaxyq.event; /** * @author ����ΰ * @history 2008-6-9 ����ΰ �½� */ public class ActionEvent extends java.awt.event.ActionEvent { // private long when; private static final long serialVersionUID = 3465242220868670205L; private Object[] arguments; private String command; public ActionEvent(Object source, String command, Object[] args) { super(source, java.awt.event.ActionEvent.ACTION_PERFORMED, command, 0, 0); if (args == null) { args = new Object[] {}; } this.command = command; this.arguments = args; } // public ActionEvent(Object source,Object ... args) { // // } public ActionEvent(Object source, String command) { super(source, java.awt.event.ActionEvent.ACTION_PERFORMED, command, 0, 0); String[] strs = command.split(" "); this.command = strs[0]; if(strs.length > 1) { this.arguments = new String[strs.length-1]; for (int i = 0; i < strs.length-1; i++) { this.arguments[i] = strs[i+1]; } } } /** * @param evt */ public ActionEvent(java.awt.event.ActionEvent evt) { super(evt.getSource(), java.awt.event.ActionEvent.ACTION_PERFORMED, evt.getActionCommand()); String command = evt.getActionCommand(); String[] strs = command.split(" "); this.command = strs[0]; if(strs.length > 1) { this.arguments = new String[strs.length-1]; for (int i = 0; i < strs.length-1; i++) { this.arguments[i] = strs[i+1]; } } } public String getCommand() { return this.command; } public Object[] getArguments() { return arguments; } public Object getArgument(int i) { if (arguments == null || i < 0 || arguments.length < i) { return null; } return arguments[i]; } public String getArgumentAsString(int i) { if (arguments == null || i < 0 || arguments.length < i) { return null; } return (String) arguments[i]; } public int getArgumentAsInt(int i) { if (arguments == null || i < 0 || arguments.length <= i) { return 0; } if (arguments[i] instanceof Integer) { Integer val = (Integer) arguments[i]; return val; } try { return Integer.parseInt((String) arguments[i]); } catch (Exception e) { return 0; } } @Override public boolean isConsumed() { return super.isConsumed(); } @Override public void consume() { super.consume(); } }