package org.nightlabs.jfire.simpletrade.admin.ui.overview;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PartInitException;
import org.nightlabs.base.ui.util.RCPUtil;
import org.nightlabs.jfire.simpletrade.admin.ui.editor.SimpleProductTypeEditor;
import org.nightlabs.jfire.simpletrade.admin.ui.producttype.ProductTypeTree;
import org.nightlabs.jfire.simpletrade.admin.ui.producttype.ProductTypeTreeNode;
import org.nightlabs.jfire.simpletrade.admin.ui.producttype.create.CreateProductTypeAction;
import org.nightlabs.jfire.store.id.ProductTypeID;
import org.nightlabs.jfire.trade.admin.ui.editor.ProductTypeEditorInput;
import org.nightlabs.jfire.trade.admin.ui.overview.AbstractTradeAdminCategory;
import org.nightlabs.jfire.trade.admin.ui.overview.TradeAdminCategoryFactory;
/**
* @author Marco Schulze - Marco at NightLabs dot de
* @author Daniel.Mazurek [at] NightLabs [dot] de
*/
public class SimpleProductTypeCategory
extends AbstractTradeAdminCategory
{
public SimpleProductTypeCategory(
TradeAdminCategoryFactory tradeAdminCategoryFactory)
{
super(tradeAdminCategoryFactory);
}
@Override
protected Composite _createComposite(Composite parent)
{
ProductTypeTree productTypeTree = new ProductTypeTree(parent, SWT.NONE); // , null, SimpletradePlugin.ZONE_ADMIN);
productTypeTree.getTreeViewer().expandToLevel(3);
productTypeTree.getTreeViewer().addDoubleClickListener(doubleClickListener);
createProductAction = new CreateProductTypeAction(productTypeTree);
productTypeTree.addContextMenuContribution(createProductAction);
return productTypeTree;
}
private CreateProductTypeAction createProductAction = null;
private IDoubleClickListener doubleClickListener = new IDoubleClickListener(){
public void doubleClick(DoubleClickEvent event) {
if (!event.getSelection().isEmpty() && event.getSelection() instanceof StructuredSelection) {
StructuredSelection sel = (StructuredSelection) event.getSelection();
if (sel.getFirstElement() instanceof ProductTypeTreeNode) {
ProductTypeTreeNode productTypeTreeNode = (ProductTypeTreeNode) sel.getFirstElement();
ProductTypeID productTypeID = productTypeTreeNode.getJdoObject().getObjectId();
try {
RCPUtil.openEditor(new ProductTypeEditorInput(productTypeID), SimpleProductTypeEditor.ID_EDITOR);
} catch (PartInitException e) {
throw new RuntimeException(e);
}
}
}
}
};
}