com.intellij.openapi.vcs.checkin.CheckinHandler Maven / Gradle / Ivy
/*
* 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.vcs.checkin;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.vcs.VcsException;
import com.intellij.openapi.vcs.changes.CommitExecutor;
import com.intellij.openapi.vcs.changes.LocalCommitExecutor;
import com.intellij.openapi.vcs.ui.RefreshableOnComponent;
import com.intellij.util.PairConsumer;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* A callback which can be used to extend the user interface of the Checkin Project/Checkin File
* dialogs and to perform actions before commit, on successful commit and on failed commit.
*
* @author lesya
* @since 5.1
* @see BaseCheckinHandlerFactory#createHandler(com.intellij.openapi.vcs.CheckinProjectPanel, CommitContext)
* @see CodeAnalysisBeforeCheckinHandler
*/
public abstract class CheckinHandler {
/**
* you can return this handler if your handler shouldn't be created (for instance, your VCS is not active)
*/
public static final CheckinHandler DUMMY = new CheckinHandler() {
};
public enum ReturnResult {
COMMIT, CANCEL, CLOSE_WINDOW
}
/**
* Returns the panel which is inserted in the "Before Check In" group box of the Checkin Project
* or Checkin File dialogs.
*
* @return the panel instance, or null if the handler does not provide any options to show in the
* "Before Check In" group.
*/
@Nullable
public RefreshableOnComponent getBeforeCheckinConfigurationPanel() {
return null;
}
/**
* Returns the panel which is inserted in the "After Check In" group box of the Checkin Project
* or Checkin File dialogs.
*
* @return the panel instance, or null if the handler does not provide any options to show in the
* "After Check In" group.
* @param parentDisposable
*/
@Nullable
public RefreshableOnComponent getAfterCheckinConfigurationPanel(final Disposable parentDisposable) {
return null;
}
/**
* Performs the before check-in processing when a custom commit executor is used. The method can use the
* {@link com.intellij.openapi.vcs.CheckinProjectPanel} instance passed to
* {@link BaseCheckinHandlerFactory#createHandler(com.intellij.openapi.vcs.CheckinProjectPanel, CommitContext)} to
* get information about the files to be checked in.
*
* @param executor the commit executor, or null if the standard commit operation is executed.
* @param additionalDataConsumer
* @return the code indicating whether the check-in operation should be performed or aborted.
*/
public ReturnResult beforeCheckin(@Nullable CommitExecutor executor, PairConsumer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy