/*
* NotebookDocQueue.java
*
* Copyright (C) 2009-16 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
* this program is licensed to you under the terms of version 3 of the
* GNU Affero General Public License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
*
*/
package org.rstudio.studio.client.rmarkdown.model;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
public class NotebookDocQueue extends JavaScriptObject
{
protected NotebookDocQueue()
{
}
public static final native NotebookDocQueue create(
String docId, String jobDesc, String workingDir, int commitMode,
int pixelWidth, int charWidth) /*-{
return {
doc_id: docId,
job_desc: jobDesc,
working_dir: workingDir,
commit_mode: commitMode,
pixel_width: pixelWidth,
char_width: charWidth,
units: [],
max_units: 0,
completed_units: []
}
}-*/;
public final native void addUnit(NotebookQueueUnit unit) /*-{
this.units.push(unit);
this.max_units = Math.max(this.units.length, this.max_units);
}-*/;
public final native NotebookQueueUnit removeUnit(NotebookQueueUnit unit) /*-{
var idx = this.units.indexOf(unit);
if (idx >= 0)
{
this.units.splice(idx, 1);
}
}-*/;
public final native NotebookQueueUnit removeUnit(String chunkId) /*-{
for (var idx = 0; idx < this.units.length; idx++)
{
if (this.units[idx].chunk_id == chunkId)
{
this.units.splice(idx, 1);
return;
}
}
}-*/;
public final native void removeAllUnits() /*-{
this.units = [];
}-*/;
public final native void addCompletedUnit(NotebookQueueUnit unit) /*-{
this.completed_units.push(unit);
}-*/;
public final native String getDocId() /*-{
return this.doc_id;
}-*/;
public final native String getJobDesc() /*-{
return this.job_desc;
}-*/;
public final native int getCommitMode() /*-{
return this.commit_mode;
}-*/;
public final native int getPixelWidth() /*-{
return this.pixel_width;
}-*/;
public final native int getCharWidth() /*-{
return this.char_width;
}-*/;
public final native int getMaxUnits() /*-{
return this.max_units;
}-*/;
public final native JsArray<NotebookQueueUnit> getUnits() /*-{
return this.units;
}-*/;
public final native JsArray<NotebookQueueUnit> getCompletedUnits() /*-{
return this.completed_units || [];
}-*/;
public final boolean complete()
{
return getUnits().length() == 0;
}
public final static int QUEUE_OP_ADD = 0;
public final static int QUEUE_OP_UPDATE = 1;
public final static int QUEUE_OP_DELETE = 2;
public final static int CHUNK_EXEC_STARTED = 0;
public final static int CHUNK_EXEC_FINISHED = 1;
public final static int CHUNK_EXEC_CANCELLED = 2;
}