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:com.android.ide.eclipse.adt.internal.refactorings.core.AndroidTypeMoveParticipant.java

License:Open Source License

@Override
protected boolean initialize(Object element) {
    if (element instanceof IType) {
        IType type = (IType) element;/*w w w . jav  a 2 s  .c o  m*/
        IJavaProject javaProject = (IJavaProject) type.getAncestor(IJavaElement.JAVA_PROJECT);
        mProject = javaProject.getProject();
        IResource manifestResource = mProject
                .findMember(AdtConstants.WS_SEP + SdkConstants.FN_ANDROID_MANIFEST_XML);

        if (manifestResource == null || !manifestResource.exists() || !(manifestResource instanceof IFile)) {
            RefactoringUtil.logInfo("Invalid or missing the " + SdkConstants.FN_ANDROID_MANIFEST_XML
                    + " in the " + mProject.getName() + " project.");
            return false;
        }
        mManifestFile = (IFile) manifestResource;
        ManifestData manifestData;
        manifestData = AndroidManifestHelper.parseForData(mManifestFile);
        if (manifestData == null) {
            return false;
        }
        mAppPackage = manifestData.getPackage();
        mOldFqcn = type.getFullyQualifiedName();
        Object destination = getArguments().getDestination();
        if (destination instanceof IPackageFragment) {
            IPackageFragment packageFragment = (IPackageFragment) destination;
            mNewFqcn = packageFragment.getElementName() + "." + type.getElementName();
        } else if (destination instanceof IResource) {
            try {
                IPackageFragment[] fragments = javaProject.getPackageFragments();
                for (IPackageFragment fragment : fragments) {
                    IResource resource = fragment.getResource();
                    if (resource.equals(destination)) {
                        mNewFqcn = fragment.getElementName() + '.' + type.getElementName();
                        break;
                    }
                }
            } catch (JavaModelException e) {
                // pass
            }
        }
        return mOldFqcn != null && mNewFqcn != null;
    }

    return false;
}

From source file:com.android.ide.eclipse.adt.internal.refactorings.core.AndroidTypeRenameParticipant.java

License:Open Source License

@Override
protected boolean initialize(Object element) {
    if (sIgnore) {
        return false;
    }//from  w w  w  .  j  av a  2 s. c o m

    if (element instanceof IType) {
        IType type = (IType) element;
        IJavaProject javaProject = (IJavaProject) type.getAncestor(IJavaElement.JAVA_PROJECT);
        mProject = javaProject.getProject();
        IResource manifestResource = mProject
                .findMember(AdtConstants.WS_SEP + SdkConstants.FN_ANDROID_MANIFEST_XML);

        if (manifestResource == null || !manifestResource.exists() || !(manifestResource instanceof IFile)) {
            RefactoringUtil.logInfo(String.format("Invalid or missing file %1$s in project %2$s",
                    SdkConstants.FN_ANDROID_MANIFEST_XML, mProject.getName()));
            return false;
        }

        try {
            IType classView = javaProject.findType(CLASS_VIEW);
            if (classView != null) {
                ITypeHierarchy hierarchy = type.newSupertypeHierarchy(new NullProgressMonitor());
                if (hierarchy.contains(classView)) {
                    mIsCustomView = true;
                }
            }
        } catch (CoreException e) {
            AdtPlugin.log(e, null);
        }

        mManifestFile = (IFile) manifestResource;
        ManifestData manifestData;
        manifestData = AndroidManifestHelper.parseForData(mManifestFile);
        if (manifestData == null) {
            return false;
        }
        mOldSimpleName = type.getElementName();
        mOldDottedName = '.' + mOldSimpleName;
        mOldFqcn = type.getFullyQualifiedName();
        String packageName = type.getPackageFragment().getElementName();
        mNewSimpleName = getArguments().getNewName();
        mNewDottedName = '.' + mNewSimpleName;
        if (packageName != null) {
            mNewFqcn = packageName + mNewDottedName;
        } else {
            mNewFqcn = mNewSimpleName;
        }
        if (mOldFqcn == null || mNewFqcn == null) {
            return false;
        }
        if (!RefactoringUtil.isRefactorAppPackage() && mNewFqcn.indexOf('.') == -1) {
            mNewFqcn = packageName + mNewDottedName;
        }
        return true;
    }
    return false;
}

From source file:com.android.ide.eclipse.adt.internal.refactorings.core.RenameResourceParticipant.java

License:Open Source License

@Override
protected boolean initialize(Object element) {
    if (sIgnore) {
        return false;
    }//w w  w  .j ava2 s.c o m

    if (element instanceof IField) {
        IField field = (IField) element;
        IType declaringType = field.getDeclaringType();
        if (declaringType != null) {
            if (R_CLASS.equals(declaringType.getParent().getElementName())) {
                String typeName = declaringType.getElementName();
                mType = ResourceType.getEnum(typeName);
                if (mType != null) {
                    mUpdateReferences = getArguments().getUpdateReferences();
                    mFolderType = AdtUtils.getFolderTypeFor(mType);
                    IJavaProject javaProject = (IJavaProject) field.getAncestor(IJavaElement.JAVA_PROJECT);
                    mProject = javaProject.getProject();
                    mOldName = field.getElementName();
                    mNewName = getArguments().getNewName();
                    mFieldRefactoring = null;
                    mRenamedFile = null;
                    createXmlSearchPatterns();
                    return true;
                }
            }
        }

        return false;
    } else if (element instanceof IFile) {
        IFile file = (IFile) element;
        mProject = file.getProject();
        if (BaseProjectHelper.isAndroidProject(mProject)) {
            IPath path = file.getFullPath();
            int segments = path.segmentCount();
            if (segments == 4 && path.segment(1).equals(FD_RES)) {
                String parentName = file.getParent().getName();
                mFolderType = ResourceFolderType.getFolderType(parentName);
                if (mFolderType != null && mFolderType != ResourceFolderType.VALUES) {
                    mType = AdtUtils.getResourceTypeFor(mFolderType);
                    if (mType != null) {
                        mUpdateReferences = getArguments().getUpdateReferences();
                        mProject = file.getProject();
                        mOldName = AdtUtils.stripAllExtensions(file.getName());
                        mNewName = AdtUtils.stripAllExtensions(getArguments().getNewName());
                        mRenamedFile = file;
                        createXmlSearchPatterns();

                        mFieldRefactoring = null;
                        IField field = getResourceField(mProject, mType, mOldName);
                        if (field != null) {
                            mFieldRefactoring = createFieldRefactoring(field);
                        } else {
                            // no corresponding field; aapt has not run yet. Perhaps user has
                            // turned off auto build.
                            mFieldRefactoring = null;
                        }

                        return true;
                    }
                }
            }
        }
    } else if (element instanceof String) {
        String uri = (String) element;
        if (uri.startsWith(PREFIX_RESOURCE_REF) && !uri.startsWith(ANDROID_PREFIX)) {
            RenameResourceProcessor processor = (RenameResourceProcessor) getProcessor();
            mProject = processor.getProject();
            mType = processor.getType();
            mFolderType = AdtUtils.getFolderTypeFor(mType);
            mOldName = processor.getCurrentName();
            mNewName = processor.getNewName();
            assert uri.endsWith(mOldName) && uri.contains(mType.getName()) : uri;
            mUpdateReferences = getArguments().getUpdateReferences();
            if (mNewName.isEmpty()) {
                mUpdateReferences = false;
            }
            mRenamedFile = null;
            createXmlSearchPatterns();
            mFieldRefactoring = null;
            if (!mNewName.isEmpty()) {
                IField field = getResourceField(mProject, mType, mOldName);
                if (field != null) {
                    mFieldRefactoring = createFieldRefactoring(field);
                }
            }

            return true;
        }
    }

    return false;
}

From source file:com.android.ide.eclipse.adt.internal.resources.manager.GlobalProjectMonitor.java

License:Open Source License

/**
 * Adds a project listener./* ww w  .  j a  v  a2 s  . co m*/
 * @param listener The listener to receive the events.
 */
public synchronized void addProjectListener(IProjectListener listener) {
    mProjectListeners.add(listener);

    // we need to look at the opened projects and give them to the listener.

    // get the list of opened android projects.
    IWorkspaceRoot workspaceRoot = mWorkspace.getRoot();
    IJavaModel javaModel = JavaCore.create(workspaceRoot);
    IJavaProject[] androidProjects = BaseProjectHelper.getAndroidProjects(javaModel, null /*filter*/);

    notifyResourceEventStart();

    for (IJavaProject androidProject : androidProjects) {
        listener.projectOpenedWithWorkspace(androidProject.getProject());
    }

    listener.allProjectsOpenedWithWorkspace();

    notifyResourceEventEnd();
}

From source file:com.android.ide.eclipse.adt.internal.resources.manager.ResourceMonitor.java

License:Open Source License

/**
 * Adds a project listener.//from  ww  w . j a  v a  2  s.  c  o  m
 * @param listener The listener to receive the events.
 */
public synchronized void addProjectListener(IProjectListener listener) {
    mProjectListeners.add(listener);

    // we need to look at the opened projects and give them to the listener.

    // get the list of opened android projects.
    IWorkspaceRoot workspaceRoot = mWorkspace.getRoot();
    IJavaModel javaModel = JavaCore.create(workspaceRoot);
    IJavaProject[] androidProjects = BaseProjectHelper.getAndroidProjects(javaModel);

    for (IJavaProject androidProject : androidProjects) {
        listener.projectOpenedWithWorkspace(androidProject.getProject());
    }
}

From source file:com.android.ide.eclipse.adt.internal.ui.ResourceExplorerView.java

License:Open Source License

/**
 * Processes a new selection./*from   w w  w.  j ava2 s .c  om*/
 */
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
    // first we test if the part is an editor.
    if (part instanceof IEditorPart) {
        // if it is, we check if it's a file editor.
        IEditorInput input = ((IEditorPart) part).getEditorInput();

        if (input instanceof IFileEditorInput) {
            // from the file editor we can get the IFile object, and from it, the IProject.
            IFile file = ((IFileEditorInput) input).getFile();

            // get the file project
            IProject project = file.getProject();

            handleProjectSelection(project);
        }
    } else if (selection instanceof IStructuredSelection) {
        // if it's not an editor, we look for structured selection.
        for (Iterator<?> it = ((IStructuredSelection) selection).iterator(); it.hasNext();) {
            Object element = it.next();
            IProject project = null;

            // if we are in the navigator or package explorer, the selection could contain a
            // IResource object.
            if (element instanceof IResource) {
                project = ((IResource) element).getProject();
            } else if (element instanceof IJavaElement) {
                // if we are in the package explorer on a java element, we handle that too.
                IJavaElement javaElement = (IJavaElement) element;
                IJavaProject javaProject = javaElement.getJavaProject();
                if (javaProject != null) {
                    project = javaProject.getProject();
                }
            } else if (element instanceof IAdaptable) {
                // finally we try to get a project object from IAdaptable.
                project = (IProject) ((IAdaptable) element).getAdapter(IProject.class);
            }

            // if we found a project, handle it, and return.
            if (project != null) {
                if (handleProjectSelection(project)) {
                    return;
                }
            }
        }
    }
}

From source file:com.android.ide.eclipse.adt.internal.wizards.export.ProjectCheckPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    mProjectChooserHelper = new ProjectChooserHelper(parent.getShell(), new NonLibraryProjectOnlyFilter());

    GridLayout gl = null;/*from   ww  w .  j  a  v a2s.c  o m*/
    GridData gd = null;

    mTopComposite = new Composite(parent, SWT.NONE);
    mTopComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    mTopComposite.setLayout(new GridLayout(1, false));

    // composite for the project selection.
    Composite projectComposite = new Composite(mTopComposite, SWT.NONE);
    projectComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    projectComposite.setLayout(gl = new GridLayout(3, false));
    gl.marginHeight = gl.marginWidth = 0;

    Label label = new Label(projectComposite, SWT.NONE);
    label.setLayoutData(gd = new GridData(GridData.FILL_HORIZONTAL));
    gd.horizontalSpan = 3;
    label.setText("Select the project to export:");

    new Label(projectComposite, SWT.NONE).setText("Project:");
    mProjectText = new Text(projectComposite, SWT.BORDER);
    mProjectText.setLayoutData(gd = new GridData(GridData.FILL_HORIZONTAL));
    mProjectText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            handleProjectNameChange();
        }
    });

    Button browseButton = new Button(projectComposite, SWT.PUSH);
    browseButton.setText("Browse...");
    browseButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IJavaProject javaProject = mProjectChooserHelper.chooseJavaProject(mProjectText.getText().trim(),
                    "Please select a project to export");

            if (javaProject != null) {
                IProject project = javaProject.getProject();

                // set the new name in the text field. The modify listener will take
                // care of updating the status and the ExportWizard object.
                mProjectText.setText(project.getName());
            }
        }
    });

    setControl(mTopComposite);
}

From source file:com.android.ide.eclipse.adt.internal.wizards.export.ProjectCheckPage.java

License:Open Source License

/**
 * Checks the parameters for correctness, and update the error message and buttons.
 *///w  ww  .  j a va2  s  .c  om
private void handleProjectNameChange() {
    setPageComplete(false);

    if (mErrorComposite != null) {
        mErrorComposite.dispose();
        mErrorComposite = null;
    }

    // update the wizard with the new project
    mWizard.setProject(null);

    //test the project name first!
    String text = mProjectText.getText().trim();
    if (text.length() == 0) {
        setErrorMessage("Select project to export.");
    } else if (text.matches("[a-zA-Z0-9_ \\.-]+") == false) {
        setErrorMessage("Project name contains unsupported characters!");
    } else {
        IJavaProject[] projects = mProjectChooserHelper.getAndroidProjects(null);
        IProject found = null;
        for (IJavaProject javaProject : projects) {
            if (javaProject.getProject().getName().equals(text)) {
                found = javaProject.getProject();
                break;
            }

        }

        if (found != null) {
            setErrorMessage(null);

            // update the wizard with the new project
            mWizard.setProject(found);

            // now rebuild the error ui.
            buildErrorUi(found);
        } else {
            setErrorMessage(String.format("There is no android project named '%1$s'", text));
        }
    }
}

From source file:com.android.ide.eclipse.adt.internal.wizards.exportgradle.ProjectSelectionPage.java

License:Open Source License

/**
 * Returns given projects that have cyclic dependencies.
 *
 * @param javaProjects list of IJavaProject objects
 * @return set of project names/*  w ww.  j  a  v a2s.  c  om*/
 */
private List<String> getCyclicProjects(List<IJavaProject> projects) throws CoreException {

    List<String> cyclicProjects = new ArrayList<String>();
    for (IJavaProject javaProject : projects) {
        if (hasCyclicDependency(javaProject)) {
            cyclicProjects.add(javaProject.getProject().getName());
        }
    }
    return cyclicProjects;
}

From source file:com.android.ide.eclipse.adt.internal.wizards.exportgradle.ProjectSelectionPage.java

License:Open Source License

/**
 * Check if given project has a cyclic dependency.
 * <p>//w  w w. j av a 2s .  c om
 * See {@link org.eclipse.jdt.core.tests.model.ClasspathTests.numberOfCycleMarkers}
 */
private static boolean hasCyclicDependency(IJavaProject javaProject) throws CoreException {
    IMarker[] markers = javaProject.getProject().findMarkers(IJavaModelMarker.BUILDPATH_PROBLEM_MARKER, false,
            IResource.DEPTH_ONE);
    for (IMarker marker : markers) {
        String cycleAttr = (String) marker.getAttribute(IJavaModelMarker.CYCLE_DETECTED);
        if (cycleAttr != null && cycleAttr.equals("true")) { //$NON-NLS-1$
            return true;
        }
    }
    return false;
}