// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.czechaddress;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.gui.preferences.DefaultTabPreferenceSetting;
import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
/**
*
* @author radek
*/
public final class Preferences extends DefaultTabPreferenceSetting {
public JPanel thisPanel;
public int optimize;
private String KEY_OPTIMIZE = "czechaddress.opzimize";
public boolean addBuildingTag;
private String KEY_BUILDINGTAG = "czechaddress.buildingtag";
public boolean addNewTag;
public String addNewTagKey;
public String addNewTagValue;
private String KEY_ADDNEWTAG = "czechaddress.newtag";
private String KEY_ADDNEWTAGKEY = "czechaddress.newtagkey";
private String KEY_ADDNEWTAGVALUE = "czechaddress.newtagvalue";
private static Preferences singleton = null;
public static Preferences getInstance() {
if (singleton == null)
singleton = new Preferences();
return singleton;
}
/** Creates new form Preferences */
private Preferences() {
super("czech_flag",
"Nastavení CzechAddressPlugin",
"Nastavení pluginu pro úpravu a zadávání adres na území ČR.");
thisPanel = new JPanel();
initComponents();
addBuildingTag = Main.pref.getBoolean(KEY_BUILDINGTAG, buildingCheckBox.isSelected());
addNewTag = Main.pref.getBoolean(KEY_ADDNEWTAG, addNewTagCheckBox.isSelected());
addNewTagKey = Main.pref.get(KEY_ADDNEWTAGKEY, addNewTagKeyField.getText());
addNewTagValue = Main.pref.get(KEY_ADDNEWTAGVALUE, addNewTagValueField.getText());
optimize = Main.pref.getInteger(KEY_OPTIMIZE, optimizeComboBox.getSelectedIndex());
}
public void reloadSettings() {
buildingCheckBox.setSelected(addBuildingTag);
addNewTagCheckBox.setSelected(addNewTag);
addNewTagKeyField.setText(addNewTagKey);
addNewTagValueField.setText(addNewTagValue);
optimizeComboBox.setSelectedIndex(optimizeComboBox.getSelectedIndex());
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
mainPanel = new JPanel();
addNewTagCheckBox = new JCheckBox();
addNewTagKeyField = new JTextField();
jLabel1 = new JLabel();
addNewTagValueField = new JTextField();
jLabel2 = new JLabel();
optimizeComboBox = new JComboBox<>();
buildingCheckBox = new JCheckBox();
thisPanel.setLayout(new java.awt.GridLayout(1, 0));
addNewTagCheckBox.setText("Novým primitivám přidávat tag:");
addNewTagCheckBox.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent evt) {
addNewTagChanged(evt);
}
});
addNewTagCheckBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
addNewTagCheckBoxActionPerformed(evt);
}
});
addNewTagKeyField.setText("source:position");
addNewTagKeyField.setEnabled(false);
jLabel1.setText("=");
addNewTagValueField.setText("cuzk:km");
addNewTagValueField.setEnabled(false);
jLabel2.setText("Optimalizovat algoritmus přiřazování:");
optimizeComboBox.setModel(new DefaultComboBoxModel<>(new String[] {"pro rychlejší odezvu", "menší spotřebu paměti"}));
optimizeComboBox.setSelectedIndex(1);
optimizeComboBox.setEnabled(false);
buildingCheckBox.setText("Nově polygonům přidávat tag \"building=yes\"");
buildingCheckBox.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent evt) {
buildingCheckBoxaddNewTagChanged(evt);
}
});
buildingCheckBox.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
buildingCheckBoxActionPerformed(evt);
}
});
GroupLayout mainPanelLayout = new GroupLayout(mainPanel);
mainPanel.setLayout(mainPanelLayout);
mainPanelLayout.setHorizontalGroup(
mainPanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addGroup(mainPanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(optimizeComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel2)
.addComponent(addNewTagCheckBox, GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
.addGroup(mainPanelLayout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(addNewTagKeyField, GroupLayout.PREFERRED_SIZE, 120, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(addNewTagValueField, GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 121, GroupLayout.PREFERRED_SIZE))
.addComponent(buildingCheckBox, GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE))
.addContainerGap())
);
mainPanelLayout.setVerticalGroup(
mainPanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(optimizeComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(addNewTagCheckBox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(mainPanelLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(addNewTagKeyField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(addNewTagValueField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buildingCheckBox)
.addContainerGap(155, Short.MAX_VALUE))
);
thisPanel.add(mainPanel);
} // </editor-fold>//GEN-END:initComponents
private void addNewTagChanged(javax.swing.event.ChangeEvent evt) { //GEN-FIRST:event_addNewTagChanged
addNewTagKeyField.setEnabled(addNewTagCheckBox.isSelected());
addNewTagValueField.setEnabled(addNewTagCheckBox.isSelected());
} //GEN-LAST:event_addNewTagChanged
private void addNewTagCheckBoxActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_addNewTagCheckBoxActionPerformed
} //GEN-LAST:event_addNewTagCheckBoxActionPerformed
private void buildingCheckBoxaddNewTagChanged(javax.swing.event.ChangeEvent evt) { //GEN-FIRST:event_buildingCheckBoxaddNewTagChanged
} //GEN-LAST:event_buildingCheckBoxaddNewTagChanged
private void buildingCheckBoxActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_buildingCheckBoxActionPerformed
} //GEN-LAST:event_buildingCheckBoxActionPerformed
@Override
public void addGui(PreferenceTabbedPane gui) {
JPanel p = gui.createPreferenceTab(this);
p.add(mainPanel);
reloadSettings();
}
@Override
public boolean ok() {
addBuildingTag = buildingCheckBox.isSelected();
Main.pref.put(KEY_BUILDINGTAG, addBuildingTag);
addNewTag = addNewTagCheckBox.isSelected();
Main.pref.put(KEY_ADDNEWTAG, addNewTag);
addNewTagKey = addNewTagKeyField.getText();
Main.pref.put(KEY_ADDNEWTAGKEY, addNewTagKey);
addNewTagValue = addNewTagValueField.getText();
Main.pref.put(KEY_ADDNEWTAGVALUE, addNewTagValue);
optimize = optimizeComboBox.getSelectedIndex();
Main.pref.putInteger(KEY_OPTIMIZE, optimize);
return false;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox addNewTagCheckBox;
private javax.swing.JTextField addNewTagKeyField;
private javax.swing.JTextField addNewTagValueField;
private javax.swing.JCheckBox buildingCheckBox;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel mainPanel;
private javax.swing.JComboBox<String> optimizeComboBox;
// End of variables declaration//GEN-END:variables
}