update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / ide / structureView / impl / java / KindSorter.java
blob3ce66e7271a54c047954d6f5585ef90f20af5f69
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.ide.structureView.impl.java;
18 import com.intellij.ide.util.treeView.smartTree.ActionPresentation;
19 import com.intellij.ide.util.treeView.smartTree.Sorter;
20 import com.intellij.psi.PsiMethod;
21 import org.jetbrains.annotations.NonNls;
22 import org.jetbrains.annotations.NotNull;
24 import java.util.Comparator;
26 public class KindSorter implements Sorter {
27 public static final Sorter INSTANCE = new KindSorter();
29 @NonNls public static final String ID = "KIND";
30 private static final Comparator COMPARATOR = new Comparator() {
31 public int compare(final Object o1, final Object o2) {
32 return getWeight(o1) - getWeight(o2);
35 private int getWeight(final Object value) {
36 if (value instanceof JavaClassTreeElement) {
37 return 10;
39 if (value instanceof ClassInitializerTreeElement) {
40 return 15;
42 if (value instanceof SuperTypeGroup) {
43 return 20;
45 if (value instanceof PsiMethodTreeElement) {
46 final PsiMethodTreeElement methodTreeElement = (PsiMethodTreeElement)value;
47 final PsiMethod method = methodTreeElement.getMethod();
49 return method.isConstructor() ? 30 : 35;
51 if (value instanceof PropertyGroup) {
52 return 40;
54 if (value instanceof PsiFieldTreeElement) {
55 return 50;
57 return 60;
61 public Comparator getComparator() {
62 return COMPARATOR;
65 public boolean isVisible() {
66 return false;
69 @NotNull
70 public ActionPresentation getPresentation() {
71 throw new IllegalStateException();
74 @NotNull
75 public String getName() {
76 return ID;