Added updating tree when Kotlin file changes "single-class" status.
This commit is contained in:
@@ -17,12 +17,15 @@
|
|||||||
package org.jetbrains.jet.plugin.projectView;
|
package org.jetbrains.jet.plugin.projectView;
|
||||||
|
|
||||||
import com.intellij.ide.projectView.PresentationData;
|
import com.intellij.ide.projectView.PresentationData;
|
||||||
|
import com.intellij.ide.projectView.ProjectView;
|
||||||
import com.intellij.ide.projectView.ViewSettings;
|
import com.intellij.ide.projectView.ViewSettings;
|
||||||
import com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode;
|
import com.intellij.ide.projectView.impl.nodes.AbstractPsiBasedNode;
|
||||||
import com.intellij.ide.util.treeView.AbstractTreeNode;
|
import com.intellij.ide.util.treeView.AbstractTreeNode;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
|
import org.jetbrains.jet.plugin.JetIconProvider;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
@@ -48,11 +51,27 @@ public class JetClassOrObjectTreeNode extends AbstractPsiBasedNode<JetClassOrObj
|
|||||||
return getClassOrObjectChildren(getValue(), getProject(), getSettings());
|
return getClassOrObjectChildren(getValue(), getProject(), getSettings());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void update(AbstractTreeNode node) {
|
||||||
|
ProjectView.getInstance(getProject()).getCurrentProjectViewPane().getTreeBuilder().addSubtreeToUpdateByElement(node);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateImpl(PresentationData data) {
|
protected void updateImpl(PresentationData data) {
|
||||||
JetClassOrObject value = getValue();
|
JetClassOrObject classOrObject = getValue();
|
||||||
if (value != null) {
|
if (classOrObject != null) {
|
||||||
data.setPresentableText(value.getName());
|
data.setPresentableText(classOrObject.getName());
|
||||||
|
|
||||||
|
AbstractTreeNode parent = getParent();
|
||||||
|
if (JetIconProvider.getMainClass((JetFile) classOrObject.getContainingFile()) != null) {
|
||||||
|
if (parent instanceof JetFileTreeNode) {
|
||||||
|
update(parent.getParent());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!(parent instanceof JetClassOrObjectTreeNode) && !(parent instanceof JetFileTreeNode)) {
|
||||||
|
update(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user