/* * Copyright 2000-2014 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.vcs.log.data; import com.intellij.vcs.log.graph.PrintElement; import com.intellij.vcs.log.graph.RowInfo; import com.intellij.vcs.log.graph.VisibleGraph; import com.intellij.vcs.log.graph.actions.ActionController; import com.intellij.vcs.log.graph.actions.GraphAnswer; import com.intellij.vcs.log.graph.actions.GraphMouseAction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.awt.*; import java.util.Collection; import java.util.Collections; class EmptyVisibleGraph implements VisibleGraph { private static final VisibleGraph INSTANCE = new EmptyVisibleGraph(); @NotNull public static VisibleGraph getInstance() { return INSTANCE; } @Override public int getVisibleCommitCount() { return 0; } @NotNull @Override public RowInfo getRowInfo(int visibleRow) { return EmptyRowInfo.INSTANCE; } @Override public int getVisibleRowIndex(@NotNull Integer integer) { return -1; } @NotNull @Override public ActionController getActionController() { return DumbActionController.INSTANCE; } private static class DumbActionController implements ActionController { private static ActionController INSTANCE = new DumbActionController(); @NotNull @Override public GraphAnswer performMouseAction(@NotNull GraphMouseAction graphMouseAction) { return EmptyGraphAnswer.INSTANCE; } @Override public boolean areLongEdgesHidden() { return false; } @Override public void setLongEdgesHidden(boolean longEdgesHidden) { } @Override public void setLinearBranchesExpansion(boolean collapse) { } private static class EmptyGraphAnswer implements GraphAnswer { private static EmptyGraphAnswer INSTANCE = new EmptyGraphAnswer(); @Nullable @Override public Cursor getCursorToSet() { return null; } @Nullable @Override public Integer getCommitToJump() { return null; } } } private static class EmptyRowInfo implements RowInfo { private static final RowInfo INSTANCE = new EmptyRowInfo(); @NotNull @Override public Integer getCommit() { return 0; } @NotNull @Override public Integer getOneOfHeads() { return 0; } @NotNull @Override public Collection getPrintElements() { return Collections.emptyList(); } } }