diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/AbstractInfoView.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/AbstractInfoView.java index 76559d3..16c5ef7 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/AbstractInfoView.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/AbstractInfoView.java @@ -410,8 +410,8 @@ protected void setLinkingEnabled(boolean enabled) { fLinking= enabled; - if (fLinking && fLastSelectionProvider != null) { - computeAndSetInput(fLastSelectionProvider); + if (fLinking && fCurrentViewInput != null) { + setInput(fCurrentViewInput); } } diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java index 7a11720..5439a27 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java @@ -321,9 +321,26 @@ @Override public void run() { setLinkingEnabled(!isLinkingEnabled()); + JavaPluginImages.setLocalImageDescriptors(fToggleLinkAction, "synced.gif"); //$NON-NLS-1$ } } + @Override + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + super.selectionChanged(part, selection); + + if (isLinkingEnabled()) { + //for an invalid input, change the icon + if ((selection.isEmpty()) && fCurrentViewInput != null && !fCurrentViewInput.exists()) { + JavaPluginImages.setLocalImageDescriptors(fToggleLinkAction, "sync_broken.gif"); //$NON-NLS-1$ + } else { + JavaPluginImages.setLocalImageDescriptors(fToggleLinkAction, "synced.gif"); //$NON-NLS-1$ + } + } + + } + + /** * Action to open the selection in an external browser. If the selection is a java element its * corresponding javadoc is shown if possible. If it is an URL the URL's content is shown.