+ getOriginalDescription().getType().getApplicationName().getStringValue());
}
setBounds(100, 100, 600, 620);
setModal(true);
setLocationRelativeTo(null);
GridPanel buttonPane = new GridPanel();
{
lblError = new JLabel("");
lblError.setForeground(Color.RED);
buttonPane.add(lblError);
if (!isNewDescriptor()) {
JButton resetButton = new JButton("Reset");
resetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
loadData();
}
});
buttonPane.add(resetButton);
}
{
okButton = new JButton("Add");
if (!isNewDescriptor()) {
okButton.setText("Update");
}
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveApplicationDescription();
close();
}
});
okButton.setEnabled(false);
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
setApplicationDescCreated(false);
close();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
{
JPanel execPath = new JPanel();
txtExecPath = new XBayaTextField();
txtExecPath.getTextField().addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
setExecutablePath(txtExecPath.getText());
}
});
txtExecPath.getTextField().addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
super.focusLost(e);
updateTempDirWithExecPath(txtExecPath.getText());
}
});
txtExecPath.setColumns(10);
btnExecBrowse = new JButton(MenuIcons.OPEN_ICON);
btnExecBrowse.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JFileChooser c = new JFileChooser();
int rVal = c.showOpenDialog(null);
if (rVal == JFileChooser.APPROVE_OPTION) {
txtExecPath.setText(c.getSelectedFile().toString());
setExecutablePath(txtExecPath.getText());
}
}
});
execPath.add(txtExecPath.getSwingComponent());
execPath.add(btnExecBrowse);
setupLayoutForBrowse(execPath, txtExecPath.getSwingComponent());
JLabel lblExecutablePath = new JLabel("Executable path");
JPanel tmpDirPath = new JPanel();
txtTempDir = new XBayaTextField();
txtTempDir.getTextField().addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
setTempDir(txtTempDir.getText());
}
});
txtTempDir.setColumns(10);
btnTmpDirBrowse = new JButton(MenuIcons.OPEN_DIR_ICON);
btnTmpDirBrowse.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JFileChooser c = new JFileChooser();
c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int rVal = c.showOpenDialog(null);
if (rVal == JFileChooser.APPROVE_OPTION) {
txtTempDir.setText(c.getSelectedFile().toString());
setTempDir(txtTempDir.getText());
}
}
});
JTextField component = txtTempDir.getSwingComponent();
tmpDirPath.add(component);
tmpDirPath.add(btnTmpDirBrowse);
setupLayoutForBrowse(tmpDirPath, component);
JLabel lblTemporaryDirectory = new JLabel("Scratch working directory");
JButton btnAdvance = new JButton("Advanced application configurations...");
btnAdvance.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
ApplicationDescriptionAdvancedOptionDialog serviceDescriptionDialog = new ApplicationDescriptionAdvancedOptionDialog(
getRegistry(), getShellApplicationDescription());
serviceDescriptionDialog.open();
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, e1.getLocalizedMessage());
}
}
});
cmbHostName = new JComboBox();
cmbHostName.addActionListener(this);
XBayaLabel lblHostName = new XBayaLabel("Application host", cmbHostName);
XBayaLinkButton lnkNewHost = new XBayaLinkButton("New button");
lnkNewHost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
HostDescriptionDialog hostDescriptionDialog = new HostDescriptionDialog(getRegistry(), null);
hostDescriptionDialog.setLocationRelativeTo(getContentPane());
hostDescriptionDialog.open();
if (hostDescriptionDialog.isHostCreated()) {
ProgressMonitor progressMonitor = new ProgressMonitor(getContentPane(),
"Host Descriptions", "Refreshing host list..", 0, 200);
int progress = 1;
progressMonitor.setProgress(progress++);
while (cmbHostName.getSelectedIndex() == -1
|| !cmbHostName.getSelectedItem().toString()
.equals(hostDescriptionDialog.getHostLocation())) {
loadHostDescriptions();
cmbHostName.setSelectedItem(hostDescriptionDialog.getHostLocation());
progressMonitor.setProgress(progress++);
Thread.sleep(50);
}
progressMonitor.setProgress(200);
}
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, e1.getLocalizedMessage());
}
}
});
lnkNewHost.setText("Create new host...");
lnkNewHost.setHorizontalAlignment(SwingConstants.TRAILING);
btnHostAdvanceOptions = new JButton("HPC Configuration...");
btnHostAdvanceOptions.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
ApplicationDescriptionHostAdvancedOptionDialog hostAdvancedOptionsDialog = new ApplicationDescriptionHostAdvancedOptionDialog(
getRegistry(), getShellApplicationDescription());
hostAdvancedOptionsDialog.open();
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, e1.getLocalizedMessage());
}
}
});
btnHostAdvanceOptions.setVisible(false);
GridPanel hostPanel = new GridPanel();
hostPanel.add(cmbHostName);
// hostPanel.add(btnHostAdvanceOptions);
hostPanel.add(new JLabel());
SwingUtil.layoutToGrid(hostPanel.getSwingComponent(), 1, 2, 0, 0);
GridPanel infoPanel1 = new GridPanel();
infoPanel1.add(lblExecutablePath);
infoPanel1.add(execPath);
infoPanel1.add(lblTemporaryDirectory);
infoPanel1.add(tmpDirPath);
GridPanel infoPanel3 = new GridPanel();
infoPanel3.add(lblHostName);
infoPanel3.add(hostPanel);
infoPanel3.add(new JLabel());
infoPanel3.add(lnkNewHost);
GridPanel infoPanel4 = new GridPanel();
// infoPanel4.add(new JLabel());
infoPanel4.add(btnHostAdvanceOptions);
infoPanel4.add(btnAdvance);
infoPanel4.layout(1, 2, 0, 0);
SwingUtil.layoutToGrid(infoPanel1.getSwingComponent(), 4, 1, SwingUtil.WEIGHT_NONE, 0);
SwingUtil.layoutToGrid(infoPanel3.getSwingComponent(), 2, 2, SwingUtil.WEIGHT_NONE, 1);
GridPanel infoPanel = new GridPanel();
infoPanel.add(new JSeparator());
infoPanel.add(infoPanel3);
infoPanel.add(new JSeparator());
infoPanel.add(infoPanel1);
infoPanel.add(new JSeparator());
infoPanel.add(infoPanel4);
SwingUtil.layoutToGrid(infoPanel.getSwingComponent(), 6, 1, SwingUtil.WEIGHT_NONE, 0);
SwingUtil.layoutToGrid(buttonPane.getSwingComponent(), 1, buttonPane.getContentPanel().getComponentCount(),
SwingUtil.WEIGHT_NONE, 0);
getContentPane().add(infoPanel.getSwingComponent());
getContentPane().add(buttonPane.getSwingComponent());
buttonPane.getSwingComponent().setBorder(BorderFactory.createEtchedBorder());
infoPanel.getSwingComponent().setBorder(BorderFactory.createEtchedBorder());
SwingUtil.layoutToGrid(getContentPane(), 2, 1, -1, 0);
loadHostDescriptions();
}
setResizable(true);