setTitle("Update Application Description: "+ getOriginalDescription().getType().getApplicationName().getStringValue());
}
setBounds(100, 100, 600, 620);
setModal(true);
setLocationRelativeTo(null);
GridPanel buttonPane = new GridPanel();
// getContentPane().setLayout(new BorderLayout());
{
// buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
// getContentPane().add(buttonPane, BorderLayout.SOUTH);
lblError = new JLabel("");
lblError.setForeground(Color.RED);
buttonPane.add(lblError);
if (!isNewDescritor()){
JButton resetButton = new JButton("Reset");
resetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
loadData();
}
});
buttonPane.add(resetButton);
}
{
okButton = new JButton("Save");
if (!isNewDescritor()){
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 panel = new JPanel();
// getContentPane().add(panel, BorderLayout.CENTER);
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(){
@Override
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);
JButton btnIOParameters = new JButton("IO Parameters...");
btnIOParameters.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
try {
ServiceDescriptionDialog serviceDescriptionDialog = new ServiceDescriptionDialog(getRegistry(),getServiceDescription()==null,getServiceDescription(),false,getApplicationName());
serviceDescriptionDialog.setLocationRelativeTo(getContentPane());
serviceDescriptionDialog.open();
if (serviceDescriptionDialog.isServiceCreated()) {
setServiceDescription(serviceDescriptionDialog.getServiceDescription());
}
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, e1.getLocalizedMessage());
}
}
});
execPath.add(new JLabel(" "));
execPath.add(btnIOParameters);
setupLayoutForBrowse(execPath,txtExecPath.getSwingComponent());
txtAppName = new XBayaTextField();
txtAppName.getTextField().addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent arg0) {
setApplicationName(txtAppName.getText());
}
});
txtAppName.setColumns(10);
XBayaLabel lblApplicationName = new XBayaLabel("Application name",txtAppName);
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(){
@Override
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);
// tmpDirPath.layout(1, 2, 0, 0);
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());
}
}
});
// cmbServiceName.setRenderer(new DefaultListCellRenderer());
cmbHostName = new JComboBox();
cmbHostName.addActionListener(this);
XBayaLabel lblHostName = new XBayaLabel("Application host",cmbHostName);
// lblHostName.getSwingComponent().setFont(new Font("Tahoma", Font.ITALIC, 11));
XBayaLinkButton lnkNewHost = new XBayaLinkButton("New button");
lnkNewHost.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
HostDescriptionDialog hostDescriptionDialog = new HostDescriptionDialog(engine.getConfiguration().getAiravataAPI(), 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);
// JLabel lblBindThisDeployment = new JLabel("Bind this deployment description to:");
// lblBindThisDeployment.setFont(new Font("Tahoma", Font.BOLD, 11));
btnHostAdvanceOptions=new JButton("HPC Configuration...");
btnHostAdvanceOptions.addActionListener(new ActionListener() {
@Override
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);
SwingUtil.layoutToGrid(hostPanel.getSwingComponent(), 1, 2, 0, 0);
GridPanel infoPanel0 = new GridPanel();
infoPanel0.add(lblApplicationName);
infoPanel0.add(txtAppName);
GridPanel infoPanel1 = new GridPanel();
infoPanel1.add(lblExecutablePath);
infoPanel1.add(execPath);
// infoPanel1.add(new JLabel());
// infoPanel1.add(btnIOParameters);
infoPanel1.add(lblTemporaryDirectory);
infoPanel1.add(tmpDirPath);
// infoPanel1.add(new JLabel());
// infoPanel1.add(btnAdvance);
// GridPanel infoPanel2 = new GridPanel();
// infoPanel2.add(new JSeparator());
// infoPanel2.add(lblBindThisDeployment);
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(btnAdvance);
infoPanel4.layout(1, 2, 0, 0);
SwingUtil.layoutToGrid(infoPanel0.getSwingComponent(), 1, 2, SwingUtil.WEIGHT_NONE, 1);
SwingUtil.layoutToGrid(infoPanel1.getSwingComponent(), 4, 1, SwingUtil.WEIGHT_NONE, 0);
// SwingUtil.layoutToGrid(infoPanel2.getSwingComponent(), 1, 1, SwingUtil.WEIGHT_NONE, 0);
SwingUtil.layoutToGrid(infoPanel3.getSwingComponent(), 2, 2, SwingUtil.WEIGHT_NONE, 1);
GridPanel infoPanel = new GridPanel();
infoPanel.add(infoPanel0);
infoPanel.add(new JSeparator());
infoPanel.add(infoPanel1);
infoPanel.add(new JSeparator());
// infoPanel.add(infoPanel2);
infoPanel.add(infoPanel3);
infoPanel.add(new JSeparator());
infoPanel.add(infoPanel4);
SwingUtil.layoutToGrid(infoPanel.getSwingComponent(), 7, 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);
// loadServiceDescriptions();
loadHostDescriptions();
}