summaryrefslogtreecommitdiff
path: root/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java')
-rw-r--r--platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java
new file mode 100644
index 000000000000..9c36f0c5f867
--- /dev/null
+++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java
@@ -0,0 +1,42 @@
+/*
+ * 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.ide.util.treeView.smartTree;
+
+import com.intellij.ide.util.treeView.AbstractTreeNode;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Collection;
+
+/**
+ * Action for grouping items in a generic tree.
+ *
+ * @see com.intellij.ide.util.treeView.smartTree.TreeModel#getGroupers()
+ */
+
+public interface Grouper extends TreeAction {
+ Grouper[] EMPTY_ARRAY = new Grouper[0];
+
+ /**
+ * Returns the collection of groups into which the children of the specified parent node
+ * are grouped.
+ *
+ * @param parent the parent node.
+ * @param children the children of the parent node.
+ * @return the collection of groups
+ */
+ @NotNull
+ Collection<Group> group(@NotNull AbstractTreeNode parent, @NotNull Collection<TreeElement> children);
+}