001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.actions;
003
004 import java.awt.event.ActionEvent;
005 import java.beans.PropertyChangeListener;
006 import java.util.HashMap;
007 import java.util.Map;
008
009 import javax.swing.Action;
010
011 public class ParameterizedActionDecorator implements Action {
012
013 private final ParameterizedAction action;
014 private final Map<String, Object> parameters;
015
016 public ParameterizedActionDecorator(ParameterizedAction action, Map<String, Object> parameters) {
017 this.action = action;
018 this.parameters = new HashMap<String, Object>(parameters);
019 }
020
021 public void addPropertyChangeListener(PropertyChangeListener listener) {
022 action.addPropertyChangeListener(listener);
023 }
024 public Object getValue(String key) {
025 return action.getValue(key);
026 }
027 public boolean isEnabled() {
028 return action.isEnabled();
029 }
030 public void putValue(String key, Object value) {
031 action.putValue(key, value);
032 }
033 public void removePropertyChangeListener(PropertyChangeListener listener) {
034 action.removePropertyChangeListener(listener);
035 }
036 public void setEnabled(boolean b) {
037 action.setEnabled(b);
038 }
039 public void actionPerformed(ActionEvent e) {
040 action.actionPerformed(e, parameters);
041 }
042
043 public Map<String, Object> getParameters() {
044 return parameters;
045 }
046
047 }