package de.jos.labelgenerator.dialog.address;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import org.jdesktop.application.Application;
import org.jdesktop.application.ApplicationActionMap;
import org.jdesktop.application.ApplicationContext;
import org.jdesktop.application.ResourceMap;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.factories.ButtonBarFactory;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import de.jos.labelgenerator.LabelGeneratorApp;
import de.jos.labelgenerator.combobox.AddressComboBoxItem;
import de.jos.labelgenerator.combobox.ComboBoxAddress;
import de.jos.labelgenerator.combobox.ComboBoxTemplate;
import de.jos.labelgenerator.combobox.TemplateComboBoxItem;
import de.jos.labelgenerator.configuration.Address;
import de.jos.labelgenerator.configuration.Template;
import de.jos.labelgenerator.dialog.AbstractPanel;
@SuppressWarnings("serial")
public class AddressDialogPanel extends AbstractPanel implements AddressDialogConstants {
private JLabel labelAddress = null;
private JLabel labelTemplate = null;
private ComboBoxAddress comboBoxAddress = null;
private ComboBoxTemplate comboBoxTemplate = null;
private JButton buttonOk = null;
private JButton buttonCancel = null;
private JScrollPane scrollPaneAddress = null;
private JTextArea textAreaAddress = null;
private List<AddressComboBoxItem> addressItems = new ArrayList<AddressComboBoxItem>();
private List<TemplateComboBoxItem> templateItems = new ArrayList<TemplateComboBoxItem>();
private final ApplicationContext applicationContext = Application.getInstance(LabelGeneratorApp.class).getContext();
private final ResourceMap resourceMap = applicationContext.getResourceMap(AddressDialogPanel.class);
public AddressDialogPanel(ApplicationActionMap applicationActionMap, List<Address> address, List<Template> templates) {
super(applicationActionMap);
setLayout(null);
for (Address tmpAddress : address) {
addressItems.add(new AddressComboBoxItem(tmpAddress));
}
for (Template tmpTemplate : templates) {
templateItems.add(new TemplateComboBoxItem(tmpTemplate));
}
initComponents();
}
public void initComponents() {
labelAddress = new JLabel(resourceMap.getString("label.address") + ":");
labelTemplate = new JLabel(resourceMap.getString("label.template") + ":");
comboBoxAddress = new ComboBoxAddress();
comboBoxAddress.setAction(getAction(ACTION_ADDRESS_CHANGED));
for (AddressComboBoxItem tmpAddressItem : addressItems) {
comboBoxAddress.addItem(tmpAddressItem);
}
comboBoxTemplate = new ComboBoxTemplate();
comboBoxTemplate.setAction(getAction(ACTION_TEMPLATE_CHANGED));
for (TemplateComboBoxItem tmpTemplateItem : templateItems) {
comboBoxTemplate.addItem(tmpTemplateItem);
}
// textarea for level data
textAreaAddress = new JTextArea();
scrollPaneAddress = new JScrollPane(textAreaAddress);
buttonOk = new JButton();
buttonOk.setAction(getAction(ACTION_OK_BUTTON_PRESSED));
buttonOk.setText(resourceMap.getString("button.ok"));
buttonCancel = new JButton();
buttonCancel.setAction(getAction(ACTION_CANCEL_BUTTON_PRESSED));
buttonCancel.setText(resourceMap.getString("button.cancel"));
final FormLayout layout = new FormLayout("4dlu, 40dlu, fill:default:grow, 4dlu", // column
"4dlu, 20dlu, 4dlu, 20dlu, 4dlu, fill:p:grow, 4dlu, 20dlu, 4dlu"); // row
final PanelBuilder builder = new PanelBuilder(layout, this);
final CellConstraints cc = new CellConstraints();
builder.nextRow();
builder.nextColumn(1);
builder.add(labelAddress);
builder.nextColumn(1);
builder.add(comboBoxAddress);
builder.nextRow(2);
builder.setColumn(1);
builder.nextColumn(1);
builder.add(labelTemplate);
builder.nextColumn(1);
builder.add(comboBoxTemplate);
builder.nextRow(2);
builder.setColumn(1);
builder.nextColumn(1);
builder.add(scrollPaneAddress, cc.xywh(2, 6, 2, 1));
builder.nextRow(2);
builder.setColumn(1);
builder.nextColumn(2);
builder.add(ButtonBarFactory.buildRightAlignedBar(buttonCancel, buttonOk));
}
public ComboBoxAddress getComboBoxAddress() {
return comboBoxAddress;
}
public JTextArea getTextAreaAddress() {
return textAreaAddress;
}
public ComboBoxTemplate getComboBoxTemplate() {
return comboBoxTemplate;
}
}