Example usage for org.eclipse.jdt.core IPackageFragmentRoot createPackageFragment

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot createPackageFragment

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot createPackageFragment.

Prototype

IPackageFragment createPackageFragment(String name, boolean force, IProgressMonitor monitor)
        throws JavaModelException;

Source Link

Document

Creates and returns a package fragment in this root with the given dot-separated package name.

Usage

From source file:com.google.gdt.eclipse.designer.wizards.model.common.AbstractCreateOperation.java

License:Open Source License

/**
 * Creates sub package with given name in target {@link IPackageFragment}.
 *///from w  w  w  .j a  v  a 2s .c  o  m
protected IPackageFragment getPackage(IPackageFragmentRoot root, String packageName) throws JavaModelException {
    IPackageFragment packageFragment = root.getPackageFragment(packageName);
    if (!packageFragment.exists()) {
        packageFragment = root.createPackageFragment(packageName, false, new NullProgressMonitor());
    }
    return packageFragment;
}

From source file:com.google.gdt.eclipse.designer.wizards.model.service.CreateServiceOperation.java

License:Open Source License

public void create(IPackageFragment packageFragment, String serviceName) throws Exception {
    // prepare packages names
    String servicePackageName = packageFragment.getElementName();
    String serverPackageName = getServerPackageName(packageFragment);
    // prepare variables
    Map<String, String> variables = new HashMap<String, String>();
    variables.put("servicePackage", servicePackageName);
    variables.put("serviceName", serviceName);
    // client/*www .ja  v  a  2  s.c  o m*/
    {
        // create RemoteService interface, "async" interface will be done by builder
        createFileFromTemplate(packageFragment, serviceName + ".java", "RemoteService.Service.java", variables);
        // open RemoteService in editor
        {
            String qualifiedServiceName = packageFragment.getElementName() + "." + serviceName;
            IType type = WorkspaceUtils.waitForType(packageFragment.getJavaProject(), qualifiedServiceName);
            JavaUI.openInEditor(type);
        }
    }
    // server: create implementation stub
    {
        // prepare server package
        IPackageFragment serverPackage;
        {
            IPackageFragmentRoot packageFragmentRoot = CodeUtils.getPackageFragmentRoot(packageFragment);
            serverPackage = packageFragmentRoot.createPackageFragment(serverPackageName, false, null);
        }
        // create implementation stub
        variables.put("serverPackage", serverPackageName);
        createFileFromTemplate(serverPackage, serviceName + "Impl.java", "RemoteService.ServiceImpl.java",
                variables);
    }
    // declare servlet
    addServlet_intoWebXML(packageFragment, serviceName, serverPackageName);
}

From source file:com.google.gdt.eclipse.designer.wizards.ui.JUnitWizardPage.java

License:Open Source License

private IPackageFragment handleTestPackage(IJavaElement element, IPackageFragmentRoot testSourceFragmentRoot)
        throws Exception {
    IPackageFragment testPackage = null;
    IPackageFragment elementPackage = (IPackageFragment) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
    if (elementPackage != null) {
        testPackage = testSourceFragmentRoot.getPackageFragment(elementPackage.getElementName());
        if (testPackage == null || !testPackage.exists()) {
            testPackage = testSourceFragmentRoot.createPackageFragment(elementPackage.getElementName(), true,
                    null);//w w  w .  j a v  a2s  .c  o  m
        }
    }
    //
    setPackageFragment(testPackage, true);
    return elementPackage;
}

From source file:com.google.gwt.eclipse.core.wizards.NewModuleWizard.java

License:Open Source License

@Override
public boolean performFinish() {

    IPackageFragmentRoot root = newModuleWizardPage.getPackageFragmentRoot();
    String packName = newModuleWizardPage.getModulePackageName();

    try {/*from w  ww .java 2  s.c  o  m*/

        IPackageFragment createdPackageFragment = root.createPackageFragment(packName, false,
                new NullProgressMonitor());

        if (newModuleWizardPage.shouldCreateClientPackage()) {

            String clientPackName = null;

            if (packName == null || packName.length() == 0) {
                clientPackName = "client";
            } else {
                clientPackName = packName + ".client";
            }

            root.createPackageFragment(clientPackName, false, new NullProgressMonitor());
        }

        if (newModuleWizardPage.shouldCreatePublicPath()) {
            IFolder folder = (IFolder) createdPackageFragment.getCorrespondingResource();
            IFolder publicFolder = folder.getFolder("public");
            if (!publicFolder.exists()) {
                publicFolder.create(false, true, new NullProgressMonitor());
            }
        }

    } catch (Exception e) {
        MessageDialog.openError(getContainer().getShell(),
                "An error occurred while attempting to create a new GWT Module",
                NLS.bind(IDEWorkbenchMessages.WizardNewFileCreationPage_internalErrorMessage, e));

        GWTPluginLog.logError(e,
                "Unable to create new GWT Module with source folder: {0}, name: {1}, package: {2}, createClientPackage: {4}, createPublicPath: {5}",
                newModuleWizardPage.getPackageFragmentRootText(), newModuleWizardPage.getModuleName(),
                newModuleWizardPage.shouldCreateClientPackage(), newModuleWizardPage.shouldCreatePublicPath());

        return false;
    }

    // TODO: The actions of creating the client package and the public folder
    // are not undoable, even though the file creation is (since it delegates
    // to super.performFinish(), which uses an undoable file operation to create
    // the file). We should make the creation of the client package and public
    // path part of the same undoable operation.
    return super.performFinish();
}

From source file:com.gwtplatform.plugin.projectfile.Settings.java

License:Apache License

public Settings(IPackageFragmentRoot root, String packageName, String elementName) throws CoreException {
    IContainer container = (IContainer) root
            .createPackageFragment(packageName, false, new NullProgressMonitor()).getResource();

    file = container.getFile(new Path(elementName + ".prefs"));
}

From source file:com.gwtplatform.plugin.projectfile.src.client.core.Ui.java

License:Apache License

public Ui(IPackageFragmentRoot root, String packageName, String elementName) throws CoreException {
    IContainer container = (IContainer) root
            .createPackageFragment(packageName, false, new NullProgressMonitor()).getResource();

    file = container.getFile(new Path(elementName + ".ui.xml"));
}

From source file:com.gwtplatform.plugin.projectfile.src.GwtXmlModule.java

License:Apache License

public GwtXmlModule(IPackageFragmentRoot root, String packageName, String elementName) throws CoreException {
    this.root = root;
    IContainer container = (IContainer) root.createPackageFragment(packageName, false, null).getResource();

    file = container.getFile(new Path(elementName + ".gwt.xml"));
}

From source file:com.gwtplatform.plugin.wizard.NewProjectWizard.java

License:Apache License

@SuppressWarnings({ "rawtypes", "unchecked" })
protected boolean finish(IProgressMonitor desiredMonitor) {
    IProgressMonitor monitor = desiredMonitor;
    if (monitor == null) {
        monitor = new NullProgressMonitor();
    }//  ww w.jav  a 2 s .  c om

    try {
        if (GWTPreferences.getDefaultRuntime().getVersion().isEmpty()) {
            IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, "No default GWT SDK.");

            ErrorDialog.openError(getShell(), null, null, status);

            return false;
        }

        monitor.beginTask("GWT-Platform project creation", 4);

        // Project base creation
        monitor.subTask("Base project creation");
        formattedName = projectNameToClassName(page.getProjectName(), page.isRemoveEnabled());
        IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(page.getProjectName());

        // Project location
        URI location = null;
        String workspace = ResourcesPlugin.getWorkspace().getRoot().getLocationURI().toString() + "/";
        if (page.getProjectLocation() != null && !workspace.equals(page.getProjectLocation().toString())) {
            location = page.getProjectLocation();
        }
        IProjectDescription description = project.getWorkspace().newProjectDescription(project.getName());
        description.setLocationURI(location);

        // Project natures and builders
        ICommand javaBuilder = description.newCommand();
        javaBuilder.setBuilderName(JavaCore.BUILDER_ID);

        ICommand webAppBuilder = description.newCommand();
        webAppBuilder.setBuilderName(WebAppProjectValidator.BUILDER_ID);

        ICommand gwtBuilder = description.newCommand();
        // TODO use the BUILDER_UI field
        gwtBuilder.setBuilderName("com.google.gwt.eclipse.core.gwtProjectValidator");

        if (page.useGAE()) {
            ICommand gaeBuilder = description.newCommand();
            gaeBuilder.setBuilderName(GaeProjectValidator.BUILDER_ID);

            // TODO use the BUILDER_UI field
            ICommand enhancer = description.newCommand();
            // TODO use the BUILDER_UI field
            enhancer.setBuilderName("com.google.appengine.eclipse.core.enhancerbuilder");

            description.setBuildSpec(
                    new ICommand[] { javaBuilder, webAppBuilder, gwtBuilder, gaeBuilder, enhancer });
            description.setNatureIds(
                    new String[] { JavaCore.NATURE_ID, GWTNature.NATURE_ID, GaeNature.NATURE_ID });
        } else {
            description.setBuildSpec(new ICommand[] { javaBuilder, webAppBuilder, gwtBuilder });
            description.setNatureIds(new String[] { JavaCore.NATURE_ID, GWTNature.NATURE_ID });
        }

        project.create(description, monitor);
        if (!project.isOpen()) {
            project.open(monitor);
        }
        monitor.worked(1);

        // Java Project creation
        monitor.subTask("Classpath entries creation");
        IJavaProject javaProject = JavaCore.create(project);

        // war/WEB-INF/lib folder creation
        IPath warPath = new Path("war");
        project.getFolder(warPath).create(false, true, monitor);

        IPath webInfPath = warPath.append("WEB-INF");
        project.getFolder(webInfPath).create(false, true, monitor);

        IPath libPath = webInfPath.append("lib");
        project.getFolder(libPath).create(false, true, monitor);

        Thread.sleep(1000);

        Jar[] libs = VersionTool.getLibs(project, libPath);

        // Classpath Entries creation
        List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();

        // Default output location
        IPath outputPath = new Path("/" + page.getProjectName()).append(webInfPath).append("classes");
        javaProject.setOutputLocation(outputPath, monitor);

        // Source folder
        IPath srcPath = new Path("src");
        project.getFolder(srcPath).create(false, true, monitor);

        entries.add(JavaCore.newSourceEntry(javaProject.getPath().append("src")));

        // GWT SDK container
        IPath gwtContainer = GWTRuntimeContainer.CONTAINER_PATH;
        ClasspathContainerInitializer gwtInitializer = JavaCore
                .getClasspathContainerInitializer(gwtContainer.segment(0));
        gwtInitializer.initialize(gwtContainer, javaProject);
        entries.add(JavaCore.newContainerEntry(gwtContainer));

        // GAE SDK container
        if (page.useGAE()) {
            IPath gaeContainer = GaeSdkContainer.CONTAINER_PATH;
            ClasspathContainerInitializer gaeInitializer = JavaCore
                    .getClasspathContainerInitializer(gaeContainer.segment(0));
            gaeInitializer.initialize(gaeContainer, javaProject);
            entries.add(JavaCore.newContainerEntry(gaeContainer));
        }

        // JRE container
        entries.addAll(Arrays.asList(PreferenceConstants.getDefaultJRELibrary()));

        // GWTP libs
        for (Jar lib : libs) {
            entries.add(JavaCore.newLibraryEntry(lib.getFile().getFullPath(), null, null));
        }

        javaProject.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), monitor);
        monitor.worked(1);

        monitor.subTask("Default classes creation");
        IPackageFragmentRoot root = javaProject.findPackageFragmentRoot(javaProject.getPath().append("src"));

        // Create sources
        if (page.useGAE()) {
            Log4j log4j = new Log4j(project, srcPath);
            log4j.createFile();

            IPath metaInfPath = srcPath.append("META-INF");
            project.getFolder(metaInfPath).create(false, true, monitor);

            Jdoconfig jdoconfig = new Jdoconfig(project, metaInfPath);
            jdoconfig.createFile();
        }

        IPackageFragment projectPackage = root.createPackageFragment(page.getProjectPackage(), false, monitor);

        // Client package
        IPackageFragment clientPackage = root.createPackageFragment(projectPackage.getElementName() + ".client",
                false, monitor);

        // Place package
        IPackageFragment placePackage = root.createPackageFragment(clientPackage.getElementName() + ".place",
                false, monitor);

        PlaceAnnotation defaultPlace = new PlaceAnnotation(root, placePackage.getElementName(), "DefaultPlace",
                sourceWriterFactory);

        PlaceManager placeManager = new PlaceManager(root, placePackage.getElementName(), "ClientPlaceManager",
                sourceWriterFactory);
        IField defaultPlaceField = placeManager.createPlaceRequestField(defaultPlace.getType());
        placeManager.createConstructor(new IType[] { defaultPlace.getType() },
                new IField[] { defaultPlaceField });
        placeManager.createRevealDefaultPlaceMethod(defaultPlaceField);

        Tokens tokens = new Tokens(root, placePackage.getElementName(), "NameTokens", sourceWriterFactory);

        // Gin package
        IPackageFragment ginPackage = root.createPackageFragment(clientPackage.getElementName() + ".gin", false,
                monitor);

        PresenterModule presenterModule = new PresenterModule(root, ginPackage.getElementName(), "ClientModule",
                sourceWriterFactory);
        presenterModule.createConfigureMethod(placeManager.getType());

        Ginjector ginjector = new Ginjector(root, ginPackage.getElementName(), "ClientGinjector",
                presenterModule.getType(), sourceWriterFactory);
        ginjector.createDefaultGetterMethods();

        // Client package contents
        EntryPoint entryPoint = new EntryPoint(root, clientPackage.getElementName(), formattedName,
                sourceWriterFactory);
        entryPoint.createGinjectorField(ginjector.getType());
        entryPoint.createOnModuleLoadMethod();

        // Project package contents
        GwtXmlModule gwtXmlModule = new GwtXmlModule(root, projectPackage.getElementName(), formattedName);
        gwtXmlModule.createFile(entryPoint.getType(), ginjector.getType());

        // Server package
        IPackageFragment serverPackage = root.createPackageFragment(projectPackage.getElementName() + ".server",
                false, monitor);

        // Guice package
        IPackageFragment guicePackage = root.createPackageFragment(serverPackage.getElementName() + ".guice",
                false, monitor);

        String gwtVersion = GWTPreferences.getDefaultRuntime().getVersion();

        ServletModule servletModule = new ServletModule(root, guicePackage.getElementName(),
                "DispatchServletModule", sourceWriterFactory);
        servletModule.createConfigureServletsMethod(gwtVersion);

        GuiceHandlerModule handlerModule = new GuiceHandlerModule(root, guicePackage.getElementName(),
                "ServerModule", sourceWriterFactory);
        handlerModule.createConfigureHandlersMethod();

        GuiceServletContextListener guiceServletContextListener = new GuiceServletContextListener(root,
                guicePackage.getElementName(), "GuiceServletConfig", sourceWriterFactory);
        guiceServletContextListener.createInjectorGetterMethod(handlerModule.getType(),
                servletModule.getType());

        // Shared package
        root.createPackageFragment(projectPackage.getElementName() + ".shared", false, monitor);

        // Basic sample creation
        if (page.isSample()) {
            BasicSampleBuilder sampleBuilder = new BasicSampleBuilder(root, projectPackage,
                    sourceWriterFactory);
            sampleBuilder.createSample(ginjector, presenterModule, tokens, defaultPlace, handlerModule);
        }

        // Commit
        presenterModule.commit();
        ginjector.commit();
        defaultPlace.commit();
        placeManager.commit();
        tokens.commit();
        entryPoint.commit();

        servletModule.commit();
        handlerModule.commit();
        guiceServletContextListener.commit();

        // war contents
        ProjectHTML projectHTML = new ProjectHTML(project, warPath, project.getName());
        projectHTML.createFile();

        ProjectCSS projectCSS = new ProjectCSS(project, warPath, project.getName());
        projectCSS.createFile();

        // war/WEB-INF contents
        WebXml webXml = new WebXml(project, webInfPath);
        webXml.createFile(projectHTML.getFile(), guiceServletContextListener.getType());

        if (page.useGAE()) {
            AppengineWebXml appengineWebXml = new AppengineWebXml(project, webInfPath);
            appengineWebXml.createFile();

            Logging logging = new Logging(project, webInfPath);
            logging.createFile();
        }
        monitor.worked(1);

        // Launch Config
        monitor.subTask("Launch config creation");

        ILaunchConfigurationWorkingCopy launchConfig = WebAppLaunchUtil.createLaunchConfigWorkingCopy(
                project.getName(), project, WebAppLaunchUtil.determineStartupURL(project, false), false);
        ILaunchGroup[] groups = DebugUITools.getLaunchGroups();

        ArrayList groupsNames = new ArrayList();
        for (ILaunchGroup group : groups) {
            if ((!("org.eclipse.debug.ui.launchGroup.debug".equals(group.getIdentifier())))
                    && (!("org.eclipse.debug.ui.launchGroup.run".equals(group.getIdentifier())))) {
                continue;
            }
            groupsNames.add(group.getIdentifier());
        }

        launchConfig.setAttribute("org.eclipse.debug.ui.favoriteGroups", groupsNames);
        launchConfig.doSave();

        project.getProject().setPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, "nametokens"),
                tokens.getType().getFullyQualifiedName());
        project.getProject().setPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, "ginjector"),
                ginjector.getType().getFullyQualifiedName());
        project.getProject().setPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, "presentermodule"),
                presenterModule.getType().getFullyQualifiedName());
        project.getProject().setPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, "handlermodule"),
                handlerModule.getType().getFullyQualifiedName());
        project.getProject().setPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, "action"),
                "com.gwtplatform.dispatch.shared.ActionImpl");

        // Remove bin folder
        IFolder binFolder = project.getFolder(new Path("/bin"));
        if (binFolder.exists()) {
            binFolder.delete(true, monitor);
        }

        monitor.worked(1);
    } catch (Exception e) {
        IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID,
                "An unexpected error has happened. Close the wizard and retry.", e);

        ErrorDialog.openError(getShell(), null, null, status);

        return false;
    }

    monitor.done();
    return true;
}

From source file:com.hudson.hibernatesynchronizer.popup.actions.TemplateGeneration.java

License:GNU General Public License

/**
 * @see IActionDelegate#run(IAction)//  w  ww.  ja v  a2s . com
 */
public void run(IAction action) {

    try {
        List templates = TemplateManager.getInstance().getTemplates();
        Shell shell = new Shell();
        if (templates.size() == 0) {
            MessageDialog.openError(shell, "Template Generation Error",
                    "You must define templates before you can use this function.\n(Window >> Preferences >> Hibernate Templates)");
            return;
        }
        ISelectionProvider provider = part.getSite().getSelectionProvider();
        if (null != provider) {
            if (provider.getSelection() instanceof StructuredSelection) {
                StructuredSelection selection = (StructuredSelection) provider.getSelection();
                Object[] obj = selection.toArray();
                IFile[] files = new IFile[obj.length];
                IProject singleProject = null;
                boolean isSingleProject = true;
                for (int i = 0; i < obj.length; i++) {
                    if (obj[i] instanceof IFile) {
                        IFile file = (IFile) obj[i];
                        files[i] = file;
                        if (null == singleProject)
                            singleProject = file.getProject();
                        if (!singleProject.getName().equals(file.getProject().getName())) {
                            isSingleProject = false;
                        }
                    }
                }
                TemplateGenerationParameter param = new TemplateGenerationParameter();
                TemplateGenerationDialog dialog = new TemplateGenerationDialog(shell,
                        JavaCore.create(singleProject), templates, param);
                int rtn = dialog.open();
                if (rtn == Dialog.OK) {
                    IJavaProject javaProject = JavaCore.create(singleProject);
                    Template template = param.template;
                    if (template.isJavaClass()) {
                        String packageName = param.container;
                        String className = param.fileName;
                        IPackageFragmentRoot root = HSUtil.getProjectRoot(javaProject);
                        if (null != root) {
                            IPackageFragment fragment = root.getPackageFragment(packageName);
                            className = className + Constants.EXT_JAVA;
                            if (null != fragment) {
                                if (!fragment.exists()) {
                                    fragment = root.createPackageFragment(packageName, false, null);
                                }
                                ICompilationUnit unit = fragment.getCompilationUnit(className);
                                Context context = getDefaultContext(selection, javaProject);
                                if (null != context) {
                                    StringWriter sw = new StringWriter();
                                    Constants.customGenerator.evaluate(context, sw, Velocity.class.getName(),
                                            template.getContent());
                                    unit = fragment.createCompilationUnit(className, sw.toString(), true, null);
                                    if (unit.getResource() instanceof IFile)
                                        EditorUtil.openPage((IFile) unit.getResource());
                                }
                            }
                        }
                    } else {
                        String path = param.container + "/" + param.fileName;
                        IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(path));
                        Context context = getDefaultContext(selection, javaProject);
                        if (null != context) {
                            StringWriter sw = new StringWriter();
                            Constants.customGenerator.evaluate(context, sw, Velocity.class.getName(),
                                    template.getContent());
                            if (!file.exists()) {
                                file.create(new ByteArrayInputStream(sw.toString().getBytes()), true, null);
                            } else {
                                file.delete(true, null);
                                file.create(new ByteArrayInputStream(sw.toString().getBytes()), true, null);
                            }
                            EditorUtil.openPage(file);
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        HSUtil.showError(e.getMessage(), new Shell());
    }
}

From source file:com.hudson.hibernatesynchronizer.util.SynchronizerThread.java

License:GNU General Public License

private static void writeExtensionClass(String templateName, String constructorTemplateName, Context context,
        IPackageFragmentRoot fragmentRoot, String packageName, String className) throws JavaModelException {
    IPackageFragment fragment = fragmentRoot.getPackageFragment(packageName);
    className = className + ".java";
    try {//from   w  w  w  .j  av  a 2 s.  c o m
        if (null != fragment) {
            if (!fragment.exists()) {
                fragment = fragmentRoot.createPackageFragment(packageName, false, null);
            }
            ICompilationUnit unit = fragment.getCompilationUnit(className);
            if (unit.exists()) {
                String content = unit.getSource();
                MarkerContents mc = HSUtil.getMarkerContents(content, "CONSTRUCTOR MARKER");
                if (null != mc) {
                    try {
                        Template template = Constants.templateGenerator.getTemplate(constructorTemplateName);
                        StringWriter sw = new StringWriter();
                        template.merge(context, sw);
                        if (null != mc.getContents() && mc.getContents().trim().equals(sw.toString().trim()))
                            return;
                        content = mc.getPreviousContents() + sw.toString() + mc.getPostContents();
                        unit = fragment.createCompilationUnit(className, content, true, null);
                    } catch (JavaModelException e) {
                    }
                }
            } else {
                try {
                    Template template = Constants.templateGenerator.getTemplate(constructorTemplateName);
                    StringWriter sw = new StringWriter();
                    template.merge(context, sw);
                    VelocityContext subContext = new VelocityContext(context);
                    subContext.put("constructors", sw.toString());
                    template = Constants.templateGenerator.getTemplate(templateName);
                    sw = new StringWriter();
                    template.merge(subContext, sw);
                    unit = fragment.createCompilationUnit(className, sw.toString(), true, null);
                } catch (JavaModelException e) {
                }
            }
        }
    } catch (Exception e) {
        if (e instanceof JavaModelException)
            throw (JavaModelException) e;
        else
            MessageDialog.openWarning(null, "An error has occured: " + e.getClass(), e.getMessage());
    }
}