mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
vcs: introduce interface for FilePath-providing grouping nodes
GitOrigin-RevId: 1497337e87d2a41b2c06a0fc6c442ede0926871c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1a22c9f26c
commit
2d1d0f86e0
+2
-2
@@ -114,8 +114,8 @@ abstract class AbstractChangesBrowserFilePathNode<U>(userObject: U, val status:
|
||||
@JvmStatic
|
||||
fun safeCastToFilePath(node: ChangesBrowserNode<*>?): FilePath? {
|
||||
if (node == null) return null
|
||||
if (node is ChangesBrowserModuleNode) {
|
||||
return node.moduleRoot
|
||||
if (node is NodeWithFilePath) {
|
||||
return node.nodeFilePath
|
||||
}
|
||||
val o = node.userObject
|
||||
if (o is FilePath) return o
|
||||
|
||||
+12
-3
@@ -14,7 +14,7 @@ import com.intellij.vcsUtil.VcsUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
public class ChangesBrowserModuleNode extends ChangesBrowserNode<Module> {
|
||||
public class ChangesBrowserModuleNode extends ChangesBrowserNode<Module> implements ChangesBrowserNode.NodeWithFilePath {
|
||||
@NotNull private final FilePath myModuleRoot;
|
||||
|
||||
protected ChangesBrowserModuleNode(Module userObject) {
|
||||
@@ -24,7 +24,10 @@ public class ChangesBrowserModuleNode extends ChangesBrowserNode<Module> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(@NotNull final ChangesBrowserNodeRenderer renderer, final boolean selected, final boolean expanded, final boolean hasFocus) {
|
||||
public void render(@NotNull final ChangesBrowserNodeRenderer renderer,
|
||||
final boolean selected,
|
||||
final boolean expanded,
|
||||
final boolean hasFocus) {
|
||||
final Module module = (Module)userObject;
|
||||
|
||||
renderer.append(module.isDisposed() ? "" : module.getName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
|
||||
@@ -34,7 +37,8 @@ public class ChangesBrowserModuleNode extends ChangesBrowserNode<Module> {
|
||||
|
||||
if (module.isDisposed()) {
|
||||
renderer.setIcon(ModuleType.EMPTY.getIcon());
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
renderer.setIcon(ModuleType.get(module).getIcon());
|
||||
}
|
||||
}
|
||||
@@ -44,6 +48,11 @@ public class ChangesBrowserModuleNode extends ChangesBrowserNode<Module> {
|
||||
return myModuleRoot;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull FilePath getNodeFilePath() {
|
||||
return getModuleRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTextPresentation() {
|
||||
return getUserObject().getName();
|
||||
|
||||
@@ -487,4 +487,9 @@ public abstract class ChangesBrowserNode<T> extends DefaultMutableTreeNode imple
|
||||
public Stream<ChangesBrowserNode<?>> getNodesUnderStream() {
|
||||
return traverse().toStream();
|
||||
}
|
||||
|
||||
interface NodeWithFilePath {
|
||||
@NotNull
|
||||
FilePath getNodeFilePath();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user