package sk.stuba.fiit.perconik.activity.serializers.ui;
import java.util.Set;
import org.eclipse.jface.text.ITextOperationTarget;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.ui.IEditorPart;
import sk.stuba.fiit.perconik.activity.serializers.ui.text.TextViewerSerializer;
import sk.stuba.fiit.perconik.data.content.StructuredContent;
import static sk.stuba.fiit.perconik.data.content.StructuredContents.key;
public final class EditorSerializer extends AbstractPartSerializer<IEditorPart> {
public EditorSerializer(final Option ... options) {
super(options);
}
public EditorSerializer(final Iterable<Option> options) {
super(options);
}
static void putEditor(final StructuredContent content, final IEditorPart part, final Set<Option> options) {
content.put(key("input"), new EditorInputSerializer(options).serialize(part.getEditorInput()));
content.put(key("isSaveAsAllowed"), part.isSaveAsAllowed());
content.put(key("isSaveOnCloseNeeded"), part.isSaveOnCloseNeeded());
Object viewer = part.getAdapter(ITextOperationTarget.class);
if (viewer instanceof ITextViewer) {
content.put(key("viewer"), new TextViewerSerializer(options).serialize((ITextViewer) viewer));
}
}
}