/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.xml.ui.wizards;
import org.eclipse.jface.wizard.WizardPage;
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.Label;
import org.eclipse.swt.widgets.Spinner;
import org.teiid.designer.xml.ui.ModelerXmlUiConstants;
/**
* NumberOfLevelsWizardPage
*
* @since 8.0
*/
public class NumberOfLevelsWizardPage extends WizardPage implements ModelerXmlUiConstants {
public static final int MIN_LEVELS = 1;
public static final int MAX_LEVELS = 5;
private NumberOfLevelsPanel panel;
public NumberOfLevelsWizardPage() {
super("numberOfLevelsWizardPage"); //$NON-NLS-1$
String title = Util.getString("NumberOfLevelsWizardPage.title"); //$NON-NLS-1$
setTitle(title);
String description = Util.getString("NumberOfLevelsWizardPage.description"); //$NON-NLS-1$
setDescription(description);
}
@Override
public void createControl( Composite parent ) {
panel = new NumberOfLevelsPanel(parent);
setControl(panel);
}
public int getValue() {
return panel.getSpinnerValue();
}
}// end NumberOfLevelsWizardPage
class NumberOfLevelsPanel extends Composite implements ModelerXmlUiConstants {
private Spinner spinner;
private Button allLevelsChk;
public NumberOfLevelsPanel( Composite parent ) {
super(parent, SWT.NONE);
initialize();
}
private void initialize() {
GridLayout layout = new GridLayout();
this.setLayout(layout);
GridData overallGridData = new GridData(GridData.FILL_HORIZONTAL);
this.setLayoutData(overallGridData);
Composite spinnerRow = new Composite(this, SWT.NONE);
GridLayout spinnerRowLayout = new GridLayout();
spinnerRow.setLayout(spinnerRowLayout);
spinnerRowLayout.numColumns = 2;
spinnerRowLayout.marginHeight = 10;
GridData spinnerRowGridData = new GridData(GridData.FILL_HORIZONTAL);
spinnerRow.setLayoutData(spinnerRowGridData);
spinnerRowGridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_CENTER;
Label spinnerLabel = new Label(spinnerRow, SWT.NONE);
String labelText = Util.getString("NumberOfLevelsWizardPage.numberOfLevels"); //$NON-NLS-1$
spinnerLabel.setText(labelText);
spinner = new Spinner(spinnerRow, SWT.NONE);
spinner.setMinimum(NumberOfLevelsWizardPage.MIN_LEVELS);
spinner.setMaximum(NumberOfLevelsWizardPage.MAX_LEVELS);
spinner.setToolTipText(Util.getString("NumberOfLevelsWizardPage.spinner.toolTip", //$NON-NLS-1$
spinner.getMinimum(),
spinner.getMaximum()));
allLevelsChk = new Button(spinnerRow, SWT.CHECK);
allLevelsChk.setText(Util.getString("NumberOfLevelsWizardPage.btnTxt")); //$NON-NLS-1$
allLevelsChk.addSelectionListener(new SelectionListener() {
@Override
public void widgetDefaultSelected( SelectionEvent e ) {
}
@Override
public void widgetSelected( SelectionEvent e ) {
allLevelsChkSelected();
}
});
}
public int getSpinnerValue() {
if (allLevelsChk.getSelection()) {
return -1;
}
return spinner.getSelection();
}
void allLevelsChkSelected() {
if (this.allLevelsChk.getSelection()) {
this.spinner.setEnabled(false);
} else {
this.spinner.setEnabled(true);
}
}
}// end NumberOfLevelsPanel