//
// R S t u d i o S e r v e r A c t i o n . s w i f t
// R S w i t c h
//
// C r e a t e d b y h r b r m s t r o n 9 / 5 / 1 9 .
// C o p y r i g h t © 2 0 1 9 B o b R u d i s . A l l r i g h t s r e s e r v e d .
//
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 )
}
}
}