1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski import com.sun.star.reflection.ParamInfo; 25*b1cdbd2cSJim Jagielski import com.sun.star.reflection.XIdlMethod; 26*b1cdbd2cSJim Jagielski import com.sun.star.uno.TypeClass; 27*b1cdbd2cSJim Jagielski import java.awt.BorderLayout; 28*b1cdbd2cSJim Jagielski import java.awt.event.ActionEvent; 29*b1cdbd2cSJim Jagielski import java.awt.event.ActionListener; 30*b1cdbd2cSJim Jagielski import java.awt.event.KeyAdapter; 31*b1cdbd2cSJim Jagielski import java.awt.event.KeyEvent; 32*b1cdbd2cSJim Jagielski import java.awt.event.WindowAdapter; 33*b1cdbd2cSJim Jagielski import java.awt.event.WindowEvent; 34*b1cdbd2cSJim Jagielski import java.util.Vector; 35*b1cdbd2cSJim Jagielski import javax.swing.JButton; 36*b1cdbd2cSJim Jagielski import javax.swing.JComboBox; 37*b1cdbd2cSJim Jagielski import javax.swing.JComponent; 38*b1cdbd2cSJim Jagielski import javax.swing.JDialog; 39*b1cdbd2cSJim Jagielski import javax.swing.JFrame; 40*b1cdbd2cSJim Jagielski import javax.swing.JLabel; 41*b1cdbd2cSJim Jagielski import javax.swing.JPanel; 42*b1cdbd2cSJim Jagielski import javax.swing.JTextField; 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski /** 45*b1cdbd2cSJim Jagielski * @author bc93774 46*b1cdbd2cSJim Jagielski */ 47*b1cdbd2cSJim Jagielski public class MethodParametersDialog extends JDialog{ 48*b1cdbd2cSJim Jagielski private javax.swing.JPanel jPnlParamContainer; 49*b1cdbd2cSJim Jagielski private ParameterPanel[] m_aParameterPanels; 50*b1cdbd2cSJim Jagielski private ParamInfo[] m_aParamInfo; 51*b1cdbd2cSJim Jagielski private XIdlMethod m_xIdlMethod; 52*b1cdbd2cSJim Jagielski private ActionListener oActionListener; 53*b1cdbd2cSJim Jagielski private JButton jHelpButton = new JButton("Help"); 54*b1cdbd2cSJim Jagielski private JButton jOKButton = new JButton("Ok"); 55*b1cdbd2cSJim Jagielski private JButton jInvokeButton = new JButton("Invoke"); 56*b1cdbd2cSJim Jagielski private Object m_oReturnButton = null; 57*b1cdbd2cSJim Jagielski private Object m_oUnoObject = null; 58*b1cdbd2cSJim Jagielski private Object m_oUnoReturnObject = null; 59*b1cdbd2cSJim Jagielski private JLabel jLblResult; 60*b1cdbd2cSJim Jagielski private JPanel jResultPanel = null; 61*b1cdbd2cSJim Jagielski private boolean bisdiposed = false; 62*b1cdbd2cSJim Jagielski private XUnoMethodNode m_xUnoMethodNode; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski MethodParametersDialog(XUnoMethodNode _xUnoMethodNode)65*b1cdbd2cSJim Jagielski public MethodParametersDialog(XUnoMethodNode _xUnoMethodNode){ 66*b1cdbd2cSJim Jagielski m_xUnoMethodNode = _xUnoMethodNode; 67*b1cdbd2cSJim Jagielski m_xIdlMethod = _xUnoMethodNode.getXIdlMethod(); 68*b1cdbd2cSJim Jagielski m_aParamInfo = m_xIdlMethod.getParameterInfos(); 69*b1cdbd2cSJim Jagielski m_oUnoObject = m_xUnoMethodNode.getUnoObject(); 70*b1cdbd2cSJim Jagielski Object[] m_aParameterObjects = new Object[m_aParamInfo.length]; 71*b1cdbd2cSJim Jagielski } 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski getMethodObjects()74*b1cdbd2cSJim Jagielski public Vector getMethodObjects() { 75*b1cdbd2cSJim Jagielski super.setModal(true); 76*b1cdbd2cSJim Jagielski addBorderPanel(getContentPane(), BorderLayout.NORTH); 77*b1cdbd2cSJim Jagielski addBorderPanel(getContentPane(), BorderLayout.WEST); 78*b1cdbd2cSJim Jagielski addBorderPanel(getContentPane(), BorderLayout.EAST); 79*b1cdbd2cSJim Jagielski jPnlParamContainer = new JPanel(); 80*b1cdbd2cSJim Jagielski jPnlParamContainer.setLayout(new javax.swing.BoxLayout(jPnlParamContainer, javax.swing.BoxLayout.Y_AXIS)); 81*b1cdbd2cSJim Jagielski JPanel jHeaderPanel = new JPanel(new BorderLayout()); 82*b1cdbd2cSJim Jagielski JLabel jLblHeader = new JLabel(); 83*b1cdbd2cSJim Jagielski jLblHeader.setText("Please insert the values for the given Parameters of the method '" + m_xIdlMethod.getName() + "'"); 84*b1cdbd2cSJim Jagielski jHeaderPanel.add(jLblHeader,BorderLayout.WEST); 85*b1cdbd2cSJim Jagielski jPnlParamContainer.add(jHeaderPanel); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski m_aParameterPanels = new ParameterPanel[m_aParamInfo.length]; 88*b1cdbd2cSJim Jagielski for (int i = 0; i < m_aParameterPanels.length; i++){ 89*b1cdbd2cSJim Jagielski m_aParameterPanels[i] = new ParameterPanel(m_aParamInfo[i]); 90*b1cdbd2cSJim Jagielski jPnlParamContainer.add(m_aParameterPanels[i]); 91*b1cdbd2cSJim Jagielski } 92*b1cdbd2cSJim Jagielski jPnlParamContainer.add(new ButtonPanel(), java.awt.BorderLayout.SOUTH); 93*b1cdbd2cSJim Jagielski getContentPane().add(jPnlParamContainer, java.awt.BorderLayout.CENTER); 94*b1cdbd2cSJim Jagielski pack(); 95*b1cdbd2cSJim Jagielski setLocation(350, 350); 96*b1cdbd2cSJim Jagielski setTitle("Object Inspector - Parameter Values of '" + m_xIdlMethod.getName() + "'"); 97*b1cdbd2cSJim Jagielski super.setFocusable(true); 98*b1cdbd2cSJim Jagielski super.setFocusableWindowState(true); 99*b1cdbd2cSJim Jagielski super.requestFocus(); 100*b1cdbd2cSJim Jagielski m_aParameterPanels[0].getInputComponent().requestFocusInWindow(); 101*b1cdbd2cSJim Jagielski setVisible(true); 102*b1cdbd2cSJim Jagielski if (!bisdiposed){ 103*b1cdbd2cSJim Jagielski Vector aMethodObjects = new Vector(); 104*b1cdbd2cSJim Jagielski for (int i = 0; i < m_aParameterPanels.length; i++){ 105*b1cdbd2cSJim Jagielski aMethodObjects.add(m_aParameterPanels[i].getValue()); 106*b1cdbd2cSJim Jagielski } 107*b1cdbd2cSJim Jagielski aMethodObjects.add(m_oUnoReturnObject); 108*b1cdbd2cSJim Jagielski return aMethodObjects; 109*b1cdbd2cSJim Jagielski } 110*b1cdbd2cSJim Jagielski else{ 111*b1cdbd2cSJim Jagielski return null; 112*b1cdbd2cSJim Jagielski } 113*b1cdbd2cSJim Jagielski } 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski insertResultPanel(Exception _oInvocationException)116*b1cdbd2cSJim Jagielski private void insertResultPanel(Exception _oInvocationException){ 117*b1cdbd2cSJim Jagielski boolean bAddPanel = false; 118*b1cdbd2cSJim Jagielski if (jResultPanel == null){ 119*b1cdbd2cSJim Jagielski jResultPanel = new JPanel(new BorderLayout()); 120*b1cdbd2cSJim Jagielski bAddPanel = true; 121*b1cdbd2cSJim Jagielski } 122*b1cdbd2cSJim Jagielski else{ 123*b1cdbd2cSJim Jagielski jResultPanel.removeAll(); 124*b1cdbd2cSJim Jagielski } 125*b1cdbd2cSJim Jagielski jLblResult = new JLabel(); 126*b1cdbd2cSJim Jagielski jLblResult.setMaximumSize(new java.awt.Dimension(getSize().width - 20, 57)); 127*b1cdbd2cSJim Jagielski if (_oInvocationException != null){ 128*b1cdbd2cSJim Jagielski jLblResult.setText("<html>Invoking the method cause an exception: <br>" + _oInvocationException.toString() + "</html>"); 129*b1cdbd2cSJim Jagielski } 130*b1cdbd2cSJim Jagielski else{ 131*b1cdbd2cSJim Jagielski jLblResult.setText("<html>The invocation of the method did not produce any error</html>"); 132*b1cdbd2cSJim Jagielski } 133*b1cdbd2cSJim Jagielski jResultPanel.add(jLblResult,BorderLayout.WEST); 134*b1cdbd2cSJim Jagielski if (bAddPanel){ 135*b1cdbd2cSJim Jagielski int nPos = jPnlParamContainer.getComponentCount() - 1; 136*b1cdbd2cSJim Jagielski jPnlParamContainer.add(jResultPanel, nPos); 137*b1cdbd2cSJim Jagielski } 138*b1cdbd2cSJim Jagielski super.pack(); 139*b1cdbd2cSJim Jagielski super.validate(); 140*b1cdbd2cSJim Jagielski } 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski getParameterValues()143*b1cdbd2cSJim Jagielski private Object[] getParameterValues(){ 144*b1cdbd2cSJim Jagielski Object[] oParameterValues = new Object[m_aParameterPanels.length]; 145*b1cdbd2cSJim Jagielski for (int i = 0; i < m_aParameterPanels.length; i++){ 146*b1cdbd2cSJim Jagielski oParameterValues[i] = m_aParameterPanels[i].getValue(); 147*b1cdbd2cSJim Jagielski } 148*b1cdbd2cSJim Jagielski return oParameterValues; 149*b1cdbd2cSJim Jagielski } 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski isCompleted()152*b1cdbd2cSJim Jagielski private boolean isCompleted(){ 153*b1cdbd2cSJim Jagielski boolean bIsCompleted = true; 154*b1cdbd2cSJim Jagielski for (int i = 0; i < m_aParameterPanels.length; i++){ 155*b1cdbd2cSJim Jagielski bIsCompleted = m_aParameterPanels[i].isCompleted(); 156*b1cdbd2cSJim Jagielski if (!bIsCompleted){ 157*b1cdbd2cSJim Jagielski break; 158*b1cdbd2cSJim Jagielski } 159*b1cdbd2cSJim Jagielski } 160*b1cdbd2cSJim Jagielski return bIsCompleted; 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski addBorderPanel(java.awt.Container _jContainer, String _sLayout)164*b1cdbd2cSJim Jagielski private void addBorderPanel(java.awt.Container _jContainer, String _sLayout){ 165*b1cdbd2cSJim Jagielski JPanel jPnlBorder = new JPanel(); 166*b1cdbd2cSJim Jagielski jPnlBorder.setPreferredSize(new java.awt.Dimension(10, 10)); 167*b1cdbd2cSJim Jagielski _jContainer.add(jPnlBorder, _sLayout); 168*b1cdbd2cSJim Jagielski } 169*b1cdbd2cSJim Jagielski addGapPanel(java.awt.Container _jContainer)170*b1cdbd2cSJim Jagielski private void addGapPanel(java.awt.Container _jContainer){ 171*b1cdbd2cSJim Jagielski JPanel jPnlBorder = new JPanel(); 172*b1cdbd2cSJim Jagielski jPnlBorder.setPreferredSize(new java.awt.Dimension(10, 10)); 173*b1cdbd2cSJim Jagielski jPnlBorder.setMaximumSize(new java.awt.Dimension(10, 10)); 174*b1cdbd2cSJim Jagielski _jContainer.add(jPnlBorder); 175*b1cdbd2cSJim Jagielski } 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski private class ParameterPanel extends JPanel{ 179*b1cdbd2cSJim Jagielski private JComponent m_jComponent; 180*b1cdbd2cSJim Jagielski private TypeClass m_aTypeClass = null; 181*b1cdbd2cSJim Jagielski ParameterPanel(ParamInfo _aParamInfo)182*b1cdbd2cSJim Jagielski public ParameterPanel(ParamInfo _aParamInfo){ 183*b1cdbd2cSJim Jagielski JTextField jTextField = new JTextField(); 184*b1cdbd2cSJim Jagielski JComboBox jComboBox = new JComboBox(); 185*b1cdbd2cSJim Jagielski m_aTypeClass = _aParamInfo.aType.getTypeClass(); 186*b1cdbd2cSJim Jagielski setLayout(new java.awt.BorderLayout()); 187*b1cdbd2cSJim Jagielski addBorderPanel(this, BorderLayout.NORTH); 188*b1cdbd2cSJim Jagielski addBorderPanel(this, BorderLayout.SOUTH); 189*b1cdbd2cSJim Jagielski JPanel jPnlCenter1 = new javax.swing.JPanel(); 190*b1cdbd2cSJim Jagielski jPnlCenter1.setLayout(new javax.swing.BoxLayout(jPnlCenter1, javax.swing.BoxLayout.X_AXIS)); 191*b1cdbd2cSJim Jagielski JLabel jLabel1 = new JLabel(); 192*b1cdbd2cSJim Jagielski jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); 193*b1cdbd2cSJim Jagielski String sParamText = _aParamInfo.aName + " (" + _aParamInfo.aType.getName() +")"; 194*b1cdbd2cSJim Jagielski jLabel1.setText(sParamText); 195*b1cdbd2cSJim Jagielski jPnlCenter1.add(jLabel1); 196*b1cdbd2cSJim Jagielski addGapPanel(jPnlCenter1); 197*b1cdbd2cSJim Jagielski switch (m_aTypeClass.getValue()){ 198*b1cdbd2cSJim Jagielski case TypeClass.BOOLEAN_value: 199*b1cdbd2cSJim Jagielski jComboBox.setBackground(new java.awt.Color(255, 255, 255)); 200*b1cdbd2cSJim Jagielski jComboBox.setPreferredSize(new java.awt.Dimension(50, 19)); 201*b1cdbd2cSJim Jagielski jComboBox.addItem("True"); 202*b1cdbd2cSJim Jagielski jComboBox.addItem("False"); 203*b1cdbd2cSJim Jagielski jComboBox.addKeyListener(new UpdateUIAdapter()); 204*b1cdbd2cSJim Jagielski jPnlCenter1.add(jComboBox); 205*b1cdbd2cSJim Jagielski m_jComponent = jComboBox; 206*b1cdbd2cSJim Jagielski break; 207*b1cdbd2cSJim Jagielski case TypeClass.BYTE_value: 208*b1cdbd2cSJim Jagielski case TypeClass.CHAR_value: 209*b1cdbd2cSJim Jagielski case TypeClass.DOUBLE_value: 210*b1cdbd2cSJim Jagielski case TypeClass.ENUM_value: 211*b1cdbd2cSJim Jagielski case TypeClass.FLOAT_value: 212*b1cdbd2cSJim Jagielski case TypeClass.HYPER_value: 213*b1cdbd2cSJim Jagielski case TypeClass.LONG_value: 214*b1cdbd2cSJim Jagielski case TypeClass.SHORT_value: 215*b1cdbd2cSJim Jagielski case TypeClass.STRING_value: 216*b1cdbd2cSJim Jagielski case TypeClass.UNSIGNED_HYPER_value: 217*b1cdbd2cSJim Jagielski case TypeClass.UNSIGNED_LONG_value: 218*b1cdbd2cSJim Jagielski case TypeClass.UNSIGNED_SHORT_value: 219*b1cdbd2cSJim Jagielski jTextField.setPreferredSize(new java.awt.Dimension(50, 19)); 220*b1cdbd2cSJim Jagielski jTextField.addKeyListener(new UpdateUIAdapter()); 221*b1cdbd2cSJim Jagielski jPnlCenter1.add(jTextField); 222*b1cdbd2cSJim Jagielski m_jComponent = jTextField; 223*b1cdbd2cSJim Jagielski break; 224*b1cdbd2cSJim Jagielski default: 225*b1cdbd2cSJim Jagielski System.out.println("Type " + m_aTypeClass.getValue() + " not yet defined in 'ParameterPanel()'"); 226*b1cdbd2cSJim Jagielski } 227*b1cdbd2cSJim Jagielski add(jPnlCenter1, java.awt.BorderLayout.CENTER); 228*b1cdbd2cSJim Jagielski JPanel jPnlEast = new JPanel(); 229*b1cdbd2cSJim Jagielski add(jPnlEast, BorderLayout.EAST); 230*b1cdbd2cSJim Jagielski } 231*b1cdbd2cSJim Jagielski getInputComponent()232*b1cdbd2cSJim Jagielski private JComponent getInputComponent(){ 233*b1cdbd2cSJim Jagielski return m_jComponent; 234*b1cdbd2cSJim Jagielski } 235*b1cdbd2cSJim Jagielski getValue()236*b1cdbd2cSJim Jagielski public Object getValue(){ 237*b1cdbd2cSJim Jagielski Object oReturn = null; 238*b1cdbd2cSJim Jagielski if (m_jComponent instanceof JTextField){ 239*b1cdbd2cSJim Jagielski String sText = ((JTextField) m_jComponent).getText(); 240*b1cdbd2cSJim Jagielski oReturn = Introspector.getIntrospector().getValueOfText(m_aTypeClass, sText); 241*b1cdbd2cSJim Jagielski } 242*b1cdbd2cSJim Jagielski else{ 243*b1cdbd2cSJim Jagielski JComboBox jComboBox = ((JComboBox) m_jComponent); 244*b1cdbd2cSJim Jagielski oReturn = Boolean.valueOf(jComboBox.getSelectedIndex() == 0); 245*b1cdbd2cSJim Jagielski } 246*b1cdbd2cSJim Jagielski return oReturn; 247*b1cdbd2cSJim Jagielski } 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski isCompleted()250*b1cdbd2cSJim Jagielski public boolean isCompleted(){ 251*b1cdbd2cSJim Jagielski if (m_jComponent instanceof JTextField){ 252*b1cdbd2cSJim Jagielski return !((JTextField) m_jComponent).getText().equals(""); 253*b1cdbd2cSJim Jagielski } 254*b1cdbd2cSJim Jagielski else{ 255*b1cdbd2cSJim Jagielski return true; 256*b1cdbd2cSJim Jagielski } 257*b1cdbd2cSJim Jagielski } 258*b1cdbd2cSJim Jagielski } 259*b1cdbd2cSJim Jagielski 260*b1cdbd2cSJim Jagielski 261*b1cdbd2cSJim Jagielski private class UpdateUIAdapter extends KeyAdapter{ keyReleased(KeyEvent e)262*b1cdbd2cSJim Jagielski public void keyReleased(KeyEvent e){ 263*b1cdbd2cSJim Jagielski boolean bIsCompleted = isCompleted(); 264*b1cdbd2cSJim Jagielski jOKButton.setEnabled(bIsCompleted); 265*b1cdbd2cSJim Jagielski jInvokeButton.setEnabled(bIsCompleted); 266*b1cdbd2cSJim Jagielski if (jLblResult != null){ 267*b1cdbd2cSJim Jagielski jLblResult.setEnabled(false); 268*b1cdbd2cSJim Jagielski jLblResult.invalidate(); 269*b1cdbd2cSJim Jagielski } 270*b1cdbd2cSJim Jagielski } 271*b1cdbd2cSJim Jagielski } 272*b1cdbd2cSJim Jagielski 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski 275*b1cdbd2cSJim Jagielski private class ButtonPanel extends JPanel{ ButtonPanel()276*b1cdbd2cSJim Jagielski public ButtonPanel(){ 277*b1cdbd2cSJim Jagielski super(); 278*b1cdbd2cSJim Jagielski setLayout(new BorderLayout()); 279*b1cdbd2cSJim Jagielski addBorderPanel(this, BorderLayout.NORTH); 280*b1cdbd2cSJim Jagielski addBorderPanel(this, BorderLayout.SOUTH); 281*b1cdbd2cSJim Jagielski JPanel jPnlBottomCenter = new JPanel(); 282*b1cdbd2cSJim Jagielski jPnlBottomCenter.setLayout(new javax.swing.BoxLayout(jPnlBottomCenter, javax.swing.BoxLayout.X_AXIS)); 283*b1cdbd2cSJim Jagielski jHelpButton.addActionListener(new ActionListener() { 284*b1cdbd2cSJim Jagielski public void actionPerformed(ActionEvent e) { 285*b1cdbd2cSJim Jagielski oActionListener.actionPerformed(e); 286*b1cdbd2cSJim Jagielski } 287*b1cdbd2cSJim Jagielski }); 288*b1cdbd2cSJim Jagielski jHelpButton.setEnabled(oActionListener != null); 289*b1cdbd2cSJim Jagielski jPnlBottomCenter.add(jHelpButton); 290*b1cdbd2cSJim Jagielski addGapPanel(jPnlBottomCenter); 291*b1cdbd2cSJim Jagielski jOKButton.setEnabled(false); 292*b1cdbd2cSJim Jagielski jOKButton.addActionListener(new ActionListener() { 293*b1cdbd2cSJim Jagielski public void actionPerformed(ActionEvent e) { 294*b1cdbd2cSJim Jagielski invokeParameterMethod(); 295*b1cdbd2cSJim Jagielski dispose(); 296*b1cdbd2cSJim Jagielski } 297*b1cdbd2cSJim Jagielski }); 298*b1cdbd2cSJim Jagielski jOKButton.setEnabled(isCompleted()); 299*b1cdbd2cSJim Jagielski jInvokeButton.setEnabled(isCompleted()); 300*b1cdbd2cSJim Jagielski jInvokeButton.addActionListener(new ActionListener() { 301*b1cdbd2cSJim Jagielski public void actionPerformed(ActionEvent e) { 302*b1cdbd2cSJim Jagielski invokeParameterMethod(); 303*b1cdbd2cSJim Jagielski } 304*b1cdbd2cSJim Jagielski }); 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski jPnlBottomCenter.add(jOKButton); 307*b1cdbd2cSJim Jagielski addGapPanel(jPnlBottomCenter); 308*b1cdbd2cSJim Jagielski jPnlBottomCenter.add(jInvokeButton); 309*b1cdbd2cSJim Jagielski addGapPanel(jPnlBottomCenter); 310*b1cdbd2cSJim Jagielski JButton jCancelButton = new JButton("Cancel"); 311*b1cdbd2cSJim Jagielski jCancelButton.setFocusCycleRoot(true); 312*b1cdbd2cSJim Jagielski jCancelButton.setFocusPainted(true); 313*b1cdbd2cSJim Jagielski jCancelButton.addActionListener(new ActionListener(){ 314*b1cdbd2cSJim Jagielski public void actionPerformed(java.awt.event.ActionEvent evt) { 315*b1cdbd2cSJim Jagielski bisdiposed = true; 316*b1cdbd2cSJim Jagielski dispose(); 317*b1cdbd2cSJim Jagielski } 318*b1cdbd2cSJim Jagielski }); 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski jPnlBottomCenter.add(jCancelButton); 321*b1cdbd2cSJim Jagielski add(jPnlBottomCenter); 322*b1cdbd2cSJim Jagielski } 323*b1cdbd2cSJim Jagielski } 324*b1cdbd2cSJim Jagielski 325*b1cdbd2cSJim Jagielski addActionListener(ActionListener _oActionListener)326*b1cdbd2cSJim Jagielski public void addActionListener(ActionListener _oActionListener){ 327*b1cdbd2cSJim Jagielski oActionListener = _oActionListener; 328*b1cdbd2cSJim Jagielski jHelpButton.setEnabled(oActionListener != null); 329*b1cdbd2cSJim Jagielski } 330*b1cdbd2cSJim Jagielski 331*b1cdbd2cSJim Jagielski invokeParameterMethod()332*b1cdbd2cSJim Jagielski public void invokeParameterMethod(){ 333*b1cdbd2cSJim Jagielski try{ 334*b1cdbd2cSJim Jagielski Object[] oParameters = getParameterValues(); 335*b1cdbd2cSJim Jagielski m_oUnoReturnObject = m_xUnoMethodNode.invoke(m_oUnoObject, oParameters); 336*b1cdbd2cSJim Jagielski insertResultPanel(null); 337*b1cdbd2cSJim Jagielski } catch (Exception ex) { 338*b1cdbd2cSJim Jagielski insertResultPanel(ex); 339*b1cdbd2cSJim Jagielski m_oUnoReturnObject = null; 340*b1cdbd2cSJim Jagielski }} 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski } 343