package edu.ualberta.med.biobank.treeview;
import java.util.List;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Tree;
import edu.ualberta.med.biobank.SessionManager;
import edu.ualberta.med.biobank.common.permission.specimen.SpecimenDeletePermission;
import edu.ualberta.med.biobank.common.permission.specimen.SpecimenReadPermission;
import edu.ualberta.med.biobank.common.permission.specimen.SpecimenUpdatePermission;
import edu.ualberta.med.biobank.common.wrappers.ModelWrapper;
import edu.ualberta.med.biobank.common.wrappers.SpecimenWrapper;
import edu.ualberta.med.biobank.forms.SpecimenEntryForm;
import edu.ualberta.med.biobank.forms.SpecimenViewForm;
import edu.ualberta.med.biobank.gui.common.BgcPlugin;
import gov.nih.nci.system.applicationservice.ApplicationException;
public class SpecimenAdapter extends AdapterBase {
public SpecimenAdapter(AdapterBase parent, SpecimenWrapper sample) {
super(parent, sample);
}
@Override
public void init() {
try {
Integer id = ((SpecimenWrapper) getModelObject()).getId();
this.isDeletable =
SessionManager.getAppService().isAllowed(
new SpecimenDeletePermission(id));
this.isReadable =
SessionManager.getAppService().isAllowed(
new SpecimenReadPermission(id));
this.isEditable =
SessionManager.getAppService().isAllowed(
new SpecimenUpdatePermission(id));
} catch (ApplicationException e) {
BgcPlugin.openAsyncError("Permission Error",
"Unable to retrieve user permissions");
}
}
@Override
public void addChild(AbstractAdapterBase child) {
Assert.isTrue(false, "Cannot add children to this adapter"); //$NON-NLS-1$
}
@Override
protected String getLabelInternal() {
Assert.isNotNull(getModelObject(), "specimen is null"); //$NON-NLS-1$
return ((SpecimenWrapper) getModelObject()).getInventoryId();
}
@Override
public String getTooltipTextInternal() {
return getTooltipText(Messages.SpecimenAdapter_specimen_label);
}
@Override
public void popupMenu(TreeViewer tv, Tree tree, Menu menu) {
addViewMenu(menu, Messages.SpecimenAdapter_specimen_label);
}
@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 getEntryFormId() {
return SpecimenEntryForm.ID;
}
@Override
public String getViewFormId() {
return SpecimenViewForm.ID;
}
@Override
public int compareTo(AbstractAdapterBase o) {
if (o instanceof SpecimenAdapter)
return internalCompareTo(o);
return 0;
}
}