UI for virtual assign folder_ordering_103187_base_2
authoranjeleevich@netbeans.org
Fri, 15 Jun 2007 18:10:31 +0000
changeset 640c8a8c70714e5
parent 639 fa181a08c6e0
child 641 bd52f53b583d
UI for virtual assign
bpel.editors/src/org/netbeans/modules/bpel/properties/editors/InvokeMainPanel.java
bpel.editors/src/org/netbeans/modules/bpel/properties/editors/controls/MessageConfigurationController.java
     1.1 --- a/bpel.editors/src/org/netbeans/modules/bpel/properties/editors/InvokeMainPanel.java	Fri Jun 15 16:47:48 2007 +0000
     1.2 +++ b/bpel.editors/src/org/netbeans/modules/bpel/properties/editors/InvokeMainPanel.java	Fri Jun 15 18:10:31 2007 +0000
     1.3 @@ -112,15 +112,25 @@
     1.4          cbxPartnerLink = mcc.getCbxPartnerLink();
     1.5          lblOperation = new javax.swing.JLabel();
     1.6          cbxOperation = mcc.getCbxOperation();
     1.7 -        lblInputVariable = new javax.swing.JLabel();
     1.8 +        lblErrorMessage = new javax.swing.JLabel();
     1.9 +        jPanel1 = new javax.swing.JPanel();
    1.10 +        jPanel2 = new javax.swing.JPanel();
    1.11 +        jRadioButton1 = mcc.getRbtnInputVariable();
    1.12          fldInputVariable = mcc.getFldInputVariable();
    1.13          btnNewInputVariable = mcc.getBtnNewInputVariable();
    1.14          btnChooseInputVariable = mcc.getBtnChooseInputVariable();
    1.15 -        lblOutputVariable = new javax.swing.JLabel();
    1.16 +        jRadioButton2 = mcc.getRbtnInputToParts();
    1.17 +        jScrollPane4 = new javax.swing.JScrollPane();
    1.18 +        jTable3 = mcc.getTblInputToParts();
    1.19 +        jPanel3 = new javax.swing.JPanel();
    1.20 +        jRadioButton3 = mcc.getRbtnOutputVariable();
    1.21          fldOutputVariable = mcc.getFldOutputVariable();
    1.22          btnNewOutputVariable = mcc.getBtnNewOutputVariable();
    1.23          btnChooseOutputVariable = mcc.getBtnChooseOutputVariable();
    1.24 -        lblErrorMessage = new javax.swing.JLabel();
    1.25 +        mcc.getRbtnOutputFromParts();
    1.26 +        jRadioButton4 = mcc.getRbtnOutputFromParts();
    1.27 +        jScrollPane2 = new javax.swing.JScrollPane();
    1.28 +        jTable1 = mcc.getTblOutputFromParts();
    1.29  
    1.30          lblName.setLabelFor(fldName);
    1.31          lblName.setText(org.openide.util.NbBundle.getMessage(FormBundle.class, "LBL_Name"));
    1.32 @@ -140,10 +150,15 @@
    1.33          lblOperation.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSN_LBL_Operation"));
    1.34          lblOperation.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSD_LBL_Operation"));
    1.35  
    1.36 -        lblInputVariable.setLabelFor(fldInputVariable);
    1.37 -        lblInputVariable.setText(org.openide.util.NbBundle.getMessage(FormBundle.class, "LBL_InputVariable"));
    1.38 -        lblInputVariable.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSN_LBL_InputVariable"));
    1.39 -        lblInputVariable.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSD_LBL_InputVariable"));
    1.40 +        lblErrorMessage.setForeground(new java.awt.Color(255, 0, 0));
    1.41 +        lblErrorMessage.setAlignmentX(0.5F);
    1.42 +
    1.43 +        jPanel1.setLayout(new java.awt.GridLayout(2, 1, 0, 4));
    1.44 +
    1.45 +        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Input"));
    1.46 +        jRadioButton1.setText("Input Variable:");
    1.47 +        jRadioButton1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
    1.48 +        jRadioButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));
    1.49  
    1.50          fldInputVariable.setColumns(30);
    1.51          fldInputVariable.setEditable(false);
    1.52 @@ -158,10 +173,55 @@
    1.53          btnChooseInputVariable.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSN_BTN_BrowseInputVarible"));
    1.54          btnChooseInputVariable.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSD_BTN_BrowseInputVarible"));
    1.55  
    1.56 -        lblOutputVariable.setLabelFor(fldOutputVariable);
    1.57 -        lblOutputVariable.setText(org.openide.util.NbBundle.getMessage(FormBundle.class, "LBL_OutputVariable"));
    1.58 -        lblOutputVariable.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSN_LBL_OutputVariable"));
    1.59 -        lblOutputVariable.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSD_LBL_OutputVariable"));
    1.60 +        jRadioButton2.setText("To Parts:");
    1.61 +        jRadioButton2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
    1.62 +        jRadioButton2.setMargin(new java.awt.Insets(0, 0, 0, 0));
    1.63 +
    1.64 +        jScrollPane4.setViewportView(jTable3);
    1.65 +
    1.66 +        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
    1.67 +        jPanel2.setLayout(jPanel2Layout);
    1.68 +        jPanel2Layout.setHorizontalGroup(
    1.69 +            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    1.70 +            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
    1.71 +                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
    1.72 +                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel2Layout.createSequentialGroup()
    1.73 +                        .add(27, 27, 27)
    1.74 +                        .add(jScrollPane4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 428, Short.MAX_VALUE))
    1.75 +                    .add(jPanel2Layout.createSequentialGroup()
    1.76 +                        .addContainerGap()
    1.77 +                        .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    1.78 +                            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup()
    1.79 +                                .add(jRadioButton1)
    1.80 +                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    1.81 +                                .add(fldInputVariable, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
    1.82 +                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    1.83 +                                .add(btnNewInputVariable)
    1.84 +                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    1.85 +                                .add(btnChooseInputVariable, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 65, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    1.86 +                            .add(jRadioButton2))))
    1.87 +                .addContainerGap())
    1.88 +        );
    1.89 +        jPanel2Layout.setVerticalGroup(
    1.90 +            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    1.91 +            .add(jPanel2Layout.createSequentialGroup()
    1.92 +                .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    1.93 +                    .add(fldInputVariable, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    1.94 +                    .add(jRadioButton1)
    1.95 +                    .add(btnNewInputVariable)
    1.96 +                    .add(btnChooseInputVariable))
    1.97 +                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    1.98 +                .add(jRadioButton2)
    1.99 +                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.100 +                .add(jScrollPane4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 62, Short.MAX_VALUE)
   1.101 +                .addContainerGap())
   1.102 +        );
   1.103 +        jPanel1.add(jPanel2);
   1.104 +
   1.105 +        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Output"));
   1.106 +        jRadioButton3.setText("Output Variable:");
   1.107 +        jRadioButton3.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
   1.108 +        jRadioButton3.setMargin(new java.awt.Insets(0, 0, 0, 0));
   1.109  
   1.110          fldOutputVariable.setColumns(30);
   1.111          fldOutputVariable.setEditable(false);
   1.112 @@ -176,8 +236,52 @@
   1.113          btnChooseOutputVariable.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSN_BTN_BrowseOutputVarible"));
   1.114          btnChooseOutputVariable.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(FormBundle.class,"ACSD_BTN_BrowseOutputVarible"));
   1.115  
   1.116 -        lblErrorMessage.setForeground(new java.awt.Color(255, 0, 0));
   1.117 -        lblErrorMessage.setAlignmentX(0.5F);
   1.118 +        jRadioButton4.setText("From Parts:");
   1.119 +        jRadioButton4.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
   1.120 +        jRadioButton4.setMargin(new java.awt.Insets(0, 0, 0, 0));
   1.121 +
   1.122 +        jScrollPane2.setViewportView(jTable1);
   1.123 +
   1.124 +        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
   1.125 +        jPanel3.setLayout(jPanel3Layout);
   1.126 +        jPanel3Layout.setHorizontalGroup(
   1.127 +            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.128 +            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel3Layout.createSequentialGroup()
   1.129 +                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
   1.130 +                    .add(jPanel3Layout.createSequentialGroup()
   1.131 +                        .addContainerGap()
   1.132 +                        .add(jRadioButton3)
   1.133 +                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.134 +                        .add(fldOutputVariable, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 198, Short.MAX_VALUE)
   1.135 +                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.136 +                        .add(btnNewOutputVariable)
   1.137 +                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.138 +                        .add(btnChooseOutputVariable))
   1.139 +                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel3Layout.createSequentialGroup()
   1.140 +                        .addContainerGap()
   1.141 +                        .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.142 +                            .add(jPanel3Layout.createSequentialGroup()
   1.143 +                                .add(17, 17, 17)
   1.144 +                                .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 428, Short.MAX_VALUE))
   1.145 +                            .add(jRadioButton4))))
   1.146 +                .addContainerGap())
   1.147 +        );
   1.148 +        jPanel3Layout.setVerticalGroup(
   1.149 +            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.150 +            .add(jPanel3Layout.createSequentialGroup()
   1.151 +                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.152 +                    .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
   1.153 +                        .add(jRadioButton3)
   1.154 +                        .add(btnNewOutputVariable)
   1.155 +                        .add(fldOutputVariable, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   1.156 +                    .add(btnChooseOutputVariable))
   1.157 +                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.158 +                .add(jRadioButton4)
   1.159 +                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.160 +                .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 62, Short.MAX_VALUE)
   1.161 +                .addContainerGap())
   1.162 +        );
   1.163 +        jPanel1.add(jPanel3);
   1.164  
   1.165          org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
   1.166          this.setLayout(layout);
   1.167 @@ -186,34 +290,18 @@
   1.168              .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
   1.169                  .addContainerGap()
   1.170                  .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
   1.171 -                    .add(org.jdesktop.layout.GroupLayout.LEADING, lblErrorMessage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 457, Short.MAX_VALUE)
   1.172 +                    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE)
   1.173 +                    .add(org.jdesktop.layout.GroupLayout.LEADING, lblErrorMessage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE)
   1.174                      .add(layout.createSequentialGroup()
   1.175                          .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.176                              .add(lblName)
   1.177                              .add(lblPartnerLink)
   1.178 -                            .add(lblOperation)
   1.179 -                            .add(lblInputVariable)
   1.180 -                            .add(lblOutputVariable))
   1.181 +                            .add(lblOperation))
   1.182                          .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.183 -                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.184 -                            .add(fldName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 358, Short.MAX_VALUE)
   1.185 -                            .add(cbxPartnerLink, 0, 358, Short.MAX_VALUE)
   1.186 -                            .add(cbxOperation, 0, 358, Short.MAX_VALUE)
   1.187 -                            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
   1.188 -                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.189 -                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.190 -                                    .add(fldOutputVariable, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)
   1.191 -                                    .add(fldInputVariable, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE))
   1.192 -                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.193 -                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
   1.194 -                                    .add(layout.createSequentialGroup()
   1.195 -                                        .add(btnNewInputVariable)
   1.196 -                                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.197 -                                        .add(btnChooseInputVariable))
   1.198 -                                    .add(layout.createSequentialGroup()
   1.199 -                                        .add(btnNewOutputVariable)
   1.200 -                                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.201 -                                        .add(btnChooseOutputVariable)))))))
   1.202 +                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
   1.203 +                            .add(org.jdesktop.layout.GroupLayout.LEADING, cbxPartnerLink, 0, 409, Short.MAX_VALUE)
   1.204 +                            .add(fldName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 409, Short.MAX_VALUE)
   1.205 +                            .add(cbxOperation, 0, 409, Short.MAX_VALUE))))
   1.206                  .addContainerGap())
   1.207          );
   1.208          layout.setVerticalGroup(
   1.209 @@ -232,19 +320,9 @@
   1.210                      .add(lblOperation)
   1.211                      .add(cbxOperation, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   1.212                  .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.213 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
   1.214 -                    .add(lblInputVariable)
   1.215 -                    .add(btnChooseInputVariable)
   1.216 -                    .add(btnNewInputVariable)
   1.217 -                    .add(fldInputVariable, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   1.218 +                .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 302, Short.MAX_VALUE)
   1.219                  .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.220 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
   1.221 -                    .add(btnChooseOutputVariable)
   1.222 -                    .add(btnNewOutputVariable)
   1.223 -                    .add(lblOutputVariable)
   1.224 -                    .add(fldOutputVariable, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   1.225 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.226 -                .add(lblErrorMessage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 26, Short.MAX_VALUE)
   1.227 +                .add(lblErrorMessage)
   1.228                  .addContainerGap())
   1.229          );
   1.230      }// </editor-fold>//GEN-END:initComponents
   1.231 @@ -260,11 +338,20 @@
   1.232      private javax.swing.JTextField fldInputVariable;
   1.233      private javax.swing.JTextField fldName;
   1.234      private javax.swing.JTextField fldOutputVariable;
   1.235 +    private javax.swing.JPanel jPanel1;
   1.236 +    private javax.swing.JPanel jPanel2;
   1.237 +    private javax.swing.JPanel jPanel3;
   1.238 +    private javax.swing.JRadioButton jRadioButton1;
   1.239 +    private javax.swing.JRadioButton jRadioButton2;
   1.240 +    private javax.swing.JRadioButton jRadioButton3;
   1.241 +    private javax.swing.JRadioButton jRadioButton4;
   1.242 +    private javax.swing.JScrollPane jScrollPane2;
   1.243 +    private javax.swing.JScrollPane jScrollPane4;
   1.244 +    private javax.swing.JTable jTable1;
   1.245 +    private javax.swing.JTable jTable3;
   1.246      private javax.swing.JLabel lblErrorMessage;
   1.247 -    private javax.swing.JLabel lblInputVariable;
   1.248      private javax.swing.JLabel lblName;
   1.249      private javax.swing.JLabel lblOperation;
   1.250 -    private javax.swing.JLabel lblOutputVariable;
   1.251      private javax.swing.JLabel lblPartnerLink;
   1.252      // End of variables declaration//GEN-END:variables
   1.253  }
     2.1 --- a/bpel.editors/src/org/netbeans/modules/bpel/properties/editors/controls/MessageConfigurationController.java	Fri Jun 15 16:47:48 2007 +0000
     2.2 +++ b/bpel.editors/src/org/netbeans/modules/bpel/properties/editors/controls/MessageConfigurationController.java	Fri Jun 15 18:10:31 2007 +0000
     2.3 @@ -18,20 +18,40 @@
     2.4   */
     2.5  package org.netbeans.modules.bpel.properties.editors.controls;
     2.6  
     2.7 +import java.awt.BorderLayout;
     2.8 +import java.awt.Color;
     2.9  import java.awt.Component;
    2.10  import java.awt.Dialog;
    2.11 +import java.awt.Font;
    2.12 +import java.awt.Insets;
    2.13  import java.awt.event.ActionEvent;
    2.14  import java.awt.event.ActionListener;
    2.15  import java.awt.event.ItemEvent;
    2.16  import java.awt.event.ItemListener;
    2.17  import java.util.Collection;
    2.18  import java.util.concurrent.Callable;
    2.19 +import javax.swing.AbstractCellEditor;
    2.20 +import javax.swing.ButtonGroup;
    2.21  import javax.swing.DefaultComboBoxModel;
    2.22  import javax.swing.DefaultListCellRenderer;
    2.23  import javax.swing.JButton;
    2.24  import javax.swing.JComboBox;
    2.25 +import javax.swing.JLabel;
    2.26  import javax.swing.JList;
    2.27 +import javax.swing.JPanel;
    2.28 +import javax.swing.JRadioButton;
    2.29 +import javax.swing.JTable;
    2.30  import javax.swing.JTextField;
    2.31 +import javax.swing.UIManager;
    2.32 +import javax.swing.border.Border;
    2.33 +import javax.swing.border.EmptyBorder;
    2.34 +import javax.swing.table.DefaultTableColumnModel;
    2.35 +import javax.swing.table.DefaultTableModel;
    2.36 +import javax.swing.table.TableCellEditor;
    2.37 +import javax.swing.table.TableCellRenderer;
    2.38 +import javax.swing.table.TableColumn;
    2.39 +import javax.swing.table.TableColumnModel;
    2.40 +import javax.swing.table.TableModel;
    2.41  import org.netbeans.modules.bpel.properties.VirtualVariableContainer;
    2.42  import org.netbeans.modules.soa.ui.form.CustomNodeEditor;
    2.43  import org.netbeans.modules.bpel.model.api.BPELElementsBuilder;
    2.44 @@ -77,6 +97,7 @@
    2.45  import org.netbeans.modules.soa.ui.form.valid.DefaultDialogDescriptor;
    2.46  import org.netbeans.modules.soa.ui.form.valid.Validator;
    2.47  import org.netbeans.modules.xml.wsdl.model.Message;
    2.48 +import org.netbeans.modules.xml.wsdl.model.Part;
    2.49  import org.netbeans.modules.xml.wsdl.model.extensions.bpel.Role;
    2.50  import org.openide.nodes.Node;
    2.51  import org.openide.util.NbBundle;
    2.52 @@ -95,15 +116,25 @@
    2.53      private CustomNodeEditor myEditor;
    2.54      private DefaultValidator myValidator;
    2.55      
    2.56 -    private JButton btnChooseInputVariable;
    2.57 -    private JButton btnChooseOutputVariable;
    2.58      private JButton btnNewInputVariable;
    2.59      private JButton btnNewOutputVariable;
    2.60      private JComboBox cbxOperation;
    2.61      private JComboBox cbxPartnerLink;
    2.62 +    private JTextField fldVariableName;
    2.63 +
    2.64 +    private JRadioButton rbtnInputVariable;
    2.65 +    private JRadioButton rbtnInputToParts;
    2.66      private JTextField fldInputVariable;
    2.67 +    private JButton btnChooseInputVariable;
    2.68 +    private PartVariableTable tblInputToParts;
    2.69 +    private ButtonGroup inputButtonGroup;
    2.70 +    
    2.71 +    private JRadioButton rbtnOutputVariable;
    2.72 +    private JRadioButton rbtnOutputFromParts;
    2.73      private JTextField fldOutputVariable;
    2.74 -    private JTextField fldVariableName;
    2.75 +    private JButton btnChooseOutputVariable;
    2.76 +    private PartVariableTable tblOutputFromParts;
    2.77 +    private ButtonGroup outputButtonGroup;
    2.78      
    2.79      /**
    2.80       * Specifies what role (My or Partner) has to be used
    2.81 @@ -159,6 +190,9 @@
    2.82      }
    2.83      
    2.84      public void createContent() {
    2.85 +        inputButtonGroup = new ButtonGroup();
    2.86 +        outputButtonGroup = new ButtonGroup();
    2.87 +        
    2.88          //
    2.89          btnChooseInputVariable = new JButton();
    2.90          btnChooseOutputVariable = new JButton();
    2.91 @@ -166,9 +200,46 @@
    2.92          btnNewOutputVariable = new JButton();
    2.93          cbxOperation = new JComboBox();
    2.94          cbxPartnerLink = new JComboBox();
    2.95 +        
    2.96 +        ActionListener inputRadioActionListener = new ActionListener() {
    2.97 +            public void actionPerformed(ActionEvent event) {
    2.98 +                updateEnabledStateForInputUI();
    2.99 +            }
   2.100 +        };
   2.101 +        rbtnInputVariable = new JRadioButton();
   2.102 +        rbtnInputVariable.addActionListener(inputRadioActionListener);
   2.103 +        rbtnInputToParts = new JRadioButton();
   2.104 +        rbtnInputToParts.addActionListener(inputRadioActionListener);
   2.105          fldInputVariable = new JTextField();
   2.106 +        inputButtonGroup = new ButtonGroup();
   2.107 +        inputButtonGroup.add(rbtnInputVariable);
   2.108 +        inputButtonGroup.add(rbtnInputToParts);
   2.109 +        tblInputToParts = new PartVariableTable(true);
   2.110 +
   2.111 +        ActionListener outputRadioActionListener = new ActionListener() {
   2.112 +            public void actionPerformed(ActionEvent event) {
   2.113 +                updateEnabledStateForOutputUI();
   2.114 +            }
   2.115 +        };
   2.116          fldOutputVariable = new JTextField();
   2.117 +        rbtnOutputVariable = new JRadioButton();
   2.118 +        rbtnOutputVariable.addActionListener(outputRadioActionListener);
   2.119 +        rbtnOutputFromParts = new JRadioButton();
   2.120 +        rbtnOutputFromParts.addActionListener(outputRadioActionListener);
   2.121 +        outputButtonGroup = new ButtonGroup();
   2.122 +        outputButtonGroup.add(rbtnOutputVariable);
   2.123 +        outputButtonGroup.add(rbtnOutputFromParts);
   2.124 +        tblOutputFromParts = new PartVariableTable(false);
   2.125 +        
   2.126 +        rbtnInputVariable.setSelected(true);
   2.127 +        updateEnabledStateForInputUI();
   2.128 +
   2.129 +        rbtnOutputVariable.setSelected(true);
   2.130 +        updateEnabledStateForOutputUI();
   2.131 +        
   2.132          fldVariableName = new JTextField();
   2.133 +        
   2.134 +        
   2.135          //
   2.136          cbxPartnerLink.addItemListener(new ItemListener() {
   2.137              public void itemStateChanged(ItemEvent event) {
   2.138 @@ -792,6 +863,13 @@
   2.139          }
   2.140      }
   2.141      
   2.142 +    
   2.143 +    private void setEnabled(boolean value, Component... components) {
   2.144 +        for (Component c : components) {
   2.145 +            c.setEnabled(value);
   2.146 +        }
   2.147 +    }
   2.148 +    
   2.149      /**
   2.150       * Update variables state according to selected Partner Link or Operation.
   2.151       * It can clear current variables if they have not suitable type and
   2.152 @@ -803,10 +881,17 @@
   2.153          if (element == null) {
   2.154              setCurrInputVar(null);
   2.155              setCurrOutputVar(null);
   2.156 -            btnNewInputVariable.setEnabled(false);
   2.157 -            btnChooseInputVariable.setEnabled(false);
   2.158 -            btnNewOutputVariable.setEnabled(false);
   2.159 -            btnChooseOutputVariable.setEnabled(false);
   2.160 +            setEnabled(false, 
   2.161 +                    btnNewInputVariable, 
   2.162 +                    btnChooseInputVariable, 
   2.163 +                    btnNewOutputVariable,
   2.164 +                    btnChooseOutputVariable,
   2.165 +                    rbtnInputToParts, 
   2.166 +                    rbtnInputVariable, 
   2.167 +                    rbtnOutputFromParts, 
   2.168 +                    rbtnOutputVariable, 
   2.169 +                    tblInputToParts, 
   2.170 +                    tblOutputFromParts);
   2.171          } else {
   2.172              assert element instanceof Operation;
   2.173              //
   2.174 @@ -838,10 +923,16 @@
   2.175                              setCurrInputVar(null);
   2.176                          }
   2.177                      }
   2.178 +                    
   2.179                  }
   2.180 +                
   2.181 +                tblInputToParts.setMessage(inMessage);
   2.182                  //
   2.183 -                btnNewInputVariable.setEnabled(input != null);
   2.184 -                btnChooseInputVariable.setEnabled(input != null);
   2.185 +                
   2.186 +                setEnabled(input != null, btnNewInputVariable, 
   2.187 +                        btnChooseInputVariable, rbtnInputToParts, 
   2.188 +                        rbtnInputVariable, tblInputToParts);
   2.189 +                updateEnabledStateForInputUI();
   2.190              }
   2.191              //
   2.192              if (outputVisible && isOutputVarEnabled) {
   2.193 @@ -866,13 +957,52 @@
   2.194                          }
   2.195                      }
   2.196                  }
   2.197 +                
   2.198 +                tblOutputFromParts.setMessage(outMessage);
   2.199 +                
   2.200 +
   2.201                  //
   2.202 -                btnNewOutputVariable.setEnabled(output != null);
   2.203 -                btnChooseOutputVariable.setEnabled(output != null);
   2.204 +                setEnabled(output != null, btnNewOutputVariable, 
   2.205 +                        btnChooseOutputVariable, rbtnOutputFromParts, 
   2.206 +                        rbtnOutputVariable, tblOutputFromParts);
   2.207 +                updateEnabledStateForOutputUI();
   2.208              }
   2.209          }
   2.210      }
   2.211      
   2.212 +    
   2.213 +    private TableModel createToPartsTableModel(Message message) {
   2.214 +        DefaultTableModel result = new DefaultTableModel(
   2.215 +                new Object[] { "From Variable", "To Part"}, 0);
   2.216 +        
   2.217 +        if (message != null) {
   2.218 +            Collection<Part> parts = message.getParts();
   2.219 +
   2.220 +            for (Part part : parts) {
   2.221 +                result.addRow(new Object[] { null, part });
   2.222 +            }
   2.223 +        }
   2.224 +        
   2.225 +        return result;
   2.226 +    }
   2.227 +
   2.228 +    
   2.229 +    private TableModel createFromPartsTableModel(Message message) {
   2.230 +        DefaultTableModel result = new DefaultTableModel(
   2.231 +                new Object[] { "From Part", "To Variable"}, 0);
   2.232 +        
   2.233 +        if (message != null) {
   2.234 +            Collection<Part> parts = message.getParts();
   2.235 +
   2.236 +            for (Part part : parts) {
   2.237 +                result.addRow(new Object[] { part, null });
   2.238 +            }
   2.239 +        }
   2.240 +        
   2.241 +        return result;
   2.242 +    }
   2.243 +    
   2.244 +    
   2.245      /**
   2.246       * This method allows to globally mark the controls
   2.247       * for the output variabl as disabled.
   2.248 @@ -1018,6 +1148,32 @@
   2.249          Object operationObj = cbxOperation.getSelectedItem();
   2.250          return operationObj == null ? null : (Operation)operationObj;
   2.251      }
   2.252 +
   2.253 +    public JTable getTblInputToParts() {
   2.254 +        return tblInputToParts;
   2.255 +    }
   2.256 +    
   2.257 +    
   2.258 +    public JTable getTblOutputFromParts() {
   2.259 +        return tblOutputFromParts;
   2.260 +    }
   2.261 +
   2.262 +    public JRadioButton getRbtnInputToParts() {
   2.263 +        return rbtnInputToParts;
   2.264 +    }
   2.265 +
   2.266 +    public JRadioButton getRbtnInputVariable() {
   2.267 +        return rbtnInputVariable;
   2.268 +    }
   2.269 +
   2.270 +    public JRadioButton getRbtnOutputFromParts() {
   2.271 +        return rbtnOutputFromParts;
   2.272 +    }
   2.273 +
   2.274 +    public JRadioButton getRbtnOutputVariable() {
   2.275 +        return rbtnOutputVariable;
   2.276 +    }
   2.277 +    
   2.278      
   2.279  // ==============================================================
   2.280  // Fields accessors
   2.281 @@ -1058,14 +1214,50 @@
   2.282      public JTextField getFldVariableName() {
   2.283          return fldVariableName;
   2.284      }
   2.285 +
   2.286      
   2.287      public void setConfigurationListener(ConfigurationListener newValue) {
   2.288          myListener = newValue;
   2.289      }
   2.290 +
   2.291 +    
   2.292 +    private void updateEnabledStateForInputUI() {
   2.293 +        boolean variableEnabled;
   2.294 +        boolean toPartsEnabled;
   2.295 +        
   2.296 +        if (!rbtnInputVariable.isEnabled()) {
   2.297 +            variableEnabled = false;
   2.298 +            toPartsEnabled = false;
   2.299 +        } else {
   2.300 +            variableEnabled = rbtnInputVariable.isSelected();
   2.301 +            toPartsEnabled = rbtnInputToParts.isSelected();
   2.302 +        }
   2.303 +        
   2.304 +        setEnabled(variableEnabled, fldInputVariable, 
   2.305 +                btnNewInputVariable, btnChooseInputVariable);
   2.306 +        setEnabled(toPartsEnabled, tblInputToParts);
   2.307 +    }
   2.308 +    
   2.309 +    private void updateEnabledStateForOutputUI() {
   2.310 +        boolean variableEnabled;
   2.311 +        boolean toPartsEnabled;
   2.312 +        
   2.313 +        if (!rbtnOutputVariable.isEnabled()) {
   2.314 +            variableEnabled = false;
   2.315 +            toPartsEnabled = false;
   2.316 +        } else {
   2.317 +            variableEnabled = rbtnOutputVariable.isSelected();
   2.318 +            toPartsEnabled = rbtnOutputFromParts.isSelected();
   2.319 +        }
   2.320 +        
   2.321 +        setEnabled(variableEnabled, fldOutputVariable, 
   2.322 +                btnNewOutputVariable, btnChooseOutputVariable);
   2.323 +        setEnabled(toPartsEnabled, tblOutputFromParts);
   2.324 +    }
   2.325 +    
   2.326      
   2.327      public interface ConfigurationListener {
   2.328          void partnerLinkChanged();
   2.329          void operationChanged();
   2.330      }
   2.331 -    
   2.332  }