| /*=============================================================================# |
| # Copyright (c) 2017, 2019 Stephan Wahlbrink and others. |
| # |
| # This program and the accompanying materials are made available under the |
| # terms of the Eclipse Public License 2.0 which is available at |
| # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 |
| # which is available at https://www.apache.org/licenses/LICENSE-2.0. |
| # |
| # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 |
| # |
| # Contributors: |
| # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation |
| #=============================================================================*/ |
| |
| package org.eclipse.statet.ltk.ui.sourceediting; |
| |
| import static org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds.SHOW_WHITESPACE_CHARACTERS; |
| import static org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds.WORD_WRAP; |
| |
| import static org.eclipse.statet.ecommons.ui.actions.UIActions.VIEW_GROUP_ID; |
| |
| import org.eclipse.core.commands.IHandler2; |
| import org.eclipse.jface.action.IMenuManager; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.ui.menus.CommandContributionItemParameter; |
| import org.eclipse.ui.services.IServiceLocator; |
| |
| import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref; |
| import org.eclipse.statet.ecommons.ui.actions.HandlerCollection; |
| import org.eclipse.statet.ecommons.ui.actions.HandlerContributionItem; |
| |
| import org.eclipse.statet.internal.ltk.ui.EditingMessages; |
| import org.eclipse.statet.ltk.ui.sourceediting.actions.ToggleShowWhitespaceHandler; |
| import org.eclipse.statet.ltk.ui.sourceediting.actions.ToggleSoftWordWrapHandler; |
| |
| |
| public class SnippetEditor1 extends SnippetEditor { |
| |
| |
| private static final String SHOW_WHITESPACE_PREF_KEY= "ShowWhitespace.enabled"; //$NON-NLS-1$ |
| private static final String SOFT_WORD_WRAP_PREF_KEY= "SoftWordWrap.enabled"; //$NON-NLS-1$ |
| |
| |
| private final String prefQualifier; |
| |
| |
| public SnippetEditor1(final SourceEditorViewerConfigurator configurator, |
| final String initialContent, |
| final IServiceLocator serviceParent, final String prefQualifier, |
| final boolean withToolButton) { |
| super(configurator, initialContent, serviceParent, withToolButton); |
| |
| this.prefQualifier= prefQualifier; |
| } |
| |
| public SnippetEditor1(final SourceEditorViewerConfigurator configurator, |
| final String initialContent, |
| final IServiceLocator serviceParent, final String prefQualifier) { |
| this(configurator, initialContent, serviceParent, prefQualifier, false); |
| } |
| |
| |
| @Override |
| protected void initActions() { |
| super.initActions(); |
| |
| if (this.prefQualifier != null) { |
| registerCommandHandler(SHOW_WHITESPACE_CHARACTERS, new ToggleShowWhitespaceHandler( |
| new BooleanPref(this.prefQualifier, SHOW_WHITESPACE_PREF_KEY), |
| getSourceViewer() )); |
| if ((getSourceViewer().getTextWidget().getStyle() & SWT.MULTI) != 0) { |
| registerCommandHandler(WORD_WRAP, new ToggleSoftWordWrapHandler( |
| new BooleanPref(this.prefQualifier, SOFT_WORD_WRAP_PREF_KEY), |
| getSourceViewer() )); |
| } |
| } |
| } |
| |
| |
| @Override |
| protected void fillContextMenu(final IMenuManager menu) { |
| super.fillContextMenu(menu); |
| |
| final IServiceLocator serviceLocator= getServiceLocator(); |
| final HandlerCollection handlers= getCommandHandlers(); |
| |
| { final IHandler2 handler= handlers.get(SHOW_WHITESPACE_CHARACTERS); |
| if (handler != null) { |
| menu.appendToGroup(VIEW_GROUP_ID, new HandlerContributionItem(new CommandContributionItemParameter( |
| serviceLocator, SHOW_WHITESPACE_CHARACTERS, SHOW_WHITESPACE_CHARACTERS, null, |
| null, null, null, |
| EditingMessages.EditorMenu_ToggleShowWhitespace_label, null, null, |
| HandlerContributionItem.STYLE_CHECK, null, false ), handler )); |
| } |
| } |
| { final IHandler2 handler= handlers.get(WORD_WRAP); |
| if (handler != null) { |
| menu.appendToGroup(VIEW_GROUP_ID, new HandlerContributionItem(new CommandContributionItemParameter( |
| serviceLocator, WORD_WRAP, WORD_WRAP, null, |
| null, null, null, |
| EditingMessages.EditorMenu_ToggleSoftWordWrap_label, null, null, |
| HandlerContributionItem.STYLE_CHECK, null, false ), handler )); |
| } |
| } |
| } |
| |
| } |