/*******************************************************************************
* Copyright (c) 2006-2013 The RCP Company 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:
* The RCP Company - initial API and implementation
*******************************************************************************/
package com.rcpcompany.uibindings.shop.wizards;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import com.rcpcompany.uibinding.tests.model.TestModelFactory;
import com.rcpcompany.uibinding.tests.model.TestObject;
import com.rcpcompany.uibindings.IValueBinding;
import com.rcpcompany.uibindings.utils.IFormCreator;
import com.rcpcompany.uibindings.utils.IFormCreatorChooser;
import com.rcpcompany.uibindings.utils.IFormCreatorChooserCreator;
public class TestFormChooser extends Wizard implements INewWizard {
public TestFormChooser() {
// TODO Auto-generated constructor stub
}
@Override
public void init(IWorkbench workbench, IStructuredSelection selection) {
// TODO Auto-generated method stub
}
@Override
public void addPages() {
addPage(new FormChooserPage());
}
@Override
public boolean performFinish() {
// TODO Auto-generated method stub
return false;
}
public class FormChooserPage extends WizardPage implements IWizardPage {
private TestObject myObject;
private IFormCreator myForm;
private IValueBinding myBinding;
protected FormChooserPage() {
super("TestPage");
}
@Override
public void createControl(Composite parent) {
myObject = TestModelFactory.eINSTANCE.createTestObject();
myForm = IFormCreator.Factory.createWizardPage(myObject, this, parent);
myBinding = myForm.addField("b(w=200)");
final IFormCreatorChooser chooser = IFormCreatorChooser.Factory.create(myForm,
myBinding.getModelObservableValue());
chooser.addFormValue(true, test1());
chooser.addFormValue(false, test2());
myForm.finish();
setControl(myForm.getTop());
}
private IFormCreatorChooserCreator test1() {
return new IFormCreatorChooserCreator() {
@Override
public void createForm(IObservableValue discriminant, IFormCreator form) {
form.addLabel("true");
}
};
}
private IFormCreatorChooserCreator test2() {
return new IFormCreatorChooserCreator() {
@Override
public void createForm(IObservableValue discriminant, IFormCreator form) {
form.addLabel("false");
}
};
}
}
}