diff options
author | Chris Goldthorpe | 2008-08-05 17:27:54 +0000 |
---|---|---|
committer | Chris Goldthorpe | 2008-08-05 17:27:54 +0000 |
commit | 689961619b7e34690b02bfa084182b5145bf7ba8 (patch) | |
tree | 25305f8f0f1c9b8e8cc273fc1cd68959bded38f4 /org.eclipse.help.ui/src | |
parent | 23cc1408ed1a588bc602ecbf0fbc2d1423aed758 (diff) | |
download | eclipse.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')
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) { |