]> git.uio.no Git - ifi-stolz-refaktor.git/blob - case-study/jdt-before/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerProblemsDecorator.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-before / ui / org / eclipse / jdt / internal / ui / packageview / PackageExplorerProblemsDecorator.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2011 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package org.eclipse.jdt.internal.ui.packageview;
12
13 import org.eclipse.core.runtime.IAdaptable;
14
15 import org.eclipse.ui.IWorkingSet;
16
17 import org.eclipse.jdt.ui.JavaElementImageDescriptor;
18
19 import org.eclipse.jdt.internal.ui.viewsupport.TreeHierarchyLayoutProblemsDecorator;
20
21
22 public class PackageExplorerProblemsDecorator extends TreeHierarchyLayoutProblemsDecorator {
23
24         public PackageExplorerProblemsDecorator() {
25                 super();
26         }
27
28         public PackageExplorerProblemsDecorator(boolean isFlatLayout) {
29                 super(isFlatLayout);
30         }
31
32         @Override
33         protected int computeAdornmentFlags(Object obj) {
34                 if (!(obj instanceof IWorkingSet))
35                         return super.computeAdornmentFlags(obj);
36
37                 IWorkingSet workingSet= (IWorkingSet)obj;
38                 IAdaptable[] elements= workingSet.getElements();
39                 int result= 0;
40                 for (int i= 0; i < elements.length; i++) {
41                         IAdaptable element= elements[i];
42                         int flags= super.computeAdornmentFlags(element);
43                         if ((flags & JavaElementImageDescriptor.BUILDPATH_ERROR) != 0)
44                                 return JavaElementImageDescriptor.BUILDPATH_ERROR;
45                         result|= flags;
46                 }
47                 if ((result & JavaElementImageDescriptor.ERROR) != 0)
48                         return JavaElementImageDescriptor.ERROR;
49                 else if ((result & JavaElementImageDescriptor.WARNING) != 0)
50                         return JavaElementImageDescriptor.WARNING;
51                 return 0;
52         }
53 }