// temporary variable to make it easier to refactor the layout
WidgetUtils.addToGridBag(DCLabel.bright("Datastore name:"), formPanel, 0, 0);
WidgetUtils.addToGridBag(_datastoreNameField, formPanel, 1, 0);
final DCPanel checkBoxPanel = new DCPanel().setTitledBorder("Contained datastores");
checkBoxPanel.setLayout(new VerticalLayout(4));
for (JCheckBox checkBox : _checkBoxes) {
checkBoxPanel.add(checkBox);
}
WidgetUtils.addToGridBag(checkBoxPanel, formPanel, 0, 1, 2, 1);
_addDatastoreButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
final List<Datastore> datastores = new ArrayList<Datastore>();
for (JCheckBox checkBox : _checkBoxes) {
if (checkBox.isSelected()) {
String datastoreName = checkBox.getText();
Datastore datastore = _mutableDatastoreCatalog.getDatastore(datastoreName);
if (datastore == null) {
throw new IllegalStateException("No such datastore: " + datastoreName);
}
datastores.add(datastore);
}
}
final Datastore datastore = new CompositeDatastore(_datastoreNameField.getText(), datastores);
if (_originalDatastore != null) {
_mutableDatastoreCatalog.removeDatastore(_originalDatastore);
}
_mutableDatastoreCatalog.addDatastore(datastore);
dispose();
}
});
DCPanel buttonPanel = new DCPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
buttonPanel.add(_addDatastoreButton);
DCPanel centerPanel = new DCPanel();
centerPanel.setLayout(new VerticalLayout(4));
centerPanel.add(formPanel);
centerPanel.add(buttonPanel);
JXStatusBar statusBar = WidgetFactory.createStatusBar(_statusLabel);