[jbosstools-commits] JBoss Tools SVN: r30561 - in trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui: commands and 2 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Wed Apr 13 13:40:26 EDT 2011
Author: bbrodt
Date: 2011-04-13 13:40:25 -0400 (Wed, 13 Apr 2011)
New Revision: 30561
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/Messages.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/commands/SetOnEventVariableTypeCommand.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/messages.properties
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/properties/InvokeImplSection.java
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/ModelHelper.java
Log:
https://issues.jboss.org/browse/JBIDE-8305
added support for selecting an "element" for OnEvent handler
Modified: trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/Messages.java
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/Messages.java 2011-04-13 16:31:30 UTC (rev 30560)
+++ trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/Messages.java 2011-04-13 17:40:25 UTC (rev 30561)
@@ -458,6 +458,11 @@
public static String InvokeImplDetails_Partner__10;
public static String InvokeImplDetails_Request_3_Plain;
public static String InvokeImplDetails_Response_4_Plain;
+ // https://issues.jboss.org/browse/JBIDE-8305
+ public static String InvokeImplDetails_MessageType;
+ public static String InvokeImplDetails_Element;
+ public static String InvokeImplDetails_MessageTypeOrElement;
+
public static String InvokeImplSection_None_1;
public static String JoinConditionSection_Create_a_New_Condition_3;
public static String JoinConditionSection_No_condition_specified_1;
Modified: trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/commands/SetOnEventVariableTypeCommand.java
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/commands/SetOnEventVariableTypeCommand.java 2011-04-13 16:31:30 UTC (rev 30560)
+++ trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/commands/SetOnEventVariableTypeCommand.java 2011-04-13 17:40:25 UTC (rev 30561)
@@ -15,32 +15,41 @@
import org.eclipse.wst.wsdl.Input;
import org.eclipse.wst.wsdl.Message;
import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.xsd.XSDElementDeclaration;
-public class SetOnEventVariableTypeCommand extends AutoUndoCommand {
+public class SetOnEventVariableTypeCommand extends SetCommand {
- OnEvent onEvent;
-
public SetOnEventVariableTypeCommand(OnEvent onEvent) {
- super(onEvent);
- this.onEvent = onEvent;
+ super(onEvent,null);
}
@Override
public void doExecute() {
- if (onEvent.getVariable() == null) {
- onEvent.setMessageType(null);
- } else {
- Message message = null;
- if (onEvent.getOperation() != null) {
- Operation op = onEvent.getOperation();
- if (op != null) {
- Input input = op.getEInput();
- if (input != null) {
- message = input.getEMessage();
+ if (fTarget instanceof OnEvent) {
+ OnEvent onEvent = (OnEvent) fTarget;
+ if (onEvent.getVariable() == null) {
+ onEvent.setMessageType(null);
+ } else {
+ if (fNewValue instanceof XSDElementDeclaration) {
+ onEvent.setMessageType(null);
+ onEvent.setXSDElement((XSDElementDeclaration)fNewValue);
+ }
+ else {
+ Message message = null;
+ if (onEvent.getOperation() != null) {
+ Operation op = onEvent.getOperation();
+ if (op != null) {
+ Input input = op.getEInput();
+ if (input != null) {
+ message = input.getEMessage();
+ }
+ }
}
+ onEvent.setMessageType(message);
+ onEvent.setXSDElement(null);
}
}
- onEvent.setMessageType(message);
}
}
-}
+}
\ No newline at end of file
Modified: trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/messages.properties
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/messages.properties 2011-04-13 16:31:30 UTC (rev 30560)
+++ trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/messages.properties 2011-04-13 17:40:25 UTC (rev 30561)
@@ -355,6 +355,9 @@
InvokeImplDetails_Partner__10=Par&tner Link\:
InvokeImplDetails_Request_3_Plain=Request
InvokeImplDetails_Response_4_Plain=Response
+InvokeImplDetails_MessageType=Message Type\:
+InvokeImplDetails_Element=Element\:
+InvokeImplDetails_MessageTypeOrElement=Message/Element\:
InvokeImplSection_None_1=(none)
InvokeImplSection_0=Create Global Partner Link.
InvokeImplSection_1=Create Local Partner Link.
Modified: trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/properties/InvokeImplSection.java
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/properties/InvokeImplSection.java 2011-04-13 16:31:30 UTC (rev 30560)
+++ trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/properties/InvokeImplSection.java 2011-04-13 17:40:25 UTC (rev 30561)
@@ -102,8 +102,10 @@
import org.eclipse.wst.wsdl.Message;
import org.eclipse.wst.wsdl.Operation;
import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
import org.eclipse.wst.wsdl.PortType;
import org.eclipse.wst.wsdl.WSDLFactory;
+import org.eclipse.xsd.XSDElementDeclaration;
/**
* Details section for the Partner/PortType/Operation properties of a
@@ -138,6 +140,9 @@
private Text faultText;
// https://issues.jboss.org/browse/JBIDE-7861
private boolean ignoreQuickPickSelection = false;
+ // https://issues.jboss.org/browse/JBIDE-8305
+ private Label messageOrElementLabel;
+ private Text messageOrElementText;
private IControlContentAdapter fTextContentAdapter = new TextContentAdapter() {
@Override
@@ -216,11 +221,13 @@
updatePartnerWidgets();
updatePortTypeWidgets();
updateOperationWidgets();
+ updateMessageOrElementWidgets(); // https://issues.jboss.org/browse/JBIDE-8305
updateFaultWidgets();
} else if (ModelHelper.isOperationAffected(input, n)) {
upp = true;
updatePortTypeWidgets();
- updateOperationWidgets();
+ updateOperationWidgets();
+ updateMessageOrElementWidgets(); // https://issues.jboss.org/browse/JBIDE-8305
updateFaultWidgets();
} else {
updateFaultWidgets();
@@ -265,6 +272,7 @@
updatePartnerWidgets();
updatePortTypeWidgets();
updateOperationWidgets();
+ updateMessageOrElementWidgets(); // https://issues.jboss.org/browse/JBIDE-8305
updateFaultWidgets();
}
@@ -654,8 +662,40 @@
return composite;
}
+ // https://issues.jboss.org/browse/JBIDE-8305
+ private Composite createMessageOrElementWidgets(Composite top, Composite parent) {
+ FlatFormData data;
+
+ final Composite composite = createFlatFormComposite(parent);
+ data = new FlatFormData();
+ if (top == null) {
+ data.top = new FlatFormAttachment(0, IDetailsAreaConstants.VSPACE);
+ } else {
+ data.top = new FlatFormAttachment(top, IDetailsAreaConstants.VSPACE );
+ }
+ data.left = new FlatFormAttachment(0, IDetailsAreaConstants.HSPACE);
+ data.right = new FlatFormAttachment(SPLIT_POINT, -SPLIT_POINT_OFFSET);
+ composite.setLayoutData(data);
+
+ messageOrElementLabel = fWidgetFactory.createLabel(composite, Messages.InvokeImplDetails_MessageTypeOrElement);
+ messageOrElementText = fWidgetFactory.createText(composite,EMPTY_STRING,SWT.NONE);
+ messageOrElementText.setEditable(false); // read-only text for visual feedback of Quick Pick tree selection
+
+
+ data = new FlatFormData();
+ data.left = new FlatFormAttachment(0, BPELUtil.calculateLabelWidth(messageOrElementLabel, STANDARD_LABEL_WIDTH_SM));
+ data.right = new FlatFormAttachment(operationButton, 0);
+ messageOrElementText.setLayoutData(data);
+
+ data = new FlatFormData();
+ data.left = new FlatFormAttachment(0, 0);
+ data.right = new FlatFormAttachment(messageOrElementText, -IDetailsAreaConstants.HSPACE);
+ data.top = new FlatFormAttachment(messageOrElementText, 0, SWT.CENTER);
+ messageOrElementLabel.setLayoutData(data);
+
+ return composite;
+ }
-
// protected Composite createInputVariableWidgets(Composite top, Composite parent) {
// FlatFormData data;
//
@@ -1135,7 +1175,10 @@
quickPickTreeViewer.setLabelProvider(new ModelTreeLabelProvider());
quickPickTreeViewer.addFilter( fPartnerRoleFilter );
quickPickTreeViewer.setInput ( null );
- quickPickTreeViewer.setAutoExpandLevel(3);
+ // https://issues.jboss.org/browse/JBIDE-8305
+ // show tree down to message part level so that tree node highlight works
+ // when the tree viewer is constructed.
+ quickPickTreeViewer.setAutoExpandLevel(5);
// end tree viewer for variable structure
data = new FlatFormData();
@@ -1175,7 +1218,7 @@
Composite ref = createPartnerWidgets(null,composite);
ref = createPortTypeWidgets(ref, composite);
ref = createOperationWidgets(ref,composite);
-
+ ref = createMessageOrElementWidgets(ref,composite); // https://issues.jboss.org/browse/JBIDE-8305
ref = createFaultComposite ( ref, composite );
@@ -1297,6 +1340,13 @@
if (obj!=partnerLink)
return false;
}
+ // https://issues.jboss.org/browse/JBIDE-8305
+ else if (obj instanceof Input) {
+ obj = ModelHelper.getMessageType(obj);
+ }
+ else if (obj instanceof Part) {
+ obj = ModelHelper.getVariableTypeFrom(obj);
+ }
if (model==obj) {
quickPickTree.setSelection(item);
return true;
@@ -1337,8 +1387,50 @@
} else {
operationText.setText ( EMPTY_STRING );
}
+ if (getInput() instanceof OnEvent) {
+ // https://issues.jboss.org/browse/JBIDE-8305
+ // show the message type or message part in the quick pick tree
+ OnEvent onEvent = (OnEvent)getInput();
+ Message message = onEvent.getMessageType();
+ if (message!=null) {
+ updateQuickPickSelection(message);
+ }
+ else {
+ XSDElementDeclaration element = onEvent.getXSDElement();
+ if (element!=null)
+ updateQuickPickSelection(element);
+ }
+ }
}
+ // https://issues.jboss.org/browse/JBIDE-8305
+ private void updateMessageOrElementWidgets() {
+ boolean visible = (getInput() instanceof OnEvent);
+ if (visible) {
+ OnEvent onEvent = (OnEvent)getInput();
+ String text = "";
+ String label = Messages.InvokeImplDetails_MessageTypeOrElement;
+ if (onEvent.getVariable()!=null) {
+ Message message = onEvent.getMessageType();
+ if (message!=null) {
+ text = message.getQName().getLocalPart();
+ label = Messages.InvokeImplDetails_MessageType;
+ }
+ else {
+ XSDElementDeclaration element = onEvent.getXSDElement();
+ if (element!=null) {
+ text = element.getName();
+ label = Messages.InvokeImplDetails_Element;
+ }
+ }
+ }
+ messageOrElementText.setText(text);
+ messageOrElementLabel.setText(label);
+ }
+ messageOrElementLabel.setVisible(visible);
+ messageOrElementText.setVisible(visible);
+ }
+
/**
* replyFaultEnabled() Checks if the active activity is a reply activity and
* has a fault name
@@ -1684,7 +1776,8 @@
List cmdList = basicCommandList( input , null, null);
PartnerLink pl = null;
- Operation op = null;
+ Operation op = null;
+ Part part = null;
SetCommand setCommand = null;
for (int i=0,j=path.getSegmentCount(); i < j; i++) {
@@ -1726,10 +1819,20 @@
// attempt to locate a variable matching the type
alterCommands (cmdList,input,pl,op,(Input) op.getInput() );
alterCommands (cmdList,input,pl,op,(Output)op.getOutput() );
-
- } else {
- break;
- }
+
+ } else if (model instanceof Part) {
+ // https://issues.jboss.org/browse/JBIDE-8305
+ // if a message part was selected, set the OnEvent "element" attribute
+ part = (Part) model;
+ setCommand = (SetCommand) ListMap.Find ( cmdList, new ListMap.Visitor() {
+ public Object visit(Object obj) {
+ return (obj instanceof SetOnEventVariableTypeCommand ? obj : ListMap.IGNORE);
+ }
+ });
+ if (setCommand!=null)
+ setCommand.setNewValue( part.getElementDeclaration() );
+
+ }
// System.out.println( "segment[" + i + "]=" + path.getSegment( i ));
}
@@ -1799,7 +1902,10 @@
}
variable.setName ( name );
variable.setMessageType( msg );
- cmds.add(0, new AddVariableCommand(input, variable));
+ // https://issues.jboss.org/browse/JBIDE-8305
+ // don't create a new variable for OnEvent - this is an "implicit" variable
+ if (input instanceof OnEvent == false)
+ cmds.add(0, new AddVariableCommand(input, variable));
}
SetVariableCommand cmd = (SetVariableCommand) ListMap.Find(cmds, new ListMap.Visitor() {
Modified: trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/ModelHelper.java
===================================================================
--- trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/ModelHelper.java 2011-04-13 16:31:30 UTC (rev 30560)
+++ trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/ModelHelper.java 2011-04-13 17:40:25 UTC (rev 30561)
@@ -883,6 +883,13 @@
if (context instanceof PropertyAlias) {
return (Message)((PropertyAlias)context).getMessageType();
}
+ // https://issues.jboss.org/browse/JBIDE-8305
+ if (context instanceof OnEvent) {
+ return (Message)((OnEvent)context).getMessageType();
+ }
+ if (context instanceof org.eclipse.wst.wsdl.Input) {
+ return (Message)((org.eclipse.wst.wsdl.Input)context).getMessage();
+ }
throw new IllegalArgumentException();
}
More information about the jbosstools-commits
mailing list