1 package org.simantics.ui.selection;
3 import org.simantics.db.Resource;
4 import org.simantics.db.common.utils.Logger;
5 import org.simantics.db.exception.DatabaseException;
6 import org.simantics.db.layer0.request.ResourceVariable;
8 public class ResourceWorkbenchSelectionElement implements WorkbenchSelectionElement {
10 final private Resource resource;
12 public ResourceWorkbenchSelectionElement(Resource resource) {
13 this.resource = resource;
16 @SuppressWarnings("unchecked")
18 public <T> T getContent(WorkbenchSelectionContentType<T> contentType) {
19 if(contentType instanceof AnyResource) {
21 } else if(contentType instanceof AnyVariable) {
22 AnyVariable type = (AnyVariable)contentType;
24 return (T) type.processor.sync(new ResourceVariable(resource));
25 } catch (DatabaseException e) {
26 Logger.defaultLogError(e);
33 public int hashCode() {
34 return resource.hashCode();
38 public boolean equals(Object object) {
41 else if (object == null)
43 else if (!(object instanceof ResourceWorkbenchSelectionElement))
45 ResourceWorkbenchSelectionElement vwse = (ResourceWorkbenchSelectionElement)object;
46 return resource.equals(vwse.resource);