package com.tibco.as.spacebar.ui.editor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IPersistableElement;
import com.tibco.as.spacebar.ui.Image;
import com.tibco.as.spacebar.ui.SpaceBarPlugin;
import com.tibco.as.spacebar.ui.model.Space;
public class SpaceEditorInput implements IEditorInput {
private Space space;
private SpaceEditorExport export;
public SpaceEditorInput(Space space, SpaceEditorExport export) {
this.space = space;
this.export = export;
export.setSpaceName(space.getName());
}
public boolean exists() {
return export != null;
}
@Override
public ImageDescriptor getImageDescriptor() {
return SpaceBarPlugin.getDefault().getImageDescriptor(Image.SPACE);
}
@Override
public IPersistableElement getPersistable() {
return null;
}
@Override
public String getToolTipText() {
return getName();
}
@SuppressWarnings("rawtypes")
@Override
public Object getAdapter(Class adapter) {
return Platform.getAdapterManager().getAdapter(this, adapter);
}
public SpaceEditorExport getExport() {
return export;
}
public void setExport(SpaceEditorExport export) {
this.export = export;
}
public Space getSpace() {
return space;
}
@Override
public String getName() {
return NLS.bind("{0} {1}", space, export.getTimeScope());
}
public String getEditorId() {
switch (export.getTimeScope()) {
case ALL:
return AbstractBrowser.EDITOR_ID_ALL;
case CURRENT:
return AbstractBrowser.EDITOR_ID_CURRENT;
case NEW:
return AbstractBrowser.EDITOR_ID_NEW;
default:
return AbstractBrowser.EDITOR_ID_SNAPSHOT;
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((export == null) ? 0 : export.hashCode());
result = prime * result + ((space == null) ? 0 : space.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SpaceEditorInput other = (SpaceEditorInput) obj;
if (export == null) {
if (other.export != null)
return false;
} else if (!export.equals(other.export))
return false;
if (space == null) {
if (other.space != null)
return false;
} else if (!space.equals(other.space))
return false;
return true;
}
}