Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDejan Gloszic2005-01-16 22:15:17 +0000
committerDejan Gloszic2005-01-16 22:15:17 +0000
commit3bb76170823994227bd6a6cb889ab1eb34475c6d (patch)
treedf6053bc0985e30f7bc23b4c9a894db8e4c740d4
parentf47b41c2f9479f8698712070ea72d64037a4ebee (diff)
downloadeclipse.platform.ua-3bb76170823994227bd6a6cb889ab1eb34475c6d.tar.gz
eclipse.platform.ua-3bb76170823994227bd6a6cb889ab1eb34475c6d.tar.xz
eclipse.platform.ua-3bb76170823994227bd6a6cb889ab1eb34475c6d.zip
*** empty log message ***
-rw-r--r--org.eclipse.help.ui/icons/eclipse.gifbin0 -> 308 bytes
-rw-r--r--org.eclipse.help.ui/icons/external_browser.gifbin0 -> 1013 bytes
-rw-r--r--org.eclipse.help.ui/plugin.xml15
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java14
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java7
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java92
6 files changed, 92 insertions, 36 deletions
diff --git a/org.eclipse.help.ui/icons/eclipse.gif b/org.eclipse.help.ui/icons/eclipse.gif
new file mode 100644
index 000000000..eb7b90c76
--- /dev/null
+++ b/org.eclipse.help.ui/icons/eclipse.gif
Binary files differ
diff --git a/org.eclipse.help.ui/icons/external_browser.gif b/org.eclipse.help.ui/icons/external_browser.gif
new file mode 100644
index 000000000..a89f276c2
--- /dev/null
+++ b/org.eclipse.help.ui/icons/external_browser.gif
Binary files differ
diff --git a/org.eclipse.help.ui/plugin.xml b/org.eclipse.help.ui/plugin.xml
index 51339edaf..a253d768e 100644
--- a/org.eclipse.help.ui/plugin.xml
+++ b/org.eclipse.help.ui/plugin.xml
@@ -93,9 +93,10 @@
<engine
scopeFactory="org.eclipse.help.ui.internal.search.LocalSearchScopeFactory"
label="Local Help"
+ icon="icons/topic_small.gif"
class="org.eclipse.help.internal.search.federated.LocalHelp"
- pageClass="org.eclipse.help.ui.internal.search.LocalHelpPage"
- id="org.eclipse.help.ui.localSearch">
+ id="org.eclipse.help.ui.localSearch"
+ pageClass="org.eclipse.help.ui.internal.search.LocalHelpPage">
<description>
Searches the best help system in the world, but only locally.
</description>
@@ -103,9 +104,10 @@
<engine
scopeFactory="org.eclipse.help.ui.internal.search.GoogleScopeFactory"
label="Google"
+ icon="icons/external_browser.gif"
class="org.eclipse.help.ui.internal.search.Google"
- id="org.eclipse.help.ui.google"
- pageClass="org.eclipse.help.ui.internal.search.GooglePage">
+ pageClass="org.eclipse.help.ui.internal.search.GooglePage"
+ id="org.eclipse.help.ui.google">
<description>
Searches another best system in the world on the Web (but not locally). We should have bought Google when it was $5 :-(.
</description>
@@ -114,9 +116,10 @@
<engine
scopeFactory="org.eclipse.help.ui.internal.search.EclipseOrgScopeFactory"
label="Eclipse.org"
+ icon="icons/eclipse.gif"
class="org.eclipse.help.ui.internal.search.EclipseOrg"
- id="org.eclipse.help.ui.eclipseorg"
- pageClass="org.eclipse.help.ui.internal.search.EclipseOrgPage">
+ pageClass="org.eclipse.help.ui.internal.search.EclipseOrgPage"
+ id="org.eclipse.help.ui.eclipseorg">
<description>
Searches mailing lists, news groups, articles and other documents on Eclipse.org web site.
</description>
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
index 4dead6551..f77542887 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java
@@ -16,6 +16,7 @@ import java.util.*;
import org.eclipse.core.runtime.*;
import org.eclipse.jface.resource.*;
import org.eclipse.swt.graphics.Image;
+import org.osgi.framework.Bundle;
/**
* Uses a resource bundle to load images and strings from a property file. This
* class needs to properly use the desired locale.
@@ -56,6 +57,19 @@ public class HelpUIResources {
return desc;
}
+ public static ImageDescriptor getImageDescriptor(String bundleId, String name) {
+ ImageRegistry registry = HelpUIPlugin.getDefault().getImageRegistry();
+ ImageDescriptor desc = registry.getDescriptor(name);
+ if (desc==null) {
+ Bundle bundle = Platform.getBundle(bundleId);
+ if (bundle==null) return null;
+ URL url = Platform.find(bundle, new Path(name));
+ desc = ImageDescriptor.createFromURL(url);
+ registry.put(name, desc);
+ }
+ return desc;
+ }
+
/**
* Returns an image from a property file
* @param name simple image file name
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java
index 0a045bcc0..e85d34727 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java
@@ -56,8 +56,11 @@ public class EngineDescriptor {
if (image!=null)
return image;
String icon = config.getAttribute(IHelpUIConstants.ATT_ICON);
- if (icon!=null)
- image = HelpUIResources.getImage(icon);
+ if (icon!=null) {
+ String bundleId = config.getNamespace();
+ HelpUIResources.getImageDescriptor(bundleId, icon);
+ return HelpUIResources.getImage(icon);
+ }
else
image = HelpUIResources.getImage(IHelpUIConstants.IMAGE_HELP_SEARCH);
return image;
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java
index 25b9ed61b..51153c40a 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java
@@ -17,6 +17,7 @@ import org.eclipse.help.internal.search.federated.ISearchEngineResult;
import org.eclipse.help.ui.internal.*;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.*;
import org.eclipse.ui.forms.FormColors;
import org.eclipse.ui.forms.events.*;
import org.eclipse.ui.forms.events.HyperlinkAdapter;
@@ -33,13 +34,21 @@ public class EngineResultSection {
private FormText searchResults;
+ private ImageHyperlink prevLink;
+
+ private ImageHyperlink nextLink;
+
private boolean needsUpdating;
private FederatedSearchSorter sorter;
- private int shortSize = 10;
+ private int HITS_PER_PAGE = 10;
+
+ private static final String HREF_PREV = "__prev__";
+
+ private static final String HREF_NEXT = "__next__";
- private boolean shortMode = true;
+ private int resultOffset = 0;
private boolean showCategories = false;
@@ -61,8 +70,9 @@ public class EngineResultSection {
public Control createControl(Composite parent, final FormToolkit toolkit) {
section = toolkit.createSection(parent, Section.CLIENT_INDENT
| Section.COMPACT | Section.TWISTIE | Section.EXPANDED);
- // section.marginHeight = 10;
- createFormText(toolkit);
+ //section.marginHeight = 10;
+ createFormText(section, toolkit);
+ section.setClient(searchResults);
updateSectionTitle();
section.addExpansionListener(new IExpansionListener() {
public void expansionStateChanging(ExpansionEvent e) {
@@ -76,28 +86,40 @@ public class EngineResultSection {
return section;
}
- private void createFormText(FormToolkit toolkit) {
- searchResults = toolkit.createFormText(section, true);
+ private void createFormText(Composite parent, FormToolkit toolkit) {
+ searchResults = toolkit.createFormText(parent, true);
searchResults.setColor(FormColors.TITLE, toolkit.getColors().getColor(
FormColors.TITLE));
searchResults.marginHeight = 5;
- section.setClient(searchResults);
String topicKey = IHelpUIConstants.IMAGE_FILE_F1TOPIC;
String nwKey = IHelpUIConstants.IMAGE_NW;
String searchKey = IHelpUIConstants.IMAGE_HELP_SEARCH;
searchResults.setImage(topicKey, HelpUIResources.getImage(topicKey));
searchResults.setImage(nwKey, HelpUIResources.getImage(nwKey));
searchResults.setImage(searchKey, HelpUIResources.getImage(searchKey));
+ searchResults.setImage(ISharedImages.IMG_TOOL_FORWARD, PlatformUI
+ .getWorkbench().getSharedImages().getImage(
+ ISharedImages.IMG_TOOL_FORWARD));
+ searchResults.setImage(ISharedImages.IMG_TOOL_BACK, PlatformUI
+ .getWorkbench().getSharedImages().getImage(
+ ISharedImages.IMG_TOOL_BACK));
+ searchResults.setImage(desc.getId(), desc.getIconImage());
searchResults.addHyperlinkListener(new HyperlinkAdapter() {
public void linkActivated(HyperlinkEvent e) {
Object href = e.getHref();
- if (href.equals("__more__")) { //$NON-NLS-1$
- toggleMore();
+ if (HREF_NEXT.equals(href)) {
+ resultOffset += HITS_PER_PAGE;
+ asyncUpdateResults(false);
+ } else if (HREF_PREV.equals(href)) {
+ resultOffset -= HITS_PER_PAGE;
+ asyncUpdateResults(false);
} else
part.doOpenLink(e.getHref());
}
});
searchResults.setText("", false, false); //$NON-NLS-1$
+ // searchResults.setLayoutData(new
+ // TableWrapData(TableWrapData.FILL_GRAB));
needsUpdating = true;
}
@@ -145,12 +167,10 @@ public class EngineResultSection {
StringBuffer buff = new StringBuffer();
buff.append("<form>"); //$NON-NLS-1$
IHelpResource oldCat = null;
- for (int i = 0; i < results.length; i++) {
- if (shortMode && i == shortSize) {
- buff.append("<p><a href=\"__more__\">"); //$NON-NLS-1$
- buff.append(HelpUIResources
- .getString("EngineResultSection.moreResults")); //$NON-NLS-1$
- buff.append("</a></p>"); //$NON-NLS-1$
+ boolean earlyExit = false;
+
+ for (int i = resultOffset; i < hits.size(); i++) {
+ if (i - resultOffset == HITS_PER_PAGE) {
break;
}
ISearchEngineResult hit = results[i];
@@ -178,7 +198,7 @@ public class EngineResultSection {
int bindent = showCategories && cat != null ? 5 : 0;
buff
.append("<li indent=\"" + indent + "\" bindent=\"" + bindent + "\" style=\"image\" value=\""); //$NON-NLS-1$
- buff.append(IHelpUIConstants.IMAGE_FILE_F1TOPIC);
+ buff.append(desc.getId());
buff.append("\">"); //$NON-NLS-1$
buff.append("<a href=\""); //$NON-NLS-1$
buff.append(escapeSpecialChars(hit.getHref()));
@@ -207,12 +227,33 @@ public class EngineResultSection {
*/
buff.append("</li>"); //$NON-NLS-1$
}
- if (!shortMode && results.length > shortSize) {
- buff.append("<p><a href=\"__more__\">"); //$NON-NLS-1$
- buff.append(HelpUIResources
- .getString("EngineResultSection.lessResults")); //$NON-NLS-1$
- buff.append("</a></p>"); //$NON-NLS-1$
+ if (hits.size() > HITS_PER_PAGE) {
+ buff.append("<p>");
+ if (resultOffset > 0) {
+ // add prev
+ buff.append("<a href=\"");
+ buff.append(HREF_PREV);
+ buff.append("\">");
+ buff.append("<img href=\"");
+ buff.append(ISharedImages.IMG_TOOL_BACK);
+ buff.append("\"/>");
+ buff.append(" Prev");
+ buff.append("</a> ");
+ }
+ if (hits.size() - resultOffset > HITS_PER_PAGE) {
+ // add next
+ buff.append("<a href=\"");
+ buff.append(HREF_NEXT);
+ buff.append("\">");
+ buff.append("Next ");
+ buff.append("<img href=\"");
+ buff.append(ISharedImages.IMG_TOOL_FORWARD);
+ buff.append("\"/>");
+ buff.append("</a>");
+ }
+ buff.append("</p>");
}
+ //buff.append("<p/>");
buff.append("</form>"); //$NON-NLS-1$
searchResults.setText(buff.toString(), true, false);
section.layout();
@@ -220,11 +261,6 @@ public class EngineResultSection {
part.reflow();
}
- private void toggleMore() {
- shortMode = !shortMode;
- asyncUpdateResults(false);
- }
-
private String escapeSpecialChars(String value) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < value.length(); i++) {
@@ -260,8 +296,8 @@ public class EngineResultSection {
+ hits.size()));
else
section.setText(HelpUIResources.getString(
- "EngineResultSection.sectionTitle.hits", desc.getLabel(), ""
- + hits.size()));
+ "EngineResultSection.sectionTitle.hits", desc.getLabel(),
+ "" + hits.size()));
}
public void dispose() {

Back to the top