package org.rstudio.studio.client.workbench.views.source.editors.text; import org.rstudio.studio.client.rmarkdown.model.NotebookFrameMetadata; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.user.client.ui.Widget; public class ChunkDataPage extends ChunkOutputPage implements EditorThemeListener { public ChunkDataPage(JavaScriptObject data, NotebookFrameMetadata metadata, int ordinal, ChunkOutputSize chunkOutputSize) { this(new ChunkDataWidget(data, chunkOutputSize), metadata, ordinal); } public ChunkDataPage(ChunkDataWidget widget, NotebookFrameMetadata metadata, int ordinal) { super(ordinal); content_ = widget; if (metadata == null) { thumbnail_ = new ChunkOutputThumbnail("data.frame", "", new ChunkDataPreview(widget.getData()), ChunkOutputWidget.getEditorColors()); } else { String clazz = metadata.getClasses().length() > 0 ? metadata.getClasses().get(0) : "data"; thumbnail_ = new ChunkOutputThumbnail(clazz, metadata.numRows() + " x " + metadata.numCols(), new ChunkDataPreview(widget.getData()), ChunkOutputWidget.getEditorColors()); } } @Override public Widget thumbnailWidget() { return thumbnail_; } @Override public Widget contentWidget() { return content_; } @Override public void onSelected() { // no current action here (consider e.g. rewind to beginning of frame) } @Override public void onEditorThemeChanged(Colors colors) { content_.onEditorThemeChanged(colors); } public void onResize() { content_.onResize(); } private final Widget thumbnail_; private final ChunkDataWidget content_; }