Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java')
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java58
1 files changed, 57 insertions, 1 deletions
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
index cc4dca417..37fe7dc48 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/SearchPart.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -22,6 +22,7 @@ import org.eclipse.core.runtime.jobs.IJobChangeListener;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.help.HelpSystem;
import org.eclipse.help.internal.base.BaseHelpSystem;
+import org.eclipse.help.internal.base.remote.RemoteStatusData;
import org.eclipse.help.internal.search.federated.FederatedSearchEntry;
import org.eclipse.help.internal.search.federated.FederatedSearchJob;
import org.eclipse.help.search.ISearchEngineResult;
@@ -32,8 +33,10 @@ import org.eclipse.help.ui.internal.IHelpUIConstants;
import org.eclipse.help.ui.internal.Messages;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.preference.PreferenceManager;
+import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
@@ -42,6 +45,7 @@ import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@@ -58,6 +62,7 @@ import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.FormText;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
@@ -71,6 +76,10 @@ public class SearchPart extends AbstractFormPart implements IHelpPart, IHelpUICo
private static final String HREF_SEARCH_HELP = "/org.eclipse.platform.doc.user/tasks/help_search.htm"; //$NON-NLS-1$
private static boolean SEARCH_HELP_AVAILABLE = false;
+
+
+ private ImageHyperlink remoteStatusLink;
+ private boolean wasHelpUnavailable = false;
static {
InputStream is = HelpSystem.getHelpContent(HREF_SEARCH_HELP);
@@ -232,10 +241,23 @@ public class SearchPart extends AbstractFormPart implements IHelpPart, IHelpUICo
});
createScopeSection(toolkit);
+
+ createRemoteStatusLink(toolkit);
toolkit.paintBordersFor(container);
jobListener = new JobListener();
Job.getJobManager().addJobChangeListener(jobListener);
}
+
+ public boolean isStale()
+ {
+ if (wasHelpUnavailable!=RemoteStatusData.isAnyRemoteHelpUnavailable())
+ {
+ wasHelpUnavailable=RemoteStatusData.isAnyRemoteHelpUnavailable();
+ return true;
+ }
+
+ return false;
+ }
private void createScopeSection(FormToolkit toolkit) {
TableWrapData td;
@@ -281,7 +303,35 @@ public class SearchPart extends AbstractFormPart implements IHelpPart, IHelpUICo
updateSearchWordText();
toolkit.paintBordersFor(detailGroup);
}
+
+ private void createRemoteStatusLink(FormToolkit toolkit){
+ TableWrapData td;
+
+
+ Image warningImage = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
+
+ remoteStatusLink = toolkit.createImageHyperlink(container, SWT.NULL);
+ remoteStatusLink.setText(Messages.remoteHelpUnavailable);
+ remoteStatusLink.setImage(warningImage);
+ remoteStatusLink.addHyperlinkListener(new HyperlinkAdapter() {
+
+ public void linkActivated(HyperlinkEvent e) {
+ doRemoteStatus();
+ }
+ });
+
+ if (wasHelpUnavailable = RemoteStatusData.isAnyRemoteHelpUnavailable())
+ remoteStatusLink.setVisible(true);
+ else
+ remoteStatusLink.setVisible(false);
+
+ td = new TableWrapData();
+ td.colspan = 2;
+ td.align = TableWrapData.FILL;
+ remoteStatusLink.setLayoutData(td);
+ }
+
private void createAdvancedLink(Composite parent, FormToolkit toolkit) {
advancedLink = toolkit.createHyperlink(parent, Messages.FederatedSearchPart_advanced, SWT.NULL);
advancedLink.addHyperlinkListener(new HyperlinkAdapter() {
@@ -569,6 +619,10 @@ public class SearchPart extends AbstractFormPart implements IHelpPart, IHelpUICo
updateMasters(set);
}
+ private void doRemoteStatus() {
+ SearchPart.this.parent.showURL("org.eclipse.help.webapp/SearchNetworkHelpStatus.html",true); //$NON-NLS-1$
+ }
+
private void doChangeScopeSet() {
ScopeSetDialog dialog = new ScopeSetDialog(container.getShell(), scopeSetManager, parent
.getEngineManager());
@@ -640,6 +694,8 @@ public class SearchPart extends AbstractFormPart implements IHelpPart, IHelpUICo
searchPending = false;
doSearch(searchWordCombo.getText());
}
+
+ remoteStatusLink.setVisible(RemoteStatusData.isAnyRemoteHelpUnavailable());
}
public String getId() {

Back to the top