diff options
author | Dejan Gloszic | 2005-01-16 22:15:17 +0000 |
---|---|---|
committer | Dejan Gloszic | 2005-01-16 22:15:17 +0000 |
commit | 3bb76170823994227bd6a6cb889ab1eb34475c6d (patch) | |
tree | df6053bc0985e30f7bc23b4c9a894db8e4c740d4 | |
parent | f47b41c2f9479f8698712070ea72d64037a4ebee (diff) | |
download | eclipse.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.gif | bin | 0 -> 308 bytes | |||
-rw-r--r-- | org.eclipse.help.ui/icons/external_browser.gif | bin | 0 -> 1013 bytes | |||
-rw-r--r-- | org.eclipse.help.ui/plugin.xml | 15 | ||||
-rw-r--r-- | org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HelpUIResources.java | 14 | ||||
-rw-r--r-- | org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineDescriptor.java | 7 | ||||
-rw-r--r-- | org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/EngineResultSection.java | 92 |
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 Binary files differnew file mode 100644 index 000000000..eb7b90c76 --- /dev/null +++ b/org.eclipse.help.ui/icons/eclipse.gif diff --git a/org.eclipse.help.ui/icons/external_browser.gif b/org.eclipse.help.ui/icons/external_browser.gif Binary files differnew file mode 100644 index 000000000..a89f276c2 --- /dev/null +++ b/org.eclipse.help.ui/icons/external_browser.gif 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() { |