import Cocoa
-private extension Selector {
-
- static let showHideHistory = #selector(WindowManager.showHideHistory(_:))
- static let showHideSlotItemWindow = #selector(WindowManager.showHideSlotItemWindow(_:))
- static let showHideUpgradableShipWindow = #selector(WindowManager.showHideUpgradableShipWindow(_:))
- static let showHideScreenshotListWindow = #selector(WindowManager.showHideScreenshotListWindow(_:))
- static let showHideAirBaseInfoWindow = #selector(WindowManager.showHideAirBaseInfoWindow(_:))
- static let showHidePreferencePanle = #selector(WindowManager.showHidePreferencePanle(_:))
- static let openNewBrowser = #selector(WindowManager.openNewBrowser(_:))
- static let selectBookmark = #selector(WindowManager.selectBookmark(_:))
- static let showWindowAduster = #selector(WindowManager.showWindowAduster(_:))
-
- static let showShipWindow = #selector(WindowManager.showShipWindow(_:))
- static let showEquipmentWindow = #selector(WindowManager.showEquipmentWindow(_:))
- static let showMapWindow = #selector(WindowManager.showMapWindow(_:))
- static let showOwnershipShipWindow = #selector(WindowManager.showOwnershipShipWindow(_:))
-
- static let saveDocument = #selector(WindowManager.saveDocument(_:))
- static let openDocument = #selector(WindowManager.openDocument(_:))
-}
-
final class WindowManager {
private let browserWindowController = BroserWindowController()
}()
private var browserWindowControllers: [ExternalBrowserWindowController] = []
- private var updaters: [() -> Void] = []
private var logedJSONViewWindowController: JSONViewWindowController?
var canSaveLog: Bool {
func prepair() {
- _ = BookmarkManager.shared()
+ _ = BookmarkManager.shared
_ = screenshotListWindowController
browserWindowController.showWindow(nil)
browserWindowControllers.append(browser)
browser.window?.makeKeyAndOrderFront(nil)
- var token: NSObjectProtocol! = nil
-
- token = NotificationCenter.default
- .addObserver(forName: NSWindow.willCloseNotification,
- object: browser.window,
- queue: nil) { [unowned self] notification in
-
- NotificationCenter.default.removeObserver(token)
- if let obj = notification.object as? NSWindow,
- let index = self.browserWindowControllers.index(where: { $0.window == obj }) {
-
- self.browserWindowControllers.remove(at: index)
- }
+ NotificationCenter.default
+ .addObserverOnce(forName: NSWindow.willCloseNotification, object: browser.window, queue: nil) { [unowned self] notification in
+
+ if let obj = notification.object as? NSWindow,
+ let index = self.browserWindowControllers.index(where: { $0.window == obj }) {
+
+ self.browserWindowControllers.remove(at: index)
+ }
}
return browser
panel.begin {
- guard $0 == .OK,
- let url = panel.url,
- let array = self.jsonViewWindowController?.commands
- else { return }
+ guard $0 == .OK else { return }
+ guard let url = panel.url else { return }
+ guard let array = self.jsonViewWindowController?.commands else { return }
let data = NSKeyedArchiver.archivedData(withRootObject: array)
try data.write(to: url)
} catch {
- print("Can not write to \(url)")
+
+ Logger.shared.log("Can not write to \(url)")
}
}
}
panel.begin {
- guard $0 == .OK,
- let url = panel.url
- else { return }
+ guard $0 == .OK else { return }
+ guard let url = panel.url else { return }
do {
let data = try Data(contentsOf: url)
let array = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data)
- guard let commands = array as? [[String: Any]]
- else { return }
+ guard let commands = array as? [[String: Any]] else { return }
self.logedJSONViewWindowController = JSONViewWindowController()
self.logedJSONViewWindowController?.commands = commands
} catch {
- print("Can not load \(url)")
+ Logger.shared.log("Can not load \(url)")
}
}
}
guard let action = menuItem.action else { return false }
switch action {
- case Selector.showHideHistory:
+
+ case #selector(WindowManager.showHideHistory(_:)):
setTitle(menuItem,
historyWindowController.window,
- NSLocalizedString("Show History", comment: "Show History"),
- NSLocalizedString("Hide History", comment: "Hide History"))
+ LocalizedStrings.showHistory.string,
+ LocalizedStrings.hideHistory.string)
return true
- case Selector.showHideSlotItemWindow:
+ case #selector(WindowManager.showHideSlotItemWindow(_:)):
setTitle(menuItem,
slotItemWindowController.window,
- NSLocalizedString("Show Slot Item", comment: "Show Slot Item"),
- NSLocalizedString("Hide Slot Item", comment: "Hide Slot Item"))
+ LocalizedStrings.showSlotItem.string,
+ LocalizedStrings.hideSlotItem.string)
return true
- case Selector.showHideUpgradableShipWindow:
+ case #selector(WindowManager.showHideUpgradableShipWindow(_:)):
setTitle(menuItem,
upgradableShipWindowController.window,
- NSLocalizedString("Show Upgradable Ships", comment: "Show Upgradable Ships"),
- NSLocalizedString("Hide Upgradable Ships", comment: "Hide Upgradable Ships"))
+ LocalizedStrings.showUpgradableShips.string,
+ LocalizedStrings.hideUpgradableShips.string)
return true
- case Selector.showHideScreenshotListWindow:
+ case #selector(WindowManager.showHideScreenshotListWindow(_:)):
setTitle(menuItem,
screenshotListWindowController.window,
- NSLocalizedString("Show Screenshot List", comment: "Show Screenshot List"),
- NSLocalizedString("Hide Screenshot List", comment: "Hide Screenshot List"))
+ LocalizedStrings.showScreenshotList.string,
+ LocalizedStrings.hideScreenshotList.string)
return true
- case Selector.showHideAirBaseInfoWindow:
+ case #selector(WindowManager.showHideAirBaseInfoWindow(_:)):
setTitle(menuItem,
airBaseWindowController.window,
- NSLocalizedString("Show Air Base Info", comment: "Show Air Base Info"),
- NSLocalizedString("Hide Air Base Info", comment: "Hide Air Base Info"))
+ LocalizedStrings.showAirbaseInfo.string,
+ LocalizedStrings.hideAirbaseInfo.string)
return true
- case Selector.showHidePreferencePanle:
+ case #selector(WindowManager.showHidePreferencePanle(_:)):
return true
- case Selector.openNewBrowser:
+ case #selector(WindowManager.openNewBrowser(_:)):
return true
- case Selector.selectBookmark:
+ case #selector(WindowManager.selectBookmark(_:)):
return true
- case Selector.showWindowAduster:
+ case #selector(WindowManager.showWindowAduster(_:)):
return true
- case Selector.showShipWindow, Selector.showEquipmentWindow,
- Selector.showMapWindow, Selector.showOwnershipShipWindow:
+ case #selector(WindowManager.showShipWindow(_:)),
+ #selector(WindowManager.showEquipmentWindow(_:)),
+ #selector(WindowManager.showMapWindow(_:)),
+ #selector(WindowManager.showOwnershipShipWindow(_:)):
+
return true
- case Selector.saveDocument, Selector.openDocument:
+ case #selector(WindowManager.saveDocument(_:)),
+ #selector(WindowManager.openDocument(_:)):
+
return canSaveLog
default: