source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/ApplyAction.java@ 9657

Last change on this file since 9657 was 9657, checked in by Don-vip, 8 years ago

fix #12410 - new button to refresh relation in relation editor (patch by kolesar, modified for checkstyle, javadoc, unit test)

File size: 2.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7
8import java.beans.PropertyChangeEvent;
9import java.beans.PropertyChangeListener;
10
11import javax.swing.event.TableModelEvent;
12import javax.swing.event.TableModelListener;
13
14import org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor;
15import org.openstreetmap.josm.gui.dialogs.relation.MemberTable;
16import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel;
17import org.openstreetmap.josm.gui.dialogs.relation.RelationAware;
18import org.openstreetmap.josm.gui.layer.OsmDataLayer;
19import org.openstreetmap.josm.gui.tagging.TagEditorModel;
20import org.openstreetmap.josm.tools.ImageProvider;
21
22/**
23 * Apply the current updates.
24 * @since 9496
25 */
26public class ApplyAction extends SavingAction implements PropertyChangeListener, TableModelListener {
27
28 /**
29 * Constructs a new {@code ApplyAction}.
30 * @param memberTable member table
31 * @param memberTableModel member table model
32 * @param layer OSM data layer
33 * @param editor relation editor
34 * @param tagModel tag editor model
35 */
36 public ApplyAction(MemberTable memberTable, MemberTableModel memberTableModel, TagEditorModel tagModel, OsmDataLayer layer,
37 RelationAware editor) {
38 super(memberTable, memberTableModel, tagModel, layer, editor, null);
39 putValue(SHORT_DESCRIPTION, tr("Apply the current updates"));
40 putValue(SMALL_ICON, ImageProvider.get("save"));
41 putValue(NAME, tr("Apply"));
42 updateEnabledState();
43 memberTableModel.addTableModelListener(this);
44 tagModel.addPropertyChangeListener(this);
45 }
46
47 @Override
48 public void actionPerformed(ActionEvent e) {
49 if (applyChanges()) {
50 ((GenericRelationEditor) editor).reloadDataFromRelation();
51 }
52 }
53
54 @Override
55 protected void updateEnabledState() {
56 setEnabled(isEditorDirty());
57 }
58
59 @Override
60 public void propertyChange(PropertyChangeEvent evt) {
61 updateEnabledState();
62 }
63
64 @Override
65 public void tableChanged(TableModelEvent e) {
66 updateEnabledState();
67 }
68}
Note: See TracBrowser for help on using the repository browser.