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.Dialog; 007import java.awt.event.ActionEvent; 008 009import org.openstreetmap.josm.gui.MainApplication; 010import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask; 011import org.openstreetmap.josm.tools.ImageProvider; 012 013/** 014 * Download selected incomplete members. 015 * @since 9496 016 */ 017public class DownloadSelectedIncompleteMembersAction extends AbstractRelationEditorAction { 018 private static final long serialVersionUID = 1L; 019 020 /** 021 * Constructs a new {@code DownloadSelectedIncompleteMembersAction}. 022 * @param editorAccess An interface to access the relation editor contents. 023 */ 024 public DownloadSelectedIncompleteMembersAction(IRelationEditorActionAccess editorAccess) { 025 super(editorAccess, IRelationEditorUpdateOn.MEMBER_TABLE_CHANGE, IRelationEditorUpdateOn.MEMBER_TABLE_SELECTION); 026 putValue(SHORT_DESCRIPTION, tr("Download selected incomplete members")); 027 new ImageProvider("dialogs/relation", "downloadincompleteselected").getResource().attachImageIcon(this, true); 028 putValue(NAME, tr("Download members")); 029 updateEnabledState(); 030 } 031 032 @Override 033 public void actionPerformed(ActionEvent e) { 034 if (!isEnabled()) 035 return; 036 MainApplication.worker.submit(new DownloadRelationMemberTask( 037 getEditor().getRelation(), 038 getMemberTableModel().getSelectedIncompleteMemberPrimitives(), 039 getLayer(), 040 (Dialog) getEditor()) 041 ); 042 } 043 044 @Override 045 protected void updateEnabledState() { 046 setEnabled(getMemberTableModel().hasIncompleteSelectedMembers() && canDownload()); 047 } 048}