Example usage for org.eclipse.jdt.core IPackageFragment getUnderlyingResource

List of usage examples for org.eclipse.jdt.core IPackageFragment getUnderlyingResource

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragment getUnderlyingResource.

Prototype

IResource getUnderlyingResource() throws JavaModelException;

Source Link

Document

Returns the smallest underlying resource that contains this element, or null if this element is not contained in a resource.

Usage

From source file:com.google.gdt.eclipse.designer.util.DefaultModuleProvider.java

License:Open Source License

/**
 * @return the module files to which belongs given {@link IResource}, may be <code>null</code> if
 *         no module found. Climbs up by {@link IPackageFragment}'s hierarchy, good for (Case
 *         33265), i.e. Maven-like source folder structure.
 *///from   w w w  .  j  ava 2  s . co m
private static List<IFile> getModuleFiles_java(IResource resource) throws Exception {
    IProject project = resource.getProject();
    IJavaProject javaProject = JavaCore.create(project);
    // prepare package name
    String packageName;
    {
        // prepare folder
        IFolder folder;
        if (resource instanceof IFolder) {
            folder = (IFolder) resource;
        } else if (resource.getParent() instanceof IFolder) {
            folder = (IFolder) resource.getParent();
        } else {
            return ImmutableList.of();
        }
        // prepare package fragment
        IJavaElement javaElement = JavaCore.create(folder);
        if (javaElement instanceof IPackageFragment) {
            IPackageFragment pkgFragment = (IPackageFragment) javaElement;
            packageName = pkgFragment.getElementName();
        } else {
            return ImmutableList.of();
        }
    }
    // prepare source folders
    List<IPackageFragmentRoot> sourceFolders = Lists.newArrayList();
    for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) {
        if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            sourceFolders.add(packageFragmentRoot);
        }
    }
    // search in this package and packages above
    for (; packageName.length() != 0; packageName = CodeUtils.getPackage(packageName)) {
        for (IPackageFragmentRoot packageFragmentRoot : sourceFolders) {
            IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName);
            if (packageFragment.exists()) {
                IResource underlyingResource = packageFragment.getUnderlyingResource();
                if (underlyingResource instanceof IFolder) {
                    IFolder folder = (IFolder) underlyingResource;
                    List<IFile> moduleFiles = getModuleFiles(folder, false);
                    if (!moduleFiles.isEmpty()) {
                        return moduleFiles;
                    }
                }
            }
        }
    }
    // no modules
    return ImmutableList.of();
}

From source file:com.google.gdt.eclipse.designer.util.Utils.java

License:Open Source License

/**
 * @return the {@link ModuleDescription} to which belongs given {@link IPackageFragment}.
 *///  w  w w. j a  v a  2  s . c om
public static ModuleDescription getSingleModule(IPackageFragment pkg) throws Exception {
    IResource packageResource = pkg.getUnderlyingResource();
    return getSingleModule(packageResource);
}

From source file:com.google.gdt.eclipse.designer.wizards.model.library.CreateLibraryOperation.java

License:Open Source License

public void create(String basePackageName, String moduleName, boolean createHTML, boolean createServerPackage)
        throws Exception {
    // create packages
    IPackageFragment basePackage = getPackage(m_root, basePackageName);
    getPackage(m_root, basePackageName + ".client");
    if (createServerPackage) {
        getPackage(m_root, basePackageName + ".server");
    }/*w w  w.j  ava 2  s .c  om*/
    // create folders
    IFolder baseFolder = (IFolder) basePackage.getUnderlyingResource();
    IFolder publicFolder = baseFolder.getFolder("public");
    publicFolder.create(false, true, new NullProgressMonitor());
    // create module
    IFile moduleFile;
    {
        // prepare variables
        Map<String, String> variables = new HashMap<String, String>();
        variables.put("basePackage", basePackageName);
        variables.put("className", moduleName);
        // create files from templates
        moduleFile = createFileFromTemplate(basePackage, moduleName + ".gwt.xml", "Library.gwt.xml", variables);
        if (createHTML) {
            createFileFromTemplate(publicFolder, moduleName + ".html", "Library.html", variables);
        }
        createFileFromTemplate(publicFolder, moduleName + ".css", "Library.css", variables);
        copyTemplateFiles(publicFolder, "images");
    }
    // open *.gwt.xml file in editor
    IDE.openEditor(DesignerPlugin.getActivePage(), moduleFile);
}

From source file:com.iw.plugins.spindle.ui.wizards.factories.LibraryFactory.java

License:Mozilla Public License

/**
 * Method createLibrary.// w  ww.  ja  v a2 s . c om
 * 
 * @param root
 * @param pack
 * @param appname
 * @param monitor
 * @return IFile
 */
public static IFile createLibrary(IPackageFragmentRoot root, IPackageFragment pack, String libraryName,
        IProgressMonitor monitor) throws CoreException, InterruptedException {

    monitor.beginTask(UIPlugin.getString("ApplicationFactory.operationdesc", libraryName), 10);
    if (pack == null) {
        pack = root.getPackageFragment("");
    }
    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, null);
        pack.save(new SubProgressMonitor(monitor, 1), true);
    }
    monitor.worked(1);
    IContainer folder = (IContainer) pack.getUnderlyingResource();
    IFile file = folder.getFile(new Path(libraryName + ".library"));

    InputStream contents = new ByteArrayInputStream(getLibraryContent().getBytes());
    file.create(contents, false, new SubProgressMonitor(monitor, 1));
    monitor.worked(1);
    monitor.done();
    return file;
}

From source file:com.iw.plugins.spindle.ui.wizards.fields.PackageDialogField.java

License:Mozilla Public License

public IStatus packageChanged() {
    SpindleStatus status = new SpindleStatus();
    checkButtonEnabled();//from  w  w w  .j  a va 2s .c  o m
    String packName = getTextValue();
    if (!"".equals(packName)) {
        IStatus val = JavaConventions.validatePackageName(packName);
        if (val.getSeverity() == IStatus.ERROR) {
            status.setError(UIPlugin.getString(name + ".error.InvalidPackageName", val.getMessage()));
            return status;
        } else if (val.getSeverity() == IStatus.WARNING) {
            status.setWarning(UIPlugin.getString(name + ".warning.DiscouragedPackageName", val.getMessage()));
            // continue
        }
    } else {

        status.setError(UIPlugin.getString(name + ".error.defaultPackage"));
        return status;
    }

    IPackageFragmentRoot root;
    if (container == null) {
        root = null;
    } else {
        root = container.getPackageFragmentRoot();
    }
    if (root != null) {
        IPackageFragment pack = root.getPackageFragment(packName);
        try {
            if (fSourcePackagesOnly && root.getKind() == IPackageFragmentRoot.K_BINARY) {
                status.setError(UIPlugin.getString(name + ".error.PackageMustBeSource"));
                return status;
            }

            IPath rootPath = root.getPath();
            IPath outputPath = root.getJavaProject().getOutputLocation();
            if (rootPath.isPrefixOf(outputPath) && !rootPath.equals(outputPath)) {
                // if the bin folder is inside of our root, dont allow to name a
                // package
                // like the bin folder
                IPath packagePath = pack.getUnderlyingResource().getFullPath();
                if (outputPath.isPrefixOf(packagePath)) {
                    status.setError(UIPlugin.getString(name + ".error.ClashOutputLocation"));
                    return status;
                }
            }
        } catch (JavaModelException e) {
            UIPlugin.log(e);
            // let pass
        }

        currentPackage = pack;
        if (currentPackage != null && nameField != null) {
            try {
                IContainer folder = (IContainer) getPackageFragment().getUnderlyingResource();

                boolean isComponent = nameField.getKind() == AbstractNameField.COMPONENT_NAME;
                IFile file = folder
                        .getFile(new Path(nameField.getTextValue() + (isComponent ? ".jwc" : ".page")));
                if (file.exists()) {

                    status.setError(UIPlugin.getString(name + ".error.ComponentAlreadyExists",
                            file.getFullPath().toString()));
                    return status;
                }
            } catch (JavaModelException e) {
                UIPlugin.log(e);
            }
        }
    } else {
        status.setError("");
    }
    return status;
}

From source file:com.iw.plugins.spindle.ui.wizards.NewTapComponentWizardPage.java

License:Mozilla Public License

private IFile findResource(String fileName, INamespace namespace, boolean forTemplate) {
    IFile result = null;/* w w  w  .j a  v a 2 s.c o  m*/

    if (!fShowingAdvanced)
        return fDefaultLocation.getResultFolder().getFile(fileName);

    if (namespace.isApplicationNamespace() && !((CoreNamespace) namespace).isOnClassPath()) {
        if (forTemplate) {
            result = result = fApplicationLocationField.getTemplateLocation().getFile(fileName);
        } else {
            result = fApplicationLocationField.getSpecLocation().getFile(fileName);
        }
    } else {
        try {
            IPackageFragment fragment = fLibraryPackageField.getPackageFragment();
            IFolder folder = (IFolder) fragment.getUnderlyingResource();
            result = folder.getFile(fileName);
        } catch (JavaModelException e) {
            UIPlugin.log(e);
        }
    }
    return result;
}

From source file:com.iw.plugins.spindle.util.lookup.TapestryLookup.java

License:Mozilla Public License

/**
 * Method getPackageResources.// ww w  .j  a v  a2  s.  com
 * @param pkg
 * @return Object[]
 */
private Object[] getSourcePackageResources(IPackageFragment pkg) throws CoreException {

    Object[] result = new Object[0];

    if (!pkg.isDefaultPackage()) {

        result = pkg.getNonJavaResources();

    } else {

        IContainer container = (IContainer) pkg.getUnderlyingResource();

        if (container != null) {

            IResource[] members = container.members(false);

            ArrayList resultList = new ArrayList();

            for (int i = 0; i < members.length; i++) {

                if (members[i] instanceof IFile) {

                    resultList.add(members[i]);

                }

                result = resultList.toArray();

            }
        }

    }
    return result;
}

From source file:com.iw.plugins.spindle.wizards.factories.ApplicationFactory.java

License:Mozilla Public License

static public IFile createApplication(IPackageFragmentRoot root, IPackageFragment pack, String appname,
        String qualifiedEngineClassname, IProgressMonitor monitor) throws CoreException, InterruptedException {

    monitor.beginTask(MessageUtil.getFormattedString("ApplicationFactory.operationdesc", appname), 10);
    if (pack == null) {
        pack = root.getPackageFragment("");
    }// www .  j av a  2 s  .  c om
    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, null);
        pack.save(new SubProgressMonitor(monitor, 1), true);
    }
    monitor.worked(1);
    IContainer folder = (IContainer) pack.getUnderlyingResource();
    IFile file = folder.getFile(new Path(appname + ".application"));

    InputStream contents = new ByteArrayInputStream(
            getApplicationContent(appname, qualifiedEngineClassname, pack.getElementName()).getBytes());
    file.create(contents, false, new SubProgressMonitor(monitor, 1));
    monitor.worked(1);
    monitor.done();
    return file;
}

From source file:com.iw.plugins.spindle.wizards.factories.ComponentFactory.java

License:Mozilla Public License

public static IFile createComponent(IPackageFragmentRoot root, IPackageFragment pack, String componentName,
        IType specClass, IProgressMonitor monitor) throws CoreException, InterruptedException {

    monitor.beginTask(MessageUtil.getFormattedString("ApplicationFactory.operationdesc", componentName), 10);
    if (pack == null) {
        pack = root.getPackageFragment("");
    }//  w  w w .  j a  v a2s  .  c  o m
    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, null);
        pack.save(new SubProgressMonitor(monitor, 1), true);
    }
    monitor.worked(1);
    IContainer folder = (IContainer) pack.getUnderlyingResource();
    IFile file = folder.getFile(new Path(componentName + ".jwc"));

    String qualifiedSpecClassname = specClass.getFullyQualifiedName();
    InputStream contents = new ByteArrayInputStream(getComponentContent(qualifiedSpecClassname).getBytes());
    file.create(contents, false, new SubProgressMonitor(monitor, 1));
    monitor.worked(1);
    monitor.done();
    return file;
}

From source file:com.iw.plugins.spindle.wizards.factories.LibraryFactory.java

License:Mozilla Public License

/**
 * Method createLibrary./*from w w  w.  jav a  2 s  . co m*/
 * @param root
 * @param pack
 * @param appname
 * @param monitor
 * @return IFile
 */
public static IFile createLibrary(IPackageFragmentRoot root, IPackageFragment pack, String libraryName,
        IProgressMonitor monitor) throws CoreException, InterruptedException {

    monitor.beginTask(MessageUtil.getFormattedString("ApplicationFactory.operationdesc", libraryName), 10);
    if (pack == null) {
        pack = root.getPackageFragment("");
    }
    if (!pack.exists()) {
        String packName = pack.getElementName();
        pack = root.createPackageFragment(packName, true, null);
        pack.save(new SubProgressMonitor(monitor, 1), true);
    }
    monitor.worked(1);
    IContainer folder = (IContainer) pack.getUnderlyingResource();
    IFile file = folder.getFile(new Path(libraryName + ".library"));

    InputStream contents = new ByteArrayInputStream(getLibraryContent().getBytes());
    file.create(contents, false, new SubProgressMonitor(monitor, 1));
    monitor.worked(1);
    monitor.done();
    return file;
}