package org.nightlabs.jfire.dynamictrade.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.dynamictrade.admin.ui.createproducttype.CreateDynamicProductTypeAction; import org.nightlabs.jfire.dynamictrade.admin.ui.editor.DynamicProductTypeEditor; import org.nightlabs.jfire.dynamictrade.admin.ui.editor.DynamicProductTypeEditorInput; import org.nightlabs.jfire.dynamictrade.admin.ui.tree.DynamicProductTypeTree; import org.nightlabs.jfire.dynamictrade.admin.ui.tree.DynamicProductTypeTreeNode; import org.nightlabs.jfire.dynamictrade.store.DynamicProductType; 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; public class DynamicProductTypeCategory extends AbstractTradeAdminCategory { public DynamicProductTypeCategory( TradeAdminCategoryFactory tradeAdminCategoryFactory) { super(tradeAdminCategoryFactory); } @Override protected Composite _createComposite(Composite parent) { DynamicProductTypeTree dynamicProductTypeTree = new DynamicProductTypeTree(parent); dynamicProductTypeTree.getTreeViewer().expandToLevel(3); CreateDynamicProductTypeAction createDynamicProductTypeAction = new CreateDynamicProductTypeAction(dynamicProductTypeTree); dynamicProductTypeTree.addContextMenuContribution(createDynamicProductTypeAction); dynamicProductTypeTree.getTreeViewer().addDoubleClickListener(doubleClickListener); return dynamicProductTypeTree; } 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 DynamicProductTypeTreeNode) { DynamicProductTypeTreeNode treeNode = (DynamicProductTypeTreeNode) firstElement; DynamicProductType dynamicProductType = treeNode.getJdoObject(); ProductTypeID dynamicProductTypeID = (ProductTypeID) JDOHelper.getObjectId(dynamicProductType); try { RCPUtil.openEditor(new DynamicProductTypeEditorInput(dynamicProductTypeID), DynamicProductTypeEditor.EDITOR_ID); } catch (PartInitException e) { throw new RuntimeException(e); } } } } }; }