/*******************************************************************************
* Copyright (c) 2005, 2008 Intel 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:
* Intel Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.ui.newui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
/**
* Abstract page to be used as base for preference pages
*/
public abstract class AbstractPrefPage extends AbstractPage
implements IWorkbenchPreferencePage {
public Label titleLabel;
@Override
protected Control createContents(Composite parent) {
// Create the container we return to the property page editor
Composite composite = new Composite(parent, SWT.NULL);
composite.setFont(parent.getFont());
GridLayout compositeLayout = new GridLayout();
compositeLayout.numColumns = 1;
compositeLayout.marginHeight = 0;
compositeLayout.marginWidth = 0;
composite.setLayout( compositeLayout );
String s = getHeader();
if (s != null) {
Group configGroup = ControlFactory.createGroup(composite, EMPTY_STR, 1);
GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gd.grabExcessHorizontalSpace = true;
configGroup.setLayoutData(gd);
titleLabel = ControlFactory.createLabel(configGroup, s);
}
createWidgets(composite);
return composite;
}
@Override
protected boolean checkElement() { return true; }
@Override
public boolean isForPrefs() { return true; }
public void init(IWorkbench workbench) {}
@Override
public ICResourceDescription getResDesc() { return null; }
@Override
public void performApply() { performOk(); }
@Override
public boolean performOk() {
forEach(ICPropertyTab.OK, null);
return true;
}
abstract protected String getHeader();
}