List of usage examples for org.eclipse.jdt.core IJavaProject getProject
IProject getProject();
IProject
on which this IJavaProject
was created. 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; }