package com.ibm.nmon.gui.parse;
import com.ibm.nmon.gui.main.NMONVisualizerGui;
import java.awt.GridBagConstraints;
import javax.swing.SwingConstants;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import com.ibm.nmon.gui.Styles;
/**
* Dialog to get the JVM name and hostname for a particular verbose GC file.
*
* @see com.ibm.nmon.gui.main.NMONVisualizerGui#getDataForGCParse(String)
*/
public final class VerboseGCPreParser extends BaseParserDialog {
private static final long serialVersionUID = 647178802418910814L;
private JComboBox<String> jvmNames;
public VerboseGCPreParser(NMONVisualizerGui gui) {
super(gui, "Missing GC Information");
}
@Override
protected void addComponents(JPanel content, GridBagConstraints labelConstraints,
GridBagConstraints fieldConstraints) {
jvmNames = new JComboBox<String>();
jvmNames.setEditable(true);
JLabel nameLabel = new JLabel("JVM Name:");
nameLabel.setFont(Styles.LABEL);
nameLabel.setHorizontalAlignment(SwingConstants.TRAILING);
content.add(nameLabel, labelConstraints);
content.add(jvmNames, fieldConstraints);
}
@Override
protected boolean validateOK() {
String jvmName = getJVMName();
if ((jvmName == null) || "".equals(jvmName)) {
JOptionPane.showMessageDialog(VerboseGCPreParser.this, "JVM Name" + " is required", "Missing Value",
JOptionPane.ERROR_MESSAGE);
return false;
}
else {
return true;
}
}
@Override
protected void beforeDispose() {
boolean existing = false;
DefaultComboBoxModel<String> model = (DefaultComboBoxModel<String>) jvmNames.getModel();
for (int i = 0; i < model.getSize(); i++) {
if (model.getElementAt(i).equals(jvmNames.getSelectedItem())) {
existing = true;
break;
}
}
if (!existing) {
model.addElement((String) jvmNames.getSelectedItem());
}
}
public String getJVMName() {
String name = (String) jvmNames.getSelectedItem();
if (name == null) {
name = "";
}
return name.trim();
}
public void setJVMName(String jvmName) {
jvmNames.setSelectedItem(jvmName);
}
}