/*******************************************************************************
* Copyright (c) 2007, 2008 Edgar Espina.
* 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
*
*******************************************************************************/
package org.deved.antlride.internal.ui.preferences;
import org.deved.antlride.core.AntlrConstants;
import org.deved.antlride.core.AntlrCore;
import org.eclipse.core.resources.IProject;
import org.eclipse.dltk.ui.preferences.AbstractOptionsBlock;
import org.eclipse.dltk.ui.preferences.PreferenceKey;
import org.eclipse.dltk.ui.util.IStatusChangeListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
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.ui.preferences.IWorkbenchPreferenceContainer;
public class AntlrGlobalBlock extends AbstractOptionsBlock {
private CheckboxListener checkboxListener = new CheckboxListener();
private final static PreferenceKey MARK_GENERATED_RESOURCES_AS_DERIVED = new PreferenceKey(
AntlrCore.PLUGIN_ID,
AntlrConstants.ANTLR_GENERAL_MARK_GENERATED_RESOURCES_AS_DERIVED);
private final static PreferenceKey[] keys = { MARK_GENERATED_RESOURCES_AS_DERIVED };
public AntlrGlobalBlock(IStatusChangeListener context, IProject project,
IWorkbenchPreferenceContainer container) {
super(context, project, keys, container);
}
@Override
protected Control createOptionsBlock(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout(1, false);
layout.verticalSpacing = 15;
composite.setLayout(layout);
Label label = new Label(composite, SWT.NONE);
label.setText(AntlrPreferenceMessages.General_description);
addCheckBox(
composite,
AntlrPreferenceMessages.General_mark_generated_resources_as_derived,
MARK_GENERATED_RESOURCES_AS_DERIVED, 15);
return composite;
}
private Button addCheckBox(Composite parent, String label,
PreferenceKey key, int indentation) {
Button button = new Button(parent, SWT.CHECK);
button.setText(label);
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
gd.horizontalIndent = indentation;
// gd.horizontalSpan = 2;
button.setLayoutData(gd);
button.addSelectionListener(checkboxListener);
String value = getString(key);
button.setData(key);
button.setSelection("true".equals(value));
return button;
}
private class CheckboxListener implements SelectionListener {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
Button b = (Button) e.widget;
PreferenceKey key = (PreferenceKey) b.getData();
setBoolean(key, b.getSelection());
}
}
}