Public Methods | |
JavaFuncDialog (Object target, CallableMethod targetMethod) | |
Constructor for calling a target member function directly from a modeless (non-modal) dialog box. More... | |
JavaFuncDialog (Object target, CallableMethod targetMethod, Object user, String userMethodName, boolean modal) | |
Constructor for calling a target member function via a user. More... | |
void | actionPerformed (ActionEvent e) |
Implementation of ActionListener. More... |
The description of the member function is given by the CallableMethod. Optionally, a user Object may be specified.
If (user == null) the method on the target is invoked when the OK button in the dialog box is pressed. If (user != null) the target method is not invoked directly. Instead the userMethod of the user object is called with three parameters: the target Object, the CallableMethod of the target object, and the argument values. The user object then has the responsibility of invoking the target method.
|
Constructor for calling a target member function directly from a modeless (non-modal) dialog box.
00043 { 00044 super(new JFrame(), "JavaFuncDialog", true); 00045 doInit(target, targetMethod, null, ""); 00046 } |
|
Constructor for calling a target member function via a user.
00053 { 00054 super(new JFrame(), "JavaFuncDialog", modal); 00055 doInit(target, targetMethod, user, userMethodName); 00056 } |
|
Implementation of ActionListener.
00062 { 00063 00064 if (e.getSource() == _cancelButton) { 00065 // handleFuncDialogCancel(); 00066 } else { 00067 int nArgs = _method.getNumArgs(); 00068 Object[] argVals = new Object[nArgs]; 00069 int i; 00070 for (i=0 ; i<nArgs ; i++) { 00071 argVals[i] = _argChoice[i].getSelectedVal(); 00072 } 00073 Cursor oldCursor = getCursor(); 00074 Method method = null; 00075 try { 00076 if (_user == null) { 00077 _method.invoke(_target, argVals); 00078 } else { 00079 Class[] userArgClass = new Class[3]; 00080 userArgClass[0] = Object.class; 00081 userArgClass[1] = CallableMethod.class; 00082 userArgClass[2] = argVals.getClass(); 00083 method = _user.getClass().getMethod(_userMethodName, userArgClass); 00084 Object[] userArgsVals = new Object[3]; 00085 userArgsVals[0] = _target; 00086 userArgsVals[1] = _method; 00087 userArgsVals[2] = argVals; 00088 method.invoke(_user, userArgsVals); 00089 } 00090 } catch (Exception ex) { 00091 ErrorStreamArea.println("JavaFuncDialog: " + ex + ", method: " + method); 00092 ex.printStackTrace(); 00093 } 00094 setCursor(oldCursor); 00095 } 00096 setVisible(false); 00097 } |