package org.nightlabs.jfire.voucher.admin.ui.overview;
import javax.jdo.JDOHelper;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.PartInitException;
import org.nightlabs.base.ui.util.RCPUtil;
import org.nightlabs.jfire.store.id.ProductTypeID;
import org.nightlabs.jfire.trade.admin.ui.overview.AbstractTradeAdminCategory;
import org.nightlabs.jfire.trade.admin.ui.overview.TradeAdminCategoryFactory;
import org.nightlabs.jfire.voucher.admin.ui.createvouchertype.CreateVoucherTypeAction;
import org.nightlabs.jfire.voucher.admin.ui.editor.VoucherTypeEditor;
import org.nightlabs.jfire.voucher.admin.ui.editor.VoucherTypeEditorInput;
import org.nightlabs.jfire.voucher.admin.ui.tree.VoucherTypeTree;
import org.nightlabs.jfire.voucher.admin.ui.tree.VoucherTypeTreeNode;
import org.nightlabs.jfire.voucher.store.VoucherType;
/**
* @author Daniel.Mazurek [at] NightLabs [dot] de
* @author Marco Schulze - Marco at NightLabs dot de
*/
public class VoucherTypeCategory
extends AbstractTradeAdminCategory
{
public VoucherTypeCategory(TradeAdminCategoryFactory tradeAdminCategoryFactory)
{
super(tradeAdminCategoryFactory);
}
@Override
protected Composite _createComposite(Composite parent)
{
VoucherTypeTree voucherTypeTree = new VoucherTypeTree(parent);
voucherTypeTree.getTreeViewer().expandToLevel(3);
CreateVoucherTypeAction createVoucherTypeAction = new CreateVoucherTypeAction(voucherTypeTree);
voucherTypeTree.addContextMenuContribution(createVoucherTypeAction);
voucherTypeTree.getTreeViewer().addDoubleClickListener(doubleClickListener);
return voucherTypeTree;
}
private IDoubleClickListener doubleClickListener = new IDoubleClickListener(){
public void doubleClick(DoubleClickEvent event) {
if (!event.getSelection().isEmpty()) {
StructuredSelection sel = (StructuredSelection) event.getSelection();
Object firstElement = sel.getFirstElement();
if (firstElement instanceof VoucherTypeTreeNode) {
VoucherTypeTreeNode treeNode = (VoucherTypeTreeNode) firstElement;
VoucherType voucherType = treeNode.getJdoObject();
ProductTypeID voucherTypeID = (ProductTypeID) JDOHelper.getObjectId(voucherType);
try {
RCPUtil.openEditor(new VoucherTypeEditorInput(voucherTypeID),
VoucherTypeEditor.EDITOR_ID);
} catch (PartInitException e) {
throw new RuntimeException(e);
}
}
}
}
};
}