Changeset 4343 in josm for trunk/src/org/openstreetmap


Ignore:
Timestamp:
2011-08-26T22:21:19+02:00 (13 years ago)
Author:
stoecker
Message:

fix #6734 - patch by Don-vip - history for element downloads

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java

    r4096 r4343  
    1212import java.awt.event.KeyEvent;
    1313import java.lang.reflect.InvocationTargetException;
     14import java.util.Collections;
     15import java.util.LinkedList;
    1416import java.util.List;
    1517import java.util.Set;
     
    2426import javax.swing.JScrollPane;
    2527import javax.swing.JTextArea;
     28import javax.swing.JTextField;
    2629import javax.swing.KeyStroke;
    2730import javax.swing.SwingUtilities;
    2831import javax.swing.border.EtchedBorder;
     32import javax.swing.plaf.basic.BasicComboBoxEditor;
    2933
    3034import org.openstreetmap.josm.Main;
     
    3741import org.openstreetmap.josm.gui.io.DownloadPrimitivesTask;
    3842import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     43import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
    3944import org.openstreetmap.josm.gui.widgets.HtmlPanel;
    4045import org.openstreetmap.josm.gui.widgets.OsmIdTextField;
     
    5762    }
    5863
     64    /**
     65     * Restore the current history from the preferences
     66     *
     67     * @param cbHistory
     68     */
     69    protected void restorePrimitivesHistory(HistoryComboBox cbHistory) {
     70        List<String> cmtHistory = new LinkedList<String>(Main.pref.getCollection(getClass().getName() + ".primitivesHistory", new LinkedList<String>()));
     71        // we have to reverse the history, because ComboBoxHistory will reverse it again
     72        // in addElement()
     73        //
     74        Collections.reverse(cmtHistory);
     75        cbHistory.setPossibleItems(cmtHistory);
     76    }
     77
     78    /**
     79     * Remind the current history in the preferences
     80     * @param cbHistory
     81     */
     82    protected void remindPrimitivesHistory(HistoryComboBox cbHistory) {
     83        cbHistory.addCurrentItemToHistory();
     84        Main.pref.putCollection(getClass().getName() + ".primitivesHistory", cbHistory.getHistory());
     85    }
     86
    5987    public void actionPerformed(ActionEvent e) {
    6088
     
    6795        JLabel lbl1 = new JLabel(tr("Object type:"));
    6896        OsmPrimitiveTypesComboBox cbType = new OsmPrimitiveTypesComboBox();
    69         cbType.addItem(new SimpleListItem("mixed", trc("osm object types", "mixed")));
     97        cbType.addItem(trc("osm object types", "mixed"));
    7098        cbType.setToolTipText(tr("Choose the OSM object type"));
    7199        JLabel lbl2 = new JLabel(tr("Object ID:"));
    72         OsmIdTextField tfId = new OsmIdTextField();
    73         tfId.setToolTipText(tr("Enter the ID of the object that should be downloaded"));
     100        final OsmIdTextField tfId = new OsmIdTextField();
     101        HistoryComboBox cbId = new HistoryComboBox();
     102        cbId.setEditor(new BasicComboBoxEditor() {
     103            @Override
     104            protected JTextField createEditorComponent() {
     105                return tfId;
     106            }
     107        });
     108        cbId.setToolTipText(tr("Enter the ID of the object that should be downloaded"));
     109        restorePrimitivesHistory(cbId);
    74110        // forward the enter key stroke to the download button
    75111        tfId.getKeymap().removeKeyStrokeBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false));
     
    91127            .addGroup(layout.createParallelGroup()
    92128                .addComponent(lbl2)
    93                 .addComponent(tfId, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
     129                .addComponent(cbId, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE))
    94130            .addComponent(referrers)
    95131            .addComponent(layer)
     
    105141                .addGroup(layout.createParallelGroup()
    106142                    .addComponent(cbType)
    107                     .addComponent(tfId))
     143                    .addComponent(cbId))
    108144                )
    109145            .addComponent(referrers)
     
    142178            return;
    143179        }
    144 
    145         processItems(layer.isSelected(), cbType.getType(), tfId.getIds(), referrers.isSelected());
    146     }
    147 
    148     void processItems(boolean newLayer, OsmPrimitiveType type,
    149             final List<PrimitiveId> ids,
    150             boolean downloadReferrers) {
     180        remindPrimitivesHistory(cbId);
     181        processItems(layer.isSelected(), tfId.getIds(), referrers.isSelected());
     182    }
     183
     184    void processItems(boolean newLayer, final List<PrimitiveId> ids, boolean downloadReferrers) {
    151185        OsmDataLayer layer = getEditLayer();
    152186        if ((layer == null) || newLayer) {
     
    199233                    }
    200234                }
    201                 if (del != null && !del.isEmpty()) {
     235                if (!del.isEmpty()) {
    202236                    final ExtendedDialog dlg = reportProblemDialog(del,
    203237                            trn("Object deleted", "Objects deleted", del.size()),
     
    249283            .setContent(p, false);
    250284    }
    251 
    252     private static class SimpleListItem  {
    253         final String data;
    254         final String text;
    255 
    256         public SimpleListItem(String data, String text) {
    257             this.data = data;
    258             this.text = text;
    259         }
    260 
    261         @Override public String toString() {
    262             return text;
    263         }
    264     }
    265285}
  • trunk/src/org/openstreetmap/josm/io/MirroredInputStream.java

    r4278 r4343  
    152152            {
    153153                String prefKey = getPrefKey(url, destDir);
    154                 // FIXME: replace with normal getCollection after july 2011
    155                 Collection<String> localPath = Main.pref.getCollectionOld(prefKey, ";");
     154                Collection<String> localPath = Main.pref.getCollection(prefKey);
    156155                if(localPath.size() == 2) {
    157156                    String[] lp = (String[]) localPath.toArray();
Note: See TracChangeset for help on using the changeset viewer.