public FileSystemView(IFileSystemNode node, TabsCollectionView tabsCollectionView, ILibrary library) { _node = node; _tabsCollectionView = tabsCollectionView; _library = library; Initialize(); }
public void Store(TabsCollectionView tabs, ActionBarView actionBar) { var userFolder = new UserFolderPath(); var contents = new List <IPath>(); var queries = new List <IQuery>(); foreach (var tab in tabs.OpenedCustomTabs) { if (tab.Data is IQuery query) { queries.Add(query); } if (tab.Data is IContent content) { var path = new PartsPath(content.Source.Parts.SkipWhile(x => x.PlainText != userFolder.Name.PlainText).Skip(1)); contents.Add(path); } } var file = new SessionFile(queries.Select(x => x.PlainText), contents, new UserInterfaceSettings() { IsSideBarHidden = actionBar.IsPanelHidden }, new UserFolderPath()); file.Save(); }
public override void ViewDidLoad() { _library = new Library(new UserFolderPath()); _keyboard = new Keyboard(this); _session = new SessionContext(_library).Restore(); Application.Run(_keyboard); _keyboardUp = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.DidShowNotification, KeyboardIsUp); _keyboardDown = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.WillHideNotification, KeyboardIsDown); base.ViewDidLoad(); View.BackgroundColor = UIColor.White; Application.Instance.RegisterScheme(new HotKeyScheme( new HotKey(new Key("y"), () => _tabsView.SelectFiles()), new HotKey(new Key("u"), () => _tabsView.SelectTab(1)), new HotKey(new Key("i"), () => _tabsView.SelectTab(2)), new HotKey(new Key("o"), () => _tabsView.SelectTab(3)), new HotKey(new Key("p"), () => _tabsView.SelectTab(4)))); _tabsView = new TabsCollectionView(_library); _tabsView.OnTabSelected += TabsViewOnOnTabSelected; _tabsView.Initialize(_session.OpenedContentTabs.Select(path => _library.Load(path)).ToArray()); _contentHolderView = new ContentHolderView(data => { if (data is IFileSystemNode node) { return(new FileSystemView(node, _tabsView, _library)); } if (data is IArticle article) { return(new ArticleView(article)); } if (data is INovel novel) { var novelView = new NovelView(novel, _library); return(novelView); } if (data is IQuery searchQuery) { return(new SearchResultsView(searchQuery, _tabsView)); } return(new UIView() { BackgroundColor = UIColor.Black }); }); _actionBarView = new ActionBarView(_library, _contentHolderView, _session); _actionBarView.Search.OnSearchRequested += SearchOnOnSearchRequested; _actionBarView.SideMenuVisibilityChanged += SideMenuVisibilityChanged; var topSeparator = new UIView() { BackgroundColor = UIColor.LightGray }; var verticalSeparator = new UIView() { BackgroundColor = UIColor.LightGray }; var actionBarSeparator = new UIView() { BackgroundColor = UIColor.LightGray }; View.AddSubviews(_tabsView, _actionBarView, topSeparator, verticalSeparator, actionBarSeparator, _contentHolderView); _layout = () => { topSeparator.ChangeSize(View.Frame.Width, 1); topSeparator.ChangePosition(0, 20); if (_actionBarView.IsPanelHidden == false) { _tabsView.Hidden = false; _tabsView.ChangeWidth(200); _tabsView.ChangeHeight(View.Frame.Height - 20 - _bottomOffset); _tabsView.PositionToRight(View); _tabsView.ChangeY(topSeparator.Frame.Bottom); _actionBarView.ChangeY(topSeparator.Frame.Bottom); _actionBarView.ChangeX(0); _actionBarView.ChangeSize(View.Frame.Width - _tabsView.Frame.Width, 50); actionBarSeparator.ChangeSize(_actionBarView.Frame.Width, 1); actionBarSeparator.ChangePosition(0, _actionBarView.Frame.Bottom); _contentHolderView.ChangeY(actionBarSeparator.Frame.Bottom); _contentHolderView.ChangeX(0); _contentHolderView.ChangeSize(_actionBarView.Frame.Width, View.Frame.Height - _actionBarView.Frame.Bottom - _bottomOffset); _contentHolderView.LayoutSubviews(); verticalSeparator.Hidden = false; verticalSeparator.ChangeSize(1, _tabsView.Frame.Height); verticalSeparator.ChangePosition(_tabsView.Frame.Left, topSeparator.Frame.Bottom); } else { _tabsView.Hidden = true; _actionBarView.ChangeY(topSeparator.Frame.Bottom); _actionBarView.ChangeX(0); _actionBarView.ChangeSize(View.Frame.Width, 50); actionBarSeparator.ChangeSize(_actionBarView.Frame.Width, 1); actionBarSeparator.ChangePosition(0, _actionBarView.Frame.Bottom); _contentHolderView.ChangeY(actionBarSeparator.Frame.Bottom); _contentHolderView.ChangeX(0); _contentHolderView.ChangeSize(_actionBarView.Frame.Width, View.Frame.Height - _actionBarView.Frame.Bottom - _bottomOffset); _contentHolderView.LayoutSubviews(); verticalSeparator.Hidden = true; } }; _layout(); }
public SearchResultsView(IQuery searchQuery, TabsCollectionView tabsCollectionView) { _searchQuery = searchQuery; _tabsCollectionView = tabsCollectionView; Initialize(); }