Example usage for org.eclipse.jdt.core IJavaProject getProject

List of usage examples for org.eclipse.jdt.core IJavaProject getProject

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getProject.

Prototype

IProject getProject();

Source Link

Document

Returns the IProject on which this IJavaProject was created.

Usage

From source file:de.devboost.eclipse.jloop.LoopRunner.java

License:Open Source License

private Set<String> getRequiredProjects(IType type) {
    Set<String> requiredProjects;
    try {/*from  ww w .  j  a v a 2  s  .c o m*/
        IJavaProject javaProject = type.getJavaProject();
        List<String> projectNames = Arrays.asList(javaProject.getRequiredProjectNames());
        requiredProjects = new LinkedHashSet<String>(projectNames);
        requiredProjects.add(javaProject.getProject().getName());
    } catch (JavaModelException e) {
        JLoopPlugin.logError("Can't determine list of required projects.", e);
        return null;
    }
    return requiredProjects;
}

From source file:de.fxworld.generationgap.GapEclipseWorkflow.java

License:Open Source License

protected List<String> getSourceFolders(IProject project) {
    List<String> result = new ArrayList<String>();
    IJavaProject javaProject = JavaCore.create(project);
    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

    try {//w ww .ja  v a  2  s. c  o  m
        for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) {
            if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                IPath path = packageFragmentRoot.getPath();
                IFolder folder = root.getFolder(path);
                String location = folder.getLocation().toString();

                if (!location.contains("src-gen")) {
                    result.add(location);
                }
            }
        }

        for (IProject referencedProject : javaProject.getProject().getReferencedProjects()) {
            if (referencedProject.isAccessible() && referencedProject.hasNature(JavaCore.NATURE_ID)) {
                result.addAll(getSourceFolders(referencedProject));
            }
        }

    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    } catch (CoreException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return result;
}

From source file:de.fxworld.generationgap.ui.commands.AbstractProjectHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    Object result = null;/*  www  .  jav a  2s  . c o m*/
    ISelection selection = HandlerUtil.getCurrentSelection(event);

    final List<IProject> projects = new ArrayList<IProject>();

    if (selection instanceof IProject) {
        projects.add((IProject) selection);

    } else if (selection instanceof IStructuredSelection) {
        for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();) {
            Object element = it.next();

            if (element instanceof IProject) {
                projects.add((IProject) element);
            } else if (element instanceof IJavaProject) {
                IJavaProject javaProject = (IJavaProject) element;
                projects.add(javaProject.getProject());
            }
        }
    }

    Job job = new Job(jobName) {
        @Override
        protected IStatus run(IProgressMonitor monitor) {
            executeOnProjects(projects, monitor);
            return Status.OK_STATUS;
        }
    };
    job.setPriority(Job.SHORT);
    job.schedule(); // start as soon as possible

    return result;
}

From source file:de.fxworld.generationgap.ui.commands.AddBuilderHandler.java

License:Open Source License

@Override
protected void executeOnJavaProjects(List<IJavaProject> javaProjects, IProgressMonitor monitor) {
    monitor.beginTask("Adding Builder", javaProjects.size());

    for (IJavaProject javaProject : javaProjects) {
        try {//from  w w w . j  av  a  2s.  co m
            BuilderHelper.addBuilder(javaProject.getProject(), Activator.BUILDER_ID);
            monitor.worked(1);

        } catch (CoreException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    monitor.done();
}

From source file:de.fxworld.generationgap.ui.commands.BuildNowCommand.java

License:Open Source License

protected void executeOnJavaProject(IJavaProject javaProject, IProgressMonitor monitor) {
    GapEclipseWorkflow workflow = GapEclipseWorkflowFactory.createGapWorkflow();

    final List<IFile> genmodelFiles = new ArrayList<IFile>();

    try {//from ww w  .  j a  v  a  2  s  . co  m
        javaProject.getProject().accept(new IResourceVisitor() {

            @Override
            public boolean visit(IResource resource) throws CoreException {
                if ((resource != null) && (resource instanceof IFile)) {
                    IFile file = (IFile) resource;

                    if ((file.exists()) && ("genmodel".equals(file.getFileExtension()))) {
                        genmodelFiles.add(file);
                    }
                }

                return true; // visit children too
            }
        });
    } catch (CoreException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    workflow.build(new GapConfiguration(javaProject), genmodelFiles, monitor);
}

From source file:de.fxworld.generationgap.ui.commands.RemoveBuilderHandler.java

License:Open Source License

@Override
protected void executeOnJavaProjects(List<IJavaProject> javaProjects, IProgressMonitor monitor) {

    monitor.beginTask("Removeing Builder", javaProjects.size());

    for (IJavaProject javaProject : javaProjects) {
        try {/*from  w  ww . j a v a 2  s .c o  m*/
            BuilderHelper.removeBuilder(javaProject.getProject(), Activator.BUILDER_ID);
            monitor.worked(1);

        } catch (CoreException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    monitor.done();
}

From source file:de.fxworld.generationgap.ui.properties.PropertyTester.java

License:Open Source License

@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
    boolean result = false;

    if ("hasBuilder".equals(property)) {
        if (receiver instanceof IJavaProject) {
            IJavaProject project = (IJavaProject) receiver;

            try {
                result = BuilderHelper.hasBuilder(project.getProject(), Activator.BUILDER_ID);
            } catch (CoreException e) {
                // ok then it should not be visible
            }//  w  ww  .  j a va 2s  .  co  m
        }
    }

    return result;
}

From source file:de.hentschel.visualdbc.datasource.ui.test.testCase.swtbot.SWTBotJavaPackageSettingControlTest.java

License:Open Source License

/**
 * Tests error messages on the file tab.
 *//*w ww .  ja  va2s.c om*/
@Test
public void testPackageErrorMessages() throws CoreException, InterruptedException {
    // Create project
    IJavaProject javaProject = createProject();
    IProject project = javaProject.getProject();
    assertTrue(project.exists());
    IFolder srcFolder = project.getFolder("src");
    assertTrue(srcFolder.exists());
    IFolder packageAFolder = srcFolder.getFolder("sWTBotJavaPackageSettingControlTestA");
    assertTrue(packageAFolder.exists());
    IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
    assertTrue(roots.length >= 1);
    IPackageFragmentRoot defaultPackage = roots[0];
    assertNotNull(defaultPackage);
    IPackageFragment packageA = defaultPackage.getPackageFragment("sWTBotJavaPackageSettingControlTestA");
    assertNotNull(packageA);
    IPackageFragment packageB = defaultPackage.getPackageFragment("sWTBotJavaPackageSettingControlTestB");
    assertNotNull(packageB);
    // Create control
    final ISettingControl settingControl = SettingControlUtil.createSettingControl(getControlId());
    assertNotNull(settingControl);
    assertEquals(0, settingControl.getSettingControlListeners().length);
    // Create shell and UI control instance and set initial value
    IRunnableWithResult<Control> createRun = new AbstractRunnableWithResult<Control>() {
        @Override
        public void run() {
            Shell shell = new Shell(Display.getDefault());
            shell.setText("SWTBotJavaPackageSettingControlTest");
            shell.setLayout(new FillLayout());
            shell.setSize(300, 300);
            Control control = settingControl.createControl(shell);
            setResult(control);
            shell.open();
        }
    };
    Display.getDefault().syncExec(createRun);
    final Control control = createRun.getResult();
    assertNotNull(control);
    try {
        // Create bot and get Shell
        SWTWorkbenchBot bot = new SWTWorkbenchBot();
        SWTBotShell botShell = bot.shell("SWTBotJavaPackageSettingControlTest");
        SWTBotRadio resourceRadio = botShell.bot().radio("Resource");
        SWTBotRadio packageRadio = botShell.bot().radio("Package");
        SWTBotText pathText = botShell.bot().text();
        // Select type
        packageRadio.click();
        // Test initial value
        assertEquals("No directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertNull(TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch to other invalid type
        resourceRadio.click();
        assertEquals("No existing project or folder defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new Path(""), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch back from invalid type
        packageRadio.click();
        assertEquals("No directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertNull(TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch to other invalid type and make it valid
        resourceRadio.click();
        assertEquals("No existing project or folder defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new Path(""), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        pathText.setText(packageB.getPath().toString());
        assertNull(TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(packageB.getPath(), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch back from valid type
        packageRadio.click();
        assertEquals("No directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertNull(TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
    } finally {
        // Close shell
        if (control != null) {
            control.getDisplay().syncExec(new Runnable() {
                @Override
                public void run() {
                    control.getShell().close();
                }
            });
        }
    }
}

From source file:de.hentschel.visualdbc.datasource.ui.test.testCase.swtbot.SWTBotJavaPackageSettingControlTest.java

License:Open Source License

/**
 * Tests error messages on the file tab.
 *///from   w ww .  j  a  va 2s  .com
@Test
public void testFileErrorMessages() throws CoreException, InterruptedException {
    // Create project
    IJavaProject javaProject = createProject();
    IProject project = javaProject.getProject();
    assertTrue(project.exists());
    IFolder srcFolder = project.getFolder("src");
    assertTrue(srcFolder.exists());
    IFolder packageAFolder = srcFolder.getFolder("sWTBotJavaPackageSettingControlTestA");
    assertTrue(packageAFolder.exists());
    IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
    assertTrue(roots.length >= 1);
    IPackageFragmentRoot defaultPackage = roots[0];
    assertNotNull(defaultPackage);
    IPackageFragment packageA = defaultPackage.getPackageFragment("sWTBotJavaPackageSettingControlTestA");
    assertNotNull(packageA);
    IPackageFragment packageB = defaultPackage.getPackageFragment("sWTBotJavaPackageSettingControlTestB");
    assertNotNull(packageB);
    // Create control
    final ISettingControl settingControl = SettingControlUtil.createSettingControl(getControlId());
    assertNotNull(settingControl);
    assertEquals(0, settingControl.getSettingControlListeners().length);
    // Create shell and UI control instance and set initial value
    IRunnableWithResult<Control> createRun = new AbstractRunnableWithResult<Control>() {
        @Override
        public void run() {
            Shell shell = new Shell(Display.getDefault());
            shell.setText("SWTBotJavaPackageSettingControlTest");
            shell.setLayout(new FillLayout());
            shell.setSize(300, 300);
            Control control = settingControl.createControl(shell);
            setResult(control);
            shell.open();
        }
    };
    Display.getDefault().syncExec(createRun);
    final Control control = createRun.getResult();
    try {
        assertNotNull(control);
        // Create bot and get Shell
        SWTWorkbenchBot bot = new SWTWorkbenchBot();
        SWTBotShell botShell = bot.shell("SWTBotJavaPackageSettingControlTest");
        SWTBotRadio fileRadio = botShell.bot().radio("Directory");
        SWTBotRadio packageRadio = botShell.bot().radio("Package");
        SWTBotText pathText = botShell.bot().text();
        // Select type
        fileRadio.click();
        // Test initial value
        assertEquals("No existing directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new File(""), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Set invalid path
        pathText.setText("INVALID");
        assertEquals("No existing directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new File("INVALID"), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Set valid path
        pathText.setText(ResourceUtil.getLocation(packageA.getResource()).toString());
        assertNull(TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(ResourceUtil.getLocation(packageA.getResource()),
                TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Set invalid path
        pathText.setText("INVALID");
        assertEquals("No existing directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new File("INVALID"), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch to other invalid type
        packageRadio.click();
        assertEquals("No directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertNull(TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch back from invalid type
        fileRadio.click();
        assertEquals("No existing directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new File("INVALID"), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch to other invalid type and make it valid
        packageRadio.click();
        assertEquals("No directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertNull(TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        botShell.bot().button().click();
        SWTBotShell selectShell = botShell.bot().shell("Select package");
        selectShell.bot().text().setText(packageB.getElementName()); // Filter the table entries, required in tests if scroll bars are used.
        selectShell.bot().table().select(packageB.getElementName());
        selectShell.bot().button("OK").click();
        assertNull(TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(getExpectedPackage(packageB),
                TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
        // Switch back from valid type
        fileRadio.click();
        assertEquals("No existing directory defined.",
                TestDataSourceUIUtil.getValidationMessageThreadSave(settingControl, control));
        assertEquals(new File("INVALID"), TestDataSourceUIUtil.getValueThreadSave(settingControl, control));
    } finally {
        // Close shell
        if (control != null) {
            control.getDisplay().syncExec(new Runnable() {
                @Override
                public void run() {
                    control.getShell().close();
                }
            });
        }
    }
}