You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/04/14 20:30:06 UTC
[04/90] [abbrv] [partial] AIRAVATA-1124
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/ChangeCredentialWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/ChangeCredentialWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/ChangeCredentialWindow.java
deleted file mode 100644
index d67caad..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/ChangeCredentialWindow.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.amazon;
-
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.services.ec2.AmazonEC2Client;
-import org.apache.airavata.gfac.ec2.EC2Provider;
-import org.apache.airavata.gfac.ec2.util.EC2ProviderUtil;
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.core.amazon.AmazonCredential;
-import org.apache.airavata.xbaya.ui.dialogs.XBayaDialog;
-import org.apache.airavata.xbaya.ui.widgets.GridPanel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaLabel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaTextField;
-
-import javax.swing.*;
-import java.awt.event.ActionEvent;
-import java.io.File;
-import java.io.IOException;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
-
-public class ChangeCredentialWindow {
- private XBayaEngine engine;
- private XBayaDialog dialog;
- private XBayaTextField accessKeyIDTextField;
- private XBayaTextField secretAccessKeyTextField;
-
- private JDialog owner;
-
- /**
- * Constructs a ChangeCredentialWindow.
- *
- * @param engine XBayaEngine
- */
- public ChangeCredentialWindow(XBayaEngine engine) {
- this.engine = engine;
- initGUI();
- }
-
- public ChangeCredentialWindow(JDialog owner) {
- this.owner = owner;
- initGUI();
- }
-
- protected void initGUI() {
- this.accessKeyIDTextField = new XBayaTextField();
- XBayaLabel accessKeyIDLabel = new XBayaLabel("Access Key", this.accessKeyIDTextField);
-
- this.secretAccessKeyTextField = new XBayaTextField();
- XBayaLabel secretAccessKeyLabel = new XBayaLabel("Secret Key", this.secretAccessKeyTextField);
-
- GridPanel infoPanel = new GridPanel();
- infoPanel.add(accessKeyIDLabel);
- infoPanel.add(this.accessKeyIDTextField);
- infoPanel.add(secretAccessKeyLabel);
- infoPanel.add(this.secretAccessKeyTextField);
-
- infoPanel.layout(2, 2, GridPanel.WEIGHT_NONE, 1);
-
- GridPanel mainPanel = new GridPanel();
- mainPanel.add(infoPanel);
- mainPanel.layout(1, 1, GridPanel.WEIGHT_EQUALLY, GridPanel.WEIGHT_EQUALLY);
-
- JButton okButton = new JButton("Ok");
- okButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- String accessID = ChangeCredentialWindow.this.accessKeyIDTextField.getText();
- if (!"".equals(accessID)) {
- String secretID = ChangeCredentialWindow.this.secretAccessKeyTextField.getText();
-
- if (!"".equals(secretID)) {
- AmazonCredential.getInstance().setAwsAccessKeyId(accessID);
- AmazonCredential.getInstance().setAwsSecretAccessKey(secretID);
- hide();
- return;
- }
- }
-
- JOptionPane.showMessageDialog(dialog.getDialog(),"SecretKey and AccessKey can not be empty!");
- }
-
- });
-
- JButton generateButton = new JButton("Generate Key Pair");
- generateButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- String accessID = ChangeCredentialWindow.this.accessKeyIDTextField.getText();
- if (!"".equals(accessID)) {
- String secretID = ChangeCredentialWindow.this.secretAccessKeyTextField.getText();
-
- if (!"".equals(secretID)) {
- AmazonCredential.getInstance().setAwsAccessKeyId(accessID);
- AmazonCredential.getInstance().setAwsSecretAccessKey(secretID);
-
- File file = new File(System.getProperty("user.home") + "/.ssh/" + EC2Provider.KEY_PAIR_NAME);
-
- if (file.exists()) {
- ChangeCredentialWindow.this.engine.getGUI().getErrorWindow().
- info(ChangeCredentialWindow.this.dialog.getDialog(),
- "Warning", "The file " + file.getAbsolutePath() + " exists.");
-
- } else {
- AWSCredentials credential =
- new BasicAWSCredentials(accessID, secretID);
- AmazonEC2Client ec2client = new AmazonEC2Client(credential);
-
- try {
- EC2ProviderUtil.buildKeyPair(ec2client, EC2Provider.KEY_PAIR_NAME);
- } catch (NoSuchAlgorithmException e1) {
- ChangeCredentialWindow.this.engine.getGUI().getErrorWindow().
- info(ChangeCredentialWindow.this.dialog.getDialog(),
- "Warning", e1.getMessage());
- } catch (InvalidKeySpecException e1) {
- ChangeCredentialWindow.this.engine.getGUI().getErrorWindow().
- info(ChangeCredentialWindow.this.dialog.getDialog(),
- "Warning", e1.getMessage());
- } catch (IOException e1) {
- ChangeCredentialWindow.this.engine.getGUI().getErrorWindow().
- info(ChangeCredentialWindow.this.dialog.getDialog(),
- "Warning", e1.getMessage());
- }
-
- JOptionPane.showMessageDialog(dialog.getDialog(),"The key " +
- file.getAbsolutePath() + " generated.");
- }
-
- hide();
- return;
- }
- }
-
- JOptionPane.showMessageDialog(dialog.getDialog(),"SecretKey and AccessKey can not be empty!");
- }
-
- });
-
- JButton cancelButton = new JButton("Cancel");
- cancelButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- hide();
- }
- });
-
- JPanel buttonPanel = new JPanel();
- buttonPanel.add(okButton);
- buttonPanel.add(generateButton);
- buttonPanel.add(cancelButton);
-
- if (this.owner == null) {
- this.dialog = new XBayaDialog(this.engine.getGUI(), "Security Credentials", mainPanel, buttonPanel);
- } else {
- this.dialog = new XBayaDialog(this.owner, "Security Credentials", mainPanel, buttonPanel);
- }
- }
-
- /**
- * hide the dialog (when user clicked on cancel)
- */
- public void hide() {
- this.dialog.hide();
- }
-
- /**
- * show the dialog
- */
- public void show() {
- if (!"".equals(AmazonCredential.getInstance().getAwsAccessKeyId())) {
- ChangeCredentialWindow.this.accessKeyIDTextField
- .setText(AmazonCredential.getInstance().getAwsAccessKeyId());
- }
- if (!"".equals(AmazonCredential.getInstance().getAwsSecretAccessKey())) {
- ChangeCredentialWindow.this.secretAccessKeyTextField.setText(AmazonCredential.getInstance()
- .getAwsSecretAccessKey());
- }
- this.dialog.show();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2InstancesManagementWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2InstancesManagementWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2InstancesManagementWindow.java
deleted file mode 100644
index de40180..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2InstancesManagementWindow.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.amazon;
-
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.core.amazon.AmazonCredential;
-import org.apache.airavata.xbaya.core.amazon.EC2InstanceResult;
-import org.apache.airavata.xbaya.ui.dialogs.XBayaDialog;
-import org.apache.airavata.xbaya.ui.widgets.GridPanel;
-import org.apache.airavata.xbaya.ui.widgets.XbayaEnhancedList;
-import org.apache.airavata.xbaya.util.AmazonUtil;
-
-import javax.swing.*;
-import javax.swing.border.EtchedBorder;
-import javax.swing.border.TitledBorder;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.util.ArrayList;
-import java.util.List;
-
-public class EC2InstancesManagementWindow {
- private XBayaEngine engine;
- private XBayaDialog dialog;
- private XbayaEnhancedList<EC2InstanceResult> list;
- private ChangeCredentialWindow credentialWindow;
-
- /**
- * Constructs a EC2InstancesManagementWindow.
- *
- * @param engine XBayaEngine
- */
- public EC2InstancesManagementWindow(XBayaEngine engine) {
- this.engine = engine;
- initGUI();
- }
-
- public void show() {
- this.dialog.show();
- }
-
- public void hide() {
- this.dialog.hide();
- }
-
- private void initGUI() {
- this.list = new XbayaEnhancedList<EC2InstanceResult>();
-
- GridPanel mainPanel = new GridPanel();
- TitledBorder border = new TitledBorder(new EtchedBorder(), "My Instances");
- mainPanel.getSwingComponent().setBorder(border);
- mainPanel.add(this.list);
- mainPanel.layout(1, 1, 0, 0);
-
- /* Connect/Refresh Button */
- JButton refreshButton = new JButton("Refresh");
- refreshButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
-
- /* Check if Credential is already set or not */
- if (credentialSet()) {
- InstancesLoader instancesLoader = new InstancesLoader(EC2InstancesManagementWindow.this.engine,
- EC2InstancesManagementWindow.this.dialog.getDialog());
- instancesLoader.load(EC2InstancesManagementWindow.this.list);
- }
- }
- });
-
- /* Launch Instance Button */
- JButton launchButton = new JButton("Launch");
- launchButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- if (credentialSet()) {
- EC2LaunchWindow ec2LaunchWindow = new EC2LaunchWindow(EC2InstancesManagementWindow.this.engine);
- ec2LaunchWindow.show();
- }
- }
- });
-
- /* Terminate Instance */
- JButton terminateButton = new JButton("Terminate");
- terminateButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- List<EC2InstanceResult> selected = EC2InstancesManagementWindow.this.list.getSelectedValues();
-
- if (selected.size() == 0) {
- EC2InstancesManagementWindow.this.engine.getGUI().getErrorWindow().info(
- EC2InstancesManagementWindow.this.dialog.getDialog(), "Warning", "No instances selected");
- return;
- }
-
- String text = "";
- List<String> requestIds = new ArrayList<String>();
-
- for (EC2InstanceResult ec2InstancesResult : selected) {
- requestIds.add(ec2InstancesResult.getInstance().getInstanceId());
- text += ec2InstancesResult.getInstance().getInstanceId() + ",";
- }
-
- // confirm from user
- int n = JOptionPane.showConfirmDialog(EC2InstancesManagementWindow.this.dialog.getDialog(),
- "Are you want to terminate instances:\n" + text, "Terminate Instances",
- JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
-
- if (n == JOptionPane.YES_OPTION) {
- // terminate
- AmazonUtil.terminateInstances(requestIds);
-
- // reload
- InstancesLoader instancesLoader = new InstancesLoader(EC2InstancesManagementWindow.this.engine,
- EC2InstancesManagementWindow.this.dialog.getDialog());
- instancesLoader.load(EC2InstancesManagementWindow.this.list);
- }
- }
- });
-
- /* Close Button */
- JButton closeButton = new JButton("Close");
- closeButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- EC2InstancesManagementWindow.this.hide();
- }
- });
-
- JPanel buttonPanel = new JPanel();
- buttonPanel.add(refreshButton);
- buttonPanel.add(launchButton);
- buttonPanel.add(terminateButton);
- buttonPanel.add(closeButton);
-
- this.dialog = new XBayaDialog(this.engine.getGUI(), "Amazon EC2 Management Console", mainPanel, buttonPanel);
- int width = 800;
- int height = 500;
- this.dialog.getDialog().setPreferredSize(new Dimension(width, height));
- this.dialog.setDefaultButton(closeButton);
-
- }
-
- private boolean credentialSet() {
- if (AmazonCredential.getInstance().getAwsAccessKeyId().isEmpty()
- || AmazonCredential.getInstance().getAwsSecretAccessKey().isEmpty()) {
- EC2InstancesManagementWindow.this.engine.getGUI().getErrorWindow().warning(
- EC2InstancesManagementWindow.this.dialog.getDialog(), "Error", "Aws Access Key not set!");
-
- if (this.credentialWindow == null) {
- this.credentialWindow = new ChangeCredentialWindow(EC2InstancesManagementWindow.this.dialog.getDialog());
- }
- try {
- this.credentialWindow.show();
- return false;
- } catch (Exception e1) {
- EC2InstancesManagementWindow.this.engine.getGUI().getErrorWindow().error(e1);
- }
- }
- return true;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2LaunchWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2LaunchWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2LaunchWindow.java
deleted file mode 100644
index a62be69..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/EC2LaunchWindow.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.amazon;
-
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.ui.dialogs.XBayaDialog;
-import org.apache.airavata.xbaya.ui.widgets.GridPanel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaComboBox;
-import org.apache.airavata.xbaya.ui.widgets.XBayaLabel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaTextField;
-import org.apache.airavata.xbaya.util.AmazonUtil;
-
-import javax.swing.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-public class EC2LaunchWindow {
- private XBayaEngine engine;
- private XBayaDialog dialog;
- private XBayaTextField amiTextField;
- private JSpinner numberOfInstanceSpinner;
- private XBayaComboBox instanceTypeComboBox;
- private XBayaComboBox keyComboBox;
- private JRadioButton existKeyButton;
- private ComboBoxModel keyComboBoxModel;
-
- /**
- * Constructs a EC2LaunchWindow.
- *
- * @param engine XBayaEngine
- */
- public EC2LaunchWindow(XBayaEngine engine) {
- this.engine = engine;
- initGUI();
- }
-
- private void initGUI() {
- /* Main Panel */
- this.amiTextField = new XBayaTextField();
- XBayaLabel amiLabel = new XBayaLabel("AMI ID", this.amiTextField);
-
- this.numberOfInstanceSpinner = new JSpinner(new SpinnerNumberModel(1, 1, Integer.MAX_VALUE, 1));
- XBayaLabel nInstanceLabel = new XBayaLabel("Number Of Instances", this.numberOfInstanceSpinner);
-
- this.instanceTypeComboBox = new XBayaComboBox(new DefaultComboBoxModel(AmazonUtil.INSTANCE_TYPE));
- this.instanceTypeComboBox.setSelectedItem(AmazonUtil.INSTANCE_TYPE[1]);
- XBayaLabel instanceTypeLabel = new XBayaLabel("Instance Type", this.instanceTypeComboBox);
-
- JRadioButton noKeyButton = new JRadioButton("No Key Pair");
- noKeyButton.setSelected(true);
- noKeyButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent paramActionEvent) {
- EC2LaunchWindow.this.keyComboBox.getJComboBox().setEnabled(false);
- }
- });
-
- this.existKeyButton = new JRadioButton("Exist Key Pairs");
- this.existKeyButton.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent paramActionEvent) {
- if (EC2LaunchWindow.this.keyComboBoxModel == null) {
- EC2LaunchWindow.this.keyComboBoxModel = new DefaultComboBoxModel(AmazonUtil.loadKeypairs()
- .toArray());
- EC2LaunchWindow.this.keyComboBox.setModel(EC2LaunchWindow.this.keyComboBoxModel);
- }
- EC2LaunchWindow.this.keyComboBox.getJComboBox().setEnabled(true);
- }
- });
-
- ButtonGroup serviceTypeButtonGroup = new ButtonGroup();
- serviceTypeButtonGroup.add(noKeyButton);
- serviceTypeButtonGroup.add(this.existKeyButton);
-
- this.keyComboBox = new XBayaComboBox(new DefaultComboBoxModel());
- this.keyComboBox.getJComboBox().setEnabled(false);
-
- GridPanel radioPanel = new GridPanel();
- radioPanel.add(noKeyButton);
- radioPanel.add(new JPanel());
- radioPanel.add(this.existKeyButton);
- radioPanel.add(this.keyComboBox);
- radioPanel.layout(2, 2, 0, 1);
-
- XBayaLabel keyLabel = new XBayaLabel("Key Pair", radioPanel);
-
- GridPanel mainPanel = new GridPanel(true);
- mainPanel.add(amiLabel);
- mainPanel.add(this.amiTextField);
- mainPanel.add(nInstanceLabel);
- mainPanel.add(this.numberOfInstanceSpinner);
- mainPanel.add(instanceTypeLabel);
- mainPanel.add(this.instanceTypeComboBox);
- mainPanel.add(keyLabel);
- mainPanel.add(radioPanel);
- mainPanel.layout(4, 2, 0, GridPanel.WEIGHT_EQUALLY);
-
- /* Button Panel */
- JButton lunchButton = new JButton("Launch");
- lunchButton.addActionListener(new AbstractAction() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- // validation
- if (EC2LaunchWindow.this.amiTextField.getText() == null
- || EC2LaunchWindow.this.amiTextField.getText().isEmpty()
- || (Integer) EC2LaunchWindow.this.numberOfInstanceSpinner.getValue() <= 0) {
- EC2LaunchWindow.this.engine.getGUI().getErrorWindow().info(EC2LaunchWindow.this.dialog.getDialog(),
- "Warning", "Please input all fields");
- return;
- }
-
- try {
- // get all data
- String ami = EC2LaunchWindow.this.amiTextField.getText();
- String instanceType = EC2LaunchWindow.this.instanceTypeComboBox.getText();
- Integer n = (Integer) EC2LaunchWindow.this.numberOfInstanceSpinner.getValue();
-
- // use exist key pair
- if (EC2LaunchWindow.this.existKeyButton.isSelected()) {
- String keyname = EC2LaunchWindow.this.keyComboBox.getText();
- AmazonUtil.launchInstance(ami, instanceType, n, keyname);
- } else {
- AmazonUtil.launchInstance(ami, instanceType, n);
- }
-
- EC2LaunchWindow.this.hide();
-
- } catch (NumberFormatException nfe) {
- EC2LaunchWindow.this.engine.getGUI().getErrorWindow().info(EC2LaunchWindow.this.dialog.getDialog(),
- "Warning", "Number of Instances is not numeric");
- } catch (Exception ex) {
- EC2LaunchWindow.this.engine.getGUI().getErrorWindow().error(EC2LaunchWindow.this.dialog.getDialog(),
- "Cannot start EC2 instances: " + ex.getMessage(), ex);
- }
- }
- });
-
- JButton closeButton = new JButton("Close");
- closeButton.addActionListener(new AbstractAction() {
- @Override
- public void actionPerformed(ActionEvent e) {
- EC2LaunchWindow.this.hide();
- }
- });
-
- JPanel buttonPanel = new JPanel();
- buttonPanel.add(lunchButton);
- buttonPanel.add(closeButton);
-
- this.dialog = new XBayaDialog(this.engine.getGUI(), "Amazon EC2 Launcher", mainPanel, buttonPanel);
- }
-
- public void hide() {
- this.dialog.hide();
- }
-
- public void show() {
- this.dialog.show();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/InstancesLoader.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/InstancesLoader.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/InstancesLoader.java
deleted file mode 100644
index 72ffd84..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/InstancesLoader.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.amazon;
-
-import com.amazonaws.AmazonClientException;
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.services.ec2.model.Instance;
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.core.amazon.EC2InstanceResult;
-import org.apache.airavata.xbaya.ui.dialogs.WaitDialog;
-import org.apache.airavata.xbaya.ui.utils.Cancelable;
-import org.apache.airavata.xbaya.ui.widgets.XbayaEnhancedList;
-import org.apache.airavata.xbaya.util.AmazonUtil;
-
-import javax.swing.*;
-import java.util.ArrayList;
-import java.util.List;
-
-public class InstancesLoader implements Cancelable {
- private XBayaEngine engine;
- private JDialog parent;
-
- private boolean canceled;
-
- private WaitDialog loadingDialog;
-
- /**
- * Constructs a InstancesLoader.
- *
- * @param engine XBayaEngine
- * @param parent JDialog
- */
- public InstancesLoader(XBayaEngine engine, JDialog parent) {
- this.engine = engine;
- this.parent = parent;
- this.loadingDialog = new WaitDialog(this, "Loading EC2 Instances.", "Loading EC2 Instances.\n"
- + "Please wait for a moment.", this.engine.getGUI());
- }
-
- /**
- * @see org.apache.airavata.xbaya.ui.utils.Cancelable#cancel()
- */
- @Override
- public void cancel() {
- this.canceled = true;
- }
-
- /**
- * Load instance list.
- *
- * @param list instance list
- */
- public void load(final XbayaEnhancedList<EC2InstanceResult> list) {
-
- new Thread(new Runnable() {
-
- @Override
- public void run() {
- try {
-
- List<EC2InstanceResult> tmpList = new ArrayList<EC2InstanceResult>();
-
- List<Instance> instances = AmazonUtil.loadInstances();
- for (Instance instance : instances) {
- tmpList.add(new EC2InstanceResult(instance));
- }
-
- if (!InstancesLoader.this.canceled) {
- list.setListData(tmpList);
- }
-
- } catch (AmazonServiceException ex) {
- InstancesLoader.this.engine.getGUI().getErrorWindow().error(InstancesLoader.this.parent,
- "Cannot load EC2 instances", ex);
- } catch (AmazonClientException ex) {
- InstancesLoader.this.engine.getGUI().getErrorWindow().error(InstancesLoader.this.parent,
- "Cannot load EC2 instances", ex);
- } finally {
- InstancesLoader.this.loadingDialog.hide();
- }
- }
- }).start();
-
- this.loadingDialog.show();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Downloader.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Downloader.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Downloader.java
deleted file mode 100644
index acbdfd5..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Downloader.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.amazon;
-
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.ui.dialogs.WaitDialog;
-import org.apache.airavata.xbaya.ui.utils.Cancelable;
-import org.jets3t.service.S3Service;
-import org.jets3t.service.model.S3Object;
-
-import javax.swing.*;
-import java.io.*;
-
-public class S3Downloader implements Cancelable {
-
- private XBayaEngine engine;
- private JDialog parent;
-
- private boolean canceled;
-
- private WaitDialog loadingDialog;
-
- /**
- * Constructs a S3Downloader.
- *
- * @param engine XBayaEngine
- * @param parent JDialog
- */
- public S3Downloader(XBayaEngine engine, JDialog parent) {
- this.engine = engine;
- this.parent = parent;
- this.loadingDialog = new WaitDialog(this, "Downloading file from S3.", "Downloading file from S3.\n"
- + "Please wait for a moment.", this.engine.getGUI());
- }
-
- /**
- * @see org.apache.airavata.xbaya.ui.utils.Cancelable#cancel()
- */
- @Override
- public void cancel() {
- this.canceled = true;
- }
-
- /**
- * Download bucket.
- *
- * @param s3 S3Service
- * @param bucket bucket
- * @param key Key
- * @param directory directory
- */
- public void download(final S3Service s3, final String bucket, final String key, final String directory) {
-
- new Thread(new Runnable() {
-
- @Override
- public void run() {
-
- BufferedWriter out = null;
- BufferedReader in = null;
- try {
- S3Object s3Object = s3.getObject(bucket, key);
-
- File fileOut = new File(directory + File.separator + s3Object.getKey());
- if (!fileOut.getParentFile().exists()) {
- fileOut.getParentFile().mkdirs();
- }
- if (!fileOut.exists()) {
- fileOut.createNewFile();
- }
-
- out = new BufferedWriter(new FileWriter(fileOut));
- in = new BufferedReader(new InputStreamReader(s3Object.getDataInputStream()));
- String data = null;
- while ((data = in.readLine()) != null) {
-
- // stop download and delete file
- if (S3Downloader.this.canceled) {
- out.close();
- fileOut.delete();
- return;
- }
-
- out.write(data);
- out.newLine();
- }
-
- S3Downloader.this.engine.getGUI().getErrorWindow().info(S3Downloader.this.parent, "",
- "Downloaded successfully!");
- } catch (Exception ex) {
- S3Downloader.this.engine.getGUI().getErrorWindow().error(S3Downloader.this.parent,
- "Download failed! Please ensure every fields are filled correctly", ex);
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException io) {
- // do nothing
- }
- }
- if (out != null) {
- try {
- out.close();
- } catch (IOException io) {
- // do nothing
- }
- }
-
- // close loading dialog
- S3Downloader.this.loadingDialog.hide();
- }
- }
-
- }).start();
-
- this.loadingDialog.show();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Uploader.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Uploader.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Uploader.java
deleted file mode 100644
index 5178ce3..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/amazon/S3Uploader.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.amazon;
-
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.ui.dialogs.WaitDialog;
-import org.apache.airavata.xbaya.ui.utils.Cancelable;
-import org.apache.airavata.xbaya.ui.widgets.amazon.S3Tree;
-import org.jets3t.service.S3Service;
-import org.jets3t.service.model.S3Object;
-
-import javax.swing.*;
-import java.io.File;
-
-public class S3Uploader implements Cancelable {
- private XBayaEngine engine;
- private JDialog parent;
-
- private boolean canceled;
-
- private WaitDialog loadingDialog;
-
- /**
- * Constructs a S3Uploader.
- *
- * @param engine XBayaEngine
- * @param parent JDialog
- */
- public S3Uploader(XBayaEngine engine, JDialog parent) {
- this.engine = engine;
- this.parent = parent;
- this.loadingDialog = new WaitDialog(this, "Uploading file to S3.", "Uploading file to S3.\n"
- + "Please wait for a moment.", this.engine.getGUI());
- }
-
- /**
- * @see org.apache.airavata.xbaya.ui.utils.Cancelable#cancel()
- */
- @Override
- public void cancel() {
- this.canceled = true;
- }
-
- /**
- * Upload bucket.
- *
- * @param s3 S3Service
- * @param s3tree S3Tree
- * @param bucket bucket
- * @param filePath file path
- */
- public void upload(final S3Service s3, final S3Tree s3tree, final String bucket, final String filePath) {
-
- new Thread(new Runnable() {
-
- @Override
- public void run() {
-
- int index;
- index = filePath.lastIndexOf('/');
- String fileName;
- if (index == -1) {
- index = filePath.lastIndexOf('\\');
- }
- fileName = filePath.substring(index + 1, filePath.length());
- try {
- S3Object s3Object = new S3Object(new File(filePath));
- s3.putObject(bucket, s3Object);
-
- /*
- * We cannot cancel during upload, so delete file instead
- */
- if (S3Uploader.this.canceled) {
- s3.deleteObject(bucket, s3Object.getKey());
- } else {
-
- S3Uploader.this.engine.getGUI().getErrorWindow().info(S3Uploader.this.parent, "",
- "Uploaded successfully!");
-
- // add key to S3Tree
- int startIndex = bucket.lastIndexOf('/');
- startIndex = startIndex >= 0 ? startIndex : 0;
- if (startIndex != 0) {
- fileName = bucket.substring(startIndex) + '/' + fileName;
- }
-
- if (fileName.startsWith("/")) {
- fileName = fileName.substring(1, fileName.length());
- }
-
- s3tree.addObject(bucket, fileName);
- }
-
- } catch (Exception ex) {
- S3Uploader.this.engine.getGUI().getErrorWindow().error(S3Uploader.this.parent,
- "Upload failed! Please ensure every fields are filled correctly", ex);
- } finally {
- // close loading dialog
- S3Uploader.this.loadingDialog.hide();
- }
- }
-
- }).start();
-
- this.loadingDialog.show();
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/URLRegistryWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/URLRegistryWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/URLRegistryWindow.java
deleted file mode 100644
index 7aac6e3..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/URLRegistryWindow.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.component;
-
-import java.awt.event.ActionEvent;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import javax.swing.AbstractAction;
-import javax.swing.JButton;
-import javax.swing.JPanel;
-
-import org.apache.airavata.workflow.model.component.url.URLComponentRegistry;
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.component.registry.ComponentRegistryLoader;
-import org.apache.airavata.xbaya.ui.dialogs.XBayaDialog;
-import org.apache.airavata.xbaya.ui.utils.ErrorMessages;
-import org.apache.airavata.xbaya.ui.widgets.GridPanel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaLabel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaTextField;
-import org.apache.airavata.xbaya.util.RegistryConstants;
-
-/**
- *
- * Adds components to the component browser through a URL (eg: add service from a WSDL)
- *
- */
-public class URLRegistryWindow {
-
- private XBayaEngine engine;
-
- private ComponentRegistryLoader loader;
-
- private XBayaDialog dialog;
-
- private XBayaTextField urlTextField;
-
- /**
- * @param engine
- */
- public URLRegistryWindow(XBayaEngine engine) {
- this.engine = engine;
- this.loader = ComponentRegistryLoader.getLoader(this.engine, RegistryConstants.REGISTRY_TYPE_URL);
- initGUI();
- }
-
- /**
- * Displays the dialog.
- */
- public void show() {
- this.dialog.show();
- }
-
- private void hide() {
- this.dialog.hide();
- }
-
- private void ok() {
- String urlString = this.urlTextField.getText();
-
- if (urlString.length() == 0) {
- this.engine.getGUI().getErrorWindow().error(ErrorMessages.URL_EMPTY);
- return;
- }
- URI url;
- try {
- url = new URI(urlString);
- } catch (URISyntaxException e) {
- this.engine.getGUI().getErrorWindow().error(ErrorMessages.URL_WRONG, e);
- return;
- }
-
- URLComponentRegistry registry = new URLComponentRegistry(url);
-
- hide();
-
- this.loader.load(registry);
- }
-
- /**
- * Initializes the GUI.
- */
- private void initGUI() {
- this.urlTextField = new XBayaTextField();
- XBayaLabel urlLabel = new XBayaLabel("URL", this.urlTextField);
-
- GridPanel infoPanel = new GridPanel();
- infoPanel.add(urlLabel);
- infoPanel.add(this.urlTextField);
- infoPanel.layout(1, 2, GridPanel.WEIGHT_NONE, 1);
-
- JButton okButton = new JButton("OK");
- okButton.addActionListener(new AbstractAction() {
- public void actionPerformed(ActionEvent e) {
- ok();
- }
- });
-
- JButton cancelButton = new JButton("Cancel");
- cancelButton.addActionListener(new AbstractAction() {
- public void actionPerformed(ActionEvent e) {
- hide();
- }
- });
-
- JPanel buttonPanel = new JPanel();
- buttonPanel.add(okButton);
- buttonPanel.add(cancelButton);
-
- this.dialog = new XBayaDialog(this.engine.getGUI(), "Web Registry", infoPanel, buttonPanel);
- this.dialog.setDefaultButton(okButton);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/WebResigtryWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/WebResigtryWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/WebResigtryWindow.java
deleted file mode 100644
index aae1652..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/component/WebResigtryWindow.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.component;
-
-import java.awt.event.ActionEvent;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.swing.AbstractAction;
-import javax.swing.JButton;
-import javax.swing.JPanel;
-
-import org.apache.airavata.workflow.model.component.web.WebComponentRegistry;
-import org.apache.airavata.xbaya.XBayaConstants;
-import org.apache.airavata.xbaya.XBayaEngine;
-import org.apache.airavata.xbaya.component.registry.ComponentRegistryLoader;
-import org.apache.airavata.xbaya.ui.dialogs.XBayaDialog;
-import org.apache.airavata.xbaya.ui.utils.ErrorMessages;
-import org.apache.airavata.xbaya.ui.widgets.GridPanel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaLabel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaTextField;
-import org.apache.airavata.xbaya.util.RegistryConstants;
-
-public class WebResigtryWindow {
-
- private XBayaEngine engine;
-
- private ComponentRegistryLoader loader;
-
- private XBayaDialog dialog;
-
- private XBayaTextField urlTextField;
-
- /**
- * @param engine
- */
- public WebResigtryWindow(XBayaEngine engine) {
- this.engine = engine;
- this.loader = ComponentRegistryLoader.getLoader(this.engine, RegistryConstants.REGISTRY_TYPE_WEB);
- initGUI();
- }
-
- /**
- * Displays the dialog.
- */
- public void show() {
- if (this.urlTextField.getText().length() == 0) {
- this.urlTextField.setText(XBayaConstants.DEFAULT_WEB_REGISTRY.toString());
- }
- this.dialog.show();
- }
-
- private void hide() {
- this.dialog.hide();
- }
-
- private void ok() {
- String urlString = this.urlTextField.getText();
-
- if (urlString.length() == 0) {
- this.engine.getGUI().getErrorWindow().error(ErrorMessages.URL_EMPTY);
- return;
- }
- URL url;
- try {
- url = new URL(urlString);
- } catch (MalformedURLException e) {
- this.engine.getGUI().getErrorWindow().error(ErrorMessages.URL_WRONG, e);
- return;
- }
-
- WebComponentRegistry registry = new WebComponentRegistry(url);
-
- hide();
-
- this.loader.load(registry);
- }
-
- /**
- * Initializes the GUI.
- */
- private void initGUI() {
- this.urlTextField = new XBayaTextField();
- XBayaLabel urlLabel = new XBayaLabel("URL", this.urlTextField);
-
- GridPanel infoPanel = new GridPanel();
- infoPanel.add(urlLabel);
- infoPanel.add(this.urlTextField);
- infoPanel.layout(1, 2, GridPanel.WEIGHT_NONE, 1);
-
- JButton okButton = new JButton("OK");
- okButton.addActionListener(new AbstractAction() {
- public void actionPerformed(ActionEvent e) {
- ok();
- }
- });
-
- JButton cancelButton = new JButton("Cancel");
- cancelButton.addActionListener(new AbstractAction() {
- public void actionPerformed(ActionEvent e) {
- hide();
- }
- });
-
- JPanel buttonPanel = new JPanel();
- buttonPanel.add(okButton);
- buttonPanel.add(cancelButton);
-
- this.dialog = new XBayaDialog(this.engine.getGUI(), "Web Registry", infoPanel, buttonPanel);
- this.dialog.setDefaultButton(okButton);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/0e2c10f5/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/ApplicationDescriptionAdvancedOptionDialog.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/ApplicationDescriptionAdvancedOptionDialog.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/ApplicationDescriptionAdvancedOptionDialog.java
deleted file mode 100644
index fe72516..0000000
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/descriptors/ApplicationDescriptionAdvancedOptionDialog.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.xbaya.ui.dialogs.descriptors;
-
-import java.awt.Font;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JScrollPane;
-import javax.swing.JSeparator;
-import javax.swing.JTable;
-import javax.swing.ListSelectionModel;
-import javax.swing.SwingConstants;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.DefaultTableModel;
-
-import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.common.utils.SwingUtil;
-import org.apache.airavata.commons.gfac.type.ApplicationDescription;
-//import org.apache.airavata.registry.api.AiravataRegistry2;
-import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
-import org.apache.airavata.schemas.gfac.NameValuePairType;
-import org.apache.airavata.xbaya.ui.widgets.GridPanel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaLabel;
-import org.apache.airavata.xbaya.ui.widgets.XBayaTextField;
-
-public class ApplicationDescriptionAdvancedOptionDialog extends JDialog {
- private static final long serialVersionUID = 3920479739097405014L;
- private XBayaTextField txtInputDir;
- private XBayaTextField txtOutputDir;
- private XBayaTextField txtSTDIN;
- private XBayaTextField txtSTDOUT;
- private XBayaTextField txtSTDERR;
- private JTable tblEnv;
- private ApplicationDescription shellApplicationDescription;
- private DefaultTableModel defaultTableModel;
- private boolean tableModelChanging = false;
- private JButton btnDeleteVariable;
- private JButton okButton;
- private AiravataAPI registry;
- private XBayaTextField txtWorkingDir;
-
- /**
- * Launch the application.
- */
- public static void main(String[] args) {
- try {
- ApplicationDescriptionAdvancedOptionDialog dialog = new ApplicationDescriptionAdvancedOptionDialog(null,
- null);
- dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
- dialog.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * Create the dialog.
- */
- public ApplicationDescriptionAdvancedOptionDialog(AiravataAPI registry, ApplicationDescription descriptor) {
- addWindowListener(new WindowAdapter() {
- @Override
- public void windowOpened(WindowEvent arg0) {
- loadApplicationDescriptionAdvancedOptions();
- }
- });
- setRegistry(registry);
- setShellApplicationDescription(descriptor);
- initGUI();
- }
-
- public void open() {
- setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
- setVisible(true);
- }
-
- protected ApplicationDescriptionAdvancedOptionDialog getDialog() {
- return this;
- }
-
- public void close() {
- getDialog().setVisible(false);
- }
-
- @SuppressWarnings("serial")
- private void initGUI() {
- setTitle("Application Description Advance Options");
- setModal(true);
- setBounds(100, 100, 600, 400);
- setLocationRelativeTo(null);
- GridPanel buttonPane = new GridPanel();
- okButton = new JButton("Update");
- okButton.setActionCommand("OK");
- okButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- saveApplicationDescriptionAdvancedOptions();
- close();
- }
- });
- getRootPane().setDefaultButton(okButton);
-
-
- JButton cancelButton = new JButton("Cancel");
- cancelButton.setActionCommand("Cancel");
- cancelButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- close();
- }
- });
-
-
-
- GridPanel panel = new GridPanel();
-
- txtInputDir = new XBayaTextField();
-
- XBayaLabel lblInputDirectory = new XBayaLabel("Input directory",txtInputDir);
-
- JLabel lblLocations = new JLabel("Locations");
- lblLocations.setFont(new Font("Tahoma", Font.BOLD, 11));
-
- txtOutputDir = new XBayaTextField();
- XBayaLabel lblOutputDirectory = new XBayaLabel("Output directory",txtOutputDir);
-
- txtWorkingDir = new XBayaTextField();
- XBayaLabel lblWorkingDir = new XBayaLabel("Static Working directory",txtWorkingDir);
-
- JLabel lblProgramData = new JLabel("Program data");
- lblProgramData.setFont(new Font("Tahoma", Font.BOLD, 11));
-
-
- txtSTDIN = new XBayaTextField();
- XBayaLabel lblStdin = new XBayaLabel("STDIN",txtSTDIN);
-
-
- txtSTDOUT = new XBayaTextField();
- XBayaLabel lblStdout = new XBayaLabel("STDOUT",txtSTDOUT);
-
-
- txtSTDERR = new XBayaTextField();
- XBayaLabel lblStderr = new XBayaLabel("STDERR",txtSTDERR);
-
- JLabel other = new JLabel("Other");
- other.setFont(new Font("Tahoma", Font.BOLD, 11));
-
- JSeparator separator_1 = new JSeparator();
- separator_1.setOrientation(SwingConstants.VERTICAL);
-
- JLabel lblEnvironmentalVariables = new JLabel("Environmental Variables");
- lblEnvironmentalVariables.setFont(new Font("Tahoma", Font.BOLD, 11));
-
- JScrollPane scrollPane = new JScrollPane();
-
- btnDeleteVariable = new JButton("Delete variable");
- btnDeleteVariable.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- deleteSelectedRows();
- }
- });
- btnDeleteVariable.setEnabled(false);
- tblEnv = new JTable();
- tblEnv.setFillsViewportHeight(true);
- scrollPane.setViewportView(tblEnv);
- tblEnv.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- defaultTableModel = new DefaultTableModel(new Object[][] { { null, null }, }, new String[] { "Name",
- "Value" }) {
- @SuppressWarnings("rawtypes")
- Class[] columnTypes = new Class[] { String.class, String.class };
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public Class getColumnClass(int columnIndex) {
- return columnTypes[columnIndex];
- }
- };
- tblEnv.setModel(defaultTableModel);
- defaultTableModel.addTableModelListener(new TableModelListener() {
- public void tableChanged(TableModelEvent arg0) {
- if (!tableModelChanging) {
- addNewRowIfLastIsNotEmpty();
- }
- }
-
- });
- tblEnv.getColumnModel().getColumn(0).setPreferredWidth(67);
- tblEnv.getColumnModel().getColumn(1).setPreferredWidth(158);
- ListSelectionModel selectionModel = tblEnv.getSelectionModel();
- selectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
-
- selectionModel.addListSelectionListener(new ListSelectionListener() {
- public void valueChanged(ListSelectionEvent e) {
- btnDeleteVariable.setEnabled(tblEnv.getSelectedRows().length > 0);
- }
-
- });
-
- GridPanel leftPanel = new GridPanel();
- leftPanel.add(lblLocations);
- leftPanel.add(new JLabel());
- leftPanel.add(lblInputDirectory);
- leftPanel.add(txtInputDir);
- leftPanel.add(lblOutputDirectory);
- leftPanel.add(txtOutputDir);
- leftPanel.add(lblWorkingDir);
- leftPanel.add(txtWorkingDir);
- leftPanel.add(lblProgramData);
-
- leftPanel.add(new JLabel());
- leftPanel.add(lblStdin);
- leftPanel.add(txtSTDIN);
- leftPanel.add(lblStdout);
- leftPanel.add(txtSTDOUT);
- leftPanel.add(lblStderr);
- leftPanel.add(txtSTDERR);
-
- SwingUtil.layoutToGrid(leftPanel.getSwingComponent(), 8, 2, SwingUtil.WEIGHT_NONE, 1);
-
- GridPanel rightPanel = new GridPanel();
- rightPanel.add(lblEnvironmentalVariables);
- rightPanel.add(scrollPane);
- rightPanel.add(btnDeleteVariable);
- rightPanel.getSwingComponent().setSize(150, -1);
- leftPanel.getSwingComponent().setSize(150, -1);
- SwingUtil.layoutToGrid(rightPanel.getSwingComponent(), 3, 1, 1, 0);
-
- GridPanel p=new GridPanel();
- p.add(leftPanel);
- p.add(new JSeparator(JSeparator.VERTICAL));
- p.layout(1,2, 0,0);
- panel.add(p);
- panel.add(rightPanel);
- panel.getSwingComponent().setBorder(BorderFactory.createEtchedBorder());
-
- SwingUtil.layoutToGrid(panel.getSwingComponent(), 1, 2, SwingUtil.WEIGHT_NONE, SwingUtil.WEIGHT_EQUALLY);
-
- buttonPane.add(okButton);
- buttonPane.add(cancelButton);
- buttonPane.getSwingComponent().setBorder(BorderFactory.createEtchedBorder());
-
- getContentPane().add(panel.getSwingComponent());
- getContentPane().add(buttonPane.getSwingComponent());
- SwingUtil.layoutToGrid(getContentPane(), 2, 1, 0, 0);
- setResizable(true);
- getRootPane().setDefaultButton(okButton);
- }
-
- private void deleteSelectedRows() {
- // TODO confirm deletion of selected rows
- int selectedRow = tblEnv.getSelectedRow();
- while (selectedRow >= 0) {
- defaultTableModel.removeRow(selectedRow);
- selectedRow = tblEnv.getSelectedRow();
- }
- addNewRowIfLastIsNotEmpty();
- }
-
- public ApplicationDescription getApplicationDescription() {
- return shellApplicationDescription;
- }
-
- public ApplicationDeploymentDescriptionType getShellApplicationDescriptionType() {
- return (ApplicationDeploymentDescriptionType)shellApplicationDescription.getType();
- }
-
- public void setShellApplicationDescription(ApplicationDescription shellApplicationDescription) {
- this.shellApplicationDescription = shellApplicationDescription;
- }
-
- private void addNewRowIfLastIsNotEmpty() {
- Object varName = null;
- if (defaultTableModel.getRowCount() > 0) {
- varName = defaultTableModel.getValueAt(defaultTableModel.getRowCount() - 1, 0);
- }
- if (defaultTableModel.getRowCount() == 0 || (varName != null && !varName.equals(""))) {
- defaultTableModel.addRow(new Object[] { null, null });
- }
- }
-
- private void saveApplicationDescriptionAdvancedOptions() {
- getShellApplicationDescriptionType().setInputDataDirectory(txtInputDir.getText());
- getShellApplicationDescriptionType().setOutputDataDirectory(txtOutputDir.getText());
- getShellApplicationDescriptionType().setStaticWorkingDirectory(txtWorkingDir.getText());
- getShellApplicationDescriptionType().setStandardInput(txtSTDIN.getText());
- getShellApplicationDescriptionType().setStandardOutput(txtSTDOUT.getText());
- getShellApplicationDescriptionType().setStandardError(txtSTDERR.getText());
-
- while(getShellApplicationDescriptionType().getApplicationEnvironmentArray().length>0){
- getShellApplicationDescriptionType().removeApplicationEnvironment(0);
- }
- for (int i = 0; i < defaultTableModel.getRowCount(); i++) {
- String parameterName = (String) defaultTableModel.getValueAt(i, 0);
- String paramValue = (String) defaultTableModel.getValueAt(i, 1);
- if (parameterName != null && !parameterName.trim().equals("")) {
- NameValuePairType envType = getShellApplicationDescriptionType().addNewApplicationEnvironment();
- envType.setName(parameterName);
- envType.setValue(paramValue);
- }
- }
- }
-
- private void loadApplicationDescriptionAdvancedOptions() {
- txtInputDir.setText(getShellApplicationDescriptionType().getInputDataDirectory());
- txtOutputDir.setText(getShellApplicationDescriptionType().getOutputDataDirectory());
- txtWorkingDir.setText(getShellApplicationDescriptionType().getStaticWorkingDirectory());
- txtSTDIN.setText(getShellApplicationDescriptionType().getStandardInput());
- txtSTDOUT.setText(getShellApplicationDescriptionType().getStandardOutput());
- txtSTDERR.setText(getShellApplicationDescriptionType().getStandardError());
- tableModelChanging = true;
- while(defaultTableModel.getRowCount()>0){
- defaultTableModel.removeRow(0);
- }
- NameValuePairType[] envParams = getShellApplicationDescriptionType().getApplicationEnvironmentArray();
- for (NameValuePairType envParam : envParams) {
- defaultTableModel.addRow(new Object[] { envParam.getName(),envParam.getValue()});
- }
- addNewRowIfLastIsNotEmpty();
- tableModelChanging = false;
- }
-
-
-
- public AiravataAPI getRegistry() {
- return registry;
- }
-
- public void setRegistry(AiravataAPI registry) {
- this.registry = registry;
- }
-
-
-}