/eclipse-plugin/plugins/com.google.test.metric.eclipse.ui/src/main/java/com/google/test/metric/eclipse/ui/internal/JavaPackageElementContentProvider.java
http://testability-explorer.googlecode.com/ · Java · 94 lines · 60 code · 13 blank · 21 comment · 8 complexity · a29fb7a5838c99ecf6d0a7e514abe8dd MD5 · raw file
- /*
- * Copyright 2009 Google Inc.
- *
- * 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.google.test.metric.eclipse.ui.internal;
- import com.google.test.metric.eclipse.internal.util.JavaProjectHelper;
- import com.google.test.metric.eclipse.internal.util.Logger;
- import org.eclipse.core.runtime.CoreException;
- import org.eclipse.jdt.core.IJavaElement;
- import org.eclipse.jdt.core.IJavaProject;
- import org.eclipse.jdt.core.IPackageFragment;
- import org.eclipse.jdt.core.IPackageFragmentRoot;
- import org.eclipse.jdt.core.IParent;
- import org.eclipse.jdt.core.JavaModelException;
- import org.eclipse.jface.viewers.ITreeContentProvider;
- import org.eclipse.jface.viewers.Viewer;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Provides the list of packages to be displayed in the whitelist selection dialog.
- *
- * @author shyamseshadri@google.com (Shyam Seshadri)
- */
- public class JavaPackageElementContentProvider implements ITreeContentProvider {
- private JavaProjectHelper javaProjectHelper;
- private final static Logger logger = new Logger();
- public JavaPackageElementContentProvider() {
- javaProjectHelper = new JavaProjectHelper();
- }
- public Object[] getChildren(Object element) {
- if (element instanceof IJavaProject) {
- try {
- return javaProjectHelper.getAllJavaPackageFragmentRoots((IJavaProject) element).toArray();
- } catch (JavaModelException e) {
- logger.logException(e);
- } catch (CoreException e) {
- logger.logException(e);
- }
- } else if (element instanceof IPackageFragmentRoot || element instanceof IPackageFragment) {
- try {
- List<IJavaElement> javaElements = new ArrayList<IJavaElement>();
- IJavaElement[] children = ((IParent) element).getChildren();
- for (IJavaElement javaElement : children) {
- if (javaElement instanceof IPackageFragment && !javaElement.getElementName().equals("")) {
- javaElements.add(javaElement);
- }
- }
- return javaElements.toArray();
- } catch (JavaModelException e) {
- logger.logException(e);
- }
- }
- return null;
- }
- public Object getParent(Object element) {
- if (element instanceof IJavaElement) {
- return ((IJavaElement) element).getParent();
- }
- return null;
- }
- public boolean hasChildren(Object element) {
- // TODO(shyamseshadri): Figure out a better, faster, more optimum way to do this.
- return getChildren(element).length > 0;
- }
- public Object[] getElements(Object inputElement) {
- return getChildren(inputElement);
- }
- public void dispose() {}
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
- }