diff --git a/src/main/java/org/jastadd/tooling/aspect/AspectStructureViewModel.java b/src/main/java/org/jastadd/tooling/aspect/AspectStructureViewModel.java index d2af7e5dbd0a7554b0cadec2980afb42477cf9b4..e14181ba0b0d033be21a3e34a1b442ef4bb3e5f9 100644 --- a/src/main/java/org/jastadd/tooling/aspect/AspectStructureViewModel.java +++ b/src/main/java/org/jastadd/tooling/aspect/AspectStructureViewModel.java @@ -43,6 +43,6 @@ public class AspectStructureViewModel extends StructureViewModelBase implements @Override public Filter @NotNull [] getFilters() { - return new Filter[]{new JastAddAspectAttributeFilter()}; + return new Filter[]{new JastAddAspectAttributeFilter(), new JastAddAspectIntertypeFilter(), new JastAddAspectRewriteFilter()}; } } diff --git a/src/main/java/org/jastadd/tooling/aspect/JastAddAspectIntertypeFilter.java b/src/main/java/org/jastadd/tooling/aspect/JastAddAspectIntertypeFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..5f0371916db01d98f78a3025d3e5ff62b7ed36e0 --- /dev/null +++ b/src/main/java/org/jastadd/tooling/aspect/JastAddAspectIntertypeFilter.java @@ -0,0 +1,52 @@ +package org.jastadd.tooling.aspect; + +import com.intellij.ide.util.treeView.smartTree.ActionPresentation; +import com.intellij.ide.util.treeView.smartTree.ActionPresentationData; +import com.intellij.ide.util.treeView.smartTree.Filter; +import com.intellij.ide.util.treeView.smartTree.TreeElement; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectEnumDeclaration; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectFieldDeclaration; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectInterfaceDeclaration; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectMethodDeclaration; +import org.jastadd.tooling.aspect.psi.impl.JastAddAspectAspectClassDeclarationImpl; +import org.jastadd.tooling.util.JastAddIcons; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; + +public class JastAddAspectIntertypeFilter implements Filter { + @NonNls + public static final String ID = "HIDE_INTERTYPE_DECLS"; + + @Override + public boolean isVisible(TreeElement treeNode) { + if (treeNode instanceof AspectStructureViewElement) { + return !( + ((AspectStructureViewElement) treeNode).getValue() instanceof JastAddAspectAspectMethodDeclaration + || ((AspectStructureViewElement) treeNode).getValue() instanceof JastAddAspectAspectClassDeclarationImpl + || ((AspectStructureViewElement) treeNode).getValue() instanceof JastAddAspectAspectEnumDeclaration + || ((AspectStructureViewElement) treeNode).getValue() instanceof JastAddAspectAspectInterfaceDeclaration + || ((AspectStructureViewElement) treeNode).getValue() instanceof JastAddAspectAspectFieldDeclaration + ); + } else { + return true; + } + } + + @Override + @NotNull + public ActionPresentation getPresentation() { + // TODO use i18n and string bundle like JavaStructureViewBundle + return new ActionPresentationData("Hide Intertype Declarations", null, JastAddIcons.INTERTYPE_DECL); + } + + @Override + @NotNull + public String getName() { + return ID; + } + + @Override + public boolean isReverted() { + return false; + } +} diff --git a/src/main/java/org/jastadd/tooling/aspect/JastAddAspectRewriteFilter.java b/src/main/java/org/jastadd/tooling/aspect/JastAddAspectRewriteFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..bd82e1ae3206078d3128bbb48658a482ce03877b --- /dev/null +++ b/src/main/java/org/jastadd/tooling/aspect/JastAddAspectRewriteFilter.java @@ -0,0 +1,44 @@ +package org.jastadd.tooling.aspect; + +import com.intellij.ide.util.treeView.smartTree.ActionPresentation; +import com.intellij.ide.util.treeView.smartTree.ActionPresentationData; +import com.intellij.ide.util.treeView.smartTree.Filter; +import com.intellij.ide.util.treeView.smartTree.TreeElement; +import org.jastadd.tooling.aspect.psi.JastAddAspectAspectRewrite; +import org.jastadd.tooling.aspect.psi.JastAddAspectAttribute; +import org.jastadd.tooling.util.JastAddIcons; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; + +public class JastAddAspectRewriteFilter implements Filter { + @NonNls + public static final String ID = "HIDE_REWRITES"; + + @Override + public boolean isVisible(TreeElement treeNode) { + if (treeNode instanceof AspectStructureViewElement) { + return !(((AspectStructureViewElement) treeNode).getValue() instanceof JastAddAspectAspectRewrite); + } + else { + return true; + } + } + + @Override + @NotNull + public ActionPresentation getPresentation() { + // TODO use i18n and string bundle like JavaStructureViewBundle + return new ActionPresentationData("Hide Rewrites", null, JastAddIcons.REWRITE); + } + + @Override + @NotNull + public String getName() { + return ID; + } + + @Override + public boolean isReverted() { + return false; + } +}