private static JavaEditorTextHoverDescriptor[] createDescriptors(IConfigurationElement[] elements) { List<JavaEditorTextHoverDescriptor> result= new ArrayList<>(elements.length); for (int i= 0; i < elements.length; i++) { IConfigurationElement element= elements[i]; if (HOVER_TAG.equals(element.getName())) { JavaEditorTextHoverDescriptor desc= new JavaEditorTextHoverDescriptor(element); result.add(desc); } } return result.toArray(new JavaEditorTextHoverDescriptor[result.size()]); }
/** * Returns all Java editor text hovers contributed to the workbench. * * @return an array with the contributed text hovers */ public static JavaEditorTextHoverDescriptor[] getContributedHovers() { IExtensionRegistry registry= Platform.getExtensionRegistry(); IConfigurationElement[] elements= registry.getConfigurationElementsFor(JAVA_EDITOR_TEXT_HOVER_EXTENSION_POINT); JavaEditorTextHoverDescriptor[] hoverDescs= createDescriptors(elements); initializeFromPreferences(hoverDescs); return hoverDescs; }
@Override public IConfigurationElement getConfigurationElement(Object object) { return ((JavaEditorTextHoverDescriptor)object).getConfigurationElement(); } };
fJavaEditorTextHoverDescriptors= JavaEditorTextHoverDescriptor.getContributedHovers(); ConfigurationElementSorter sorter= new ConfigurationElementSorter() { if (PreferenceConstants.ID_BESTMATCH_HOVER.equals(fJavaEditorTextHoverDescriptors[i].getId())) { JavaEditorTextHoverDescriptor hoverDescriptor= fJavaEditorTextHoverDescriptors[i]; for (int j= i; j > 0; j--)
String modifierString= idToModifier.get(getContributedHovers()[i].getId()); boolean enabled= true; if (modifierString == null) fHoverConfigs[i].fStateMask= JavaEditorTextHoverDescriptor.computeStateMask(modifierString); fHoverConfigs[i].fStateMask= Integer.parseInt(idToModifierMask.get(getContributedHovers()[i].getId())); } catch (NumberFormatException ex) { fHoverConfigs[i].fStateMask= -1;
@Override public int hashCode() { return getId().hashCode(); }
private void checkTextHovers() { if (fTextHoverSpecifications.size() == 0) return; for (Iterator iterator= new ArrayList(fTextHoverSpecifications).iterator(); iterator.hasNext(); ) { JavaEditorTextHoverDescriptor spec= (JavaEditorTextHoverDescriptor) iterator.next(); IJavaEditorTextHover hover= spec.createTextHover(); if (hover != null) { hover.setEditor(getEditor()); addTextHover(hover); fTextHoverSpecifications.remove(spec); } } }
private void handleModifierModified() { int i= fHoverTable.getSelectionIndex(); if (i == -1) return; String modifiers= fModifierEditor.getText(); fHoverConfigs[i].fModifierString= modifiers; fHoverConfigs[i].fStateMask= JavaEditorTextHoverDescriptor.computeStateMask(modifiers); // update table fHoverTableViewer.refresh(getContributedHovers()[i]); updateStatus(fHoverConfigs[i]); }
private void handleHoverListSelection() { int i= fHoverTable.getSelectionIndex(); if (i == -1) { if (fHoverTable.getSelectionCount() == 0) fModifierEditor.setEnabled(false); return; } boolean enabled= fHoverConfigs[i].fIsEnabled; fModifierEditor.setEnabled(enabled); fModifierEditor.setText(fHoverConfigs[i].fModifierString); String description= getContributedHovers()[i].getDescription(); if (description == null) description= ""; //$NON-NLS-1$ fDescription.setText(description); }
/** * Returns the hover's label. * * @return the label */ public String getLabel() { String label= fElement.getAttribute(LABEL_ATTRIBUTE); if (label != null) return label; // Return simple class name label= getHoverClassName(); int lastDot= label.lastIndexOf('.'); if (lastDot >= 0 && lastDot < label.length() - 1) return label.substring(lastDot + 1); else return label; }
/** * Creates the Java editor text hover. * * @return the text hover */ public IJavaEditorTextHover createTextHover() { String pluginId = fElement.getContributor().getName(); boolean isHoversPlugInActivated= Platform.getBundle(pluginId).getState() == Bundle.ACTIVE; if (isHoversPlugInActivated || canActivatePlugIn()) { try { return (IJavaEditorTextHover)fElement.createExecutableExtension(CLASS_ATTRIBUTE); } catch (CoreException x) { JavaPlugin.log(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), 0, JavaHoverMessages.JavaTextHover_createTextHover, null)); } } return null; }
String modifierString= (String)idToModifier.get(getContributedHovers()[i].getId()); boolean enabled= true; if (modifierString == null) fHoverConfigs[i].fStateMask= JavaEditorTextHoverDescriptor.computeStateMask(modifierString); fHoverConfigs[i].fStateMask= Integer.parseInt((String)idToModifierMask.get(getContributedHovers()[i].getId())); } catch (NumberFormatException ex) { fHoverConfigs[i].fStateMask= -1;
fJavaEditorTextHoverDescriptors= JavaEditorTextHoverDescriptor.getContributedHovers(); ConfigurationElementSorter sorter= new ConfigurationElementSorter() { if (PreferenceConstants.ID_BESTMATCH_HOVER.equals(fJavaEditorTextHoverDescriptors[i].getId())) { JavaEditorTextHoverDescriptor hoverDescriptor= fJavaEditorTextHoverDescriptors[i]; for (int j= i; j > 0; j--)
private void checkTextHovers() { if (fTextHoverSpecifications == null) return; boolean done= true; int i= -1; for (Iterator<JavaEditorTextHoverDescriptor> iterator= fTextHoverSpecifications.iterator(); iterator.hasNext();) { i++; JavaEditorTextHoverDescriptor spec= iterator.next(); if (spec == null) continue; done= false; IJavaEditorTextHover hover= spec.createTextHover(); if (hover != null) { hover.setEditor(getEditor()); fTextHoverSpecifications.set(i, null); } if (i == fInstantiatedTextHovers.size()) fInstantiatedTextHovers.add(i, hover); else fInstantiatedTextHovers.set(i, hover); } if (done) fTextHoverSpecifications= null; }
private void handleModifierModified() { int i= fHoverTable.getSelectionIndex(); if (i == -1) return; String modifiers= fModifierEditor.getText(); fHoverConfigs[i].fModifierString= modifiers; fHoverConfigs[i].fStateMask= JavaEditorTextHoverDescriptor.computeStateMask(modifiers); // update table fHoverTableViewer.refresh(getContributedHovers()[i]); updateStatus(fHoverConfigs[i]); }
private void handleHoverListSelection() { int i= fHoverTable.getSelectionIndex(); if (i == -1) { if (fHoverTable.getSelectionCount() == 0) fModifierEditor.setEnabled(false); return; } boolean enabled= fHoverConfigs[i].fIsEnabled; fModifierEditor.setEnabled(enabled); fModifierEditor.setText(fHoverConfigs[i].fModifierString); String description= getContributedHovers()[i].getDescription(); if (description == null) description= ""; //$NON-NLS-1$ fDescription.setText(description); }
/** * Returns the hover's label. * * @return the label */ public String getLabel() { String label= fElement.getAttribute(LABEL_ATTRIBUTE); if (label != null) return label; // Return simple class name label= getHoverClassName(); int lastDot= label.lastIndexOf('.'); if (lastDot >= 0 && lastDot < label.length() - 1) return label.substring(lastDot + 1); else return label; }
/** * Creates the Java editor text hover. * * @return the text hover */ public IJavaEditorTextHover createTextHover() { String pluginId = fElement.getContributor().getName(); boolean isHoversPlugInActivated= Platform.getBundle(pluginId).getState() == Bundle.ACTIVE; if (isHoversPlugInActivated || canActivatePlugIn()) { try { return (IJavaEditorTextHover)fElement.createExecutableExtension(CLASS_ATTRIBUTE); } catch (CoreException x) { JavaPlugin.log(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), 0, JavaHoverMessages.JavaTextHover_createTextHover, null)); } } return null; }
String modifierString= idToModifier.get(getContributedHovers()[i].getId()); boolean enabled= true; if (modifierString == null) fHoverConfigs[i].fStateMask= JavaEditorTextHoverDescriptor.computeStateMask(modifierString); fHoverConfigs[i].fStateMask= Integer.parseInt(idToModifierMask.get(getContributedHovers()[i].getId())); } catch (NumberFormatException ex) { fHoverConfigs[i].fStateMask= -1;