Package com.dubture.composer.ui.explorer

Source Code of com.dubture.composer.ui.explorer.PackageTreeContentProvider

package com.dubture.composer.ui.explorer;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.dltk.core.IBuildpathEntry;
import org.eclipse.dltk.core.IProjectFragment;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.ModelException;
import org.eclipse.dltk.internal.core.ExternalProjectFragment;
import org.eclipse.dltk.internal.ui.navigator.ScriptExplorerContentProvider;

import com.dubture.composer.core.ComposerNature;
import com.dubture.composer.core.ComposerPlugin;
import com.dubture.composer.core.log.Logger;
import com.dubture.composer.core.model.PackagePath;

@SuppressWarnings("restriction")
public class PackageTreeContentProvider extends ScriptExplorerContentProvider {
  public PackageTreeContentProvider() {
    super(true);
  }

  @Override
  public Object[] getChildren(Object parentElement) {
    if (ComposerPlugin.getDefault().isBuildpathContainerEnabled() == false) {
      return null;
    }

    if (parentElement instanceof PackagePath) {

      PackagePath pPath = (PackagePath) parentElement;
      IScriptProject scriptProject = pPath.getProject();
      IBuildpathEntry entry = pPath.getEntry();

      try {

        IProjectFragment[] allProjectFragments;
        allProjectFragments = scriptProject.getAllProjectFragments();
        for (IProjectFragment fragment : allProjectFragments) {
          if (fragment instanceof ExternalProjectFragment) {
            ExternalProjectFragment external = (ExternalProjectFragment) fragment;
            if (external.getBuildpathEntry().equals(entry)) {
              return super.getChildren(external);
            }
          }
        }
      } catch (ModelException e) {
        Logger.logException(e);
      }
    } else if (parentElement instanceof ComposerBuildpathContainer) {
      ComposerBuildpathContainer container = (ComposerBuildpathContainer) parentElement;

      IAdaptable[] children = container.getChildren();

      if (children == null || children.length == 0) {
        return NO_CHILDREN;
      }

      return children;
    } else if (parentElement instanceof IScriptProject) {
      try {
        IProject project = ((IScriptProject) parentElement)
            .getProject();
        if (project.hasNature(ComposerNature.NATURE_ID)) {
          return new Object[] { new ComposerBuildpathContainer(
              (IScriptProject) parentElement) };
        }
      } catch (Exception e) {
        Logger.logException(e);
      }
    }
    return null;
  }
}
TOP

Related Classes of com.dubture.composer.ui.explorer.PackageTreeContentProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.