Changeset 26639 in osm for applications/editors


Ignore:
Timestamp:
2011-09-11T12:48:35+02:00 (13 years ago)
Author:
akks
Message:

'Utilsplugin2: configuring custom URLs'

Location:
applications/editors/josm/plugins/utilsplugin2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/utilsplugin2/build.xml

    r26624 r26639  
    3030<project name="utilsplugin2" default="dist" basedir=".">
    3131    <!-- enter the SVN commit message -->
    32     <property name="commit.message" value="Utilsplugin2: added setting tab"/>
     32    <property name="commit.message" value="Utilsplugin2: configuring custom URLs"/>
    3333    <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    3434    <property name="plugin.main.version" value="4395"/>
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/OpenPageAction.java

    r26624 r26639  
    1010import java.awt.event.KeyEvent;
    1111import java.net.URLEncoder;
    12 import java.util.ArrayList;
    1312import java.util.Collection;
    1413
     14import java.util.List;
    1515import java.util.regex.Matcher;
    1616
    1717import java.util.regex.Pattern;
    1818import javax.swing.BorderFactory;
     19import javax.swing.JComboBox;
    1920import javax.swing.JOptionPane;
    2021
     
    6364            return;
    6465        }
     66        if (Main.pref.getBoolean("utilsplugin2.askurl",false)==true)
     67            ChooseURLAction.showConfigDialog();
    6568       
    6669        String addr = Main.pref.get("utilsplugin2.customurl", defaultURL);
     
    122125        setEnabled(selection != null );
    123126    }
     127
    124128}
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/UtilsPlugin2.java

    r26624 r26639  
    1010
    1111import org.openstreetmap.josm.Main;
     12import org.openstreetmap.josm.actions.JosmAction;
    1213import org.openstreetmap.josm.gui.MainMenu;
    1314import org.openstreetmap.josm.gui.MapFrame;
     
    4243    JMenuItem selModifiedWays;
    4344   
     45    JMenuItem selectURL;
     46   
    4447    public UtilsPlugin2(PluginInformation info) {
    4548        super(info);
     
    7376        selModifiedWays = MainMenu.add(selectionMenu, new SelectModWaysAction());
    7477        undoSelection = MainMenu.add(selectionMenu, new UndoSelectionAction());
     78       
     79        selectURL = MainMenu.add(toolsMenu, new ChooseURLAction());
     80       
     81
    7582    }
    7683
     
    102109        selModifiedWays.setEnabled(enabled);
    103110        undoSelection.setEnabled(enabled);
     111        selectURL.setEnabled(enabled);
    104112    }
    105113    @Override
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/UtilsPluginPreferences.java

    r26626 r26639  
    55package utilsplugin2;
    66
     7import java.util.Scanner;
     8import java.awt.event.ActionEvent;
     9import javax.swing.JButton;
    710import java.util.List;
    811import javax.swing.table.TableModel;
     
    1619import javax.swing.event.TableModelEvent;
    1720import org.openstreetmap.josm.Main;
    18 import org.openstreetmap.josm.gui.ExtendedDialog;
    1921import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
    2022import org.openstreetmap.josm.gui.widgets.HtmlPanel;
    2123import java.awt.GridBagConstraints;
     24import java.awt.event.ActionListener;
     25import java.io.BufferedReader;
     26import java.io.BufferedWriter;
     27import java.io.File;
     28import java.io.FileReader;
     29import java.io.FileWriter;
     30import java.io.PrintWriter;
    2231import javax.swing.JPanel;
    2332import javax.swing.ListSelectionModel;
     
    3544    HistoryComboBox combo1=new HistoryComboBox();
    3645    JTable table;
     46    JButton resetButton;
     47    JButton loadButton;
     48    JButton saveButton;
    3749
    3850    @Override
     
    4658        // FIXME: get rid of hardcoded URLS
    4759        List<String> items = (List<String>) Main.pref.getCollection("utilsplugin2.urlHistory");
    48         if (items==null || items.size()==0) {
    49             items= new ArrayList<String>();
    50             items.add("Wikipedia");
    51             items.add("http://en.wikipedia.org/w/index.php?search={name}&fulltext=Search");
    52             items.add("Wikipedia RU");
    53             items.add(defaultURL);
    54             items.add("LatLon buildings");
    55             items.add("http://latlon.org/buildings?zoom=17&lat={#lat}&lon={#lon}&layers=B");
    56             items.add("AMDMi3 Russian streets");
    57             items.add("http://addresses.amdmi3.ru/?zoom=11&lat={#lat}&lon={#lon}&layers=B00");
    58             items.add("Element history");
    59             items.add("http://www.openstreetmap.org/browse/{#type}/{#id}/history");
    60             items.add("Browse element");
    61             items.add("http://www.openstreetmap.org/browse/{#type}/{#id}");
     60        if (items==null) {
     61            items = resetURLList();
     62            fillRows(items);
    6263        }
    6364        String addr = Main.pref.get("utilsplugin2.customurl", defaultURL);
    6465        //System.out.println("pref:"+addr);
     66       
     67        resetButton = new JButton(tr("Reset"));
     68        resetButton.addActionListener(new ActionListener() {
     69            public void actionPerformed(ActionEvent e) {
     70                fillRows(resetURLList());
     71            }
     72        });
     73       
     74        saveButton = new JButton(tr("Save to file"));
     75        saveButton.addActionListener(new ActionListener() {
     76            public void actionPerformed(ActionEvent e) {
     77                saveURLList();
     78            }
     79        });
     80       
     81        loadButton = new JButton(tr("Load from file"));
     82        loadButton.addActionListener(new ActionListener() {
     83            public void actionPerformed(ActionEvent e) {
     84                fillRows(loadURLList());
     85            }
     86        });
    6587       
    6688        table=new JTable(new DefaultTableModel(null,new String[]{"Title","URL"}));
     
    7193                + " <b>&#123;#id&#125;</b> is replaced with the element ID<br/>"
    7294                + " <b>&#123;#type&#125;</b> is replaced with \"node\",\"way\" or \"relation\" <br/>"
    73                 + " <b>&#123;#lat&#125; , &#123;#lon&#125;</b> is replaced with element latitude/longitude"));
    74         //help.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.));
    75 
    76         all.add(new JLabel(tr("Custom URL configuration")),GBC.eop().insets(5,10,0,0));
     95                + " <b>&#123;#lat&#125; , &#123;#lon&#125;</b> is replaced with element latitude/longitude <br/>"
     96                + " Your can manually load settings from file <b>customurl.txt</b> in JOSM folder"));
     97       
     98        all.add(new JLabel(tr("Custom URL configuration")),GBC.std().insets(5,10,0,0));
     99        all.add(resetButton,GBC.std().insets(25,10,0,0));
     100        all.add(loadButton,GBC.std().insets(25,10,0,0));
     101        all.add(saveButton,GBC.eol().insets(25,10,0,0));
    77102        all.add(help,GBC.eop().insets(5,10,0,0));
    78103       
     
    87112                int column = e.getColumn();
    88113                DefaultTableModel model = (DefaultTableModel)(e.getSource());
    89                 String columnName = model.getColumnName(column);
    90114                if (row<0  || column<0) return;
    91115                String data = (String)model.getValueAt(row, column);
     
    100124
    101125    private void fillRows(List<String> items) {
     126        if (items==null) return;
    102127        int p=0,row=0;
    103128        String name, url;
    104         String data[][] = new String[][] {{"",""}};
    105129        DefaultTableModel model = (DefaultTableModel) table.getModel();
     130        model.setRowCount(0);
    106131        int n=items.size();
    107132        while (true) {
     
    123148    public boolean ok() {
    124149        String addr=combo1.getText();
     150        List<String> lst = readItemsFromTable();
     151        Main.pref.putCollection("utilsplugin2.urlHistory",lst);
     152        try {
     153            Main.pref.save();
     154        } catch (IOException ex) {
     155            Logger.getLogger(UtilsPluginPreferences.class.getName()).log(Level.SEVERE, null, ex);
     156        }
     157        return false;
     158    }
     159
     160    private List<String> resetURLList() {
     161        ArrayList<String> items=new ArrayList<String>();
     162            items= new ArrayList<String>();
     163            items.add("Wikipedia");
     164            items.add("http://en.wikipedia.org/w/index.php?search={name}&fulltext=Search");
     165            items.add("Wikipedia RU");
     166            items.add(defaultURL);
     167            items.add("LatLon buildings");
     168            items.add("http://latlon.org/buildings?zoom=17&lat={#lat}&lon={#lon}&layers=B");
     169            items.add("AMDMi3 Russian streets");
     170            items.add("http://addresses.amdmi3.ru/?zoom=11&lat={#lat}&lon={#lon}&layers=B00");
     171            items.add("Element history [demo, =Ctrl-Shift-H]");
     172            items.add("http://www.openstreetmap.org/browse/{#type}/{#id}/history");
     173            items.add("Browse element [demo, =Ctrl-Shift-I]");
     174            items.add("http://www.openstreetmap.org/browse/{#type}/{#id}");
     175        Main.pref.putCollection("utilsplugin2.urlHistory",items);
     176        return items;
     177    }
     178   
     179    private List<String> loadURLList() {
     180        ArrayList<String> items=new ArrayList<String>();
     181        BufferedReader fr=null;
     182        try {
     183        File f = new File (Main.pref.getPreferencesDir(),"customurl.txt");
     184        fr = new BufferedReader(new FileReader(f));
     185        String s;
     186        while ((s = fr.readLine()) !=null ) items.add(s);
     187        } catch (IOException e) {
     188            e.printStackTrace();
     189        } finally {
     190            try { if (fr!=null) fr.close(); } catch (Exception e) {}
     191        }
     192        return items;
     193       
     194    }
     195   
     196    private void saveURLList() {
     197        List<String> items=readItemsFromTable();
     198        File f = new File (Main.pref.getPreferencesDir(),"customurl.txt");
     199        PrintWriter fw=null;
     200        try {
     201        fw=new PrintWriter(f);
     202        for (String s : items) {
     203            fw.println(s);
     204        }
     205        } catch (IOException e) {
     206            e.printStackTrace();
     207        } finally {
     208            try { if (fw!=null) fw.close(); } catch (Exception e) {}
     209        }
     210    }
     211
     212    private List<String> readItemsFromTable() {
    125213        TableModel model = (table.getModel());
    126214        String v;
     
    134222            lst.add(v);
    135223        }
    136         Main.pref.putCollection("utilsplugin2.urlHistory",lst);
    137224        int row=table.getSelectedRow();
    138225        if (row!=-1) {
     
    140227            Main.pref.put("utilsplugin2.customurl",v);
    141228        }
    142        
    143         try {
    144             Main.pref.save();
    145         } catch (IOException ex) {
    146             Logger.getLogger(UtilsPluginPreferences.class.getName()).log(Level.SEVERE, null, ex);
    147         }
    148         return false;
    149     }
    150 
    151    
     229        return lst;
     230    }
    152231}
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/selection/IntersectedWaysRecursiveAction.java

    r25876 r26639  
    2525        super(tr("All intersecting ways"), "intwayall", tr("Select all intersecting ways"),
    2626                Shortcut.registerShortcut("tools:intwayall", tr("Tool: {0}","All intersecting ways"),
    27                 KeyEvent.VK_I, Shortcut.GROUP_MENU, KeyEvent.SHIFT_DOWN_MASK|KeyEvent.CTRL_DOWN_MASK), true);
     27                KeyEvent.VK_I, Shortcut.GROUP_MENU, KeyEvent.CTRL_DOWN_MASK|KeyEvent.ALT_DOWN_MASK), true);
    2828        putValue("help", ht("/Action/SelectAllIntersectingWays"));
    2929
Note: See TracChangeset for help on using the changeset viewer.