Make progress on wiring views back together to handle selection changes.

This commit is contained in:
Brent Simmons
2019-02-17 21:43:51 -08:00
parent 175552d113
commit 80761b4a83
6 changed files with 63 additions and 16 deletions

View File

@@ -70,6 +70,7 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
sidebarViewController.delegate = self
timelineContainerViewController = splitViewController?.splitViewItems[1].viewController as? TimelineContainerViewController
timelineContainerViewController.delegate = self
NotificationCenter.default.addObserver(self, selector: #selector(applicationWillTerminate(_:)), name: NSApplication.willTerminateNotification, object: nil)
@@ -369,7 +370,7 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
extension MainWindowController: SidebarDelegate {
func sidebarSelectionDidChange(to selectedObjects: [AnyObject]?) {
func sidebarSelectionDidChange(_: SidebarViewController, selectedObjects: [AnyObject]?) {
// TODO: if searching, cancel search
timelineContainerViewController.setRepresentedObjects(selectedObjects, mode: .regular)
timelineContainerViewController.showTimeline(.regular)
@@ -378,6 +379,22 @@ extension MainWindowController: SidebarDelegate {
}
}
// MARK: - TimelineContainerViewControllerDelegate
extension MainWindowController: TimelineContainerViewControllerDelegate {
func timelineSelectionDidChange(_: TimelineContainerViewController, articles: [Article]?, mode: TimelineSourceMode) {
let detailState: DetailState
if let articles = articles {
detailState = articles.count == 1 ? .article(articles.first!) : .multipleSelection
}
else {
detailState = .noSelection
}
detailViewController?.setState(detailState, mode: mode)
}
}
// MARK: - Scripting Access
/*