Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
MainFrameBeanInfo.java
import java.beans.*; |
import java.lang.reflect.*; |
public class MainFrameBeanInfo extends SimpleBeanInfo |
{ |
/** |
* A method descriptor used by AppleScript for Java's introspector to generate the aete |
* This descriptor describes the parameters and method to be published in the aete and |
* overrides the default generated values |
*/ |
public MethodDescriptor[] getMethodDescriptors() |
{ |
MethodDescriptor md[] = new MethodDescriptor[1]; // the method descriptor provides |
// extra information to the introspector |
try |
{ |
/** Creating a parameter descriptor allows you to specify a formal name in the terminology |
* for the paramter(s) of a method. In this instance, you will be able to write: |
* |
* ask Oracle of <object> question "Whatever" |
* |
* instead of: |
* |
* ask Oracle of <object> parameters { "Whatever" } |
* |
*/ |
ParameterDescriptor[] pd = new ParameterDescriptor[1]; |
pd[0] = new ParameterDescriptor(); |
pd[0].setShortDescription( "Question to ask of the oracle." ); |
pd[0].setName( "question" ); |
md[0] = new MethodDescriptor( getMethod( MainFrame.class, "askMystic" ), pd) ; |
md[0].setShortDescription( "Ask the Oracle a yes/no question and receive a response." ); |
return md; |
} |
catch ( IntrospectionException e ) |
{ |
e.printStackTrace(); |
} |
return null; |
} |
/** |
* getMethod is called by the introspector to return a list of methods in the class |
*/ |
Method getMethod( Class c, String methodName ) throws IntrospectionException |
{ |
Method methods[] = c.getMethods(); |
for ( int i = 0; i < methods.length; i++ ) |
{ |
if ( methods[i].getName().equals( methodName )) |
{ |
return methods[i]; |
} |
} |
throw new IntrospectionException( "No such method \"" + methodName + "\"" ); |
} |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-07-22