/** * */ package org.signalml.plugin.export.change; import org.signalml.app.document.TagDocument; import org.signalml.plugin.export.change.listeners.PluginCloseListener; import org.signalml.plugin.export.change.listeners.PluginCodecListener; import org.signalml.plugin.export.change.listeners.PluginDocumentListener; import org.signalml.plugin.export.change.listeners.PluginSignalChangeListener; import org.signalml.plugin.export.change.listeners.PluginTagDocumentListener; import org.signalml.plugin.export.change.listeners.PluginTagListener; import org.signalml.plugin.export.change.listeners.PluginTagListenerWithActive; import org.signalml.plugin.export.change.listeners.PluginTagStyleListener; import org.signalml.plugin.export.signal.Document; import org.signalml.plugin.export.signal.ExportedSignalDocument; import org.signalml.plugin.export.signal.ExportedTag; import org.signalml.plugin.export.signal.ExportedTagDocument; import org.signalml.plugin.export.signal.ExportedTagStyle; /** * This interface is used by plug-ins to listen on changes in Svarog. * Allows to add listeners: * <ul> * <li>{@link PluginCloseListener}</li> * <li>{@link PluginCodecListener}</li> * <li>{@link PluginDocumentListener}</li> * <li>{@link PluginTagDocumentListener}</li> * <li>{@link PluginTagListenerWithActive}</li> * <li>{@link PluginTagStyleListener}</li> * </ul> * to listen on specified changes in whole Svarog. * <p> * It is also possible to add listeners: * <ul> * <li>{@link PluginTagStyleListener}</li> * <li>{@link PluginTagListener}</li> * to listen on changes concerning only one {@link ExportedTagDocument tag} * or {@link ExportedSignalDocument signal} document. * * @author Marcin Szumski */ public interface SvarogAccessChangeSupport { /** * Adds a {@link PluginCloseListener listener} on close of Svarog. * @param closeListener the listener to add */ void addCloseListener(PluginCloseListener closeListener); /** * Adds a {@link PluginCodecListener listener} on codec changes * (addition and removal). * @param codecListener the listener to add */ void addCodecListener(PluginCodecListener codecListener); /** * Adds a {@link PluginDocumentListener listener} on changes associated * with a {@link Document}. * @param documentListener the listener to add */ void addDocumentListener(PluginDocumentListener documentListener); /** * Adds a {@link PluginTagDocumentListener listener} on changes of * an active {@link TagDocument}. * @param tagDocumentListener the listener to add */ void addTagDocumentListener(PluginTagDocumentListener tagDocumentListener); /** * Adds a {@link PluginTagListenerWithActive listener} on * {@link ExportedTag tag} changes (addition, removal, change) * including changes of an active tag * @param tagListener the listener to add */ void addTagListener(PluginTagListenerWithActive tagListener); /** * Adds a {@link PluginTagStyleListener listener} on * {@link ExportedTagStyle tag style} changes (addition, removal, change). * @param tagStyleListener the listener to add */ void addTagStyleListener(PluginTagStyleListener tagStyleListener); /** * Adds a {@link PluginTagListener listener} on {@link ExportedTag tag} * changes (addition, removal, change) for a specified * {@link ExportedTagDocument document with tags}. * @param tagListener the listener to add * @param document the document for which the listener is added */ void addTagListenerForTagDocument(PluginTagListener tagListener, ExportedTagDocument document); /** * Adds a {@link PluginTagListener listener} on {@link ExportedTag tag} * changes (addition, removal, change) for all {@link ExportedTagDocument * tag documents} associated with a specified {@link ExportedSignalDocument * signal document}. * @param tagListener the listener to add * @param document the document for which the listener is added */ void addTagListenerForSignalDocument(PluginTagListener tagListener, ExportedSignalDocument document); /** * Adds a {@link PluginTagStyleListener listener} on * {@link ExportedTagStyle tag style} changes (addition, removal, change) * for a specified {@link ExportedTagDocument document with tags}. * @param tagStyleListener the listener to add * @param document the document for which the listener is added */ void addTagStyleListenerForTagDocument(PluginTagStyleListener tagStyleListener, ExportedTagDocument document); /** * Adds a {@link PluginTagStyleListener listener} on * {@link ExportedTagStyle tag style} changes (addition, removal, change) * for all {@link ExportedTagDocument tag documents} associated with * a specified {@link ExportedSignalDocument signal document}. * @param tagStyleListener the listener to add * @param document the document for which the listener is added */ void addTagStyleListenerForSignalDocument(PluginTagStyleListener tagStyleListener, ExportedSignalDocument document); /** * Adds a {@link PluginSignalChangeListener listener} on * signal changes. * @param signalListener */ void addSignalChangeListener(PluginSignalChangeListener signalListener); }