|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package sun.tools.jconsole.inspector; |
|
|
|
import java.awt.*; |
|
import javax.swing.*; |
|
import javax.management.*; |
|
|
|
@SuppressWarnings("serial") |
|
public class OperationEntry extends JPanel { |
|
private MBeanOperationInfo operation; |
|
private JComboBox sigs; |
|
private XTextField inputs[]; |
|
|
|
public OperationEntry (MBeanOperationInfo operation, |
|
boolean isCallable, |
|
JButton button, |
|
XOperations xoperations) { |
|
super(new BorderLayout()); |
|
this.operation = operation; |
|
setLayout(new FlowLayout(FlowLayout.LEFT)); |
|
setPanel(isCallable, button, xoperations); |
|
} |
|
|
|
private void setPanel(boolean isCallable, |
|
JButton button, |
|
XOperations xoperations) { |
|
try { |
|
MBeanParameterInfo params[] = operation.getSignature(); |
|
add(new JLabel("(",JLabel.CENTER)); |
|
inputs = new XTextField[params.length]; |
|
for (int i = 0; i < params.length; i++) { |
|
if(params[i].getName() != null) { |
|
JLabel name = |
|
new JLabel(params[i].getName(), JLabel.CENTER); |
|
name.setToolTipText(params[i].getDescription()); |
|
add(name); |
|
} |
|
|
|
String defaultTextValue = |
|
Utils.getDefaultValue(params[i].getType()); |
|
int fieldWidth = defaultTextValue.length(); |
|
if (fieldWidth > 15) fieldWidth = 15; |
|
else |
|
if (fieldWidth < 10) fieldWidth = 10; |
|
|
|
add(inputs[i] = |
|
new XTextField(Utils.getReadableClassName(defaultTextValue), |
|
Utils.getClass(params[i].getType()), |
|
fieldWidth, |
|
isCallable, |
|
button, |
|
xoperations)); |
|
inputs[i].setHorizontalAlignment(SwingConstants.CENTER); |
|
|
|
if (i < params.length-1) |
|
add(new JLabel(",",JLabel.CENTER)); |
|
} |
|
add(new JLabel(")",JLabel.CENTER)); |
|
validate(); |
|
doLayout(); |
|
} |
|
catch (Exception e) { |
|
System.out.println("Error setting Operation panel :"+ |
|
e.getMessage()); |
|
} |
|
} |
|
|
|
public String[] getSignature() { |
|
MBeanParameterInfo params[] = operation.getSignature(); |
|
String result[] = new String[params.length]; |
|
for (int i = 0; i < params.length; i++) { |
|
result[i] = params[i].getType(); |
|
} |
|
return result; |
|
} |
|
|
|
public Object[] getParameters() throws Exception { |
|
MBeanParameterInfo params[] = operation.getSignature(); |
|
String signature[] = new String[params.length]; |
|
for (int i = 0; i < params.length; i++) |
|
signature[i] = params[i].getType(); |
|
return Utils.getParameters(inputs,signature); |
|
} |
|
|
|
public String getReturnType() { |
|
return operation.getReturnType(); |
|
} |
|
} |