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.project.ProjectHelper.java

License:Open Source License

/**
 * Build project incrementally, including making the final packaging even if it is disabled
 * by default./*w  ww.j  av  a  2  s .com*/
 *
 * @param project The project to be built.
 * @param monitor A eclipse runtime progress monitor to be updated by the builders.
 * @throws CoreException
 */
public static void doFullIncrementalDebugBuild(IProject project, IProgressMonitor monitor)
        throws CoreException {
    // Get list of projects that we depend on
    List<IJavaProject> androidProjectList = new ArrayList<IJavaProject>();
    try {
        androidProjectList = getAndroidProjectDependencies(BaseProjectHelper.getJavaProject(project));
    } catch (JavaModelException e) {
        AdtPlugin.printErrorToConsole(project, e);
    }
    // Recursively build dependencies
    for (IJavaProject dependency : androidProjectList) {
        doFullIncrementalDebugBuild(dependency.getProject(), monitor);
    }

    // Do an incremental build to pick up all the deltas
    project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);

    // If the preferences indicate not to use post compiler optimization
    // then the incremental build will have done everything necessary, otherwise,
    // we have to run the final builder manually (if requested).
    if (AdtPrefs.getPrefs().getBuildSkipPostCompileOnFileSave()) {
        // Create the map to pass to the PostC builder
        Map<String, String> args = new TreeMap<String, String>();
        args.put(PostCompilerBuilder.POST_C_REQUESTED, ""); //$NON-NLS-1$

        // call the post compiler manually, forcing FULL_BUILD otherwise Eclipse won't
        // call the builder since the delta is empty.
        project.build(IncrementalProjectBuilder.FULL_BUILD, PostCompilerBuilder.ID, args, monitor);
    }

    // because the post compiler builder does a delayed refresh due to
    // library not picking the refresh up if it's done during the build,
    // we want to force a refresh here as this call is generally asking for
    // a build to use the apk right after the call.
    project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
}

From source file:com.android.ide.eclipse.adt.internal.project.SupportLibraryHelper.java

License:Open Source License

@Nullable
private static IProject findSupportProjectV7() {
    for (IJavaProject javaProject : AdtUtils.getOpenAndroidProjects()) {
        IProject project = javaProject.getProject();
        ProjectState state = Sdk.getProjectState(project);
        if (state != null && state.isLibrary()) {
            ManifestInfo manifestInfo = ManifestInfo.get(project);
            if (manifestInfo.getPackage().equals("android.support.v7.gridlayout")) { //$NON-NLS-1$
                return project;
            }/*from  w ww  . jav  a 2  s .  c  om*/
        }
    }

    return null;
}

From source file:com.android.ide.eclipse.adt.internal.properties.LibraryProperties.java

License:Open Source License

LibraryProperties(Composite parent) {

    mMatchIcon = AdtPlugin.getImageDescriptor("/icons/match.png").createImage(); //$NON-NLS-1$
    mErrorIcon = AdtPlugin.getImageDescriptor("/icons/error.png").createImage(); //$NON-NLS-1$

    // Layout has 2 column
    mTop = new Composite(parent, SWT.NONE);
    mTop.setLayout(new GridLayout(2, false));
    mTop.setLayoutData(new GridData(GridData.FILL_BOTH));
    mTop.setFont(parent.getFont());//from w  w  w. j a v  a 2s.co  m
    mTop.addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            mMatchIcon.dispose();
            mErrorIcon.dispose();
        }
    });

    mTable = new Table(mTop, SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE);
    mTable.setLayoutData(new GridData(GridData.FILL_BOTH));
    mTable.setHeaderVisible(true);
    mTable.setLinesVisible(false);
    mTable.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            resetEnabled();
        }
    });

    final TableColumn column0 = new TableColumn(mTable, SWT.NONE);
    column0.setText("Reference");
    final TableColumn column1 = new TableColumn(mTable, SWT.NONE);
    column1.setText("Project");

    Composite buttons = new Composite(mTop, SWT.NONE);
    buttons.setLayout(new GridLayout());
    buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL));

    mProjectChooser = new ProjectChooserHelper(parent.getShell(), mFilter);

    mAddButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
    mAddButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mAddButton.setText("Add...");
    mAddButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IJavaProject javaProject = mProjectChooser.chooseJavaProject(null /*projectName*/,
                    "Please select a library project");
            if (javaProject != null) {
                IProject iProject = javaProject.getProject();
                IPath relativePath = iProject.getLocation().makeRelativeTo(mState.getProject().getLocation());

                addItem(relativePath.toString(), iProject, -1);
                resetEnabled();
                mMustSave = true;
            }
        }
    });

    mRemoveButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
    mRemoveButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mRemoveButton.setText("Remove");
    mRemoveButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            // selection is ensured and in single mode.
            TableItem selection = mTable.getSelection()[0];
            ItemData data = (ItemData) selection.getData();
            mItemDataList.remove(data);
            mTable.remove(mTable.getSelectionIndex());
            resetEnabled();
            mMustSave = true;
        }
    });

    Label l = new Label(buttons, SWT.SEPARATOR | SWT.HORIZONTAL);
    l.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    mUpButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
    mUpButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mUpButton.setText("Up");
    mUpButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            int index = mTable.getSelectionIndex();
            ItemData data = mItemDataList.remove(index);
            mTable.remove(index);

            // add at a lower index.
            addItem(data.relativePath, data.project, index - 1);

            // reset the selection
            mTable.select(index - 1);
            resetEnabled();
            mMustSave = true;
        }
    });

    mDownButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
    mDownButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    mDownButton.setText("Down");
    mDownButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            int index = mTable.getSelectionIndex();
            ItemData data = mItemDataList.remove(index);
            mTable.remove(index);

            // add at a higher index.
            addItem(data.relativePath, data.project, index + 1);

            // reset the selection
            mTable.select(index + 1);
            resetEnabled();
            mMustSave = true;
        }
    });

    adjustColumnsWidth(mTable, column0, column1);
}

From source file:com.android.ide.eclipse.adt.internal.refactoring.core.AndroidPackageRenameParticipant.java

License:Open Source License

@Override
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
    if (pm.isCanceled()) {
        return null;
    }//from   w ww  .  j av a  2s .c  om
    if (!getArguments().getUpdateReferences())
        return null;
    IPath pkgPath = mPackageFragment.getPath();
    IJavaProject javaProject = (IJavaProject) mPackageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
    IProject project = javaProject.getProject();
    IPath genPath = project.getFullPath().append(SdkConstants.FD_GEN_SOURCES);
    if (genPath.isPrefixOf(pkgPath)) {
        RefactoringUtil.logInfo(getName() + ": Cannot rename generated package.");
        return null;
    }
    CompositeChange result = new CompositeChange(getName());
    if (mAndroidManifest.exists()) {
        if (mAndroidElements.size() > 0 || mIsPackage) {
            getDocument();
            Change change = new AndroidPackageRenameChange(mAndroidManifest, mManager, mDocument,
                    mAndroidElements, mNewName, mOldName, mIsPackage);
            if (change != null) {
                result.add(change);
            }
        }
        if (mIsPackage) {
            Change genChange = getGenPackageChange(pm);
            if (genChange != null) {
                result.add(genChange);
            }
        }
        // add layoutChange
        for (AndroidLayoutFileChanges fileChange : mFileChanges) {
            IFile file = fileChange.getFile();
            ITextFileBufferManager lManager = FileBuffers.getTextFileBufferManager();
            lManager.connect(file.getFullPath(), LocationKind.NORMALIZE, new NullProgressMonitor());
            ITextFileBuffer buffer = lManager.getTextFileBuffer(file.getFullPath(), LocationKind.NORMALIZE);
            IDocument lDocument = buffer.getDocument();
            Change layoutChange = new AndroidLayoutChange(file, lDocument, lManager, fileChange.getChanges());
            if (layoutChange != null) {
                result.add(layoutChange);
            }
        }
    }
    return (result.getChildren().length == 0) ? null : result;
}

From source file:com.android.ide.eclipse.adt.internal.refactoring.core.AndroidPackageRenameParticipant.java

License:Open Source License

/**
 * Return the gen package fragment//w ww.  jav  a 2 s.c  om
 *
 */
private IPackageFragment getGenPackageFragment() throws JavaModelException {
    IJavaProject javaProject = (IJavaProject) mPackageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
    if (javaProject != null && javaProject.isOpen()) {
        IProject project = javaProject.getProject();
        IFolder genFolder = project.getFolder(SdkConstants.FD_GEN_SOURCES);
        if (genFolder.exists()) {
            String javaPackagePath = mAppPackage.replace(".", "/");
            IPath genJavaPackagePath = genFolder.getFullPath().append(javaPackagePath);
            IPackageFragment genPackageFragment = javaProject.findPackageFragment(genJavaPackagePath);
            return genPackageFragment;
        }
    }
    return null;
}

From source file:com.android.ide.eclipse.adt.internal.refactoring.core.AndroidPackageRenameParticipant.java

License:Open Source License

@Override
protected boolean initialize(final Object element) {
    mIsPackage = false;//from   www  .  jav  a2  s .c om
    try {
        if (element instanceof IPackageFragment) {
            mPackageFragment = (IPackageFragment) element;
            if (!mPackageFragment.containsJavaResources())
                return false;
            IJavaProject javaProject = (IJavaProject) mPackageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
            IProject project = javaProject.getProject();
            IResource manifestResource = project
                    .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 " + project.getName() + " project.");
                return false;
            }
            mAndroidManifest = (IFile) manifestResource;
            String packageName = mPackageFragment.getElementName();
            ManifestData manifestData;
            manifestData = AndroidManifestHelper.parseForData(mAndroidManifest);
            if (manifestData == null) {
                return false;
            }
            mAppPackage = manifestData.getPackage();
            mOldName = packageName;
            mNewName = getArguments().getNewName();
            if (mOldName == null || mNewName == null) {
                return false;
            }

            if (RefactoringUtil.isRefactorAppPackage() && mAppPackage != null
                    && mAppPackage.equals(packageName)) {
                mIsPackage = true;
            }
            mAndroidElements = addAndroidElements();
            try {
                final IType type = javaProject.findType(SdkConstants.CLASS_VIEW);
                SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.TYPE,
                        IJavaSearchConstants.DECLARATIONS, SearchPattern.R_REGEXP_MATCH);
                IJavaSearchScope scope = SearchEngine
                        .createJavaSearchScope(new IJavaElement[] { mPackageFragment });
                final HashSet<IType> elements = new HashSet<IType>();
                SearchRequestor requestor = new SearchRequestor() {

                    @Override
                    public void acceptSearchMatch(SearchMatch match) throws CoreException {
                        Object elem = match.getElement();
                        if (elem instanceof IType) {
                            IType eType = (IType) elem;
                            IType[] superTypes = JavaModelUtil.getAllSuperTypes(eType,
                                    new NullProgressMonitor());
                            for (int i = 0; i < superTypes.length; i++) {
                                if (superTypes[i].equals(type)) {
                                    elements.add(eType);
                                    break;
                                }
                            }
                        }

                    }
                };
                SearchEngine searchEngine = new SearchEngine();
                searchEngine.search(pattern,
                        new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
                        requestor, null);
                List<String> views = new ArrayList<String>();
                for (IType elem : elements) {
                    views.add(elem.getFullyQualifiedName());
                }
                if (views.size() > 0) {
                    String[] classNames = views.toArray(new String[0]);
                    addLayoutChanges(project, classNames);
                }
            } catch (CoreException e) {
                RefactoringUtil.log(e);
            }

            return mIsPackage || mAndroidElements.size() > 0 || mFileChanges.size() > 0;
        }
    } catch (JavaModelException ignore) {
    }
    return false;
}

From source file:com.android.ide.eclipse.adt.internal.refactoring.core.AndroidTypeMoveParticipant.java

License:Open Source License

@Override
protected boolean initialize(Object element) {

    if (element instanceof IType) {
        IType type = (IType) element;/*from w ww  .  ja va 2  s . c om*/
        IJavaProject javaProject = (IJavaProject) type.getAncestor(IJavaElement.JAVA_PROJECT);
        IProject project = javaProject.getProject();
        IResource manifestResource = project
                .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 " + project.getName() + " project.");
            return false;
        }
        mAndroidManifest = (IFile) manifestResource;
        ManifestData manifestData;
        manifestData = AndroidManifestHelper.parseForData(mAndroidManifest);
        if (manifestData == null) {
            return false;
        }
        mJavaPackage = manifestData.getPackage();
        mOldName = type.getFullyQualifiedName();
        Object destination = getArguments().getDestination();
        if (destination instanceof IPackageFragment) {
            IPackageFragment packageFragment = (IPackageFragment) destination;
            mNewName = packageFragment.getElementName() + "." + type.getElementName();
        }
        if (mOldName == null || mNewName == null) {
            return false;
        }
        mAndroidElements = addAndroidElements();
        try {
            ITypeHierarchy typeHierarchy = type.newSupertypeHierarchy(null);
            if (typeHierarchy == null) {
                return false;
            }
            IType[] superTypes = typeHierarchy.getAllSuperclasses(type);
            for (int i = 0; i < superTypes.length; i++) {
                IType superType = superTypes[i];
                String className = superType.getFullyQualifiedName();
                if (className.equals(SdkConstants.CLASS_VIEW)) {
                    addLayoutChanges(project, type.getFullyQualifiedName());
                    break;
                }
            }
        } catch (JavaModelException ignore) {
        }
        return mAndroidElements.size() > 0 || mFileChanges.size() > 0;
    }
    return false;
}

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

License:Open Source License

@Override
protected boolean initialize(Object element) {

    if (element instanceof IType) {
        IType type = (IType) element;/*from   ww w .jav  a  2s  .c  o  m*/
        IJavaProject javaProject = (IJavaProject) type.getAncestor(IJavaElement.JAVA_PROJECT);
        IProject project = javaProject.getProject();
        IResource manifestResource = project
                .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 " + project.getName() + " project.");
            return false;
        }
        mAndroidManifest = (IFile) manifestResource;
        ManifestData manifestData;
        manifestData = AndroidManifestHelper.parseForData(mAndroidManifest);
        if (manifestData == null) {
            return false;
        }
        mAppPackage = manifestData.getPackage();
        mOldName = type.getFullyQualifiedName();
        String packageName = type.getPackageFragment().getElementName();
        mNewName = getArguments().getNewName();
        if (packageName != null) {
            mLayoutNewName = packageName + "." + getArguments().getNewName(); //$NON-NLS-1$
        } else {
            mLayoutNewName = getArguments().getNewName();
        }
        if (mOldName == null || mNewName == null) {
            return false;
        }
        if (!RefactoringUtil.isRefactorAppPackage() && mNewName.indexOf(".") == -1) { //$NON-NLS-1$
            mNewName = packageName + "." + mNewName; //$NON-NLS-1$
        }
        mAndroidElements = addAndroidElements();
        try {
            ITypeHierarchy typeHierarchy = type.newSupertypeHierarchy(null);
            if (typeHierarchy == null) {
                return false;
            }
            IType[] superTypes = typeHierarchy.getAllSuperclasses(type);
            for (int i = 0; i < superTypes.length; i++) {
                IType superType = superTypes[i];
                String className = superType.getFullyQualifiedName();
                if (className.equals(SdkConstants.CLASS_VIEW)) {
                    addLayoutChanges(project, type.getFullyQualifiedName());
                    break;
                }
            }
        } catch (JavaModelException ignore) {
        }

        return mAndroidElements.size() > 0 || mFileChanges.size() > 0;
    }
    return false;
}

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

License:Open Source License

@Override
protected boolean initialize(final Object element) {
    mRefactoringAppPackage = false;/*from  w w w  .ja v a  2 s .  c om*/
    try {
        // Only propose this refactoring if the "Update References" checkbox is set.
        if (!getArguments().getUpdateReferences()) {
            return false;
        }

        if (element instanceof IPackageFragment) {
            mPackageFragment = (IPackageFragment) element;
            if (!mPackageFragment.containsJavaResources()) {
                return false;
            }
            IJavaProject javaProject = (IJavaProject) mPackageFragment.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;
            String packageName = mPackageFragment.getElementName();
            ManifestData manifestData;
            manifestData = AndroidManifestHelper.parseForData(mManifestFile);
            if (manifestData == null) {
                return false;
            }
            mAppPackage = manifestData.getPackage();
            mOldPackage = packageName;
            mNewPackage = getArguments().getNewName();
            if (mOldPackage == null || mNewPackage == null) {
                return false;
            }

            if (RefactoringUtil.isRefactorAppPackage() && mAppPackage != null
                    && mAppPackage.equals(packageName)) {
                mRefactoringAppPackage = true;
            }

            return true;
        }
    } catch (JavaModelException ignore) {
    }
    return false;
}

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

License:Open Source License

/**
 * Return the gen package fragment/*ww w  .ja  v  a 2 s. co m*/
 */
private IPackageFragment getGenPackageFragment() throws JavaModelException {
    IJavaProject javaProject = (IJavaProject) mPackageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
    if (javaProject != null && javaProject.isOpen()) {
        IProject project = javaProject.getProject();
        IFolder genFolder = project.getFolder(SdkConstants.FD_GEN_SOURCES);
        if (genFolder.exists()) {
            String javaPackagePath = mAppPackage.replace('.', '/');
            IPath genJavaPackagePath = genFolder.getFullPath().append(javaPackagePath);
            IPackageFragment genPackageFragment = javaProject.findPackageFragment(genJavaPackagePath);
            return genPackageFragment;
        }
    }
    return null;
}