blob: 3986ecb6e053f8c1ac61dfa9e1f6693bca9f2777 [file] [log] [blame]
/*
* 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.history;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.vcs.CalledInBackground;
import com.intellij.openapi.vcs.FilePath;
import com.intellij.openapi.vcs.VcsException;
import com.intellij.openapi.vcs.VcsProviderMarker;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public interface VcsHistoryProvider extends VcsProviderMarker {
VcsDependentHistoryComponents getUICustomization(final VcsHistorySession session, final JComponent forShortcutRegistration);
AnAction[] getAdditionalActions(final Runnable refresher);
/**
* Returns whether the history provider submits the custom-formatted date
* and the standard "Date" column must be omitted to get rid of confusion.
* @return true if history provider submits the custom-formatted date.
*/
boolean isDateOmittable();
@Nullable
@NonNls
String getHelpId();
/**
* Returns the history session for the specified file path.
*
* @param filePath the file path for which the session is requested.
* @return the session, or null if the initial revisions loading process was cancelled.
* @throws VcsException if an error occurred when loading the revisions
*/
@Nullable
@CalledInBackground
VcsHistorySession createSessionFor(FilePath filePath) throws VcsException;
void reportAppendableHistory(final FilePath path, final VcsAppendableHistorySessionPartner partner) throws VcsException;
boolean supportsHistoryForDirectories();
/**
* The returned {@link DiffFromHistoryHandler} will be called, when user calls "Show Diff" from the file history panel.
* If {@code null} is returned, the standard handler will be used, which is suitable for most cases.
*/
@Nullable
DiffFromHistoryHandler getHistoryDiffHandler();
/**
* Provide any additional restrictions for showing history for the given file.
* Basic restrictions are checked in the TabbedShowHistoryAction.
* @param file File which history is requested or may be requested.
* @return true if the VCS can show history for this file.
*/
boolean canShowHistoryFor(@NotNull VirtualFile file);
}