01 package jcxCreate.ide;
02
03 import com.bea.ide.control.ControlAttribute;
04 import com.bea.ide.control.EditorSupport;
05 import com.bea.ide.control.ControlMethod;
06 import com.bea.ide.control.ControlBehaviorContext;
07 import com.bea.ide.control.DefaultEditorSupport;
08
09 /*
10 * Represents IDE support for XQuery controls added to a project.
11 * An "editor support" class specifies various "behaviors" within the IDE.
12 * These include what to do when the user double-clicks on control methods,
13 * when the user attempts to add or edit methods and callbacks, and what icon
14 * to display on a method.
15 */
16 public class XQueryEditorSupport extends DefaultEditorSupport
17 {
18 /*
19 * Provides a way for WebLogic Workshop to retrieve the behavior associated
20 * with specified actions in the IDE. Each action has a corresponding
21 * constant in the EditorSupport interface, which is implemented by the
22 * DefaultEditorSupport class this class extends. A ControlBehaviorContext
23 * argument specifies whether the context of the action is a method, attribute,
24 * interface, instance, and so on.
25 */
26 public Object getBehavior(String behavior, ControlBehaviorContext context)
27 {
28 /*
29 * If the user asks to edit a JCX method, return true.
30 */
31 if (behavior.equals(EditorSupport.BEHAVIOR_EDIT_METHOD))
32 {
33 return Boolean.TRUE;
34 }
35 /*
36 * If the user asks to edit a callback, return false. XQuery JCX files do
37 * not support callbacks.
38 */
39 else if (behavior.equals(EditorSupport.BEHAVIOR_EDIT_CALLBACK))
40 {
41 return Boolean.FALSE;
42 }
43 /*
44 * If the user clicks an edit ... in the Property Editor, and if the attribute
45 * corresponding to the ... is expression, return an instance of the expression
46 * edit dialog box.
47 */
48 else if (behavior.equals(EditorSupport.BEHAVIOR_ATTRIBUTE_EDITOR))
49 {
50 if (context instanceof ControlAttribute && ((ControlAttribute)context).getName().equals("expression"))
51 {
52 return new QueryExpressionEditorSimple(((ControlAttribute)context).getValue());
53 }
54 }
55 return super.getBehavior(behavior, context);
56 }
57 }
|