/* * Copyright (c) 2007-2009, 2011, 2012 Eike Stepper (Berlin, Germany) 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: * Eike Stepper - initial API and implementation * Victor Roldan Betancort - maintenance */ package org.eclipse.emf.cdo.internal.ui.preferences; import org.eclipse.emf.cdo.internal.ui.bundle.OM; import org.eclipse.emf.cdo.internal.ui.messages.Messages; import org.eclipse.emf.cdo.ui.CDOLabelDecorator; import org.eclipse.net4j.util.ui.UIUtil; import org.eclipse.net4j.util.ui.prefs.OMPreferencePage; import org.eclipse.net4j.util.ui.widgets.TextAndDisable; import org.eclipse.jface.fieldassist.IContentProposalProvider; import org.eclipse.jface.fieldassist.IControlContentAdapter; import org.eclipse.jface.fieldassist.SimpleContentProposalProvider; import org.eclipse.jface.fieldassist.TextContentAdapter; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter; /** * @author Eike Stepper */ public class CDOUIPreferencePage extends OMPreferencePage { private TextAndDisable decoration; private Button autoReload; public CDOUIPreferencePage() { super(OM.PREFS); } @Override protected Control createUI(Composite parent) { Composite composite = UIUtil.createGridComposite(parent, 2); composite.setLayoutData(UIUtil.createGridData()); new Label(composite, SWT.NONE).setText(Messages.getString("CDOUIPreferencePage.0")); //$NON-NLS-1$ decoration = new TextAndDisable(composite, SWT.BORDER, CDOLabelDecorator.NO_DECORATION) { @Override protected GridData createTextLayoutData() { return UIUtil.createGridData(true, false); } }; decoration.setLayoutData(UIUtil.createGridData(true, false)); Text text = decoration.getText(); StringBuffer tags = new StringBuffer(); for (String tag : CDOLabelDecorator.DECORATION_PROPOSALS) { tags.append(tag + " "); //$NON-NLS-1$ } text.setToolTipText(Messages.getString("CDOUIPreferencePage.2") + tags.toString()); //$NON-NLS-1$ IControlContentAdapter contentAdapter = new TextContentAdapter(); IContentProposalProvider provider = new SimpleContentProposalProvider(CDOLabelDecorator.DECORATION_PROPOSALS); new ContentAssistCommandAdapter(text, contentAdapter, provider, null, new char[] { '$' }, true); UIUtil.addDecorationMargin(text); autoReload = new Button(composite, SWT.CHECK); autoReload.setText(Messages.getString("CDOUIPreferencePage.1")); //$NON-NLS-1$ autoReload.setLayoutData(UIUtil.createGridData(false, false)); UIUtil.setIndentation(autoReload, -1, 10); initValues(); return composite; } protected void initValues() { decoration.setValue(OM.PREF_LABEL_DECORATION.getValue()); autoReload.setSelection(OM.PREF_EDITOR_AUTO_RELOAD.getValue()); } @Override public boolean performOk() { OM.PREF_LABEL_DECORATION.setValue(decoration.getValue()); OM.PREF_EDITOR_AUTO_RELOAD.setValue(autoReload.getSelection()); return super.performOk(); } }