/** * */ package de.urszeidler.shr5.ecp.editor; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.IMemento; import org.eclipse.ui.IPersistableElement; import de.urszeidler.eclipse.shr5.util.ShadowrunTools; import de.urszeidler.emf.commons.ui.editor.EObjectEditorInput; import de.urszeidler.shr5.ecp.Activator; import de.urszeidler.shr5.ecp.util.DefaultLabelProvider; /** * @author urs */ public class ShrEditorInput extends EObjectEditorInput implements IPersistableElement { private static final String EID = "EID"; private LabelProvider labelProvider = new DefaultLabelProvider(); public ShrEditorInput(EObject eobject) { super(eobject); } public ShrEditorInput(EObject eobject, EditingDomain editingDomain) { super(eobject, editingDomain); } @Override public String getToolTipText() { return labelProvider.getText(getEobject()); } @Override public IPersistableElement getPersistable() { return this; } @Override public ImageDescriptor getImageDescriptor() { Image image = labelProvider.getImage(getEobject()); if (image == null) return null; return ImageDescriptor.createFromImage(image); } @Override public String getName() { return labelProvider.getText(getEobject()); } @Override public void saveState(IMemento memento) { memento.putString(EID, ShadowrunTools.getResourceId(getEobject())); } @Override public String getFactoryId() { return ShrEditorInputFactory.ID; } public static ShrEditorInput createShrEditorInput(IMemento memento) { try { String id = memento.getString(EID); EObject eObjectFromId = ShadowrunTools.getEObjectFromId(id, Activator.getDefault().getEdtingDomain().getResourceSet().getResources().get(0)); return new ShrEditorInput(eObjectFromId, Activator.getDefault().getEdtingDomain()); } catch (Exception e) { return null; } } }