package org.nightlabs.jfire.simpletrade.admin.ui.producttype.nestedproducttype;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.nightlabs.base.ui.wizard.DynamicPathWizardPage;
import org.nightlabs.jfire.simpletrade.admin.ui.producttype.ProductTypeTree;
import org.nightlabs.jfire.simpletrade.admin.ui.resource.Messages;
import org.nightlabs.jfire.simpletrade.store.SimpleProductType;
import org.nightlabs.jfire.store.ProductType;
public class SelectProductTypePage
extends DynamicPathWizardPage
{
private ProductTypeTree productTypeTree;
public SelectProductTypePage()
{
super(SelectProductTypePage.class.getName(), Messages.getString("org.nightlabs.jfire.simpletrade.admin.ui.producttype.nestedproducttype.SelectProductTypePage.title"), null); //$NON-NLS-1$
setDescription(Messages.getString("org.nightlabs.jfire.simpletrade.admin.ui.producttype.nestedproducttype.SelectProductTypePage.description")); //$NON-NLS-1$
}
@Override
public Control createPageContents(Composite parent)
{
productTypeTree = new ProductTypeTree(parent, SWT.NONE);
productTypeTree.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event)
{
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
getWizard().getContainer().updateButtons();
}
});
}
});
return productTypeTree;
}
@Override
public boolean isPageComplete()
{
return
!productTypeTree.getSelectedElements().isEmpty() &&
productTypeTree.getSelectedElements().iterator().next().getInheritanceNature() == ProductType.INHERITANCE_NATURE_LEAF;
}
public SimpleProductType getSelectedProductType()
{
if (productTypeTree.getSelectedElements().isEmpty())
return null;
return productTypeTree.getSelectedElements().iterator().next();
}
}