Пример #1
0
 private void SetupTabBase(ITabView tabView, ColumnField[] columnTextFields, ColumnConfig[] colConfig, ContextMenuStrip menu, bool dragDrop)
 {
     tabView.SetColumnConfig(columnTextFields, colConfig);
     tabView.GameFileViewControl.SetContextMenuStrip(menu);
     tabView.GameFileViewControl.AllowDrop = dragDrop;
     SetGameFileViewEvents(tabView.GameFileViewControl, dragDrop);
 }
Пример #2
0
        /// ------------------------------------------------------------------------------------
        internal void SetActiveView(ITabView view, bool activateViewsForm)
        {
            if (view == null)
            {
                return;
            }

            foreach (var tab in Tabs.Where(t => t.View is ITabView))
            {
                var  tabsView = tab.View as ITabView;
                bool active   = (tabsView == view);
                tabsView.SetViewActive(active, tab.IsViewDocked);
                tabsView.TMAdapter.AllowUpdates = active;
            }

            App.CurrentView     = view;
            App.CurrentViewType = view.GetType();

            var ctrl = view as Control;

            if (activateViewsForm && ctrl != null && ctrl.FindForm() != null)
            {
                if (ctrl.FindForm().WindowState == FormWindowState.Minimized)
                {
                    ctrl.FindForm().WindowState = FormWindowState.Normal;
                }

                ctrl.FindForm().Activate();
            }

            App.MsgMediator.SendMessage("ActiveViewChanged", view);
        }
Пример #3
0
        public Page_PrepareCarefully()
        {
            this.closeOnCancel         = false;
            this.closeOnAccept         = false;
            this.closeOnClickedOutside = false;
            this.doCloseButton         = false;
            this.doCloseX = false;

            // Add the tab views to the tab view list.
            tabViews.Add(tabViewPawns);
            tabViews.Add(tabViewRelationships);
            tabViews.Add(tabViewEquipment);

            // Create a tab record UI widget for each tab view.
            foreach (var tab in tabViews)
            {
                ITabView  currentTab = tab;
                TabRecord tabRecord  = new TabRecord(currentTab.Name, delegate {
                    // When a new tab is selected, mark the previously selected TabRecord as unselected and the current one as selected.
                    // Also, update the State to reflected the newly selected ITabView.
                    if (State.CurrentTab != null)
                    {
                        State.CurrentTab.TabRecord.selected = false;
                    }
                    State.CurrentTab = currentTab;
                    currentTab.TabRecord.selected = true;
                }, false);
                currentTab.TabRecord = tabRecord;
                tabRecords.Add(tabRecord);
            }
        }
Пример #4
0
        private Button CreateTabCloseBox(ITabView tabView)
        {
            var closeBoxImage = new Image
            {
                Source =
                    (ImageSource)
                    new ImageSourceConverter().ConvertFromString(
                        "pack://application:,,,/Alexandria;component/Images/Controls/CloseTab.png")
            };

            var closeButton = new Button
            {
                Tag                      = tabView.Id,
                Width                    = 18,
                Height                   = 18,
                Content                  = closeBoxImage,
                Focusable                = false,
                Margin                   = new Thickness(10, 0, 0, 0),
                VerticalAlignment        = VerticalAlignment.Top,
                HorizontalAlignment      = HorizontalAlignment.Right,
                VerticalContentAlignment = VerticalAlignment.Center,
            };

            closeButton.Click += new RoutedEventHandler(delegate(object sender, RoutedEventArgs e)
            {
                var button = sender as Button;
                var id     = (Guid)button.Tag;
                RemoveTab(id);
            }
                                                        );

            return(closeButton);
        }
Пример #5
0
 public void Initialize(IDataSourceAdapter adapter, ITabView tabView, IEnumerable <IGameFileDataSource> gameFilesBind)
 {
     ITabView[] views = new ITabView[] { tabView };
     this.Initialize(adapter, views);
     this.m_tabHandler.TabViews[0].SetGameFilesData(gameFilesBind);
     this.m_bOverrideInit = true;
 }
Пример #6
0
 public void Activate(ITabView tabView)
 {
     if (!OnSelected())
     {
         iApp.Navigate(NavigationLink, tabView);
     }
 }
Пример #7
0
        private Button CreateTabCloseBox(ITabView tabView)
        {
            var closeBoxImage = new Image
            {
                Source =
                    (ImageSource)
                    new ImageSourceConverter().ConvertFromString(
                        "pack://application:,,,/Alexandria;component/Images/Controls/CloseTab.png")
            };

            var closeButton = new Button
            {
                Tag = tabView.Id,
                Width = 18,
                Height = 18,
                Content = closeBoxImage,
                Focusable = false,
                Margin = new Thickness(10, 0, 0, 0),
                VerticalAlignment = VerticalAlignment.Top,
                HorizontalAlignment = HorizontalAlignment.Right,
                VerticalContentAlignment = VerticalAlignment.Center,
            };
            closeButton.Click += new RoutedEventHandler(delegate(object sender, RoutedEventArgs e)
            {
                var button = sender as Button;
                var id = (Guid)button.Tag;
                RemoveTab(id);
            }
            );

            return closeButton;
        }
Пример #8
0
 public void UpdateTabTitle(ITabView tab, string text)
 {
     if (this.m_tabLookup.ContainsKey(tab.GameFileViewControl))
     {
         this.m_tabLookup[tab.GameFileViewControl].Item2.Text = text;
     }
 }
Пример #9
0
        public void InsertTab(int index, ITabView tab)
        {
            TabPage tabPage = this.CreateTabPage(tab);

            this.TabControl.TabPages.Insert(index, tabPage);
            this.m_tabLookup.Add(tab.GameFileViewControl, new Tuple <ITabView, TabPage>(tab, tabPage));
            this.m_tabs.Insert(index, tab);
        }
Пример #10
0
        public void AddTab(ITabView tab)
        {
            TabPage page = this.CreateTabPage(tab);

            this.TabControl.TabPages.Add(page);
            this.m_tabLookup.Add(tab.GameFileViewControl, new Tuple <ITabView, TabPage>(tab, page));
            this.m_tabs.Add(tab);
        }
Пример #11
0
 private static Label CreateTabTitle(ITabView tabView)
 {
     return(new Label
     {
         Content = tabView.Title,
         Margin = new Thickness(0, 1, 8, 0)
     });
 }
Пример #12
0
 public void UpdateTabTitle(ITabView tab, string text)
 {
     if (m_tabLookup.ContainsKey(tab.GameFileViewControl))
     {
         Tuple <ITabView, TabPage> item = m_tabLookup[tab.GameFileViewControl];
         item.Item2.Text = text;
     }
 }
Пример #13
0
 private static Label CreateTabTitle(ITabView tabView)
 {
     return new Label
     {
         Content = tabView.Title,
         Margin = new Thickness(0, 1, 8, 0)
     };
 }
Пример #14
0
        /// <summary>
        /// Method to call get workspace information from perforce server.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="tabView"></param>
        /// <param name="field"></param>
        private void SelectWorkSpace(object sender, ITabView tabView, string field)
        {
            P4Execute             executor = new P4Execute();
            P4ExecutingParameters exeParameters;
            string data = null;

            Application.Current.Dispatcher.Invoke(() =>
            {
                Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait;
            });

            if (!string.IsNullOrEmpty(_sessionUser.Username) && !string.IsNullOrWhiteSpace(_sessionUser.Username))
            {
                exeParameters = new P4ExecutingParameters("CMD.exe", "workspaces -u", null,
                                                          new List <string> {
                    _sessionUser.Username.Trim()
                });
                data = executor.ExecuteCommand(exeParameters);
            }
            else
            {
                exeParameters = new P4ExecutingParameters("CMD.exe", "user -o", null,
                                                          null);
                data = executor.ExecuteCommand(exeParameters);
                if (!string.IsNullOrEmpty(data) && !string.IsNullOrWhiteSpace(data))
                {
                    data          = data.Remove(data.LastIndexOf("Email:"));
                    data          = data.Substring(data.LastIndexOf("User:"******"CMD.exe", "workspaces -u", null,
                                                              new List <string> {
                        data
                    });
                    data = executor.ExecuteCommand(exeParameters);
                }
                else
                {
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        Mouse.OverrideCursor = null;
                    });
                    return;
                }
            }
            if (workspaceDisplay.IsActive || workspaceDisplay.IsLoaded)
            {
                workspaceDisplay.PopulateTable(data, sender, tabView, field, _WorkSpaceEvent);
            }
            else
            {
                workspaceDisplay = new Workspace(this);
                workspaceDisplay.PopulateTable(data, sender, tabView, field, _WorkSpaceEvent);
            }

            Application.Current.Dispatcher.Invoke(() =>
            {
                Mouse.OverrideCursor = null;
            });
        }
Пример #15
0
 public void SetTabIndex(int index, ITabView tab)
 {
     if (m_tabLookup.ContainsKey(tab.GameFileViewControl))
     {
         TabItem item = m_tabLookup[tab.GameFileViewControl];
         TabControl.TabPages.Remove(item.TabPage);
         TabControl.TabPages.Insert(index, item.TabPage);
     }
 }
Пример #16
0
        private void AddTabItemAndView(TabItem tabItem, ITabView tabView)
        {
            _control.Items.Add(tabItem);
            var tabItemAndView = new TabItemAndView {
                Item = tabItem, View = tabView
            };

            _tabMap.Add(tabView.Id, tabItemAndView);
        }
Пример #17
0
        private void TagSelectCtrl_TagSelectionChanged(object sender, ITagData tag)
        {
            ITabView tagView = m_tabHandler.TabViewForTag(tag);

            if (tagView != null)
            {
                m_tabHandler.SelectTabView(tagView);
            }
        }
Пример #18
0
 //TODO переместить в отдельную логику
 public TabWindow(Form window, ITabWindow parent, ITabView container, IFactory factory)
 {
     _factory        = factory;
     _window         = window;
     Parent          = parent;
     Container       = container;
     container.Owner = this;
     InitializeComponents();
 }
Пример #19
0
        private void New_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            ITabView TabView = this.CurrentTab;

            if (TabView != null)
            {
                TabView.NewButton_Click(sender, e);
            }
        }
Пример #20
0
        private LaunchData GetLaunchFiles(IEnumerable <IGameFile> gameFiles)
        {
            IGameFile gameFile = null;

            if (gameFiles != null)
            {
                if (gameFiles.Count() > 1)
                {
                    gameFile = PromptUserMainFile(gameFiles, out bool accepted);  //ask user which file to tie all stats to
                    if (!accepted)
                    {
                        return(new LaunchData(string.Empty, string.Empty));
                    }
                }
                else
                {
                    gameFile = gameFiles.FirstOrDefault();
                }
            }

            if (m_playInProgress)
            {
                return(new LaunchData("Already Playing", "There is already a game in progress. Please exit that game first."));
            }

            if (!DataSourceAdapter.GetSourcePorts().Any())
            {
                return(new LaunchData("No Source Ports", "You must have at least one source port configured to play! Click the settings menu on the top left and select Source Ports to configure."));
            }

            if (!DataSourceAdapter.GetIWads().Any())
            {
                return(new LaunchData("No IWADs", "You must have at least one IWAD configured to play! Click the settings menu on the top left and select IWads to configure."));
            }

            if (gameFile != null && GetCurrentViewControl() != null)
            {
                ITabView tabView = m_tabHandler.TabViewForControl(GetCurrentViewControl());
                if (tabView != null)
                {
                    gameFile = DataSourceAdapter.GetGameFile(gameFile.FileName);                     //this file came from the grid, which does not have all info populated to save performance
                }
                if (gameFiles.Count() > 1)                                                           //for when the user selected more than one file
                {
                    HandleMultiSelectPlay(gameFile, gameFiles.Except(new IGameFile[] { gameFile })); //sets SettingsFiles with all the other game files
                    List <IGameFile> gameFilesList = new List <IGameFile>()
                    {
                        gameFile
                    };
                    Array.ForEach(gameFiles.Skip(1).ToArray(), x => gameFilesList.Add(x));
                    gameFiles = gameFilesList;
                }
            }

            return(new LaunchData(gameFile, (GameFile)gameFile, gameFiles));
        }
Пример #21
0
        public void AddTab(ITabView tabView)
        {
            AddChild(tabView);

            var tabItem = CreateTabItem(tabView);

            AddTabItemAndView(tabItem, tabView);

            SelectTabItem(tabView.Id);
        }
Пример #22
0
 public void RemoveTab(ITabView tab)
 {
     if (this.m_tabLookup.ContainsKey(tab.GameFileViewControl))
     {
         Tuple <ITabView, TabPage> tuple = this.m_tabLookup[tab.GameFileViewControl];
         this.m_tabLookup.Remove(tab.GameFileViewControl);
         this.m_tabs.Remove(tuple.Item1);
         this.TabControl.TabPages.Remove(tuple.Item2);
     }
 }
Пример #23
0
        public ITabWindow CreateWindow(ITabView tabView)
        {
            Form window = CreateDefaultTabWindow();

            window.BubblingFromParent();

            tabView.Orientation = Orientation.Vertical;

            return(CustomTabWindow(new TabWindow(window, null, tabView, this)));
        }
Пример #24
0
        public void UpdateTabTitle(ITabView tab, string text)
        {
            tab.Title = text;

            if (m_tabLookup.ContainsKey(tab.GameFileViewControl))
            {
                TabItem item = m_tabLookup[tab.GameFileViewControl];
                item.TabPage.Text = text;
            }
        }
Пример #25
0
        private TabItem CreateTabItem(ITabView tabView)
        {
            var tabItem = new TabItem
            {
                Header  = CreateTabHeader(tabView),
                Content = CreateTabContent(tabView)
            };

            return(tabItem);
        }
Пример #26
0
        public void InsertTab(int index, ITabView tab)
        {
            TabPage page = CreateTabPage(tab);

            TabControl.TabPages.Insert(index, page);

            m_tabLookup.Add(tab.GameFileViewControl, new TabItem {
                TabView = tab, TabPage = page
            });
            m_tabs.Insert(index, tab);
        }
Пример #27
0
        public void AddTab(ITabView tab)
        {
            TabPage page = CreateTabPage(tab);

            m_tabLookup.Add(tab.GameFileViewControl, new TabItem {
                TabView = tab, TabPage = page
            });
            m_tabs.Add(tab);

            TabControl.TabPages.Add(page);
        }
Пример #28
0
 protected void SetBaseCloneProperties(ITabView view)
 {
     if (GameFileViewControl is IGameFileColumnView columnView)
     {
         view.SetColumnConfig(columnView.ColumnFields, GetColumnConfig().ToArray());
     }
     else
     {
         view.SetColumnConfig(GameFileViewFactory.DefaultColumnTextFields, DataCache.Instance.GetColumnConfig());
     }
 }
Пример #29
0
        public void RemoveTab(ITabView tab)
        {
            if (m_tabLookup.ContainsKey(tab.GameFileViewControl))
            {
                Tuple <ITabView, TabPage> item = m_tabLookup[tab.GameFileViewControl];

                m_tabLookup.Remove(tab.GameFileViewControl);
                m_tabs.Remove(item.Item1);

                TabControl.TabPages.Remove(item.Item2);
            }
        }
Пример #30
0
        public void RemoveTab(ITabView tab)
        {
            if (m_tabLookup.ContainsKey(tab.GameFileViewControl))
            {
                TabItem item = m_tabLookup[tab.GameFileViewControl];

                m_tabLookup.Remove(tab.GameFileViewControl);
                m_tabs.Remove(item.TabView);

                TabControl.TabPages.Remove(item.TabPage);
            }
        }
Пример #31
0
        private TabPage CreateTabPage(ITabView tab)
        {
            Control control = tab as Control;
            TabPage page    = new TabPage(tab.Title);

            if (control != null)
            {
                page.Controls.Add(control);
                control.Dock = DockStyle.Fill;
            }
            return(page);
        }
Пример #32
0
        public void Initialize(IDataSourceAdapter adapter, IEnumerable <ITabView> views)
        {
            DataSourceAdapter = adapter;
            m_tabHandler      = new TabHandler(tabControl);

            foreach (ITabView view in views)
            {
                ITabView viewAdd = (ITabView)view.Clone();
                viewAdd.GameFileViewControl.MultiSelect      = MultiSelect;
                viewAdd.GameFileViewControl.ItemDoubleClick += GameFileViewControl_RowDoubleClicked;
                m_tabHandler.AddTab(viewAdd);
            }
        }
Пример #33
0
        private UIElement CreateTabHeader(ITabView tabView)
        {
            var title = CreateTabTitle(tabView);
            var closeBox = CreateTabCloseBox(tabView);

            var header = new DockPanel { HorizontalAlignment = HorizontalAlignment.Stretch };
            header.Children.Add(title);
            header.Children.Add(closeBox);
            DockPanel.SetDock(title, Dock.Left);
            DockPanel.SetDock(closeBox, Dock.Right);

            return header;
        }
Пример #34
0
        private TabItem CreateTabItem(ITabView tabView)
        {
            var tabItem = new TabItem
            {
                Header = CreateTabHeader(tabView),
                Content = CreateTabContent(tabView)
            };

            return tabItem;
        }
Пример #35
0
        public void AddTab(ITabView tabView)
        {
            AddChild(tabView);
      
            var tabItem = CreateTabItem(tabView);

            AddTabItemAndView(tabItem, tabView);
            
            SelectTabItem(tabView.Id);
        }
Пример #36
0
        private UIElement CreateTabContent(ITabView tabView)
        {
            DockPanel content = null;
            var viewElement = tabView as UIElement;
            if (viewElement != null)
            {
                content = new DockPanel
                {
                    HorizontalAlignment = HorizontalAlignment.Stretch,
                    VerticalAlignment = VerticalAlignment.Stretch,
                    LastChildFill = true
                };
                content.Children.Add(viewElement);
            }

            return content;
        }
Пример #37
0
 private void AddTabItemAndView(TabItem tabItem, ITabView tabView)
 {
     _control.Items.Add(tabItem);
     var tabItemAndView = new TabItemAndView { Item = tabItem, View = tabView };
     _tabMap.Add(tabView.Id, tabItemAndView);
 }