001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.relation; 003 004import java.util.Collections; 005import java.util.List; 006import java.util.concurrent.CopyOnWriteArrayList; 007 008import org.openstreetmap.josm.gui.dialogs.relation.actions.IRelationEditorActionGroup; 009 010/** 011 * This class allows to hook into the relation editor. It can be used to overwrite specific behavior. 012 * 013 * @author Michael Zangl 014 * @since 14027 015 */ 016public final class RelationEditorHooks { 017 018 private static final CopyOnWriteArrayList<IRelationEditorActionGroup> memberActions = new CopyOnWriteArrayList<>(); 019 private static final CopyOnWriteArrayList<IRelationEditorActionGroup> selectionActions = new CopyOnWriteArrayList<>(); 020 021 private RelationEditorHooks() { 022 // only static methods. 023 } 024 025 /** 026 * Adds actions to the members action toolbar 027 * @param group The group to add 028 */ 029 public static void addActionsToMembers(IRelationEditorActionGroup group) { 030 memberActions.add(group); 031 } 032 033 /** 034 * Adds actions to the selection action toolbar 035 * @param group The group to add 036 */ 037 public static void addActionsToSelection(IRelationEditorActionGroup group) { 038 selectionActions.add(group); 039 } 040 041 /* package */ static List<IRelationEditorActionGroup> getMemberActions() { 042 return Collections.unmodifiableList(memberActions); 043 } 044 045 /* package */ static List<IRelationEditorActionGroup> getSelectActions() { 046 return Collections.unmodifiableList(selectionActions); 047 } 048 049}