Ignore:
Timestamp:
2011-09-22T20:36:58+02:00 (13 years ago)
Author:
akks
Message:

'Utilsplugin2: opening URL works without selected object'

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

Legend:

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

    r26673 r26694  
    3030<project name="utilsplugin2" default="dist" basedir=".">
    3131    <!-- enter the SVN commit message -->
    32     <property name="commit.message" value="Utilsplugin2: republish with JAR and JOSM>=4399"/>
     32    <property name="commit.message" value="Utilsplugin2: opening URL works without selected object"/>
    3333    <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    3434    <property name="plugin.main.version" value="4399"/>
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/ChooseURLAction.java

    r26644 r26694  
    44import java.awt.event.ItemEvent;
    55import java.util.List;
     6import java.util.logging.Level;
     7import java.util.logging.Logger;
    68import javax.swing.JComboBox;
    79import javax.swing.JPanel;
     10import javax.swing.event.ListSelectionEvent;
    811import org.openstreetmap.josm.gui.ExtendedDialog;
    912import org.openstreetmap.josm.tools.GBC;
     
    1114import java.awt.event.ActionEvent;
    1215import java.awt.event.ItemListener;
     16import java.awt.event.KeyEvent;
    1317import javax.swing.JCheckBox;
    1418import javax.swing.JLabel;
     19import javax.swing.JList;
    1520import javax.swing.JTextField;
     21import javax.swing.ListSelectionModel;
     22import javax.swing.event.ListSelectionListener;
    1623import org.openstreetmap.josm.actions.JosmAction;
     24import org.openstreetmap.josm.gui.SelectionManager;
    1725import static org.openstreetmap.josm.tools.I18n.tr;
    1826
     
    2634    @Override
    2735    public void actionPerformed(ActionEvent e) {
    28        showConfigDialog();
     36       showConfigDialog(false);
    2937    }
    3038
     
    3846    }
    3947       
    40     public static void showConfigDialog() {
     48    public static void showConfigDialog(final boolean fast) {
    4149        JPanel all = new JPanel();
    4250        GridBagLayout layout = new GridBagLayout();
     
    5462        }
    5563        final JLabel label1=new JLabel(tr("Please select one of custom URLs (configured in Preferences)"));
    56         final JComboBox combo1=new JComboBox(names);
     64        final JList list1=new JList(names);
    5765        final JTextField editField=new JTextField();
    5866        final JCheckBox check1=new JCheckBox(tr("Ask every time"));
    5967       
    60        
    61         combo1.addItemListener(new ItemListener() {
     68        final ExtendedDialog dialog = new ExtendedDialog(Main.parent,
     69                tr("Configure custom URL"),
     70                new String[] {tr("OK"),tr("Cancel"),}
     71        );
     72        list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     73        list1.addListSelectionListener(new ListSelectionListener() {
    6274            @Override
    63             public void itemStateChanged(ItemEvent e) {
    64                 int idx=combo1.getSelectedIndex();
     75            public void valueChanged(ListSelectionEvent e) {
     76                int idx=list1.getSelectedIndex();
    6577                if (idx>=0) editField.setText(vals[idx]);
    6678            }
    6779        });
    68         combo1.setSelectedIndex(idxToSelect);
     80        list1.setSelectedIndex(idxToSelect);
    6981        check1.setSelected(Main.pref.getBoolean("utilsplugin2.askurl",false));
    7082       
     
    7284       
    7385        all.add(label1,GBC.eop().fill(GBC.HORIZONTAL).insets(15,5,15,0));
    74         all.add(combo1,GBC.eop().fill(GBC.HORIZONTAL).insets(5,5,0,0));
     86        all.add(list1,GBC.eop().fill(GBC.HORIZONTAL).insets(5,5,0,0));
    7587        all.add(editField,GBC.eop().fill(GBC.HORIZONTAL).insets(5,5,0,0));
    7688        all.add(check1,GBC.eop().fill(GBC.HORIZONTAL).insets(5,5,0,0));
    7789       
    78         ExtendedDialog dialog = new ExtendedDialog(Main.parent,
    79                 tr("Configure custom URL"),
    80                 new String[] {tr("OK"),tr("Cancel"),}
    81         );
     90       
    8291        dialog.setContent(all, false);
    8392        dialog.setButtonIcons(new String[] {"ok.png","cancel.png",});
     
    8594        dialog.showDialog();
    8695       
    87         int idx = combo1.getSelectedIndex();
     96        int idx = list1.getSelectedIndex();
    8897        if (dialog.getValue() ==1 && idx>=0) {
    8998           Main.pref.put("utilsplugin2.customurl", vals[idx]);
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/OpenPageAction.java

    r26662 r26694  
    22package utilsplugin2;
    33
    4 import java.awt.GridBagLayout;
    54import java.io.UnsupportedEncodingException;
    65import static org.openstreetmap.josm.tools.I18n.tr;
     
    1211import java.util.Collection;
    1312
    14 import java.util.List;
    1513import java.util.regex.Matcher;
    1614
    1715import java.util.regex.Pattern;
    18 import javax.swing.BorderFactory;
    19 import javax.swing.JComboBox;
    2016import javax.swing.JOptionPane;
    2117
    22 import javax.swing.JPanel;
    23 import javax.swing.border.EtchedBorder;
    2418import org.openstreetmap.josm.Main;
    2519import org.openstreetmap.josm.actions.JosmAction;
     20import org.openstreetmap.josm.data.coor.LatLon;
    2621import org.openstreetmap.josm.data.osm.OsmPrimitive;
    2722import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    28 import org.openstreetmap.josm.gui.ExtendedDialog;
    29 import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
    30 import org.openstreetmap.josm.gui.widgets.HtmlPanel;
    31 import org.openstreetmap.josm.tools.GBC;
    3223import org.openstreetmap.josm.tools.OpenBrowser;
    3324import org.openstreetmap.josm.tools.Shortcut;
     
    5445        Collection<OsmPrimitive> sel = getCurrentDataSet().getSelected();
    5546        OsmPrimitive p=null;
    56         if (sel.size()==1) {
     47        if (sel.size()>=1) {
    5748            p=sel.iterator().next();
    58         } else {
    59             JOptionPane.showMessageDialog(
    60                     Main.parent,
    61                     tr("Please select one element to open custom URL for it. You can choose the URL in Preferences, Utils tab."),
    62                     tr("Information"),
    63                     JOptionPane.INFORMATION_MESSAGE
    64             );
    65             return;
    6649        }
     50       
    6751        if (Main.pref.getBoolean("utilsplugin2.askurl",false)==true)
    68             ChooseURLAction.showConfigDialog();
     52            ChooseURLAction.showConfigDialog(true);
     53       
     54        //lat = p.getBBox().getTopLeft().lat();
     55        //lon = p.getBBox().getTopLeft().lon();
     56        LatLon center = Main.map.mapView.getLatLon(Main.map.mapView.getWidth()/2, Main.map.mapView.getHeight()/2);
     57               
    6958       
    7059        String addr = Main.pref.get("utilsplugin2.customurl", defaultURL);
     
    7665        try {
    7766        while (m.find()) {
    78                 key=m.group(1);
     67                key=m.group(1); val=null;               
    7968                if (key.equals("#id")) {
    80                     val=Long.toString(p.getId());
     69                    if (p!=null) val=Long.toString(p.getId()); ;
    8170                } else if (key.equals("#type")) {
    82                     val = OsmPrimitiveType.from(p).getAPIName();
     71                    if (p!=null) val = OsmPrimitiveType.from(p).getAPIName(); ;
    8372                } else if (key.equals("#lat")) {
    84                     val = Double.toString(p.getBBox().getTopLeft().lat());
     73                    val = Double.toString(center.lat());
    8574                } else if (key.equals("#lon")) {
    86                     val = Double.toString(p.getBBox().getTopLeft().lon());
     75                    val = Double.toString(center.lon());
    8776                }
    8877                else {
    89                     val =p.get(key);
    90                     if (val!=null) val =URLEncoder.encode(p.get(key), "UTF-8"); else return;
     78                    if (p!=null) {
     79                        val =p.get(key);
     80                        if (val!=null) val =URLEncoder.encode(p.get(key), "UTF-8"); else return;
     81                    }
    9182                }
    9283                keys[i]=m.group();
     
    118109            setEnabled(false);
    119110        } else {
    120             updateEnabledState(getCurrentDataSet().getSelected());
     111            setEnabled(true);
    121112        }
    122113    }
    123114
    124     @Override
    125     protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
    126         setEnabled(selection != null );
    127     }
    128 
     115   
    129116}
  • applications/editors/josm/plugins/utilsplugin2/src/utilsplugin2/selection/SelectAllInsideAction.java

    r26670 r26694  
    3939        Set<Relation> selectedRels = OsmPrimitive.getFilteredSet(getCurrentDataSet().getSelected(), Relation.class);
    4040
    41         for (Way w: selectedWays) {
    42             if (!w.isClosed()) selectedWays.remove(w);
    43         }
    4441        for (Relation r: selectedRels) {
    4542            if (!r.isMultipolygon()) selectedRels.remove(r);
Note: See TracChangeset for help on using the changeset viewer.