// License: GPL. For details, see LICENSE file.
package buildings_tools;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import java.text.ParseException;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFormattedTextField;
import org.openstreetmap.josm.tools.GBC;
@SuppressWarnings("serial")
public class BuildingSizeDialog extends MyDialog {
private final JFormattedTextField twidth = new JFormattedTextField(NumberFormat.getInstance());
private final JFormattedTextField tlenstep = new JFormattedTextField(NumberFormat.getInstance());
private final JCheckBox caddr = new JCheckBox(tr("Use Address dialog"));
private final JCheckBox cAutoSelect = new JCheckBox(tr("Auto-select building"));
private final JCheckBox cAddrNode = new JCheckBox(tr("Use address nodes under buildings"));
public BuildingSizeDialog() {
super(tr("Set buildings size"));
addLabelled(tr("Buildings width:"), twidth);
addLabelled(tr("Length step:"), tlenstep);
panel.add(caddr, GBC.eol().fill(GBC.HORIZONTAL));
panel.add(cAutoSelect, GBC.eol().fill(GBC.HORIZONTAL));
panel.add(cAddrNode, GBC.eol().fill(GBC.HORIZONTAL));
twidth.setValue(ToolSettings.getWidth());
tlenstep.setValue(ToolSettings.getLenStep());
caddr.setSelected(ToolSettings.isUsingAddr());
cAutoSelect.setSelected(ToolSettings.isAutoSelect());
cAddrNode.setSelected(ToolSettings.PROP_USE_ADDR_NODE.get());
JButton bAdv = new JButton(tr("Advanced..."));
bAdv.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
AdvancedSettingsDialog dlg = new AdvancedSettingsDialog();
if (dlg.getValue() == 1) {
dlg.saveSettings();
}
}
});
panel.add(bAdv, GBC.eol().insets(0, 5, 0, 0).anchor(GBC.EAST));
setupDialog();
showDialog();
}
public final double width() {
try {
return NumberFormat.getInstance().parse(twidth.getText()).doubleValue();
} catch (ParseException e) {
return 0;
}
}
public double lenstep() {
try {
return NumberFormat.getInstance().parse(tlenstep.getText()).doubleValue();
} catch (ParseException e) {
return 0;
}
}
public final boolean useAddr() {
return caddr.isSelected();
}
public final void saveSettings() {
ToolSettings.setSizes(width(), lenstep());
ToolSettings.setAddrDialog(useAddr());
ToolSettings.setAutoSelect(cAutoSelect.isSelected());
ToolSettings.PROP_USE_ADDR_NODE.put(cAddrNode.isSelected());
}
}