001package jmri.jmrix.dccpp.swing.messages;
002
003import javax.annotation.Nonnull;
004
005import jmri.jmrit.display.*;
006import jmri.jmrix.dccpp.DCCppSystemConnectionMemo;
007
008import org.openide.util.lookup.ServiceProvider;
009
010/** A factory for a DCC-EX Messages display that can be put on a panel. */
011@ServiceProvider(service = PositionableFactory.class)
012public class MessagesPositionableFactory implements PositionableFactory {
013
014    public MessagesPositionableFactory() {
015    }
016
017    @Nonnull
018    @Override
019    public String getIdentifier() {
020        return "DCC-EX-Messages";
021    }
022
023    @Nonnull
024    @Override
025    public String getDescription() {
026        return Bundle.getMessage("MessagesFrameTitle");
027    }
028
029    /** Only offered when there's at least one DCC-EX connection. */
030    @Override
031    public boolean isEnabled() {
032        return !jmri.InstanceManager.getList(DCCppSystemConnectionMemo.class).isEmpty();
033    }
034
035    @Override
036    public void addPositionable(@Nonnull Editor editor, DoAfter doAfter) {
037        ConfigureMessages.createConfigureMessages(editor, doAfter);
038    }
039
040}