package sk.stuba.fiit.perconik.activity.serializers.ui.text; import java.util.Set; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.ITextViewerExtension; import sk.stuba.fiit.perconik.activity.serializers.ui.selection.SelectionSerializer; import sk.stuba.fiit.perconik.data.content.StructuredContent; import static sk.stuba.fiit.perconik.data.content.StructuredContents.key; public final class TextViewerSerializer extends AbstractTextViewerSerializer<ITextViewer> { public TextViewerSerializer(final Option ... options) { super(options); } public TextViewerSerializer(final Iterable<Option> options) { super(options); } static void putTextViewer(final StructuredContent content, final ITextViewer viewer, final Set<Option> options) { content.put(key("top", "inset"), viewer.getTopInset()); content.put(key("top", "index"), viewer.getTopIndex()); content.put(key("top", "offset"), viewer.getTopIndexStartOffset()); content.put(key("bottom", "index"), viewer.getBottomIndex()); content.put(key("bottom", "offset"), viewer.getBottomIndexEndOffset()); content.put(key("selection"), new SelectionSerializer(options).serialize(viewer.getSelectionProvider().getSelection())); content.put(key("vision"), new RegionSerializer(options).serialize(viewer.getVisibleRegion())); content.put(key("document"), new DocumentSerializer(options).serialize(viewer.getDocument())); content.put(key("isEditable"), viewer.isEditable()); if (viewer instanceof ITextViewerExtension) { ITextViewerExtension extension = (ITextViewerExtension) viewer; content.put(key("mark"), extension.getMark()); } } }