/******************************************************************************* * Copyright (c) 2009 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation * Zend Technologies *******************************************************************************/ package org.eclipse.php.internal.ui.preferences; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.contentassist.ContentAssistant; import org.eclipse.jface.text.contentassist.IContentAssistant; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.jface.text.source.SourceViewerConfiguration; import org.eclipse.jface.text.templates.ContextTypeRegistry; import org.eclipse.jface.text.templates.Template; import org.eclipse.jface.window.Window; import org.eclipse.php.internal.ui.IPHPHelpContextIds; import org.eclipse.php.internal.ui.PHPUiPlugin; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.texteditor.templates.TemplatePreferencePage; public class PHPTemplatesPreferencePage extends TemplatePreferencePage { public PHPTemplatesPreferencePage() { setPreferenceStore(PreferenceConstants.getPreferenceStore()); setTemplateStore(PHPUiPlugin.getDefault().getTemplateStore()); setContextTypeRegistry(PHPUiPlugin.getDefault().getTemplateContextRegistry()); } @Override protected boolean isShowFormatterSetting() { return false; } @Override protected Template editTemplate(Template template, boolean edit, boolean isNameModifiable) { EditTemplateDialog dialog = new PHPEditTemplateDialog(getShell(), template, edit, isNameModifiable, getContextTypeRegistry()); if (dialog.open() == Window.OK) { return dialog.getTemplate(); } return null; } protected static class PHPEditTemplateDialog extends EditTemplateDialog { public PHPEditTemplateDialog(Shell parent, Template template, boolean edit, boolean isNameModifiable, ContextTypeRegistry registry) { super(parent, template, edit, isNameModifiable, registry); } @Override protected SourceViewer createViewer(Composite parent) { SourceViewer viewer = new SourceViewer(parent, null, null, false, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); SourceViewerConfiguration configuration = new SourceViewerConfiguration() { @Override public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) { ContentAssistant assistant = new ContentAssistant(); assistant.enableAutoActivation(true); assistant.enableAutoInsert(true); assistant.setContentAssistProcessor(getTemplateProcessor(), IDocument.DEFAULT_CONTENT_TYPE); assistant.setProposalSelectorBackground( Display.getCurrent().getSystemColor(SWT.COLOR_INFO_BACKGROUND)); return assistant; } }; viewer.configure(configuration); return viewer; } } @Override public void performHelp() { PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IPHPHelpContextIds.TEMPLATES_PREFERENCES); super.performHelp(); } }