001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.relation.actions; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.awt.event.ActionEvent; 007 008import org.openstreetmap.josm.Main; 009import org.openstreetmap.josm.gui.dialogs.relation.MemberTable; 010import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel; 011import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor; 012import org.openstreetmap.josm.gui.layer.OsmDataLayer; 013import org.openstreetmap.josm.gui.tagging.TagEditorModel; 014import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField; 015import org.openstreetmap.josm.tools.ImageProvider; 016 017/** 018 * Apply the updates and close the dialog. 019 */ 020public class OKAction extends SavingAction { 021 022 /** 023 * Constructs a new {@code OKAction}. 024 * @param memberTable member table 025 * @param memberTableModel member table model 026 * @param tagModel tag editor model 027 * @param layer OSM data layer 028 * @param editor relation editor 029 * @param tfRole role text field 030 */ 031 public OKAction(MemberTable memberTable, MemberTableModel memberTableModel, TagEditorModel tagModel, OsmDataLayer layer, 032 IRelationEditor editor, AutoCompletingTextField tfRole) { 033 super(memberTable, memberTableModel, tagModel, layer, editor, tfRole); 034 putValue(SHORT_DESCRIPTION, tr("Apply the updates and close the dialog")); 035 putValue(SMALL_ICON, ImageProvider.get("ok")); 036 putValue(NAME, tr("OK")); 037 setEnabled(true); 038 } 039 040 @Override 041 public void actionPerformed(ActionEvent e) { 042 Main.pref.put("relation.editor.generic.lastrole", tfRole.getText()); 043 memberTable.stopHighlighting(); 044 if (!applyChanges()) 045 return; 046 hideEditor(); 047 } 048}