[3175] | 1 | // License: GPL. For details, see LICENSE file.
|
---|
| 2 | package org.openstreetmap.josm.actions;
|
---|
| 3 |
|
---|
| 4 | import java.awt.event.ActionEvent;
|
---|
| 5 | import java.beans.PropertyChangeListener;
|
---|
| 6 | import java.util.HashMap;
|
---|
| 7 | import java.util.Map;
|
---|
| 8 |
|
---|
| 9 | import javax.swing.Action;
|
---|
| 10 |
|
---|
| 11 | public class ParameterizedActionDecorator implements Action {
|
---|
| 12 |
|
---|
| 13 | private final ParameterizedAction action;
|
---|
| 14 | private final Map<String, Object> parameters;
|
---|
| 15 |
|
---|
| 16 | public ParameterizedActionDecorator(ParameterizedAction action, Map<String, Object> parameters) {
|
---|
| 17 | this.action = action;
|
---|
[7005] | 18 | this.parameters = new HashMap<>(parameters);
|
---|
[3175] | 19 | }
|
---|
| 20 |
|
---|
[6084] | 21 | @Override
|
---|
[3175] | 22 | public void addPropertyChangeListener(PropertyChangeListener listener) {
|
---|
| 23 | action.addPropertyChangeListener(listener);
|
---|
| 24 | }
|
---|
[8510] | 25 |
|
---|
[6084] | 26 | @Override
|
---|
[3175] | 27 | public Object getValue(String key) {
|
---|
| 28 | return action.getValue(key);
|
---|
| 29 | }
|
---|
[8510] | 30 |
|
---|
[6084] | 31 | @Override
|
---|
[3175] | 32 | public boolean isEnabled() {
|
---|
| 33 | return action.isEnabled();
|
---|
| 34 | }
|
---|
[8510] | 35 |
|
---|
[6084] | 36 | @Override
|
---|
[3175] | 37 | public void putValue(String key, Object value) {
|
---|
| 38 | action.putValue(key, value);
|
---|
| 39 | }
|
---|
[8510] | 40 |
|
---|
[6084] | 41 | @Override
|
---|
[3175] | 42 | public void removePropertyChangeListener(PropertyChangeListener listener) {
|
---|
| 43 | action.removePropertyChangeListener(listener);
|
---|
| 44 | }
|
---|
[8510] | 45 |
|
---|
[6084] | 46 | @Override
|
---|
[3175] | 47 | public void setEnabled(boolean b) {
|
---|
| 48 | action.setEnabled(b);
|
---|
| 49 | }
|
---|
[8510] | 50 |
|
---|
[6084] | 51 | @Override
|
---|
[3175] | 52 | public void actionPerformed(ActionEvent e) {
|
---|
| 53 | action.actionPerformed(e, parameters);
|
---|
| 54 | }
|
---|
| 55 |
|
---|
| 56 | public Map<String, Object> getParameters() {
|
---|
| 57 | return parameters;
|
---|
| 58 | }
|
---|
| 59 | }
|
---|