/*
* jets3t : Java Extra-Tasty S3 Toolkit (for Amazon S3 online storage service)
* This is a java.net project, see https://jets3t.dev.java.net/
*
* Copyright 2008 Zmanda Inc, 2008 James Murty
*
* Licensed 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.eurocarbdb.application.glycoworkbench.plugin.s3.gui;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.ButtonGroup;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import org.jets3t.service.model.AWSDevPayProduct;
/**
* Class to store information about a AWS DevPay product.
*
* @author Nikolas Coukouma
* @author James Murty
*/
public class AWSDevPayProductPanel extends JPanel {
private static final long serialVersionUID = -5192203961525549067L;
private final Insets insetsDefault = new Insets(3, 5, 3, 5);
private JRadioButton awsProductRadioButton = null;
private JComboBox awsProductListComboBox = null;
private JRadioButton awsProductTokenRadioButton = null;
private JTextField awsProductTokenTextField = null;
private Component[] internalComponents = null;
public AWSDevPayProductPanel() {
super(new GridBagLayout());
initGui();
}
private void initGui() {
String awsProductRadioButtonText =
"DevPay Product";
String awsProductTokenRadioButtonText =
"DevPay Product Token";
String awsProductTokenTooltipText =
"DevPay product token";
awsProductRadioButton = new JRadioButton(awsProductRadioButtonText);
try {
awsProductListComboBox = new JComboBox(AWSDevPayProduct.load());
} catch(Exception e) {
awsProductListComboBox = new JComboBox();
}
awsProductTokenRadioButton = new JRadioButton(awsProductTokenRadioButtonText);
awsProductTokenTextField = new JTextField();
awsProductTokenTextField.setToolTipText(awsProductTokenTooltipText);
ButtonGroup productTokenGroup = new ButtonGroup();
productTokenGroup.add(awsProductRadioButton);
productTokenGroup.add(awsProductTokenRadioButton);
Component[] tmp = {awsProductRadioButton, awsProductTokenRadioButton, awsProductListComboBox};
internalComponents = tmp;
if (awsProductListComboBox.getItemCount() == 0) {
awsProductTokenRadioButton.setSelected(true);
awsProductRadioButton.setVisible(false);
awsProductListComboBox.setVisible(false);
} else {
awsProductRadioButton.setSelected(true);
}
int row = 0;
add(awsProductRadioButton, new GridBagConstraints(0, row,
1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, insetsDefault, 0, 0));
add(awsProductListComboBox, new GridBagConstraints(1, row++,
1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, insetsDefault, 0, 0));
add(awsProductTokenRadioButton, new GridBagConstraints(0, row,
1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, insetsDefault, 0, 0));
add(awsProductTokenTextField, new GridBagConstraints(1, row++,
1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, insetsDefault, 0, 0));
}
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
if (awsProductListComboBox.getItemCount() == 0) {
enabled = false;
}
for (int i = 0; i < internalComponents.length; i++) {
internalComponents[i].setEnabled(enabled);
}
}
/**
* @return
* the product token provided, or selected, by the user.
*/
public String getAWSProductToken() {
if (awsProductTokenRadioButton.isSelected()) {
return awsProductTokenTextField.getText().trim();
} else {
return ((AWSDevPayProduct) awsProductListComboBox.getSelectedItem()).getProductToken().trim();
}
}
}