package sk.stuba.fiit.perconik.activity.listeners; import java.util.Set; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet.Builder; import sk.stuba.fiit.perconik.activity.listeners.command.CommandListener; import sk.stuba.fiit.perconik.activity.listeners.command.UndoableHistoryListener; import sk.stuba.fiit.perconik.activity.listeners.command.UndoableOperationListener; import sk.stuba.fiit.perconik.activity.listeners.debug.DebugListener; import sk.stuba.fiit.perconik.activity.listeners.debug.LaunchListener; import sk.stuba.fiit.perconik.activity.listeners.git.BranchListener; import sk.stuba.fiit.perconik.activity.listeners.git.CommitListener; import sk.stuba.fiit.perconik.activity.listeners.git.TagListener; import sk.stuba.fiit.perconik.activity.listeners.java.dom.CompilationUnitDifferenceListener; import sk.stuba.fiit.perconik.activity.listeners.refactor.RefactoringHistoryListener; import sk.stuba.fiit.perconik.activity.listeners.refactor.RefactoringOperationListener; import sk.stuba.fiit.perconik.activity.listeners.resource.ProjectListener; import sk.stuba.fiit.perconik.activity.listeners.search.SearchQueryListener; import sk.stuba.fiit.perconik.activity.listeners.search.SearchResultListener; import sk.stuba.fiit.perconik.activity.listeners.test.TestCaseListener; import sk.stuba.fiit.perconik.activity.listeners.test.TestSessionListener; import sk.stuba.fiit.perconik.activity.listeners.ui.PageListener; import sk.stuba.fiit.perconik.activity.listeners.ui.PartListener; import sk.stuba.fiit.perconik.activity.listeners.ui.PerspectiveListener; import sk.stuba.fiit.perconik.activity.listeners.ui.WindowListener; import sk.stuba.fiit.perconik.activity.listeners.ui.WorkbenchListener; import sk.stuba.fiit.perconik.activity.listeners.ui.assist.CompletionListener; import sk.stuba.fiit.perconik.activity.listeners.ui.assist.CompletionSelectionListener; import sk.stuba.fiit.perconik.activity.listeners.ui.assist.CompletionSessionListener; import sk.stuba.fiit.perconik.activity.listeners.ui.element.ElementSelectionListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextCopyListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextCutListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextDifferenceListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextMarkListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextPasteListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextSelectionListener; import sk.stuba.fiit.perconik.activity.listeners.ui.text.TextViewListener; import sk.stuba.fiit.perconik.core.Listener; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProvider; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProviderFactory; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProviders; public final class ListenerProviderExtension implements ListenerProviderFactory { private static final Set<Class<? extends Listener>> classes; static { Builder<Class<? extends Listener>> builder = ImmutableSet.builder(); builder.add(WorkbenchListener.class); builder.add(WindowListener.class); builder.add(PageListener.class); builder.add(PartListener.class); builder.add(PerspectiveListener.class); builder.add(ElementSelectionListener.class); builder.add(TextCopyListener.class); builder.add(TextCutListener.class); builder.add(TextDifferenceListener.class); builder.add(TextMarkListener.class); builder.add(TextPasteListener.class); builder.add(TextSelectionListener.class); builder.add(TextViewListener.class); builder.add(CommandListener.class); builder.add(UndoableOperationListener.class); builder.add(UndoableHistoryListener.class); builder.add(RefactoringOperationListener.class); builder.add(RefactoringHistoryListener.class); builder.add(CompletionListener.class); builder.add(CompletionSessionListener.class); builder.add(CompletionSelectionListener.class); builder.add(SearchQueryListener.class); builder.add(SearchResultListener.class); builder.add(LaunchListener.class); builder.add(DebugListener.class); builder.add(TestSessionListener.class); builder.add(TestCaseListener.class); builder.add(ProjectListener.class); builder.add(BranchListener.class); builder.add(CommitListener.class); builder.add(TagListener.class); builder.add(CompilationUnitDifferenceListener.class); classes = builder.build(); } public ListenerProviderExtension() {} public ListenerProvider create(final ListenerProvider parent) { return ListenerProviders.builder(parent).addAll(classes).build(); } }