A small menubar app that allows you to switch between R versions quickly (if you have multiple versions of R framework installed). https://rud.is/rswitch
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
1.4 KiB

//
// RStudioServerAction.swift
// RSwitch
//
// Created by hrbrmstr on 9/5/19.
// Copyright © 2019 Bob Rudis. All rights reserved.
//
import Foundation
import Cocoa
extension AppDelegate {
@objc func newRstudioServerSession(_ sender: NSMenuItem) {
newSessController.showWindow(self)
newSessController.window?.orderFront(self)
NSApp.activate(ignoringOtherApps: true)
}
@objc func activateServerSession(_ sender: NSMenuItem) {
print("activate Session")
let sess = (sender.representedObject as! RStudioServerSession)
sess.show()
}
}
class RStudioServerMenuAction {
public static func populateRStudioServerSessions(menu: NSMenu, manager : RStudioServerSessionManager) {
menu.addItem(NSMenuItem.separator())
let rsDropdown = NSMenuItem(title: "RStudio Server Sessions", action: nil, keyEquivalent: "")
let rsSub = NSMenu()
menu.addItem(rsDropdown)
menu.setSubmenu(rsSub, for: rsDropdown)
let newRStudioSessItem = NSMenuItem(title: "New RStudio Server Connection…", action: Selector(("newRstudioServerSession:")), keyEquivalent: "")
rsSub.addItem(newRStudioSessItem)
rsSub.addItem(NSMenuItem.separator())
for sess in manager.sessions! {
let sessItem = NSMenuItem(title: sess.menuTitle, action: Selector(("activateServerSession:")), keyEquivalent: "")
sessItem.representedObject = sess
rsSub.addItem(sessItem)
}
}
}