/* * Copyright 2000-2009 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.intellij.openapi.command; import com.intellij.openapi.Disposable; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public abstract class CommandProcessor { public static CommandProcessor getInstance() { return ServiceManager.getService(CommandProcessor.class); } /** * @deprecated use {@link #executeCommand(com.intellij.openapi.project.Project, java.lang.Runnable, java.lang.String, java.lang.Object)} */ public abstract void executeCommand(@NotNull Runnable runnable, @Nullable String name, @Nullable Object groupId); public abstract void executeCommand(@Nullable Project project, @NotNull Runnable runnable, @Nullable String name, @Nullable Object groupId); public abstract void executeCommand(@Nullable Project project, @NotNull Runnable runnable, @Nullable String name, @Nullable Object groupId, @Nullable Document document); public abstract void executeCommand(@Nullable Project project, @NotNull Runnable runnable, @Nullable String name, @Nullable Object groupId, @NotNull UndoConfirmationPolicy confirmationPolicy); public abstract void executeCommand(@Nullable Project project, @NotNull Runnable command, @Nullable String name, @Nullable Object groupId, @NotNull UndoConfirmationPolicy confirmationPolicy, @Nullable Document document); public abstract void setCurrentCommandName(@Nullable String name); public abstract void setCurrentCommandGroupId(@Nullable Object groupId); @Nullable public abstract Runnable getCurrentCommand(); @Nullable public abstract String getCurrentCommandName(); @Nullable public abstract Object getCurrentCommandGroupId(); @Nullable public abstract Project getCurrentCommandProject(); public abstract void runUndoTransparentAction(@NotNull Runnable action); public abstract boolean isUndoTransparentActionInProgress(); public abstract void markCurrentCommandAsGlobal(@Nullable Project project); public abstract void addAffectedDocuments(@Nullable Project project, @NotNull Document... docs); public abstract void addAffectedFiles(@Nullable Project project, @NotNull VirtualFile... files); public abstract void addCommandListener(@NotNull CommandListener listener); public abstract void addCommandListener(@NotNull CommandListener listener, @NotNull Disposable parentDisposable); public abstract void removeCommandListener(@NotNull CommandListener listener); }