/platform/lang-impl/src/com/intellij/refactoring/classMembers/DependencyMemberInfoModel.java
https://bitbucket.org/nbargnesi/idea · Java · 90 lines · 52 code · 15 blank · 23 comment · 8 complexity · f432d6cbf9e143a902b5a4c67d2995e7 MD5 · raw file
- /*
- * 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.
- */
- /*
- * Created by IntelliJ IDEA.
- * User: dsl
- * Date: 09.07.2002
- * Time: 15:03:42
- * To change template for new class use
- * Code Style | Class Templates options (Tools | IDE Options).
- */
- package com.intellij.refactoring.classMembers;
- import com.intellij.psi.PsiElement;
- import org.jetbrains.annotations.NotNull;
- import java.util.Collection;
- public abstract class DependencyMemberInfoModel<T extends PsiElement, M extends MemberInfoBase<T>> implements MemberInfoModel<T, M> {
- protected MemberDependencyGraph<T, M> myMemberDependencyGraph;
- private final int myProblemLevel;
- private MemberInfoTooltipManager myTooltipManager;
- public DependencyMemberInfoModel(MemberDependencyGraph<T, M> memberDependencyGraph, int problemLevel) {
- myMemberDependencyGraph = memberDependencyGraph;
- myProblemLevel = problemLevel;
- }
- public void setTooltipProvider(MemberInfoTooltipManager.TooltipProvider <T, M> tooltipProvider) {
- myTooltipManager = new MemberInfoTooltipManager<T, M>(tooltipProvider);
- }
- public boolean isAbstractEnabled(M member) {
- return true;
- }
- public boolean isAbstractWhenDisabled(M member) {
- return false;
- }
- public boolean isMemberEnabled(M member) {
- return true;
- }
- public int checkForProblems(@NotNull M memberInfo) {
- if (memberInfo.isChecked()) return OK;
- final T member = memberInfo.getMember();
- if (myMemberDependencyGraph.getDependent().contains(member)) {
- return myProblemLevel;
- }
- return OK;
- }
- public void setMemberDependencyGraph(MemberDependencyGraph<T, M> memberDependencyGraph) {
- myMemberDependencyGraph = memberDependencyGraph;
- }
- public void memberInfoChanged(MemberInfoChange<T, M> event) {
- memberInfoChanged(event.getChangedMembers());
- }
- public void memberInfoChanged(final Collection<M> changedMembers) {
- if (myTooltipManager != null) myTooltipManager.invalidate();
- for (M changedMember : changedMembers) {
- myMemberDependencyGraph.memberChanged(changedMember);
- }
- }
- public String getTooltipText(M member) {
- if (myTooltipManager != null) {
- return myTooltipManager.getTooltip(member);
- } else {
- return null;
- }
- }
- }