List of usage examples for org.eclipse.jdt.core IJavaElement getResource
IResource getResource();
From source file:com.laex.j2objc.ToObjectiveCAction.java
License:Open Source License
@Override public void run(IAction action) { if (!action.isEnabled()) { return;//from w ww . java2s . c om } /* Show the console view */ final MessageConsole console = MessageUtil.findConsole(MessageUtil.J2OBJC_CONSOLE); IWorkbenchPage page = targetPart.getSite().getWorkbenchWindow().getActivePage(); String id = IConsoleConstants.ID_CONSOLE_VIEW; IConsoleView view; try { view = (IConsoleView) page.showView(id); view.display(console); } catch (PartInitException e1) { LogUtil.logException(e1); } /* Before starting the job, check if the path to J2OBJC has been set up */ final Display display = targetPart.getSite().getShell().getDisplay(); final String pathToCompiler = Activator.getDefault().getPreferenceStore() .getString(PreferenceConstants.PATH_TO_COMPILER); console.clearConsole(); MessageConsoleStream mct = console.newMessageStream(); if (StringUtils.isEmpty(pathToCompiler)) { try { MessageUtil.setConsoleColor(display, mct, SWT.COLOR_RED); mct.write( "Path to compiler empty. Please set the path to J2OBJC compiler from global preferences."); } catch (IOException e) { LogUtil.logException(e); } return; } /* Before starting the job, calculate total no. of files to compile */ calculateWork(); // Start the job final Job job = new Job("J2OBJC Command Line Executor") { @Override protected IStatus run(IProgressMonitor monitor) { try { monitor.beginTask("J2OBJC Compiliation", totalWork); IJavaElement elm = (IJavaElement) strucSelc.getFirstElement(); IJavaProject javaProject = (IJavaProject) elm.getJavaProject(); Map<String, String> props = PropertiesUtil.getProjectProperties(javaProject.getResource()); props.put(PreferenceConstants.PATH_TO_COMPILER, pathToCompiler); // some initial message plumbing ToObjectiveCDelegate.clearPrebuiltSwitch(); ToObjectiveCDelegate delegate = new ToObjectiveCDelegate(display, props, monitor); elm.getResource().accept(delegate); monitor.worked(1); // copy files to some external directory monitor.subTask("Exporting Objective-C Classes"); String destinationDir = PropertiesUtil.getOutputDirectory(javaProject); doOutput(console, display, javaProject, destinationDir); monitor.worked(1); // refresh javaProject.getResource().refreshLocal(IResource.DEPTH_INFINITE, monitor); monitor.worked(1); monitor.done(); } catch (CoreException ce) { LogUtil.logException(ce); return Status.CANCEL_STATUS; } catch (IOException e) { LogUtil.logException(e); return Status.CANCEL_STATUS; } return Status.OK_STATUS; } private void doOutput(final MessageConsole console, final Display display, IJavaProject javaProject, String destinationDir) throws IOException, CoreException { if (StringUtils.isNotEmpty(destinationDir)) { // Ant specific code String sourceDir = javaProject.getResource().getLocation().makeAbsolute().toOSString(); AntDelegate antDelegate = new AntDelegate(javaProject); antDelegate.executeExport(display, sourceDir, destinationDir); } else { MessageConsoleStream mct = console.newMessageStream(); MessageUtil.setConsoleColor(display, mct, SWT.COLOR_BLUE); mct.write("No Output directory specified. Files will not be exported."); } } }; job.setUser(true); job.schedule(); }
From source file:com.laex.j2objc.ToObjectiveCAction.java
License:Open Source License
/** * Calculate work.// w ww . j a va 2s .com */ private void calculateWork() { IJavaElement elm = (IJavaElement) strucSelc.getFirstElement(); totalWork = 0; try { elm.getResource().accept(new IResourceVisitor() { @Override public boolean visit(IResource resource) throws CoreException { if (!(resource.getType() == IResource.FILE)) { return true; } if (JavaCore.isJavaLikeFileName(resource.getName())) { System.err.println(resource.getName()); totalWork++; return true; } return true; } }); } catch (CoreException e) { LogUtil.logException(e); } }
From source file:com.microsoft.javapkgsrv.JavaParser.java
License:MIT License
public List<FindDefinitionResponse.JavaElement> ProcessFindDefinintionRequest(String fileParseContents, String typeRootId, int cursorPosition) throws Exception { if (ActiveTypeRoots.containsKey(typeRootId)) { ITypeRoot cu = ActiveTypeRoots.get(typeRootId); cu.getBuffer().setContents(fileParseContents.toCharArray()); IJavaElement[] elements = cu.codeSelect(cursorPosition, 0); List<FindDefinitionResponse.JavaElement> ret = new ArrayList<FindDefinitionResponse.JavaElement>(); for (IJavaElement element : elements) { String definition = element.toString(); String path = element.getResource() != null ? element.getResource().getLocation().toOSString() : element.getPath().toOSString(); //String path = element.getPath().makeAbsolute().toOSString(); // element.getPath().toString(); boolean isAvailable = false; int posStart = -1; int posLength = 0; String contents = null; String classFileName = null; IClassFile classFileObj = null; ISourceReference srcRef = (ISourceReference) element; if (srcRef != null) { ISourceRange range = srcRef.getSourceRange(); if (SourceRange.isAvailable(range)) { isAvailable = true;//from w ww . ja v a 2 s. co m posStart = range.getOffset(); posLength = range.getLength(); //if (path.endsWith(".jar")) //{ IOpenable op = element.getOpenable(); if (op != null && op instanceof IClassFile) { IBuffer buff = op.getBuffer(); classFileObj = (IClassFile) op; classFileName = classFileObj.getElementName(); contents = buff.getContents(); } //} } } FindDefinitionResponse.JavaElement.Builder retItem = FindDefinitionResponse.JavaElement.newBuilder() .setDefinition(definition).setFilePath(path).setHasSource(isAvailable) .setPositionStart(posStart).setPositionLength(posLength); if (contents != null) { //int hashCode = classFileObj.hashCode(); String handle = classFileObj.getHandleIdentifier(); ActiveTypeRoots.put(handle, classFileObj); retItem.setFileName(classFileName); retItem.setTypeRootIdentifier(TypeRootIdentifier.newBuilder().setHandle(handle).build()); } System.out.println(retItem.toString()); if (contents != null) { retItem.setFileContents(contents); } ret.add(retItem.build()); } return ret; } return null; }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java
License:Open Source License
/** * Processes a delta recursively. When more than two children are affected the * tree is fully refreshed starting at this node. * * @param delta the delta to process/*from ww w .j a va2s . c o m*/ * @param runnables the resulting view changes as runnables (type {@link Runnable}) * @return true is returned if the conclusion is to refresh a parent of an element. In that case no siblings need * to be processed * @throws JavaModelException thrown when the access to an element failed */ private boolean processDelta(IJavaElementDelta delta, Collection<Runnable> runnables) throws JavaModelException { int kind = delta.getKind(); int flags = delta.getFlags(); IJavaElement element = delta.getElement(); int elementType = element.getElementType(); if (elementType != IJavaElement.JAVA_MODEL && elementType != IJavaElement.JAVA_PROJECT) { IJavaProject proj = element.getJavaProject(); if (proj == null || !proj.getProject().isOpen()) // TODO: Not needed if parent already did the 'open' check! return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT) { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) if (!fIsFlatLayout) { Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (!(parent instanceof IPackageFragmentRoot)) { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } if (!fIsFlatLayout) { if (kind == IJavaElementDelta.REMOVED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { postRemove(element, runnables); return false; } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } else if (kind == IJavaElementDelta.ADDED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { if (fFoldPackages) { postRefresh(parent, PARENT, element, runnables); return true; } else { postAdd(parent, element, runnables); return false; } } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; } } if (elementType == IJavaElement.COMPILATION_UNIT) { ICompilationUnit cu = (ICompilationUnit) element; if (!JavaModelUtil.isPrimary(cu)) { return false; } if (!getProvideMembers() && cu.isWorkingCopy() && kind == IJavaElementDelta.CHANGED) { return false; } if (kind == IJavaElementDelta.CHANGED && !isStructuralCUChange(flags)) { return false; // test moved ahead } if (!isOnClassPath(cu)) { // TODO: isOnClassPath expensive! Should be put after all cheap tests return false; } } if (elementType == IJavaElement.JAVA_PROJECT) { // handle open and closing of a project if ((flags & (IJavaElementDelta.F_CLOSED | IJavaElementDelta.F_OPENED)) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if the class path has changed we refresh the entire project if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if added it could be that the corresponding IProject is already shown. Remove it first. // bug 184296 if (kind == IJavaElementDelta.ADDED) { postRemove(element.getResource(), runnables); postAdd(element.getParent(), element, runnables); return false; } } if (kind == IJavaElementDelta.REMOVED) { Object parent = internalGetParent(element); if (element instanceof IPackageFragment) { // refresh package fragment root to allow filtering empty (parent) packages: bug 72923 if (fViewer.testFindItem(parent) != null) postRefresh(parent, PARENT, element, runnables); return true; } else if (element instanceof IPackageFragmentRoot) { // libs and class folders can show up twice (in library container and as resource at original location) IResource resource = element.getResource(); if (resource != null && !resource.exists()) postRemove(resource, runnables); } postRemove(element, runnables); if (parent instanceof IPackageFragment) postUpdateIcon((IPackageFragment) parent, runnables); // we are filtering out empty subpackages, so we // a package becomes empty we remove it from the viewer. if (isPackageFragmentEmpty(element.getParent())) { if (fViewer.testFindItem(parent) != null) postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } return false; } if (kind == IJavaElementDelta.ADDED) { Object parent = internalGetParent(element); // we are filtering out empty subpackages, so we // have to handle additions to them specially. if (parent instanceof IPackageFragment) { Object grandparent = internalGetParent(parent); // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View // avoid posting a refresh to an invisible parent if (parent.equals(fInput)) { postRefresh(parent, PARENT, element, runnables); } else { // refresh from grandparent if parent isn't visible yet if (fViewer.testFindItem(parent) == null) postRefresh(grandparent, GRANT_PARENT, element, runnables); else { postRefresh(parent, PARENT, element, runnables); } } return true; } else { if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).getKind() != IPackageFragmentRoot.K_SOURCE) { // libs and class folders can show up twice (in library container or under project, and as resource at original location) IResource resource = element.getResource(); if (resource != null) { Object resourceParent = super.internalGetParent(resource); if (resourceParent != null) { IJavaProject proj = element.getJavaProject(); if (fShowLibrariesNode || !resourceParent.equals(proj)) { postAdd(resourceParent, resource, runnables); } } } } postAdd(parent, element, runnables); } } if (elementType == IJavaElement.COMPILATION_UNIT || elementType == IJavaElement.CLASS_FILE) { if (kind == IJavaElementDelta.CHANGED) { // isStructuralCUChange already performed above postRefresh(element, ORIGINAL, element, runnables); } return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT_ROOT) { // the contents of an external JAR has changed if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } // the source attachment of a JAR has changed if ((flags & (IJavaElementDelta.F_SOURCEATTACHED | IJavaElementDelta.F_SOURCEDETACHED)) != 0) postUpdateIcon(element, runnables); if (isClassPathChange(delta)) { // throw the towel and do a full refresh of the affected java project. postRefresh(element.getJavaProject(), PROJECT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; }
From source file:com.redhat.ceylon.eclipse.code.hover.DocumentationHover.java
License:Open Source License
private static String getBaseURL(IJavaElement element, boolean isBinary) throws JavaModelException { if (isBinary) { // Source attachment usually does not include Javadoc resources // => Always use the Javadoc location as base: URL baseURL = JavaUI.getJavadocLocation(element, false); if (baseURL != null) { if (baseURL.getProtocol().equals("jar")) { // It's a JarURLConnection, which is not known to the browser widget. // Let's start the help web server: URL baseURL2 = PlatformUI.getWorkbench().getHelpSystem().resolve(baseURL.toExternalForm(), true);/*w w w . jav a 2 s.c o m*/ if (baseURL2 != null) { // can be null if org.eclipse.help.ui is not available baseURL = baseURL2; } } return baseURL.toExternalForm(); } } else { IResource resource = element.getResource(); if (resource != null) { /* * Too bad: Browser widget knows nothing about EFS and custom URL handlers, * so IResource#getLocationURI() does not work in all cases. * We only support the local file system for now. * A solution could be https://bugs.eclipse.org/bugs/show_bug.cgi?id=149022 . */ IPath location = resource.getLocation(); if (location != null) { return location.toFile().toURI().toString(); } } } return null; }
From source file:com.technophobia.substeps.junit.launcher.migration.SubstepsMigrationDelegate.java
License:Open Source License
/** * Returns a resource mapping for the given launch configuration, or * <code>null</code> if none. * //from ww w . j a va2 s. co m * @param config * working copy * @return resource or <code>null</code> * @throws CoreException * if an exception occurs mapping resource */ private static IResource getResource(final ILaunchConfiguration config) throws CoreException { final String projName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, (String) null); final String containerHandle = config.getAttribute(SubstepsLaunchConfigurationConstants.ATTR_TEST_CONTAINER, (String) null); final String typeName = config.getAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, (String) null); IJavaElement element = null; if (containerHandle != null && containerHandle.length() > 0) { element = JavaCore.create(containerHandle); } else if (projName != null && Path.ROOT.isValidSegment(projName)) { final IJavaProject javaProject = getJavaModel().getJavaProject(projName); if (javaProject.exists()) { if (typeName != null && typeName.length() > 0) { element = javaProject.findType(typeName); } if (element == null) { element = javaProject; } } else { final IProject project = javaProject.getProject(); if (project.exists() && !project.isOpen()) { return project; } } } IResource resource = null; if (element != null) { resource = element.getResource(); } return resource; }
From source file:de.devboost.eclipse.jdtutilities.ClassDependencyUtility.java
License:Open Source License
private void addClassToSearchResult(Set<String> result, IJavaElement javaElement) throws JavaModelException { if (javaElement == null) { return;//from w w w. jav a 2s .co m } IResource resource = javaElement.getResource(); if (resource == null) { return; } String path = resource.getFullPath().toString(); result.add(path); }
From source file:de.fu_berlin.inf.jtourbus.view.TourChangeListener.java
License:Open Source License
void visitInternal(IProgressMonitor pm, IJavaElementDelta delta) { IJavaElement elem = delta.getElement(); IJavaElementDelta[] children = delta.getAffectedChildren(); if (pm != null) pm.beginTask("", children.length + 2); if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) != 0) { if (delta.getKind() != IJavaElementDelta.CHANGED) { throw new RuntimeException("ASSERT: CHILDREN should always be CHANGE"); }/*from w w w.jav a 2s . c om*/ for (int i = 0; i < children.length; i++) { visit(pm, children[i]); } return; } switch (delta.getKind()) { case IJavaElementDelta.ADDED: { if (!((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0)) throw new RuntimeException("ASSERT: ADDED has no children"); switch (elem.getElementType()) { case IJavaElement.JAVA_MODEL: throw new RuntimeException("ASSERT: Adding Java Model not possible"); case IJavaElement.JAVA_PROJECT: throw new RuntimeException("ASSERT: Adding Java Project not possible"); case IJavaElement.PACKAGE_FRAGMENT_ROOT: // The user added a source folder for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.PACKAGE_FRAGMENT: // The user inserted a packaged for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.COMPILATION_UNIT: { ICompilationUnit cu = (ICompilationUnit) elem; if (cu.getPrimary().equals(cu)) { for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); } return; } default: ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); return; } } case IJavaElementDelta.REMOVED: if (!((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0)) throw new RuntimeException("REMOVED has children"); switch (elem.getElementType()) { case IJavaElement.JAVA_MODEL: throw new RuntimeException("ASSERT: Java Model not possible"); case IJavaElement.JAVA_PROJECT: fContentProvider.fTourPlan.removeAll(); return; case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: fContentProvider.fTourPlan.removeAll(); for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getJavaProject().getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.COMPILATION_UNIT: { ICompilationUnit cu = (ICompilationUnit) elem; if (cu.getPrimary().equals(cu)) { fContentProvider.fTourPlan.removeCU(cu); } return; } default: { ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); return; } } case IJavaElementDelta.CHANGED: // F_CONTENT && F_FINE_GRAINED if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0 && (delta.getFlags() & IJavaElementDelta.F_FINE_GRAINED) != 0) { ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); } // Closing without saving will trigger this event. We thus re-read // the file. if ((delta.getFlags() & IJavaElementDelta.F_PRIMARY_WORKING_COPY) != 0) { ICompilationUnit cu = (ICompilationUnit) delta.getElement(); /* FIXME */ redoCU(cu, pm); } break; } }
From source file:de.hentschel.visualdbc.datasource.ui.setting.JavaPackageSettingControl.java
License:Open Source License
/** * Sets the {@link IJavaElement} value.//from w ww. java 2 s . c o m * @param value The {@link IJavaElement} value to set. */ protected void setJavaValue(IJavaElement value) { IJavaElement packageElement = JDTUtil.getPackage((IJavaElement) value); if (packageElement != null) { // Is null for example if a java project is selected. oldPackage = packageElement; fileButton.setSelection(false); resourceButton.setSelection(false); packageButton.setSelection(true); lastButton = packageButton; updatePathText(packageButton); IResource resource = oldPackage.getResource(); if (resource != null) { oldResource = resource.getFullPath().toString(); File file = ResourceUtil.getLocation(resource); if (file != null) { oldFile = file.toString(); } } } else { setResourceValue(value.getResource()); } }
From source file:de.ovgu.cide.typing.jdt.checks.resolutions.ASTBindingFinderHelper.java
License:Open Source License
private static CompilationUnit getAST(IBinding binding) { IJavaElement element = binding.getJavaElement(); if (element == null) return null; IResource res = element.getResource(); if (!(res instanceof IFile)) return null; try {/*from w ww. j av a 2 s . c o m*/ return JDTParserWrapper.parseJavaFile((IFile) res); } catch (ParseException e) { e.printStackTrace(); // if in doubt no error return null; } }