Ticket #6974: addButton.patch

File addButton.patch, 2.8 KB (added by akks, 15 years ago)
  • src/org/openstreetmap/josm/actions/search/SearchAction.java

     
    1313import java.util.ArrayList;
    1414import java.util.Collection;
    1515import java.util.Collections;
     16import java.util.HashMap;
    1617import java.util.HashSet;
    1718import java.util.LinkedList;
    1819import java.util.List;
    1920import java.util.Map;
    2021
     22import javax.swing.Action;
    2123import javax.swing.ButtonGroup;
    2224import javax.swing.JCheckBox;
    2325import javax.swing.JLabel;
     
    3032import org.openstreetmap.josm.actions.ActionParameter.SearchSettingsActionParameter;
    3133import org.openstreetmap.josm.actions.JosmAction;
    3234import org.openstreetmap.josm.actions.ParameterizedAction;
     35import org.openstreetmap.josm.actions.ParameterizedActionDecorator;
    3336import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
    3437import org.openstreetmap.josm.data.osm.DataSet;
    3538import org.openstreetmap.josm.data.osm.Filter;
     
    185188        JCheckBox allElements = new JCheckBox(tr("all objects"), initialValues.allElements);
    186189        allElements.setToolTipText(tr("Also include incomplete and deleted objects in search."));
    187190        final JCheckBox regexSearch   = new JCheckBox(tr("regular expression"), initialValues.regexSearch);
     191        final JCheckBox addOnToolbar  = new JCheckBox(tr("Add temporary button"), false);
    188192
    189193        JPanel top = new JPanel(new GridBagLayout());
    190194        top.add(label, GBC.std().insets(0, 0, 5, 0));
     
    197201        left.add(caseSensitive, GBC.eol());
    198202        left.add(allElements, GBC.eol());
    199203        left.add(regexSearch, GBC.eol());
     204        left.add(addOnToolbar, GBC.eol());
    200205
    201206        JPanel right = new JPanel();
    202207        DescriptionTextBuilder descriptionText = new DescriptionTextBuilder();
     
    276281        int result = dialog.getValue();
    277282
    278283        if(result != 1) return null;
    279 
     284       
    280285        // User pressed OK - let's perform the search
    281286        SearchMode mode = replace.isSelected() ? SearchAction.SearchMode.replace
    282287                : (add.isSelected() ? SearchAction.SearchMode.add
     
    286291        initialValues.caseSensitive = caseSensitive.isSelected();
    287292        initialValues.allElements = allElements.isSelected();
    288293        initialValues.regexSearch = regexSearch.isSelected();
     294        if (addOnToolbar.isSelected()) {
     295            Map<String, Object> parameters=new HashMap<String, Object>();
     296            parameters.put("searchExpression",initialValues);
     297            Action action = new ParameterizedActionDecorator((ParameterizedAction)
     298                new SearchAction(), parameters);
     299            Main.toolbar.control.add(action);
     300        }
    289301        return initialValues;
    290302    }
    291303