blob: 3bb394243e4df72088937d3a90ceaf78943729d6 [file] [log] [blame]
/*
* 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();
}
}