Changeset 1169 in josm for trunk/src/org/openstreetmap/josm/gui/preferences/AdvancedPreference.java
- Timestamp:
- 2008-12-23T15:07:05+01:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/preferences/AdvancedPreference.java
r1053 r1169 31 31 public class AdvancedPreference implements PreferenceSetting { 32 32 33 private Map<String,String> orig;34 private Map<String,String> defaults;35 private DefaultTableModel model;33 private Map<String,String> orig; 34 private Map<String,String> defaults; 35 private DefaultTableModel model; 36 36 37 public void addGui(final PreferenceDialog gui) {38 JPanel p = gui.createPreferenceTab("advanced", tr("Advanced Preferences"),39 tr("Setting Preference entries directly. Use with caution!"), false);37 public void addGui(final PreferenceDialog gui) { 38 JPanel p = gui.createPreferenceTab("advanced", tr("Advanced Preferences"), 39 tr("Setting Preference entries directly. Use with caution!"), false); 40 40 41 model = new DefaultTableModel(new String[]{tr("Key"), tr("Value")},0) {42 @Override public boolean isCellEditable(int row, int column) {43 return column != 0;44 }45 };46 DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(){47 public Component getTableCellRendererComponent(JTable table, Object value,48 boolean isSelected, boolean hasFocus, int row, int column)49 {50 JLabel label=new JLabel();51 String s = defaults.get(value);52 if(s != null)53 {54 if(s.equals(model.getValueAt(row, 1)))55 label.setToolTipText(tr("Current value is default."));56 else57 label.setToolTipText(tr("Default value is ''{0}''.", s));58 }59 else60 label.setToolTipText(tr("Default value currently unknown (setting has not been used yet)."));61 label.setText((String)value);62 return label;63 }64 };65 final JTable list = new JTable(model);66 list.getColumn(tr("Key")).setCellRenderer(renderer);67 JScrollPane scroll = new JScrollPane(list);68 p.add(scroll, GBC.eol().fill(GBC.BOTH));69 scroll.setPreferredSize(new Dimension(400,200));41 model = new DefaultTableModel(new String[]{tr("Key"), tr("Value")},0) { 42 @Override public boolean isCellEditable(int row, int column) { 43 return column != 0; 44 } 45 }; 46 DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(){ 47 public Component getTableCellRendererComponent(JTable table, Object value, 48 boolean isSelected, boolean hasFocus, int row, int column) 49 { 50 JLabel label=new JLabel(); 51 String s = defaults.get(value); 52 if(s != null) 53 { 54 if(s.equals(model.getValueAt(row, 1))) 55 label.setToolTipText(tr("Current value is default.")); 56 else 57 label.setToolTipText(tr("Default value is ''{0}''.", s)); 58 } 59 else 60 label.setToolTipText(tr("Default value currently unknown (setting has not been used yet).")); 61 label.setText((String)value); 62 return label; 63 } 64 }; 65 final JTable list = new JTable(model); 66 list.getColumn(tr("Key")).setCellRenderer(renderer); 67 JScrollPane scroll = new JScrollPane(list); 68 p.add(scroll, GBC.eol().fill(GBC.BOTH)); 69 scroll.setPreferredSize(new Dimension(400,200)); 70 70 71 orig = Main.pref.getAllPrefix("");72 defaults = Main.pref.getDefaults();73 orig.remove("osm-server.password");74 defaults.remove("osm-server.password");75 TreeSet<String> ts = new TreeSet<String>(orig.keySet());76 for (String s : defaults.keySet())77 {78 if(!ts.contains(s))79 ts.add(s);80 }71 orig = Main.pref.getAllPrefix(""); 72 defaults = Main.pref.getDefaults(); 73 orig.remove("osm-server.password"); 74 defaults.remove("osm-server.password"); 75 TreeSet<String> ts = new TreeSet<String>(orig.keySet()); 76 for (String s : defaults.keySet()) 77 { 78 if(!ts.contains(s)) 79 ts.add(s); 80 } 81 81 82 for (String s : ts)83 {84 String val = Main.pref.get(s);85 if(val == null) val = "";86 model.addRow(new String[]{s, val});87 }82 for (String s : ts) 83 { 84 String val = Main.pref.get(s); 85 if(val == null) val = ""; 86 model.addRow(new String[]{s, val}); 87 } 88 88 89 JButton add = new JButton(tr("Add"));90 p.add(Box.createHorizontalGlue(), GBC.std().fill(GBC.HORIZONTAL));91 p.add(add, GBC.std().insets(0,5,0,0));92 add.addActionListener(new ActionListener(){93 public void actionPerformed(ActionEvent e) {94 JPanel p = new JPanel(new GridBagLayout());95 p.add(new JLabel(tr("Key")), GBC.std().insets(0,0,5,0));96 JTextField key = new JTextField(10);97 JTextField value = new JTextField(10);98 p.add(key, GBC.eop().insets(5,0,0,0).fill(GBC.HORIZONTAL));99 p.add(new JLabel(tr("Value")), GBC.std().insets(0,0,5,0));100 p.add(value, GBC.eol().insets(5,0,0,0).fill(GBC.HORIZONTAL));101 int answer = JOptionPane.showConfirmDialog(gui, p, tr("Enter a new key/value pair"), JOptionPane.OK_CANCEL_OPTION);102 if (answer == JOptionPane.OK_OPTION)103 model.addRow(new String[]{key.getText(), value.getText()});104 }105 });89 JButton add = new JButton(tr("Add")); 90 p.add(Box.createHorizontalGlue(), GBC.std().fill(GBC.HORIZONTAL)); 91 p.add(add, GBC.std().insets(0,5,0,0)); 92 add.addActionListener(new ActionListener(){ 93 public void actionPerformed(ActionEvent e) { 94 JPanel p = new JPanel(new GridBagLayout()); 95 p.add(new JLabel(tr("Key")), GBC.std().insets(0,0,5,0)); 96 JTextField key = new JTextField(10); 97 JTextField value = new JTextField(10); 98 p.add(key, GBC.eop().insets(5,0,0,0).fill(GBC.HORIZONTAL)); 99 p.add(new JLabel(tr("Value")), GBC.std().insets(0,0,5,0)); 100 p.add(value, GBC.eol().insets(5,0,0,0).fill(GBC.HORIZONTAL)); 101 int answer = JOptionPane.showConfirmDialog(gui, p, tr("Enter a new key/value pair"), JOptionPane.OK_CANCEL_OPTION); 102 if (answer == JOptionPane.OK_OPTION) 103 model.addRow(new String[]{key.getText(), value.getText()}); 104 } 105 }); 106 106 107 JButton edit = new JButton(tr("Edit"));108 p.add(edit, GBC.std().insets(5,5,5,0));109 edit.addActionListener(new ActionListener(){110 public void actionPerformed(ActionEvent e) {111 edit(gui, list);112 }113 });107 JButton edit = new JButton(tr("Edit")); 108 p.add(edit, GBC.std().insets(5,5,5,0)); 109 edit.addActionListener(new ActionListener(){ 110 public void actionPerformed(ActionEvent e) { 111 edit(gui, list); 112 } 113 }); 114 114 115 JButton delete = new JButton(tr("Delete"));116 p.add(delete, GBC.std().insets(0,5,0,0));117 delete.addActionListener(new ActionListener(){118 public void actionPerformed(ActionEvent e) {119 if (list.getSelectedRowCount() == 0) {120 JOptionPane.showMessageDialog(gui, tr("Please select the row to delete."));121 return;122 }123 for(int row: list.getSelectedRows())124 model.setValueAt("", row, 1);125 }126 });115 JButton delete = new JButton(tr("Delete")); 116 p.add(delete, GBC.std().insets(0,5,0,0)); 117 delete.addActionListener(new ActionListener(){ 118 public void actionPerformed(ActionEvent e) { 119 if (list.getSelectedRowCount() == 0) { 120 JOptionPane.showMessageDialog(gui, tr("Please select the row to delete.")); 121 return; 122 } 123 for(int row: list.getSelectedRows()) 124 model.setValueAt("", row, 1); 125 } 126 }); 127 127 128 list.addMouseListener(new MouseAdapter(){129 @Override public void mouseClicked(MouseEvent e) {130 if (e.getClickCount() == 2)131 edit(gui, list);132 }133 });134 }128 list.addMouseListener(new MouseAdapter(){ 129 @Override public void mouseClicked(MouseEvent e) { 130 if (e.getClickCount() == 2) 131 edit(gui, list); 132 } 133 }); 134 } 135 135 136 public void ok() {137 for (int i = 0; i < model.getRowCount(); ++i) {138 String value = model.getValueAt(i,1).toString();139 if(value.length() != 0)140 {141 String key = model.getValueAt(i,0).toString();142 String origValue = orig.get(key);143 if (origValue == null || !origValue.equals(value))144 Main.pref.put(key, value);145 orig.remove(key); // processed.146 }147 }148 for (Entry<String, String> e : orig.entrySet())149 Main.pref.put(e.getKey(), null);150 }136 public void ok() { 137 for (int i = 0; i < model.getRowCount(); ++i) { 138 String value = model.getValueAt(i,1).toString(); 139 if(value.length() != 0) 140 { 141 String key = model.getValueAt(i,0).toString(); 142 String origValue = orig.get(key); 143 if (origValue == null || !origValue.equals(value)) 144 Main.pref.put(key, value); 145 orig.remove(key); // processed. 146 } 147 } 148 for (Entry<String, String> e : orig.entrySet()) 149 Main.pref.put(e.getKey(), null); 150 } 151 151 152 152 153 private void edit(final PreferenceDialog gui, final JTable list) {154 if (list.getSelectedRowCount() != 1) {155 JOptionPane.showMessageDialog(gui, tr("Please select the row to edit."));156 return;157 }158 String v = JOptionPane.showInputDialog(tr("New value for {0}", model.getValueAt(list.getSelectedRow(), 0)), model.getValueAt(list.getSelectedRow(), 1));159 if (v != null)160 model.setValueAt(v, list.getSelectedRow(), 1);161 }153 private void edit(final PreferenceDialog gui, final JTable list) { 154 if (list.getSelectedRowCount() != 1) { 155 JOptionPane.showMessageDialog(gui, tr("Please select the row to edit.")); 156 return; 157 } 158 String v = JOptionPane.showInputDialog(tr("New value for {0}", model.getValueAt(list.getSelectedRow(), 0)), model.getValueAt(list.getSelectedRow(), 1)); 159 if (v != null) 160 model.setValueAt(v, list.getSelectedRow(), 1); 161 } 162 162 }
Note:
See TracChangeset
for help on using the changeset viewer.
