package edu.ualberta.med.biobank.treeview.dispatch; import java.util.List; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Tree; import edu.ualberta.med.biobank.SessionManager; import edu.ualberta.med.biobank.common.permission.dispatch.DispatchCreatePermission; import edu.ualberta.med.biobank.common.wrappers.ModelWrapper; import edu.ualberta.med.biobank.gui.common.BgcPlugin; import edu.ualberta.med.biobank.treeview.AbstractAdapterBase; import edu.ualberta.med.biobank.treeview.AdapterBase; import gov.nih.nci.system.applicationservice.ApplicationException; public class OutgoingNode extends AdapterBase { private InCreationDispatchGroup creationNode; private SentInTransitDispatchGroup sentTransitNode; private Boolean createAllowed; public OutgoingNode(AdapterBase parent, int id) { super(parent, id, Messages.OutgoingNode_outgoing_node_label, true); creationNode = new InCreationDispatchGroup(this, 0); creationNode.setParent(this); addChild(creationNode); sentTransitNode = new SentInTransitDispatchGroup(this, 1); sentTransitNode.setParent(this); addChild(sentTransitNode); try { this.createAllowed = SessionManager.getAppService().isAllowed( new DispatchCreatePermission(SessionManager.getUser() .getCurrentWorkingCenter().getId())); } catch (ApplicationException e) { BgcPlugin.openAsyncError("Error", "Unable to retrieve permissions"); } } @Override protected String getLabelInternal() { return null; } @Override public String getTooltipTextInternal() { return null; } @Override public void popupMenu(TreeViewer tv, Tree tree, Menu menu) { if (createAllowed) { MenuItem mi = new MenuItem(menu, SWT.PUSH); mi.setText(Messages.OutgoingNode_add_label); mi.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { addDispatch(); } }); } } @Override protected AdapterBase createChildNode() { return null; } @Override protected AdapterBase createChildNode(Object child) { return null; } @Override protected List<? extends ModelWrapper<?>> getWrapperChildren() throws Exception { return null; } @Override public String getViewFormId() { return null; } @Override public String getEntryFormId() { return null; } @Override public void rebuild() { for (AbstractAdapterBase adaper : getChildren()) { adaper.rebuild(); } } @Override public List<AbstractAdapterBase> search(Class<?> searchedClass, Integer objectId) { return searchChildren(searchedClass, objectId); } public void addDispatch() { creationNode.addDispatch(); } @Override public int compareTo(AbstractAdapterBase o) { return 0; } }