[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[bpel-dev] Emulate a "QuickPick" Action from the canvas

Hi to all, I have this scenario:

-          a list of partner links;

-          a new palette with a button for each partner link (each button implementing an invoke action)

-          a menu with the operation of the plink appearing once dragged and dropped the related button on the canvas.


Now I would like to do the same operation that a user use to do manually clicking on an invoke action on the canvas->details->quick pick, and selecting the operation desired, just selecting the operation from the menu appearing.

In order I want set the operation invoked on the bpel file and create the variables if possible, as the quickpick menu does.


So I try to re-use this code (taken from InvokeImplSection class)


else if (model instanceof Operation) {               


                        op = (Operation) model;


                        setCommand = (SetCommand) ListMap.Find ( cmdList, new ListMap.Visitor() {

                              public Object visit(Object obj) {

                                    return (obj instanceof SetOperationCommand ? obj : ListMap.IGNORE);                               



                        setCommand.setNewValue( op );


                        // 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 {



                  // System.out.println( "segment[" + i + "]=" + path.getSegment( i ));



            CompoundCommand cmd = new CompoundCommand ();

            cmd.getCommands().addAll (cmdList) ;

            getCommandFramework().execute( cmd );


from the BPELCreationTool class, but I don’t know how to retrieve the “input” variable (for instance, in InvokeImplSection class input = getInput()).


I hope you can help me


Thank you in advance,


Marco M.