package org.nightlabs.jfire.dynamictrade.admin.ui.createproducttype;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.nightlabs.base.ui.composite.FadeableComposite;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.base.ui.composite.XComposite.LayoutMode;
import org.nightlabs.base.ui.wizard.DynamicPathWizardPage;
import org.nightlabs.jfire.dynamictrade.admin.ui.resource.Messages;
import org.nightlabs.jfire.dynamictrade.admin.ui.tree.DynamicProductTypeTree;
import org.nightlabs.jfire.dynamictrade.store.DynamicProductType;
import org.nightlabs.jfire.store.ProductType;
public class DynamicProductTypeSelectPage
extends DynamicPathWizardPage
{
private DynamicProductTypeTree dynamicProductTypeTree;
private DynamicProductType selectedProductType;
/**
* @param pageName
*/
public DynamicProductTypeSelectPage()
{
super(DynamicProductTypeSelectPage.class.getName(), Messages.getString("org.nightlabs.jfire.dynamictrade.admin.ui.createproducttype.DynamicProductTypeSelectPage.title")); //$NON-NLS-1$
this.setDescription(Messages.getString("org.nightlabs.jfire.dynamictrade.admin.ui.createproducttype.DynamicProductTypeSelectPage.description")); //$NON-NLS-1$
}
/**
* @see org.nightlabs.base.ui.wizard.DynamicPathWizardPage#createPageContents(org.eclipse.swt.widgets.Composite)
*/
@Override
public Control createPageContents(Composite parent)
{
final FadeableComposite page = new FadeableComposite(parent, SWT.NONE, LayoutMode.TIGHT_WRAPPER);
XComposite comp = new XComposite(page, page.getBorderStyle(), LayoutMode.TIGHT_WRAPPER);
comp.setLayoutData(new GridData(GridData.FILL_BOTH));
comp.getGridLayout().numColumns = 2;
dynamicProductTypeTree = new DynamicProductTypeTree(comp);
dynamicProductTypeTree.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
getContainer().updateButtons();
}
});
return page;
}
private boolean isPageAdded = false;
@Override
public boolean canFlipToNextPage() {
selectedProductType = dynamicProductTypeTree.getFirstSelectedElement();
if (selectedProductType != null && selectedProductType.getInheritanceNature() == ProductType.INHERITANCE_NATURE_BRANCH) {
CreateDynamicProductTypeNewWizard newWizard = (CreateDynamicProductTypeNewWizard)getWizard();
newWizard.setParentProductTypeID(selectedProductType.getObjectId());
if (!isPageAdded) {
newWizard.addRemainingPages();
isPageAdded = true;
}
return true;
}
return false;
}
@Override
public boolean isPageComplete() {
return selectedProductType != null;
}
@Override
public boolean canBeLastPage() {
return false;
}
}