[Sciviews-commits] r430 - in komodo/SciViews-K-dev: . R content content/js

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Feb 8 09:59:39 CET 2012


Author: prezez
Date: 2012-02-08 09:59:39 +0100 (Wed, 08 Feb 2012)
New Revision: 430

Modified:
   komodo/SciViews-K-dev/R/.Rprofile
   komodo/SciViews-K-dev/R/captureAll.R
   komodo/SciViews-K-dev/content/js/commands.js
   komodo/SciViews-K-dev/content/js/r-help.js
   komodo/SciViews-K-dev/content/js/r.js
   komodo/SciViews-K-dev/content/js/rconnection.js
   komodo/SciViews-K-dev/content/js/sciviews.js
   komodo/SciViews-K-dev/content/overlayMain.xul
   komodo/SciViews-K-dev/install.rdf
   komodo/SciViews-K-dev/sciviewsk-1.1.0dev-ko.xpi
Log:
Added toggle button to start/stop R (depressed when R is detected).
Customizable "R toolbar" (Ko7). 
sv.addNotification: adds an entry in the notifications panel (Ko7) (will eventually replace sv.log)
R/captureAll.R: warnings are now correctly printed when warn level changes during code evaluation.

Modified: komodo/SciViews-K-dev/R/.Rprofile
===================================================================
--- komodo/SciViews-K-dev/R/.Rprofile	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/R/.Rprofile	2012-02-08 08:59:39 UTC (rev 430)
@@ -5,7 +5,7 @@
 
 
 if("komodoConnection" %in% search()) detach("komodoConnection")
-attach(new.env(), name="komodoConnection")
+attach(new.env(), name = "komodoConnection")
 
 with(as.environment("komodoConnection"), {
 
@@ -60,9 +60,9 @@
 		if(tools:::httpdPort == 0) suppressMessages(tools:::startDynamicHelp(TRUE))
 		help_type <- "html"
 		ret <- NULL
-		oBrowser <- options(browser=function(url) ret <<- url)
+		oBrowser <- options(browser = function(url) ret <<- url)
 		on.exit(options(oBrowser))
-		if(mode((cl <- match.call())[[2]][[1]]) == "name") { # handle old syntax
+		if(mode((cl <- match.call())[[2L]][[1L]]) == "name") { # handle old syntax
 			cl <- cl[[2]]
 			cl$help_type <- help_type
 			print(eval(cl, .GlobalEnv))
@@ -77,84 +77,63 @@
 
 	env <- as.environment("komodoConnection")
 	src <- dir(pattern = "\\.R$")
-	lapply(src[src != "init.R"], sys.source, envir = env)
+	lapply(src[src != "init.R"], sys.source, envir = env, keep.source = FALSE)
 	invisible()
 })
 
 
-
-#svOption("ko.port", as.type=as.numeric)
-#svOption("ko.host", default="localhost")
-
-.Last <- function() {
-	try({
+`.Last` <- function() {
+	tryCatch({
+	koCmd("sv.addNotification(\"R says bye!\"); sv.command.updateRStatus(false);")
 	stopAllServers()
 	stopAllConnections()
-	})
+	}, error = function(...) NULL)
 }
 
 
 local({
+	port <- 1111L
+	while((port < 1125L) && (as.character(startServer(port)) == "0"))
+		port <- port + 1L
 
-port <- 1111L
-while((port < 1115L) && (as.character(startServer(port)) == "0")) port <- port + 1L
+	cwd0 <- normalizePath(".")
+	if(file.exists("init.R")) source("init.R")
 
-cwd0 <- normalizePath(".")
+	Rservers <- enumServers()
+	if(is.numeric(getOption("ko.port")) && length(Rservers) > 0L) {
+		cat("Server started at port", Rservers, "\n")
+		invisible(koCmd(paste(
+			"sv.cmdout.clear()",
+			sprintf("sv.cmdout.append('%s is started')", R.version.string),
+			"sv.command.updateRStatus(true)",
+			sprintf("sv.pref.setPref('sciviews.r.port', %s)", tail(Rservers, 1L)),
+			sep = ";")))
+	}
 
-#cat("cwd0 is ", sQuote(getwd()), "\n")
+	cat("cwd is now ", sQuote(getwd()), "\n")
 
-if(file.exists("init.R")) source("init.R")
+	## Do we have a .Rprofile file to source?
+	#rprofile <- file.path(c(getwd(), Sys.getenv("R_USER")), ".Rprofile")
+	cwd <- normalizePath(getwd())
+	isBaseDir <- file.exists(file.path(cwd, "sv-basedir")) || (cwd == cwd0)
+	rprofile <- file.path(c(if(!isBaseDir) getwd(), Sys.getenv("R_USER")), ".Rprofile")
+	rprofile <- rprofile[file.exists(rprofile)][1L]
 
-Rservers <- enumServers()
-if(is.numeric(getOption("ko.port")) && length(Rservers) > 0) {
-	cat("Server started at port", Rservers, "\n")
-	invisible(koCmd(paste(
-		"sv.cmdout.clear()",
-		#"sv.cmdout.append('R is started')",
-		sprintf("sv.cmdout.append('%s is started')", R.version.string),
-		"sv.command.updateRStatus(true)",
-		sprintf("sv.pref.setPref('sciviews.r.port', %s)", tail(Rservers, 1)),
-		sep = ";")))
-}
+	if (!is.na(rprofile)) {
+		source(rprofile)
+		cat("Loaded file:", rprofile, "\n")
+	}
 
-cat("cwd is now ", sQuote(getwd()), "\n")
+	if(.Platform$GUI == "Rgui") {
+		if(file.exists("Rconsole"))	utils:::loadRconsole("Rconsole")
+		utils::setWindowTitle("talking to Komodo")
+	}
 
-## Do we have a .Rprofile file to source?
-#rprofile <- file.path(c(getwd(), Sys.getenv("R_USER")), ".Rprofile")
-cwd <- normalizePath(getwd())
-isBaseDir <- file.exists(file.path(cwd, "sv-basedir")) || (cwd == cwd0)
-rprofile <- file.path(c(if(!isBaseDir) getwd(), Sys.getenv("R_USER")), ".Rprofile")
-rprofile <- rprofile[file.exists(rprofile)][1]
+	if(!any(c("--vanilla", "--no-restore", "--no-restore-data") %in% commandArgs())
+		&& file.exists(".RData")) {
+		#sys.load.image(".RData", FALSE)
+	}
+	if(file.exists(".Rhistory")) loadhistory(".Rhistory")
 
-if (!is.na(rprofile)) {
-	source(rprofile)
-	cat("Loaded file:", rprofile, "\n")
-}
 
-if(.Platform$GUI == "Rgui") {
-	if(file.exists("Rconsole"))	utils:::loadRconsole("Rconsole")
-	utils::setWindowTitle("talking to Komodo")
-}
-
-if(!any(c("--vanilla", "--no-restore", "--no-restore-data") %in% commandArgs())
-	&& file.exists(".RData")) {
-	#sys.load.image(".RData", FALSE)
-}
-if(file.exists(".Rhistory")) loadhistory(".Rhistory")
-
-
-#obj <- ls(.GlobalEnv)
-#conflictObjs <- obj[obj %in% ls("komodoConnection")]
-#
-#if(length(conflictObjs) > 0) {
-#	cat("Following objects in .GlobalEnv were conflicting and  should be removed: \n")
-#	cat(sQuote(conflictObjs), "\n")
-#	rm(list=conflictObjs, envir=.GlobalEnv, inherits=FALSE)
-#}
-
-
 })
-
-#with(as.environment("komodoConnection"), {
-#rm(getHelpURL,  envir=.GlobalEnv)
-#})

Modified: komodo/SciViews-K-dev/R/captureAll.R
===================================================================
--- komodo/SciViews-K-dev/R/captureAll.R	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/R/captureAll.R	2012-02-08 08:59:39 UTC (rev 430)
@@ -108,9 +108,7 @@
 			#marks <<- c(marks, list(c(pos = sum(nchar(rval)), stream = to.stdout)))
 			#cat("<", id, inStdOut, ">")
 		}
-	} else {
-		putMark <- function(to.stdout, id) {}
-	}
+	} else 	putMark <- function(to.stdout, id) {}
 
 	`evalVis` <- function(x) withVisible(eval(x, envir))
 
@@ -118,8 +116,6 @@
 		# remove call (eval(expr, envir, enclos)) from the message
 		ncls <- length(calls)
 
-		#browser()
-
 		if(identical(calls[[NframeOffset + foffset]], conditionCall(e)))
 			e$call <- NULL
 
@@ -176,21 +172,21 @@
 		},
 		error = function(e) invokeRestart("grmbl", e, sys.calls(), off),
 		warning = function(e) {
-
 			# remove call (eval(expr, envir, enclos)) from the message
-			if(isTRUE(all.equal(sys.call(NframeOffset + off), e$call, check.attributes=FALSE)))
+			if(isTRUE(all.equal(sys.call(NframeOffset + off), e$call,
+				check.attributes = FALSE)))
 				e$call <- NULL
 
-			last.warning <<- c(last.warning, structure(list(e$call), names=e$message))
-
 			if(getWarnLev() != 0L) {
 				putMark(FALSE, 2L)
 				.Internal(.signalCondition(e, conditionMessage(e), conditionCall(e)))
 				.Internal(.dfltWarn(conditionMessage(e), conditionCall(e)))
 				putMark(TRUE, 3L)
+			} else {
+				last.warning <<- c(last.warning, structure(list(e$call),
+					names = e$message))
 			}
 			invokeRestart("muffleWarning")
-
 		}),
 	# Restarts:
 
@@ -213,7 +209,7 @@
 
 	if(getWarnLev() == 0L) {
 		nwarn <- length(last.warning)
-		assign("last.warning", last.warning, envir=baseenv())
+		assign("last.warning", last.warning, envir = baseenv())
 
 		if(nwarn != 0L) putMark(FALSE, 6L)
 		if(nwarn <= 10L) {

Modified: komodo/SciViews-K-dev/content/js/commands.js
===================================================================
--- komodo/SciViews-K-dev/content/js/commands.js	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/content/js/commands.js	2012-02-08 08:59:39 UTC (rev 430)
@@ -201,10 +201,11 @@
 			sv.r.running = running;
 			xtk.domutils.fireEvent(window, 'r_app_started_closed');
 			window.updateCommands('r_app_started_closed');
-			sv.cmdout.message("R status: " + (running? "" : "not ") + "running" );
+			sv.addNotification("R is " + (running? "" : "not ") + "running", 0, 2000);
 		}
 	}
 
+
 this.openPkgManager = function () {
 	var win = _getWindowRef("chrome://sciviewsk/content/pkgman/pkgman.xul",
 		"RPkgMgr", "chrome=yes,dependent" +
@@ -275,8 +276,8 @@
 			// try/catch here somehow prevented from storing window
 			// reference in RHelpWin. No idea why...
 			RHelpWin = window.openDialog(rHelpXulUri, "RHelp",
-			"chrome=yes,dependent,resizable=yes," +
-			"scrollbars=yes,status=no,close,dialog=no", sv, uri);
+				"chrome=yes,dependent,resizable=yes," +
+				"scrollbars=yes,status=no,close,dialog=no", sv, uri);
 		} else {
 			RHelpWin.go(uri);
 		}
@@ -321,7 +322,6 @@
 		'cmd_svSessionMgr': [ "sv.command.openSessionMgr();", 0 ],
 		'cmd_svStartR': ['sv.command.startR();', XRStopped],
 		'cmd_svREscape': [ 'sv.r.escape();', XRRunning ],
-		// 'cmd_svUpdateRInfo': ['sv.socket.rUpdate();', XRRunning],
 		'cmd_svRRunAll': [ 'sv.r.send("all");',XisRDoc | XRRunning ],
 		'cmd_svRSourceAll': [ 'sv.r.source("all");',XisRDoc | XRRunning ],
 		'cmd_svRRunBlock': [ 'sv.r.send("block");',XisRDoc | XRRunning ],
@@ -518,7 +518,7 @@
 this.places = {
 	sourceSelection: function sv_sourcePlacesSelection() {
 		var files = ko.places.manager.getSelectedItems()
-			.filter(function(x) (x.file.ext.toLowerCase() == ".r"))
+			.filter(function(x) (x.file.isLocal && x.file.ext.toLowerCase() == ".r"))
 			.map(function(x) x.file.path);
 		if (!files.length) return;
 		var cmd = files.map(function(x) "source('" +
@@ -528,11 +528,12 @@
 
 	get anyRFilesSelected()
 		ko.places.manager.getSelectedItems().some(function(x)
+			x.file.isLocal && 
 			x.file.ext.toLowerCase() == ".r"),
 
 	loadSelection: function sv_loadPlacesSelection() {
 		var files = ko.places.manager.getSelectedItems()
-			.filter(function(x) (x.file.ext.toLowerCase() == ".rdata"))
+			.filter(function(x) (x.file.isLocal && x.file.ext.toLowerCase() == ".rdata"))
 			.map(function(x) x.file.path);
 		if (!files.length) return;
 		var cmd = files.map(function(x) "load('" +
@@ -542,7 +543,7 @@
 
 	get anyRDataFilesSelected()
 		ko.places.manager.getSelectedItems().some(
-			function(x) x.file.ext.toLowerCase() == ".rdata")
+			function(x) x.file.isLocal && x.file.ext.toLowerCase() == ".rdata")
 
 }
 
@@ -574,6 +575,14 @@
 
 addEventListener("load", _this.onLoad, false);
 
+function ObserveR () {
+	var el = document.getElementById('cmd_svRStarted');
+	el.setAttribute("checked", _isRRunning());
+}
+
+addEventListener("r_app_started_closed", ObserveR, false);
+
+
 }).apply(sv.command);
 
 // XXX: for DEBUG only

Modified: komodo/SciViews-K-dev/content/js/r-help.js
===================================================================
--- komodo/SciViews-K-dev/content/js/r-help.js	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/content/js/r-help.js	2012-02-08 08:59:39 UTC (rev 430)
@@ -21,18 +21,14 @@
     if (view != null) {
         if (view.koDoc) {
             language = view.koDoc.subLanguage;
-            if (language == "XML") {
-                language = view.koDoc.language;
-            }
-        } else {
-            language = view.language;
-        }
+            if (language == "XML") language = view.koDoc.language;
+        } else language = view.language;
     }
 
     var command = null, name = null;
     if (language) {
-        if (gPrefs.hasStringPref(language + "HelpCommand")) {
-            command = gPrefs.getStringPref(language + "HelpCommand");
+        if (ko.prefs.hasStringPref(language + "HelpCommand")) {
+            command = ko.prefs.getStringPref(language + "HelpCommand");
         } else {
             var langRegistrySvc = Components
 				.classes['@activestate.com/koLanguageRegistryService;1']
@@ -47,12 +43,12 @@
         }
     }
     if (!command) {
-        command = gPrefs.getStringPref("DefaultHelpCommand");
+        command = ko.prefs.getStringPref("DefaultHelpCommand");
         name = "Help";
     }
 
 	if (command.search(/^\s*javascript:\s*(\S.*)\s*$/) != -1)  {
-		command = ko.interpolate.interpolateStrings(RegExp.$1);
+		command = ko.interpolate.interpolateString(RegExp.$1);
 		eval(command);
 	} else {
 		ko.run.runCommand(window, command, null, null, false, false, true,

Modified: komodo/SciViews-K-dev/content/js/r.js
===================================================================
--- komodo/SciViews-K-dev/content/js/r.js	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/content/js/r.js	2012-02-08 08:59:39 UTC (rev 430)
@@ -872,6 +872,8 @@
 	ko.statusBar.AddMessage("", "SciViews-K");
 	// Clear the objects browser
 	sv.rbrowser.clearPackageList();
+	setTimeout(function() sv.command.updateRStatus(sv.rconn.testRAvailability()),
+		1000);
 }
 
 //// Define the 'sv.r.pkg' namespace ///////////////////////////////////////////

Modified: komodo/SciViews-K-dev/content/js/rconnection.js
===================================================================
--- komodo/SciViews-K-dev/content/js/rconnection.js	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/content/js/rconnection.js	2012-02-08 08:59:39 UTC (rev 430)
@@ -147,13 +147,9 @@
 this.testRAvailability = function(checkProc) {
 	var result = _this.evalAtOnce("cat(123)");
 	var connectionUp = result.indexOf("123") != -1;
-	var ret;
-	if(!connectionUp) {
-		ret = "Cannot connect to R";
-	} else {
-		ret = "Connection with R successful.";
-	}
-	sv.cmdout.append("R connection test:\n" + ret);
+	var ret = connectionUp? "Connection with R successful." :
+		"Cannot connect to R.";
+	sv.addNotification("R connection test: " + ret, 0, 1000);
 	return connectionUp;
 }
 
@@ -302,7 +298,6 @@
 
 
 this.printResults = function(result, command, executed, wantMore) {
-	//alert(result + "\n" + command +  "\n" + executed);
 	var msg;
 	command = _curCommand + _curPrompt + ' ' + command + sv.cmdout.eolChar;
 	window.clearTimeout(_waitMessageTimeout);

Modified: komodo/SciViews-K-dev/content/js/sciviews.js
===================================================================
--- komodo/SciViews-K-dev/content/js/sciviews.js	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/content/js/sciviews.js	2012-02-08 08:59:39 UTC (rev 430)
@@ -724,27 +724,30 @@
 	_this.append(str, true, false);
 }
 
+this.ensureShown = function () {
+	ko.uilayout.ensureOutputPaneShown();
+	if(document.getElementById("runoutput_tab") == null)
+		ko.uilayout.ensureTabShown("runoutput-desc-tabpanel", false);
+	else ko.uilayout.ensureTabShown("runoutput_tab", false);
+}
+
 function fixEOL(str) str.replace(/(\r?\n|\r)/g, _this.eolChar);
 
 this.print2 = function (command, result, done) {
 	var scimoz = _this.scimoz;
 	var eolChar = _this.eolChar;
-
+	_this.ensureShown();
 	command = fixEOL(command);
 	result = fixEOL(result);
-
+	var readOnly = scimoz.readOnly;
 	scimoz.readOnly = false;
 	if (!done) {
 		_this.clear();
 		command = command.replace(/^ {3}(?= *\S)/gm, ":+ "); // + eolChar;
 		result += eolChar;
 		scimoz.appendText(ko.stringutils.bytelength(command), command);
-		//scimoz.text += command;
 		this.styleLines(0, scimoz.lineCount, styleNumCode);
 		scimoz.appendText(ko.stringutils.bytelength(result), result);
-		//scimoz.text += result;
-		//alert(scimoz.lineCount);
-
 	} else {
 		var lineNum = scimoz.lineCount - 2;
 		if(this.getLine(lineNum) == '...' + eolChar) {
@@ -758,6 +761,7 @@
 	}
 	var firstVisibleLine = Math.max(scimoz.lineCount - scimoz.linesOnScreen - 1, 0);
 	scimoz.firstVisibleLine = firstVisibleLine;
+	scimoz.readOnly = readOnly;
 }
 
 this.replaceLine = function(lineNum, text, eol) {
@@ -773,21 +777,10 @@
 this.append = function (str, newline, scrollToStart) {
 	var scimoz = _this.scimoz;
 	var eolChar = _this.eolChar;
-
+	_this.ensureShown();
 	if (scrollToStart === undefined) scrollToStart = false;
-
-	try {
-		ko.run.output.show();
-	} catch(e) { // Komodo 6
-		ko.uilayout.ensureOutputPaneShown();
-		ko.uilayout.ensureTabShown("runoutput_tab", false);
-
-	}
-
 	str = fixEOL(str);
-
 	var lineCountBefore = scimoz.lineCount;
-
 	if (newline || newline === undefined) str += eolChar;
 	var readOnly = scimoz.readOnly;
 	try {
@@ -803,7 +796,8 @@
 	if (!scrollToStart) {
 		firstVisibleLine = Math.max(scimoz.lineCount - scimoz.linesOnScreen, 0);
 	} else {
-		firstVisibleLine = Math.min(lineCountBefore - 1, scimoz.lineCount - scimoz.linesOnScreen);
+		firstVisibleLine = Math.min(lineCountBefore - 1, scimoz.lineCount
+			- scimoz.linesOnScreen);
 	}
 	scimoz.firstVisibleLine = firstVisibleLine;
 
@@ -816,23 +810,10 @@
 	if (lineNumber === undefined) lineNumber = lineCount - 1;
 	while (lineNumber < 0) lineNumber = lineCount + lineNumber;
 	var oLine = {};
-	//return lineNumber;
 	scimoz.getLine(lineNumber, oLine);
 	return oLine.value;
 }
 
-//var re = /[\x02\x03]/;
-//var str0 = res, newStr = "";
-//var pos = [], pos0;
-//while(1){
-//	pos0 = str0.search(re);
-//	if (pos0 == -1) break;
-//	pos.push(pos0 + newStr.length);
-//	newStr += RegExp.leftContext;
-//	str0 = RegExp.rightContext;
-//}
-//newStr += str0;
-
 this.styleLines = function(startLine, endLine, styleNum) {
 	_init();
 	var scimoz = _this.scimoz;
@@ -895,14 +876,7 @@
 }
 // Display message on the status bar (default) or command output bar
 this.message = function (msg, timeout, highlight) {
-	try {
-		ko.run.output.show();
-	} catch(e) { // Komodo 6
-		ko.uilayout.ensureOutputPaneShown();
-		ko.uilayout.ensureTabShown("runoutput_tab", false);
-
-	}
-
+	_this.ensureShown();
 	var win = (window.frames["runoutput-desc-tabpanel"])?
 		window.frames["runoutput-desc-tabpanel"] : window;
 	var runoutputDesc = win.document.getElementById('runoutput-desc');
@@ -996,32 +970,32 @@
 }).apply(sv.log);
 
 
-sv.log.all(true);
+//sv.addNotification2 = function(msg, severity, timeout) {
+//	var n = ko.notifications.createNotification("sciviews-status-message",
+//		["sciviews-k"], 1, 	window, Ci.koINotificationManager.TYPE_STATUS);
+//	n.log = true;
+//	n.msg = n.description = msg;
+//	n.severity = severity;
+//	n.timeout = timeout;
+//	nm.addNotification(n);
+//}
+//    //n instanceof Ci.koIStatusMessage;
+//    //n instanceof Ci.koINotificationProgress;
+//            //n.maxProgress = Ci.koINotificationProgress.PROGRESS_NOT_APPLICABLE;
 
-//// Tests... default level do not print debug and infos!
-//sv.log.all(false);
-//alert(sv.log.isAll());
-//try {
-//   test = nonexistingvar;
-//} catch(e) {sv.log.exception(e, "Test it exception"); }
-//sv.log.critical("Test it critical");
-//sv.log.error("Test it error");
-//sv.log.warn("Test it warning");
-//sv.log.info("Test it info");
-//sv.log.debug("Test it debug");
-//sv.log.warnStack("Test it warn with stack");
-//// Set at debug/info level
-//sv.log.all(true);
-//alert(sv.log.isAll());
-//sv.log.critical("Test it critical 2");
-//sv.log.error("Test it error 2");
-//sv.log.warn("Test it warning 2");
-//sv.log.info("Test it info 2");
-//sv.log.debug("Test it debug 2");
-//sv.log.warnStack("Test it warn with stack 2");
-//// Show Komodo log
-//sv.log.show();
+sv.addNotification = function(msg, severity, timeout) {
+	var sm = Components.classes["@activestate.com/koStatusMessage;1"]
+		.createInstance(Components.interfaces.koIStatusMessage);
+	sm.category = "SV";
+	sm.msg = msg;
+	sm.log = true;
+	sm.severity = severity;
+	sm.timeout = timeout;
+	ko.notifications.addNotification(sm);
+}
 
+
+sv.log.all(true);
 // Installs toolboxes
 sv.checkToolbox = function () {
 

Modified: komodo/SciViews-K-dev/content/overlayMain.xul
===================================================================
--- komodo/SciViews-K-dev/content/overlayMain.xul	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/content/overlayMain.xul	2012-02-08 08:59:39 UTC (rev 430)
@@ -79,6 +79,9 @@
 			persist="checked"
 			oncommand="ko.commands.doCommandAsync('cmd_viewrtoolbar', event)"
 		/>
+		<broadcaster id="cmd_svRStarted"
+			oncommand="ko.commands.doCommand(sv.r.running? 'cmd_svQuitR' : 'cmd_svStartR');"
+			/>
 	</broadcasterset>
 
 	<commandset id="allcommands">
@@ -87,14 +90,14 @@
 			events="r_app_started_closed">
 			<command id="cmd_svStartR" key="key_cmd_svStartR"
 				oncommand="ko.commands.doCommand('cmd_svStartR');"
-				desc="R: &StartR;" label="&StartR;" accesskey="&StartR.key;"/>
+				desc="R: &StartR;" label="&StartR;" accesskey="&StartR.key;"
+				/>
 			<command id="cmd_svQuitR" key="key_cmd_svQuitR"
 				oncommand="ko.commands.doCommand('cmd_svQuitR');"
 				desc="R: &QuitR;" label="&QuitR;" accesskey="&QuitR.key;"/>
 			<command id="cmd_svREscape" key="key_cmd_svREscape"
 				oncommand="ko.commands.doCommand('cmd_svREscape');"
 				desc="R: &rEscape;" label="&rEscape;" accesskey="&rEscape.key;"/>
-
 			<command id="cmd_svOpenPkgManager" key="key_cmd_svOpenPkgManager"
 				oncommand="ko.commands.doCommand('cmd_svOpenPkgManager');" disabled="false"
 				desc="R: &pkgMgr;" label="&pkgMgr;" accesskey="&pkgMgr.key;"/>
@@ -245,75 +248,99 @@
 	</menubar>
 
 	<toolboxrow id="main-toolboxrow">
-		<toolbar class="chromeclass-toolbar"
+		<toolbar
 			id="RToolbar"
+			class="chromeclass-toolbar"
 			toolboxid="toolbox_main"
+			align="center"
 			broadcaster="cmd_viewrtoolbar"
 			grippyhidden="true"
-			align="center"
 			kohidden="true"
 			mode="icons"
 			persist="kohidden collapsed buttonstyle mode"
-			buttonstyle="pictures">
+			buttonstyle="pictures"
+			tooltiptext="R Toolbar"
+			customizable="true"
+			>
 			<toolbarbutton buttonstyle="pictures"
+						   tooltiptext="&StartR;"
+						   type="checkbox"
+						   autoCheck="false"
+						   persist="buttonstyle"
+						   class="r-run-command-icon"
+						   observes="cmd_svRStarted"
+						   id="RToolbarStartR"
+						   label="&StartR;" />
+
+			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rEscape;"
 						   persist="buttonstyle"
 						   class="stop-icon"
 						   observes="cmd_svREscape"
+						   id="RToolbarEscape"
 						   label="&rEscape;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSendLineOrSelection;"
 						   persist="buttonstyle"
 						   class="r-run-selection-icon"
 						   observes="cmd_svRRunLineOrSelection"
+						   id="RToolbarRunLineOrSelection"
 						   label="&rSendLineOrSelection;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSendFile;"
 						   persist="buttonstyle"
 						   class="r-run-all-icon"
 						   observes="cmd_svRRunAll"
+						   id="RToolbarRunAll"
 						   label="&rSendFile;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSrcFile;"
 						   persist="buttonstyle"
 						   class="r-source-all-icon"
 						   observes="cmd_svRSourceAll"
+						   id="RToolbarSourceAll"
 						   label="&rSrcFile;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSendBlock;"
 						   persist="buttonstyle"
 						   class="r-run-block-icon"
 						   observes="cmd_svRRunBlock"
+						   id="RToolbarRunBlock"
 						   label="&rSendBlock;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSrcBlock;"
 						   persist="buttonstyle"
 						   class="r-source-block-icon"
 						   observes="cmd_svRSourceBlock"
+						   id="RToolbarSourceBlock"
 						   label="&rSrcBlock;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSendPara;"
 						   persist="buttonstyle"
 						   class="r-run-para-icon"
 						   observes="cmd_svRRunPara"
+						   id="RToolbarRunPara"
 						   label="&rSendPara;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSrcPara;"
 						   persist="buttonstyle"
 						   class="r-source-para-icon"
 						   observes="cmd_svRSourcePara"
+						   id="RToolbarSourcePara"
 						   label="&rSrcPara;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSendFun;"
 						   persist="buttonstyle"
 						   class="r-run-function-icon"
 						   observes="cmd_svRRunFunction"
+						   id="RToolbarRunFunction"
 						   label="&rSendFun;" />
 			<toolbarbutton buttonstyle="pictures"
 						   tooltiptext="&rSrcFun;"
 						   persist="buttonstyle"
 						   class="r-source-function-icon"
 						   observes="cmd_svRSourceFunction"
+						   id="RToolbarSourceFunction"
 						   label="rSrcFun;" />
 		</toolbar>
 	</toolboxrow>

Modified: komodo/SciViews-K-dev/install.rdf
===================================================================
--- komodo/SciViews-K-dev/install.rdf	2012-02-07 13:35:38 UTC (rev 429)
+++ komodo/SciViews-K-dev/install.rdf	2012-02-08 08:59:39 UTC (rev 430)
@@ -17,7 +17,7 @@
             <Description>
                 <!-- Komodo IDE's uuid -->
                 <em:id>{36E66FA0-F259-11D9-850E-000D935D3368}</em:id>
-                <em:minVersion>6.0</em:minVersion>
+                <em:minVersion>7.0</em:minVersion>
                 <em:maxVersion>7.*</em:maxVersion>
             </Description>
         </em:targetApplication>
@@ -25,7 +25,7 @@
             <Description>
                 <!-- Komodo Edit's uuid -->
                 <em:id>{b1042fb5-9e9c-11db-b107-000d935d3368}</em:id>
-                <em:minVersion>6.0</em:minVersion>
+                <em:minVersion>7.0</em:minVersion>
                 <em:maxVersion>7.*</em:maxVersion>
             </Description>
         </em:targetApplication>

Modified: komodo/SciViews-K-dev/sciviewsk-1.1.0dev-ko.xpi
===================================================================
(Binary files differ)



More information about the Sciviews-commits mailing list