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.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; }