Changeset 300 in josm


Ignore:
Timestamp:
2007-08-08T08:49:22+02:00 (17 years ago)
Author:
imi
Message:
  • added plugin site configuration preferences
Location:
src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/gui/preferences/PluginPreference.java

    r299 r300  
    66
    77import java.awt.Dimension;
     8import java.awt.GridBagLayout;
    89import java.awt.event.ActionEvent;
    910import java.awt.event.ActionListener;
     
    2223import java.util.Map.Entry;
    2324
     25import javax.swing.AbstractAction;
    2426import javax.swing.BorderFactory;
    2527import javax.swing.Box;
     28import javax.swing.DefaultListModel;
    2629import javax.swing.JButton;
    2730import javax.swing.JCheckBox;
    2831import javax.swing.JLabel;
     32import javax.swing.JList;
    2933import javax.swing.JOptionPane;
    3034import javax.swing.JPanel;
     
    102106                configureSites.addActionListener(new ActionListener(){
    103107                        public void actionPerformed(ActionEvent e) {
    104                                 JOptionPane.showMessageDialog(Main.parent, tr("Not implemented yet."));
    105                         }
     108                                configureSites();
     109                        }
     110
    106111                });
    107                 //TODO: plugin.add(configureSites, GBC.std());
     112                plugin.add(configureSites, GBC.std());
    108113
    109114                refreshPluginPanel(gui);
     115        }
     116
     117        private void configureSites() {
     118                JPanel p = new JPanel(new GridBagLayout());
     119                p.add(new JLabel(tr("Add either site-josm.xml or Wiki Pages.")), GBC.eol());
     120                final DefaultListModel model = new DefaultListModel();
     121                for (String s : PluginDownloader.getSites())
     122                        model.addElement(s);
     123                final JList list = new JList(model);
     124                p.add(new JScrollPane(list), GBC.std().fill());
     125                JPanel buttons = new JPanel(new GridBagLayout());
     126                buttons.add(new JButton(new AbstractAction(tr("Add")){
     127                        public void actionPerformed(ActionEvent e) {
     128                                String s = JOptionPane.showInputDialog(gui, tr("Add either site-josm.xml or Wiki Pages."));
     129                                if (s != null)
     130                                        model.addElement(s);
     131            }
     132                }), GBC.eol().fill(GBC.HORIZONTAL));
     133                buttons.add(new JButton(new AbstractAction(tr("Edit")){
     134                        public void actionPerformed(ActionEvent e) {
     135                                if (list.getSelectedValue() == null) {
     136                                        JOptionPane.showMessageDialog(gui, tr("Please select an entry."));
     137                                        return;
     138                                }
     139                                String s = JOptionPane.showInputDialog(gui, tr("Add either site-josm.xml or Wiki Pages."), list.getSelectedValue());
     140                                model.setElementAt(s, list.getSelectedIndex());
     141            }
     142                }), GBC.eol().fill(GBC.HORIZONTAL));
     143                buttons.add(new JButton(new AbstractAction(tr("Delete")){
     144                        public void actionPerformed(ActionEvent event) {
     145                                if (list.getSelectedValue() == null) {
     146                                        JOptionPane.showMessageDialog(gui, tr("Please select an entry."));
     147                                        return;
     148                                }
     149                                model.removeElement(list.getSelectedValue());
     150            }
     151                }), GBC.eol().fill(GBC.HORIZONTAL));
     152                p.add(buttons, GBC.eol());
     153                int answer = JOptionPane.showConfirmDialog(gui, p, tr("Configure Plugin Sites"), JOptionPane.OK_CANCEL_OPTION);
     154                if (answer != JOptionPane.OK_OPTION)
     155                        return;
     156                StringBuilder b = new StringBuilder();
     157                for (int i = 0; i < model.getSize(); ++i) {
     158                        b.append(model.getElementAt(i));
     159                        if (i < model.getSize()-1)
     160                                b.append(" ");
     161                }
     162                Main.pref.put("pluginmanager.sites", b.toString());
    110163        }
    111164
  • src/org/openstreetmap/josm/plugins/PluginDownloader.java

    r299 r300  
    6969        public static int downloadDescription() {
    7070                int count = 0;
    71                 for (String site : Main.pref.get("pluginmanager.sites", "http://josm.openstreetmap.de/wiki/Plugins").split(" ")) {
     71                for (String site : getSites()) {
    7272                        try {
    7373                                BufferedReader r = new BufferedReader(new InputStreamReader(new URL(site).openStream()));
     
    8888                return count;
    8989        }
     90
     91        public static String[] getSites() {
     92            return Main.pref.get("pluginmanager.sites", "http://josm.openstreetmap.de/wiki/Plugins").split(" ");
     93    }
    9094
    9195        private static CharSequence readXml(BufferedReader r) throws IOException {
Note: See TracChangeset for help on using the changeset viewer.