use of com.google.gwt.core.client.Scheduler.ScheduledCommand in project rstudio by rstudio.
the class EnvironmentObjects method setObjectDisplay.
// Sets the object display type. Waits for the event loop to finish because
// of an apparent timing bug triggered by superdevmode (see case 3745).
public void setObjectDisplay(int type) {
deferredObjectDisplayType_ = new Integer(type);
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
setDeferredObjectDisplay();
}
});
}
use of com.google.gwt.core.client.Scheduler.ScheduledCommand in project rstudio by rstudio.
the class Files method initSession.
private void initSession() {
final SessionInfo sessionInfo = session_.getSessionInfo();
ClientInitState state = sessionInfo.getClientState();
// make the column sort order persistent
new JSObjectStateValue(MODULE_FILES, KEY_SORT_ORDER, ClientState.PROJECT_PERSISTENT, state, false) {
@Override
protected void onInit(JsObject value) {
if (value != null)
columnSortOrder_ = value.cast();
else
columnSortOrder_ = null;
lastKnownState_ = columnSortOrder_;
view_.setColumnSortOrder(columnSortOrder_);
}
@Override
protected JsObject getValue() {
if (columnSortOrder_ != null)
return columnSortOrder_.cast();
else
return null;
}
@Override
protected boolean hasChanged() {
if (lastKnownState_ != columnSortOrder_) {
lastKnownState_ = columnSortOrder_;
return true;
} else {
return false;
}
}
private JsArray<ColumnSortInfo> lastKnownState_ = null;
};
// navigate to previous directory (works for resumed case)
new StringStateValue(MODULE_FILES, KEY_PATH, ClientState.PROJECT_PERSISTENT, state) {
@Override
protected void onInit(final String value) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute() {
// we don't need to initialize from client state
if (hasNavigatedToDirectory_)
return;
// compute start dir
String path = transformPathStateValue(value);
FileSystemItem start = path != null ? FileSystemItem.createDir(path) : FileSystemItem.createDir(sessionInfo.getInitialWorkingDir());
navigateToDirectory(start);
}
});
}
@Override
protected String getValue() {
return currentPath_.getPath();
}
private String transformPathStateValue(String value) {
// if the value is null then return null
if (value == null)
return null;
// only respect the value for projects
String projectFile = session_.getSessionInfo().getActiveProjectFile();
if (projectFile == null)
return null;
// ensure that the value is within the project dir (it wouldn't
// be if the project directory has been moved or renamed)
String projectDirPath = FileSystemItem.createFile(projectFile).getParentPathString();
if (value.startsWith(projectDirPath))
return value;
else
return null;
}
};
}
use of com.google.gwt.core.client.Scheduler.ScheduledCommand in project rstudio by rstudio.
the class HistoryPane method setRecentCommands.
public void setRecentCommands(ArrayList<HistoryEntry> entries, boolean scrollToBottom) {
commandList_.clear();
commandList_.addItems(entries, true);
if (scrollToBottom) {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute() {
recentScrollPanel_.scrollToBottom();
}
});
}
}
use of com.google.gwt.core.client.Scheduler.ScheduledCommand in project rstudio by rstudio.
the class FilesPane method onBeforeSelected.
@Override
public void onBeforeSelected() {
if (needsInit) {
needsInit = false;
FileSystemItem home = FileSystemItem.home();
observer_.onFileNavigation(home);
} else {
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
filesList_.redraw();
}
});
}
}
use of com.google.gwt.core.client.Scheduler.ScheduledCommand in project rstudio by rstudio.
the class Toolbar method invalidateSeparators.
public void invalidateSeparators() {
if (!separatorsInvalidated_) {
separatorsInvalidated_ = true;
Scheduler.get().scheduleFinally(new ScheduledCommand() {
public void execute() {
manageSeparators();
}
});
}
}
Aggregations