001package jmri.jmrit.display;
002
003import javax.annotation.Nonnull;
004import javax.swing.AbstractAction;
005import jmri.spi.JmriServiceProviderInterface;
006
007/**
008 * Factory for creating {@link AbstractAction}s that create new {@link Editor}s.
009 *
010 * @author Randall Wood Copyright 2020
011 */
012public interface EditorActionFactory extends JmriServiceProviderInterface {
013
014    /**
015     * Create a new action that should create a new {@link Editor}.
016     *
017     * @return the action
018     */
019    @Nonnull
020    AbstractAction createAction();
021
022    /**
023     * Get the title used for the action returned by {@link #createAction()}.
024     * 
025     * @return the title
026     */
027    @Nonnull
028    String getTitle();
029}