/** * Determine if the editors list contains the editor descriptor. * * @param editors * The list of editors * @param editorDescriptor * The editor descriptor * @return <code>true</code> if the editors list contains the editor descriptor */ private boolean contains(List<IEditorDescriptor> editors, IEditorDescriptor editorDescriptor) { for (IEditorDescriptor currentEditorDescriptor : editors) { if (currentEditorDescriptor.getId().equals(editorDescriptor.getId())) { return true; } } return false; }
/** * Returns the image descriptor for the given editor descriptor, or <code>null</code> if it has no image. */ private ImageDescriptor getImageDescriptor(IEditorDescriptor editorDesc) { ImageDescriptor imageDesc = null; if (editorDesc == null) { imageDesc = fRegistry.getImageDescriptor(fNode.getIFile().getName()); } else { imageDesc = editorDesc.getImageDescriptor(); } if (imageDesc == null && editorDesc != null) { if (editorDesc.getId().equals(SYSTEM_EDITOR_ID)) { imageDesc = getSystemEditorImageDescriptor(fNode.getIFile().getFileExtension()); } } return imageDesc; }
private static String getEditorId(String fileName, IContentType type) { IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor descriptor = registry.getDefaultEditor(fileName, type); String id; if (descriptor == null || descriptor.isOpenExternal()) { id = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$ } else { id = descriptor.getId(); } return id; }
private static String getEditorId(IStorage storage) { String id; IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor descriptor = registry.getDefaultEditor(storage.getName()); if (descriptor == null || !descriptor.isInternal()) { id = EditorsUI.DEFAULT_TEXT_EDITOR_ID; } else { try { if (Utils.isTextEditor(descriptor)) { id = descriptor.getId(); } else { id = EditorsUI.DEFAULT_TEXT_EDITOR_ID; } } catch (CoreException e) { id = EditorsUI.DEFAULT_TEXT_EDITOR_ID; } } return id; }
@Override public Image getImage(Object element) { IEditorDescriptor d = (IEditorDescriptor) element; return (Image) resourceManager.get(d.getImageDescriptor()); } });
@Override public void dragStart(DragSourceEvent event) { fEditorInputDatas= new ArrayList<>(); ISelection selection= fProvider.getSelection(); if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection= (IStructuredSelection) selection; for (Iterator<?> iter= structuredSelection.iterator(); iter.hasNext();) { Object element= iter.next(); IEditorInput editorInput= EditorUtility.getEditorInput(element); if (editorInput != null && editorInput.getPersistable() != null) { try { String editorId= EditorUtility.getEditorID(editorInput); // see org.eclipse.ui.internal.ide.EditorAreaDropAdapter.openNonExternalEditor(..): IEditorRegistry editorReg= PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor editorDesc= editorReg.findEditor(editorId); if (editorDesc != null && !editorDesc.isOpenExternal()) { fEditorInputDatas.add(EditorInputTransfer.createEditorInputData(editorId, editorInput)); } } catch (PartInitException e) { JavaPlugin.log(e); } } } } event.doit= fEditorInputDatas.size() > 0; }
@Override public String getText(Object element) { return ((IEditorDescriptor) element).getLabel(); }
if (desc != null && !desc.isOpenExternal() && isLargeDocument(input)) { desc = getAlternateEditor(); if (desc == null) { } else if (desc.isInternal()) { } else if (desc.isOpenExternal()) { openExternalEditor((EditorDescriptor) desc, input);
private void initializeSuggestion() { if (fileName == null) { return; } IEditorRegistry editorRegistry = PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor suggestion = editorRegistry.getDefaultEditor(fileName); if (suggestion != null && suggestion.isInternal()) { selectedEditor = suggestion; } else { selectedEditor = findBestExternalEditor(); } boolean enableInternalList = selectedEditor == null || selectedEditor.isInternal(); internalButton.setSelection(enableInternalList); externalButton.setSelection(!enableInternalList); }
private static String getEditorId(IStorage storage) { String id; IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor descriptor = registry.getDefaultEditor(storage.getName()); if (descriptor == null || !descriptor.isInternal()) { id = EditorsUI.DEFAULT_TEXT_EDITOR_ID; } else { try { if (isTextEditor(descriptor)) { id = descriptor.getId(); } else { id = EditorsUI.DEFAULT_TEXT_EDITOR_ID; } } catch (CoreException e) { id = EditorsUI.DEFAULT_TEXT_EDITOR_ID; } } return id; }
/** * Creates the menu item for the editor descriptor. * * @param menu the menu to add the item to * @param descriptor the editor descriptor, or null for the system editor * @param preferredEditor the descriptor of the preferred editor, or <code>null</code> */ private void createMenuItem(Menu menu, final IEditorDescriptor descriptor, final IEditorDescriptor preferredEditor) { // XXX: Would be better to use bold here, but SWT does not support it. final MenuItem menuItem = new MenuItem(menu, SWT.RADIO); boolean isPreferred = preferredEditor != null && descriptor.getId().equals(preferredEditor.getId()); menuItem.setSelection(isPreferred); menuItem.setText(descriptor.getLabel()); Image image = getImage(descriptor); if (image != null) { menuItem.setImage(image); } Listener listener = event -> { switch (event.type) { case SWT.Selection: if (menuItem.getSelection()) { openEditor(descriptor, false); } break; } }; menuItem.addListener(SWT.Selection, listener); }
@Override public Image getImage(Object element) { Image res = ((IEditorDescriptor) element).getImageDescriptor().createImage(); if (res != null) { disposableEditorIcons.add(res); } return res; } });
@Override public void dragStart(DragSourceEvent event) { fEditorInputDatas= new ArrayList<>(); ISelection selection= fProvider.getSelection(); if (selection instanceof IStructuredSelection) { IStructuredSelection structuredSelection= (IStructuredSelection) selection; for (Iterator<?> iter= structuredSelection.iterator(); iter.hasNext();) { Object element= iter.next(); IEditorInput editorInput= EditorUtility.getEditorInput(element); if (editorInput != null && editorInput.getPersistable() != null) { try { String editorId= EditorUtility.getEditorID(editorInput); // see org.eclipse.ui.internal.ide.EditorAreaDropAdapter.openNonExternalEditor(..): IEditorRegistry editorReg= PlatformUI.getWorkbench().getEditorRegistry(); IEditorDescriptor editorDesc= editorReg.findEditor(editorId); if (editorDesc != null && !editorDesc.isOpenExternal()) { fEditorInputDatas.add(EditorInputTransfer.createEditorInputData(editorId, editorInput)); } } catch (PartInitException e) { JavaPlugin.log(e); } } } } event.doit= fEditorInputDatas.size() > 0; }
/** * Rebuild the internal editor mapping. */ private void rebuildInternalEditorMap() { // Allocate a new map. mapIDtoEditor = initialIdToEditorMap(mapIDtoEditor.size()); // Add plugin editors. for (IEditorDescriptor desc : sortedEditorsFromPlugins) { mapIDtoEditor.put(desc.getId(), desc); } }
private ITextEditor openNewTextEditor(IFile file, IWorkbenchPage activePage) throws PartInitException { IEditorDescriptor desc= IDE.getDefaultEditor(file); if (desc != null) { String editorID= desc.getId(); IEditorPart editor; if (desc.isInternal()) { editor= activePage.openEditor(new FileEditorInput(file), editorID); if (editor instanceof ITextEditor) { if (editor instanceof IReusableEditor) fEditor= (IReusableEditor) editor; return (ITextEditor)editor; } activePage.closeEditor(editor, false); } } IEditorPart editor= activePage.openEditor(new FileEditorInput(file), "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$ return (ITextEditor)editor; }
private static String getEditorId(String fileName, IContentType type) { IEditorRegistry registry = PlatformUI.getWorkbench() .getEditorRegistry(); IEditorDescriptor descriptor = registry .getDefaultEditor(fileName, type); String id; if (descriptor == null || descriptor.isOpenExternal()) { id = "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$ } else { id = descriptor.getId(); } return id; }
/** * Returns the image descriptor for the given editor descriptor, * or null if it has no image. */ private ImageDescriptor getImageDescriptor(IEditorDescriptor editorDesc) { ImageDescriptor imageDesc = null; if (editorDesc == null) { imageDesc = registry.getImageDescriptor(getFileResource().getName()); //TODO: is this case valid, and if so, what are the implications for content-type editor bindings? } else { imageDesc = editorDesc.getImageDescriptor(); } if (imageDesc == null) { if (editorDesc.getId().equals(IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)) { imageDesc = registry.getSystemExternalEditorImageDescriptor(getFileResource().getName()); } } return imageDesc; }