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.gui.dialogs.relation.IRelationEditor; 009import org.openstreetmap.josm.gui.dialogs.relation.MemberTable; 010import org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel; 011import org.openstreetmap.josm.gui.layer.OsmDataLayer; 012import org.openstreetmap.josm.gui.tagging.TagEditorModel; 013import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField; 014import org.openstreetmap.josm.spi.preferences.Config; 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 new ImageProvider("ok").getResource().attachImageIcon(this); 036 putValue(NAME, tr("OK")); 037 setEnabled(true); 038 } 039 040 @Override 041 public void actionPerformed(ActionEvent e) { 042 Config.getPref().put("relation.editor.generic.lastrole", tfRole.getText()); 043 memberTable.stopHighlighting(); 044 if (!applyChanges()) 045 return; 046 hideEditor(); 047 } 048}