Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Goldthorpe2008-08-05 17:27:54 +0000
committerChris Goldthorpe2008-08-05 17:27:54 +0000
commit689961619b7e34690b02bfa084182b5145bf7ba8 (patch)
tree25305f8f0f1c9b8e8cc273fc1cd68959bded38f4 /org.eclipse.help.ui/src
parent23cc1408ed1a588bc602ecbf0fbc2d1423aed758 (diff)
downloadeclipse.platform.ua-689961619b7e34690b02bfa084182b5145bf7ba8.tar.gz
eclipse.platform.ua-689961619b7e34690b02bfa084182b5145bf7ba8.tar.xz
eclipse.platform.ua-689961619b7e34690b02bfa084182b5145bf7ba8.zip
Bug 215941 – [Help] Help content for dialogs should open in a new window
Diffstat (limited to 'org.eclipse.help.ui/src')
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java7
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java4
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties18
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java136
-rw-r--r--org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java8
5 files changed, 82 insertions, 91 deletions
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
index 3e8861a63..07be12937 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/DefaultHelpUI.java
@@ -300,10 +300,11 @@ public class DefaultHelpUI extends AbstractHelpUI {
String contextText = context.getText();
IHelpResource[] topics = context.getRelatedTopics();
boolean isSingleChoiceWithoutDescription = contextText == null && topics.length == 1;
- boolean openInEditor = pref.getBoolean(IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
- if (isSingleChoiceWithoutDescription && openInEditor) {
+ String openMode = pref.getString(IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE);
+ if (isSingleChoiceWithoutDescription && IHelpBaseConstants.P_IN_EDITOR.equals(openMode)) {
showInWorkbenchBrowser(topics[0].getHref(), true);
-
+ } else if (isSingleChoiceWithoutDescription && IHelpBaseConstants.P_IN_BROWSER.equals(openMode)) {
+ BaseHelpSystem.getHelpDisplay().displayHelpResource(topics[0].getHref(), true);
} else {
IWorkbenchPart activePart = page.getActivePart();
Control c = window.getShell().getDisplay().getFocusControl();
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java
index acca005ce..b8322f19c 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.java
@@ -111,8 +111,7 @@ public final class Messages extends NLS {
public static String NewEngineWizard_wtitle;
public static String BrowserPart_showExternalTooltip;
public static String HelpPreferencePage_message;
- public static String HelpPreferencePage_winfopop;
- public static String HelpPreferencePage_dinfopop;
+ public static String HelpPreferencePage_infopop;
public static String BrowserPart_bookmarkTooltip;
public static String BrowserPart_highlightTooltip;
public static String BrowserPart_printTooltip;
@@ -152,6 +151,7 @@ public final class Messages extends NLS {
public static String HelpPreferencePage_olabel;
public static String HelpPreferencePage_openInPlace;
public static String HelpPreferencePage_openInEditor;
+ public static String HelpPreferencePage_openInBrowser;
public static String ReusableHelpPart_internalBrowserTitle;
public static String ReusableHelpPart_internalWebBrowserError;
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties
index 049286575..ea97bcb2c 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/Messages.properties
@@ -127,15 +127,15 @@ SearchResultsPart_showDescriptionAction_tooltip=Show result descriptions
# Preference pages
HelpPreferencePage_message=See <a>''{0}''</a> for configuring the external browser used to display help topics.
HelpPreferencePage_openModeGroup=Open Modes
-HelpPreferencePage_winfopop= &in an infopop
-HelpPreferencePage_dinfopop=in an in&fopop
-HelpPreferencePage_olabel=Open help view documents
-HelpPreferencePage_openInPlace=in-&place
-HelpPreferencePage_openInEditor=in the &editor area
-HelpPreferencePage_wlabel=Open window context help
-HelpPreferencePage_view=in a dynamic help &view
-HelpPreferencePage_dlabel=Open dialog context help
-HelpPreferencePage_tray=in a dialog &tray
+HelpPreferencePage_infopop= In an infopop
+HelpPreferencePage_olabel=Open help &view documents
+HelpPreferencePage_openInPlace=In place
+HelpPreferencePage_openInEditor=In the editor area
+HelpPreferencePage_openInBrowser=In a browser
+HelpPreferencePage_wlabel=Open &window context help
+HelpPreferencePage_view=In the dynamic help view
+HelpPreferencePage_dlabel=Open &dialog context help
+HelpPreferencePage_tray=In a dialog tray
HelpPreferencePage_search=Search
HelpContentPreferencePage_remote=&Include help content from a remote infocenter
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java
index 5e69f41cd..a399b6702 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/preferences/HelpPreferencePage.java
@@ -18,7 +18,6 @@ import org.eclipse.help.internal.base.IHelpBaseConstants;
import org.eclipse.help.internal.browser.BrowserManager;
import org.eclipse.help.ui.internal.IHelpUIConstants;
import org.eclipse.help.ui.internal.Messages;
-import org.eclipse.help.ui.internal.util.FontUtils;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.IPreferenceNode;
import org.eclipse.jface.preference.IPreferencePage;
@@ -28,6 +27,7 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
@@ -47,17 +47,15 @@ public class HelpPreferencePage extends PreferencePage implements
private static final String WBROWSER_PAGE_ID = "org.eclipse.ui.browser.preferencePage";//$NON-NLS-1$
- private Button whelpAsViewButton;
-
- private Button whelpAsInfopopButton;
-
private Button dhelpAsTrayButton;
private Button dhelpAsInfopopButton;
- private Button openInPlaceButton;
-
- private Button openInEditorButton;
+ private Combo openModeCombo;
+
+ private Combo dialogHelpCombo;
+
+ private Combo windowHelpCombo;
/**
* Creates preference page controls on demand.
@@ -115,7 +113,6 @@ public class HelpPreferencePage extends PreferencePage implements
private void createDynamicHelpArea(Composite parent) {
Group group = new Group(parent, SWT.NONE);
GridLayout layout = new GridLayout();
- Composite composite;
layout.numColumns = 2;
group.setLayout(layout);
group.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
@@ -124,73 +121,42 @@ public class HelpPreferencePage extends PreferencePage implements
Label whelpDescription = new Label(group, SWT.NONE);
whelpDescription.setText(Messages.HelpPreferencePage_wlabel);
whelpDescription.setLayoutData(createLabelData());
- composite = createRadioComposite(group);
- whelpAsViewButton = new Button(composite, SWT.RADIO);
- whelpAsViewButton.setText(Messages.HelpPreferencePage_view);
- whelpAsViewButton.setLayoutData(createIndentData());
- whelpAsInfopopButton = new Button(composite, SWT.RADIO);
- whelpAsInfopopButton.setText(Messages.HelpPreferencePage_winfopop);
- whelpAsInfopopButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+
+ windowHelpCombo = new Combo(group, SWT.READ_ONLY);
+ windowHelpCombo.add(Messages.HelpPreferencePage_view);
+ windowHelpCombo.add(Messages.HelpPreferencePage_infopop);
+ windowHelpCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
boolean winfopop = HelpBasePlugin.getDefault().getPluginPreferences()
.getBoolean(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP);
- whelpAsViewButton.setSelection(!winfopop);
- whelpAsInfopopButton.setSelection(winfopop);
-
+ windowHelpCombo.setText(winfopop ? Messages.HelpPreferencePage_infopop : Messages.HelpPreferencePage_view);
+
Label dhelpDescription = new Label(group, SWT.NONE);
dhelpDescription.setText(Messages.HelpPreferencePage_dlabel);
dhelpDescription.setLayoutData(createLabelData());
- composite = createRadioComposite(group);
- dhelpAsTrayButton = new Button(composite, SWT.RADIO);
- dhelpAsTrayButton.setText(Messages.HelpPreferencePage_tray);
- dhelpAsTrayButton.setLayoutData(createIndentData());
- dhelpAsInfopopButton = new Button(composite, SWT.RADIO);
- dhelpAsInfopopButton.setText(Messages.HelpPreferencePage_dinfopop);
- dhelpAsInfopopButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- boolean largeFonts = FontUtils.isFontTooLargeForTray();
+ dialogHelpCombo = new Combo(group, SWT.READ_ONLY);
+ dialogHelpCombo.add(Messages.HelpPreferencePage_tray);
+ dialogHelpCombo.add(Messages.HelpPreferencePage_infopop);
+ dialogHelpCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
boolean dinfopop = HelpBasePlugin.getDefault().getPluginPreferences()
- .getBoolean(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP);
- dhelpAsTrayButton.setSelection(!dinfopop && !largeFonts);
- dhelpAsInfopopButton.setSelection(dinfopop || largeFonts);
- dhelpAsTrayButton.setEnabled(!largeFonts);
- dhelpAsInfopopButton.setEnabled(!largeFonts);
+ .getBoolean(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP);
+ dialogHelpCombo.setText(dinfopop ? Messages.HelpPreferencePage_infopop : Messages.HelpPreferencePage_tray);
if (PlatformUI.getWorkbench().getBrowserSupport()
.isInternalWebBrowserAvailable()) {
Label ohelpDescription = new Label(group, SWT.NONE);
ohelpDescription.setText(Messages.HelpPreferencePage_olabel);
ohelpDescription.setLayoutData(createLabelData());
- composite = createRadioComposite(group);
- openInPlaceButton = new Button(composite, SWT.RADIO);
- openInPlaceButton
- .setText(Messages.HelpPreferencePage_openInPlace);
- openInPlaceButton.setLayoutData(createIndentData());
- openInEditorButton = new Button(composite, SWT.RADIO);
- openInEditorButton
- .setText(Messages.HelpPreferencePage_openInEditor);
- openInEditorButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- boolean openInBrowser = HelpBasePlugin.getDefault()
- .getPluginPreferences().getBoolean(
- IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
- openInPlaceButton.setSelection(!openInBrowser);
- openInEditorButton.setSelection(openInBrowser);
+ openModeCombo = new Combo(group, SWT.READ_ONLY);
+ openModeCombo.add(Messages.HelpPreferencePage_openInPlace);
+ openModeCombo.add(Messages.HelpPreferencePage_openInEditor);
+ openModeCombo.add(Messages.HelpPreferencePage_openInBrowser);
+ openModeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ String openMode = HelpBasePlugin.getDefault()
+ .getPluginPreferences().getString(IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE);
+ openModeCombo.setText(openModeToString(openMode));
}
}
- private Composite createRadioComposite (Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(2, true);
- layout.marginHeight = layout.marginWidth = 0;
- composite.setLayout(layout);
- composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- return composite;
- }
-
- private GridData createIndentData () {
- GridData data = new GridData();
- data.horizontalIndent = 20;
- return data;
- }
-
private GridData createLabelData () {
GridData data = new GridData(SWT.FILL, SWT.CENTER, true, false);
data.verticalIndent = 5;
@@ -233,20 +199,19 @@ public class HelpPreferencePage extends PreferencePage implements
boolean winfopop = HelpBasePlugin.getDefault().getPluginPreferences()
.getDefaultBoolean(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP);
- whelpAsViewButton.setSelection(!winfopop);
- whelpAsInfopopButton.setSelection(winfopop);
+ windowHelpCombo.setText(winfopop ? Messages.HelpPreferencePage_infopop : Messages.HelpPreferencePage_view);
boolean dinfopop = HelpBasePlugin.getDefault().getPluginPreferences()
.getDefaultBoolean(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP);
dhelpAsTrayButton.setSelection(!dinfopop);
dhelpAsInfopopButton.setSelection(dinfopop);
+
- if (openInPlaceButton!=null) {
- boolean openInEditor = HelpBasePlugin.getDefault()
- .getPluginPreferences().getDefaultBoolean(
- IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
- openInPlaceButton.setSelection(!openInEditor);
- openInEditorButton.setSelection(openInEditor);
+ if (openModeCombo !=null) {
+ String openMode = HelpBasePlugin.getDefault()
+ .getPluginPreferences().getDefaultString(
+ IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE);
+ openModeCombo.setText(openModeToString(openMode));
}
super.performDefaults();
@@ -264,19 +229,38 @@ public class HelpPreferencePage extends PreferencePage implements
alwaysExternal.getSelection());
}
pref.setValue(IHelpBaseConstants.P_KEY_WINDOW_INFOPOP,
- whelpAsInfopopButton.getSelection());
- if (dhelpAsInfopopButton.isEnabled()) {
- pref.setValue(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP,
- dhelpAsInfopopButton.getSelection());
+ windowHelpCombo.getText().equals(Messages.HelpPreferencePage_infopop));
+
+ pref.setValue(IHelpBaseConstants.P_KEY_DIALOG_INFOPOP,
+ dialogHelpCombo.getText().equals(Messages.HelpPreferencePage_infopop));
+ if (openModeCombo!=null) {
+ pref.setValue(IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE, openModeFromString(openModeCombo.getText()));
}
- if (openInEditorButton!=null)
- pref.setValue(IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR,
- openInEditorButton.getSelection());
HelpBasePlugin.getDefault().savePluginPreferences();
return true;
}
+ private String openModeToString(String openMode) {
+ if (IHelpBaseConstants.P_IN_BROWSER.equals(openMode)) {
+ return Messages.HelpPreferencePage_openInBrowser;
+ } else if (IHelpBaseConstants.P_IN_EDITOR.equals(openMode)) {
+ return Messages.HelpPreferencePage_openInEditor;
+ } else {
+ return Messages.HelpPreferencePage_openInPlace;
+ }
+ }
+
+ private String openModeFromString(String openMode) {
+ if (Messages.HelpPreferencePage_openInBrowser.equals(openMode)) {
+ return IHelpBaseConstants.P_IN_BROWSER;
+ } else if (Messages.HelpPreferencePage_openInEditor.equals(openMode)) {
+ return IHelpBaseConstants.P_IN_EDITOR;
+ } else {
+ return IHelpBaseConstants.P_IN_PLACE;
+ }
+ }
+
/**
* Creates a horizontal spacer line that fills the width of its container.
*
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
index a123ad133..a736fd666 100644
--- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
+++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ReusableHelpPart.java
@@ -1209,13 +1209,19 @@ public class ReusableHelpPart implements IHelpUIConstants,
private boolean openInternalBrowser(String url) {
Preferences pref = HelpBasePlugin.getDefault().getPluginPreferences();
- boolean openInEditor = pref.getBoolean(IHelpBaseConstants.P_KEY_OPEN_IN_EDITOR);
+ String openMode = pref.getString(IHelpBaseConstants.P_KEY_HELP_VIEW_OPEN_MODE);
+ boolean openInEditor = IHelpBaseConstants.P_IN_EDITOR.equals(openMode);
+ boolean openInBrowser = IHelpBaseConstants.P_IN_BROWSER.equals(openMode);
Shell windowShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
Shell helpShell = mform.getForm().getShell();
boolean isDialog = (helpShell != windowShell);
if (!isDialog && openInEditor) {
return DefaultHelpUI.showInWorkbenchBrowser(url, true);
}
+ if (openInBrowser) {
+ BaseHelpSystem.getHelpDisplay().displayHelpResource(url, false);
+ return true;
+ }
showPage(IHelpUIConstants.HV_BROWSER_PAGE);
BrowserPart bpart = (BrowserPart) findPart(IHelpUIConstants.HV_BROWSER);
if (bpart != null) {

Back to the top