private void AddPane(IDockingPane pane)
        {
            if (pane == null)
            {
                throw new ArgumentNullException(nameof(pane));
            }

            var paneControl = new RadPane {
                Tag = pane
            };

            paneControl.DataContext = new PaneModel(pane);
            paneControl.SetBinding(HeaderedContentControl.HeaderProperty, new Binding(nameof(PaneModel.Header)));


            paneControl.PaneHeaderVisibility = pane.PaneHeaderVisibility;
            paneControl.CanUserClose         = pane.CanUserClose;
            DockingPanel.SetInitialSize(paneControl, new System.Windows.Size(pane.InitialWidth, pane.InitialHeight));

            var content = new ContentControl();

            RegionManager.SetRegionName(content, pane.RegionName);
            paneControl.Content = content;


            VM.Panes.Add(paneControl);
        }
Пример #2
0
        private static void AddPaneForViewModel(RadDocking dock, WindowViewModel model, Size?floatingSize, Point?floatingLocation)
        {
            var pane = new RadPane {
                DataContext = model
            };

            pane.SetBinding(RadPane.IsHiddenProperty, new Binding("IsHidden")
            {
                Mode = BindingMode.TwoWay
            });
            pane.SetBinding(RadPane.HeaderProperty, new Binding("Header"));
            var group = new RadPaneGroup {
                Items = { pane }
            };
            var splitContainer = new RadSplitContainer {
                Items = { group }
            };

            splitContainer.InitialPosition = DockState.FloatingOnly;
            if (floatingSize.HasValue)
            {
                RadDocking.SetFloatingSize(splitContainer, floatingSize.Value);
            }

            if (floatingLocation.HasValue)
            {
                RadDocking.SetFloatingLocation(splitContainer, floatingLocation.Value);
            }

            dock.Items.Add(splitContainer);
        }
Пример #3
0
 protected override void RemovePane(RadPane pane)
 {
     pane.DataContext = null;
     pane.Content     = null;
     pane.ClearValue(RadDocking.SerializationTagProperty);
     pane.RemoveFromParent();
 }
        protected override RadPane CreatePaneForItem(object item)
        {
            var viewModel = item as IPaneViewModel;

            if (viewModel != null)
            {
                RadPane pane;

                if (viewModel.IsDocument)
                {
                    pane = new RadDocumentPane();
                }
                else
                {
                    pane       = new RadPane();
                    pane.Width = 600;
                }
                pane.DataContext = item;
                pane.SetValue(View.IsGeneratedProperty, true);
                RadDocking.SetSerializationTag(pane, viewModel.Header);
                pane.Content = ViewLocator.LocateForModel(viewModel, null, null);
                ViewModelBinder.Bind(viewModel, pane, null);
                viewModel.IsPaneActive = true;
                viewModel.IsSelected   = true;
                return(pane);
            }
            return(base.CreatePaneForItem(item));
        }
Пример #5
0
 void RemoveCharterFromHidden(RadPane pane)
 {
     if (pane != null && _hiddenCharters.Contains(pane))
     {
         _hiddenCharters.Remove(pane);
     }
 }
Пример #6
0
 public PanelInstance(IPanelDescriptor descriptor, IPanel panel, FrameworkElement view, RadPane radPane)
 {
     Descriptor = descriptor;
     Panel      = panel;
     View       = view;
     RadPane    = radPane;
 }
Пример #7
0
        /// <summary>
        /// Determines if the specific Pane's Top, Bottom, Left and Right compasses should be shown for the Dragged Pane
        /// </summary>
        private bool CanDockIn(RadPane paneToDock, RadPane paneInTargetGroup, DockPosition position)
        {
            PaneType paneToDockType = GetPaneType(paneToDock);
            PaneType paneInTargetGroupType = GetPaneType(paneInTargetGroup);

            switch (paneToDockType)
            {
                case PaneType.Green:
                    switch (paneInTargetGroupType)
                    {
                        case PaneType.Green:
                            // The Top, Bottom, Left, Right and Center compasses will be shown when dragging a Green Pane over a Green Pane
                            //return true;

                            // The Center compass only will be shown when dragging a Green Pane over a Green Pane
                            return position != DockPosition.Top && position != DockPosition.Bottom && position != DockPosition.Left && position != DockPosition.Right;
                        case PaneType.Purple:
                            return false;
                    }
                    break;
                case PaneType.Purple:
                    switch (paneInTargetGroupType)
                    {
                        case PaneType.Green:
                            return false;
                        case PaneType.Purple:
                            return true;
                    }
                    break;
            }

            return false;
        }
        protected override void AddPane(RadDocking radDocking, RadPane pane)
        {
            if (!(pane.Tag is DockingPane paneTag))
            {
                base.AddPane(radDocking, pane);
                return;
            }

            var paneGroup = radDocking.SplitItems.
                            Where(p => p is RadPaneGroup).
                            Cast <RadPaneGroup>().
                            FirstOrDefault(g =>
                                           g.Tag is DockingPaneContainer groupTag &&
                                           groupTag.GUID == paneTag.InitPaneGroupGUID
                                           );

            if (paneGroup != null)
            {
                paneGroup.Items.Add(pane);
            }
            //否则便新建一个Container,group;
            else
            {
                base.AddPane(radDocking, pane);
                return;
            }
        }
Пример #9
0
        private void AddPaneWithSerializationTagButtonClick(object sender, RoutedEventArgs e)
        {
            RadPane radPane = new RadPane()
            {
                Title = "New RadPane with SerializationTag", Name = "NewRadPane"
            };

            radPane.Content = new TextBox()
            {
                Text = "TextBox"
            };
            RadDocking.SetSerializationTag(radPane, "NewRadPane");
            RadPaneGroup      radPaneGroup      = new RadPaneGroup();
            RadSplitContainer radSplitContainer = new RadSplitContainer()
            {
                InitialPosition = DockState.FloatingDockable
            };

            RadDocking.SetFloatingLocation(radSplitContainer, new Point(700, 130));
            RadDocking.SetFloatingSize(radSplitContainer, new Size(500, 200));
            radPaneGroup.Items.Add(radPane);
            radSplitContainer.Items.Add(radPaneGroup);
            this.Docking.Items.Add(radSplitContainer);
            DisableButton(sender);
        }
Пример #10
0
		private void InsertItem(int index, object paneModel)
		{
			if (this.Panes.ContainsKey(paneModel))
				return;

			var paneViewModel = paneModel as PaneModel;

			var pane = new RadPane
			{
				// TODO: Set the needed properties of the RadPane
				DataContext = paneViewModel,
				Header = paneViewModel.Header,
				Content = paneViewModel.Content,
			};

			this.Panes.Add(paneModel, pane);
			if (this.Group.Items.Count != 0)
			{
				this.Group.Items.Insert(index, pane);
			}
			else
			{
				this.Group.Items.Add(pane);
			}
		}
        private void InsertItem(int index, object paneModel)
        {
            if (this.Panes.ContainsKey(paneModel))
            {
                return;
            }

            var paneViewModel = paneModel as PaneModel;

            var pane = new RadPane
            {
                // TODO: Set the needed properties of the RadPane
                DataContext = paneViewModel,
                Header      = paneViewModel.Header,
                Content     = paneViewModel.Content,
            };

            this.Panes.Add(paneModel, pane);
            if (this.Group.Items.Count != 0)
            {
                this.Group.Items.Insert(index, pane);
            }
            else
            {
                this.Group.Items.Add(pane);
            }
        }
Пример #12
0
        public void Handle(ShowDocumentPaneMessage message)
        {
            var paneKey = string.Format("{0}_{1}_{2}", message.Sender.GetType().AssemblyQualifiedName, message.Sender.GetType().FullName, message.Title);

            if (_customDocumentPanes.ContainsKey(paneKey) == false || _customDocumentPanes[paneKey] == null)
            {
                var newPane = new RadPane();
                newPane.CanDockInDocumentHost = true;

                _customDocumentPanes[paneKey] = newPane;
            }

            var pane = _customDocumentPanes[paneKey];

            pane.Content = message.PaneContent;
            pane.Header  = message.Title;

            if (message.PaneProperties != null)
            {
                _customDocumentPaneProperties[pane] = message.PaneProperties;
            }

            if (DocumentPanes.Contains(pane) == false)
            {
                DocumentPanes.Add(pane);
            }

            FocusDocumentPane(pane);
        }
        private void Item_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            MenuItem item = sender as MenuItem;

            switch (item.Header.ToString())
            {
            case "关闭":
                currentRadPane = RadPaneGroup.EnumeratePanes().Where(p => !p.IsHidden && p.IsSelected).FirstOrDefault();
                RadPaneGroup.RemovePane(currentRadPane);
                break;

            case "除此之外全部关闭":
                currentRadPane = RadPaneGroup.EnumeratePanes().Where(p => !p.IsHidden && p.IsSelected).FirstOrDefault();
                var panesToClose = RadPaneGroup.EnumeratePanes().Where(p => p != currentRadPane);
                for (int i = panesToClose.Count() - 1; i >= 0; i--)
                {
                    this.RadPaneGroup.RemovePane(panesToClose.ElementAt(i));
                }
                break;

            case "全部关闭":
                RadPaneGroup.Items.Clear();
                break;
            }
        }
Пример #14
0
        public void Handle(ShowPropertyPaneMessage message)
        {
            var paneKey = string.Format("{0}_{1}_{2}", message.Sender.GetType().AssemblyQualifiedName, message.Sender.GetType().FullName, message.Title);

            if (_customPropertyPanes.ContainsKey(paneKey) == false || _customPropertyPanes[paneKey] == null)
            {
                var newPane = new RadPane();
                newPane.CanDockInDocumentHost = false;
                newPane.CanUserClose          = message.IsUserCloseable;

                _customPropertyPanes[paneKey] = newPane;
            }

            var pane = _customPropertyPanes[paneKey];

            pane.Content = message.PaneContent;
            pane.Header  = message.Title;

            if (PropertyPanes.Contains(pane) == false)
            {
                PropertyPanes.Add(pane);
            }

            FocusPropertyPane(pane);
        }
Пример #15
0
        protected override void AddPane(RadDocking radDocking, RadPane pane)
        {
            var paneModel = pane.DataContext as PaneViewModel;

            if (paneModel != null && !(paneModel.IsDocument))
            {
                RadPaneGroup group = null;
                switch (paneModel.InitialPosition)
                {
                case DockState.DockedRight:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "rightGroup") as RadPaneGroup;
                    if (group != null)
                    {
                        group.Items.Add(pane);
                    }
                    return;

                case DockState.DockedBottom:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "bottomGroup") as RadPaneGroup;
                    if (group != null)
                    {
                        group.Items.Add(pane);
                    }
                    return;

                case DockState.DockedLeft:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "leftGroup") as RadPaneGroup;
                    if (group != null)
                    {
                        group.Items.Add(pane);
                    }
                    return;

                case DockState.FloatingDockable:
                    var fdSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();
                    group = radDocking.GeneratedItemsFactory.CreatePaneGroup();
                    fdSplitContainer.Items.Add(group);
                    group.Items.Add(pane);
                    radDocking.Items.Add(fdSplitContainer);
                    pane.MakeFloatingDockable();
                    return;

                case DockState.FloatingOnly:
                    var foSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();
                    group = radDocking.GeneratedItemsFactory.CreatePaneGroup();
                    foSplitContainer.Items.Add(group);
                    group.Items.Add(pane);
                    radDocking.Items.Add(foSplitContainer);
                    pane.MakeFloatingOnly();
                    return;

                case DockState.DockedTop:
                default:
                    return;
                }
            }

            base.AddPane(radDocking, pane);
        }
Пример #16
0
        public void OpenDocument(string header, FrameworkElement control, bool isBinding)
        {
            if (control == null)
            {
                MessageBox.Show("No valid control to show as document window!"); return;
            }
            if (string.IsNullOrEmpty(header))
            {
                MessageBox.Show("No valid header to show as document window!"); return;
            }
            if (isBinding)
            {
                if (ActiveExist(control))
                {
                    return;
                }
                else
                {
                    for (int i = 0; i < MainGroup.Items.Count; i++)
                    {
                        var p = MainGroup.Items[i] as RadPane;
                        if (p.Header != null && p.Header.ToString() == header)
                        {
                            p.IsActive = true;
                            return;
                        }
                    }
                }
            }


            var pane = new RadPane()
            {
            };

            if (isBinding)
            {
                Binding binding = new Binding();
                binding.Path   = new PropertyPath(header);
                binding.Source = control.DataContext;
                BindingOperations.SetBinding(pane, RadPane.HeaderProperty, binding);
            }
            else
            {
                pane.Header = header;
            }
            pane.Content = control;
            MainGroup.AddItem(pane, Telerik.Windows.Controls.Docking.DockPosition.Center);
            pane.Unloaded += Pane_Unloaded;

            if (projectViewModel != null)
            {
                var vm = control.DataContext;
                if (vm is INotifiedViewModel)
                {
                    projectViewModel.OpenedViewModel.Add(vm as INotifiedViewModel);
                }
            }
        }
 void IFlyoutBehavior.OnPaneActivated(IFlyoutHost host, RadPane targetPane)
 {
     host.SetSelectedPane(targetPane);
     if (host.CurrentState == FlyoutState.Closed)
     {
         host.StartOpenAnimation();
     }
 }
Пример #18
0
 void IFlyoutBehavior.OnPaneDeactivated(IFlyoutHost host, RadPane targetPane)
 {
     var selectedPane = host.SelectedPane;
     if (selectedPane != null && !selectedPane.IsActive && host.CurrentState == FlyoutState.Opened)
     {
         host.StartCloseAnimation();
     }
 }
Пример #19
0
 void IFlyoutBehavior.OnPaneActivated(IFlyoutHost host, RadPane targetPane)
 {
     host.SetSelectedPane(targetPane);
     if (host.CurrentState == FlyoutState.Closed)
     {
         host.StartOpenAnimation();
     }
 }
Пример #20
0
 void AddCharterToHidden(RadPane pane)
 {
     if (pane != null)
     {
         _hiddenCharters.Where(p => RadDocking.GetSerializationTag(p) == RadDocking.GetSerializationTag(pane))
         .ToList().ForEach(p => _hiddenCharters.Remove(p));
         _hiddenCharters.Add(pane);
     }
 }
Пример #21
0
        private static void SetCharterPaneBindings(RadPane pane)
        {
            var b = new Binding("Header")
            {
                Source = pane.Content
            };

            pane.SetBinding(RadPane.HeaderProperty, b);
        }
Пример #22
0
        public void AddPane(UserControl UIElement)
        {
            if (UIElement.DataContext is Models.ViewModelPane vm)
            {
                if (Panes.Where(a => a.Header?.ToString().Replace("*", "") == vm.Header.Replace("*", "") && a.IsVisible).Count() > 0)
                {
                    ShowPane(Panes.Single(a => a.Header?.ToString().Replace("*", "") == vm.Header.Replace("*", "") && a.IsVisible));
                }
                else
                {
                    var pane = new RadPane
                    {
                        Content = UIElement,
                    };
                    vm.CloseAction = new Action(() =>
                    {
                        pane.IsHidden = true;
                    });
                    pane.DataContext       = vm;
                    pane.IsVisibleChanged += (sender, e) =>
                    {
                    };

                    Binding binding = new Binding();
                    binding.Path = new PropertyPath("Header");        // свойство элемента-источника
                    pane.SetBinding(RadPane.HeaderProperty, binding); // установка привязки для элемента-приемника
                    Panes.Add(pane);
                }
            }
            else if (UIElement.DataContext is Models.ViewModelPaneReactiveObject vm2)
            {
                if (Panes.Where(a => a.Header?.ToString().Replace("*", "") == vm2.Header.Replace("*", "") && a.IsVisible).Count() > 0)
                {
                    ShowPane(Panes.Single(a => a.Header?.ToString().Replace("*", "") == vm2.Header.Replace("*", "") && a.IsVisible));
                }
                else
                {
                    var pane = new RadPane
                    {
                        Content = UIElement,
                    };
                    vm2.CloseAction = new Action(() =>
                    {
                        pane.IsHidden = true;
                    });
                    pane.DataContext       = vm2;
                    pane.IsVisibleChanged += (sender, e) =>
                    {
                    };

                    Binding binding = new Binding();
                    binding.Path = new PropertyPath("Header");        // свойство элемента-источника
                    pane.SetBinding(RadPane.HeaderProperty, binding); // установка привязки для элемента-приемника
                    Panes.Add(pane);
                }
            }
        }
        void IFlyoutBehavior.OnPaneDeactivated(IFlyoutHost host, RadPane targetPane)
        {
            var selectedPane = host.SelectedPane;

            if (selectedPane != null && !selectedPane.IsActive && host.CurrentState == FlyoutState.Opened)
            {
                host.StartCloseAnimation();
            }
        }
        private void RBtnRelTesaScjn_Click(object sender, RoutedEventArgs e)
        {
            RadPane pane = new RadPane();

            tematScjn    = new RTemasScjn(RBtnArbolPdf);
            pane.Content = tematScjn;
            pane.Header  = "Temático - SCJN";

            PanelCentral.AddItem(pane, DockPosition.Center);
        }
        private void RBtnListaFiguras_Click(object sender, RoutedEventArgs e)
        {
            RadPane pane = new RadPane();

            figuras      = new LFiguras();
            pane.Content = figuras;
            pane.Header  = "Figuras Jurídicas";

            PanelCentral.AddItem(pane, DockPosition.Center);
        }
        private void RBtnTematico_Click(object sender, RoutedEventArgs e)
        {
            RadPane pane = new RadPane();

            tematicos    = new LTematicos();
            pane.Content = tematicos;
            pane.Header  = " Temáticos ";

            PanelCentral.AddItem(pane, DockPosition.Center);
        }
        private void RBtnGenericRelaciones_Click(object sender, RoutedEventArgs e)
        {
            RadPane pane = new RadPane();

            relacionesGenericos = new RGenFigScjn(listaGenericos);
            pane.Content        = relacionesGenericos;
            pane.Header         = "Establecer relaciones";

            PanelCentral.AddItem(pane, DockPosition.Center);
        }
Пример #28
0
        private void AddSecurityActionPane()
        {
            frmSecurityAction = new frmSecurityAction();
            RadPane pane = new RadPane();

            pane.CanUserClose = false;
            pane.Header       = "دسترسی";
            pane.Content      = frmSecurityAction;
            pnlActionList.Items.Add(pane);
        }
        protected override void AddPane(RadDocking radDocking, RadPane pane)
        {
            var paneViewModel = pane.DataContext as DetectivePaneViewModelBase;

            if (paneViewModel != null)
            {
                radDocking.PaneStateChange += this.RadDocking_PaneStateChange;
                RadPaneGroup group = null;
                switch (paneViewModel.DockPositionPosition)
                {
                case DetectiveDockPosition.DockedDocument:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedDocument") as RadPaneGroup;
                    @group?.Items.Add(pane);
                    return;

                case DetectiveDockPosition.DockedRight:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedRight") as RadPaneGroup;
                    @group?.Items.Add(pane);
                    return;

                case DetectiveDockPosition.DockedBottom:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedBottom") as RadPaneGroup;
                    @group?.Items.Add(pane);
                    return;

                case DetectiveDockPosition.DockedLeft:
                    group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "DockedLeft") as RadPaneGroup;
                    @group?.Items.Add(pane);
                    return;

                case DetectiveDockPosition.FloatingDockable:
                    var fdSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();
                    group = radDocking.GeneratedItemsFactory.CreatePaneGroup();
                    fdSplitContainer.Items.Add(group);
                    group.Items.Add(pane);
                    radDocking.Items.Add(fdSplitContainer);
                    pane.MakeFloatingDockable();
                    return;

                case DetectiveDockPosition.FloatingOnly:
                    var foSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();
                    group = radDocking.GeneratedItemsFactory.CreatePaneGroup();
                    foSplitContainer.Items.Add(group);
                    group.Items.Add(pane);
                    radDocking.Items.Add(foSplitContainer);
                    pane.MakeFloatingOnly();
                    return;

                case DetectiveDockPosition.DockedTop:
                default:
                    return;
                }
            }
            base.AddPane(radDocking, pane);
        }
        protected override void AddPane(RadDocking radDocking, RadPane pane)
        {
            var paneModel = pane.DataContext as PaneViewModel;
            if (paneModel != null && !(paneModel.IsDocument))
            {
                RadPaneGroup group = null;
                switch (paneModel.InitialPosition)
                {
                    case DockState.DockedRight:
                        group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "rightGroup") as RadPaneGroup;
                        if (group != null)
                        {
                            group.Items.Add(pane);

                        }
                        return;
                    case DockState.DockedBottom:
                        group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "bottomGroup") as RadPaneGroup;
                        if (group != null)
                        {
                            group.Items.Add(pane);
                        }
                        return;
                    case DockState.DockedLeft:
                        group = radDocking.SplitItems.ToList().FirstOrDefault(i => i.Control.Name == "leftGroup") as RadPaneGroup;
                        if (group != null)
                        {
                            group.Items.Add(pane);
                        }
                        return;
                    case DockState.FloatingDockable:
                        var fdSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();
                        group = radDocking.GeneratedItemsFactory.CreatePaneGroup();
                        fdSplitContainer.Items.Add(group);
                        group.Items.Add(pane);
                        radDocking.Items.Add(fdSplitContainer);
                        pane.MakeFloatingDockable();
                        return;
                    case DockState.FloatingOnly:
                        var foSplitContainer = radDocking.GeneratedItemsFactory.CreateSplitContainer();
                        group = radDocking.GeneratedItemsFactory.CreatePaneGroup();
                        foSplitContainer.Items.Add(group);
                        group.Items.Add(pane);
                        radDocking.Items.Add(foSplitContainer);
                        pane.MakeFloatingOnly();
                        return;
                    case DockState.DockedTop:
                    default:
                        return;
                }
            }

            base.AddPane(radDocking, pane);
        }
Пример #31
0
        bool CanUserClose(RadPane pane)
        {
            bool canUserClose;

            try {
                var hasValue = _canUserCloseDictionary.TryGetValue(RadDocking.GetSerializationTag(pane), out canUserClose);
                return(!hasValue || canUserClose);
            } catch {
                return(true);
            }
        }
 void IFlyoutBehavior.OnPaneMouseLeftButtonDown(IFlyoutHost host, RadPane targetPane)
 {
     if (host.CurrentState != FlyoutState.Opened)
     {
         host.StartOpenAnimation();
     }
     else
     {
         host.StartCloseAnimation();
     }
 }
Пример #33
0
 private void ButtonFloating_Click(object sender, RoutedEventArgs e)
 {
     var splitContainer = new RadSplitContainer();
     var paneGroup = new RadPaneGroup();
     var pane = new RadPane { Header = "Floating pane" };
     RadDocking.SetFloatingLocation(pane, new Point(100, 100));
     paneGroup.Items.Add(pane);
     splitContainer.Items.Add(paneGroup);
     dock.Items.Add(splitContainer);
     pane.MakeFloatingDockable();
 }
Пример #34
0
 void IFlyoutBehavior.OnPaneMouseLeftButtonDown(IFlyoutHost host, RadPane targetPane)
 {
     if (host.CurrentState != FlyoutState.Opened)
     {
         host.StartOpenAnimation();
     }
     else
     {
         host.StartCloseAnimation();
     }
 }
        private void AddSubjectListPane()
        {
            frmSecuritySubjectSelect = new frmSecuritySubjectSelect();
            RadPane pane = new RadPane();

            pane.Header       = "لیست موضوع";
            pane.CanUserClose = false;
            pane.Content      = frmSecuritySubjectSelect;
            pnlSubjectList.Items.Add(pane);

            frmSecuritySubjectSelect.SecuritySubjectSelected += FrmSecuritySubjectSelect_SecuritySubjectSelected;
        }
Пример #36
0
        private void UnlockRadPane(RadPane pane)
        {
            // Quita la cabecera de los paneles pineados
            pane.PaneHeaderVisibility = Visibility.Visible;
            // Quita la cabecera de los panales del DocumentHost. No se podrá cambiar de pestañas
            //pane.Visibility = Visibility.Collapsed;

            //pane.CanUserClose = false;
            pane.CanUserPin = true;
            pane.CanFloat   = true;
            pane.IsDockable = true;
        }
Пример #37
0
 private void AddPaneButtonClick(object sender, RoutedEventArgs e)
 {
     RadPane radPane = new RadPane() { Title = "New sample RadPane" };
     radPane.Content = new TextBox() { Text = "TextBox" };
     RadPaneGroup radPaneGroup = new RadPaneGroup();
     RadSplitContainer radSplitContainer = new RadSplitContainer() { InitialPosition = DockState.FloatingDockable };
     RadDocking.SetFloatingLocation(radSplitContainer, new Point(400, 400));
     RadDocking.SetFloatingSize(radSplitContainer, new Size(200, 100));
     radPaneGroup.Items.Add(radPane);
     radSplitContainer.Items.Add(radPaneGroup);
     this.Docking.Items.Add(radSplitContainer);
 }
Пример #38
0
        private void AddTab(Tab tab)
        {
            var newPane = new RadPane
            {
                Header  = tab.Header,
                Content = tab.Content
            };

            _tabs.Add(tab.Id, newPane);
            PaneGroup.Items.Add(newPane);
            State.SelectedTabId = tab.Id;
        }
Пример #39
0
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            var split = new RadSplitContainer();
            var group = new RadPaneGroup();
            var pane = new RadPane();

            group.Items.Add(pane);
            split.Items.Add(group);
            split.InitialPosition = Telerik.Windows.Controls.Docking.DockState.DockedTop;
            RadDocking.SetIsAutoGenerated(group, true);
            RadDocking.SetIsAutoGenerated(split, true);

            this.docking.Items.Add(split);
        }
Пример #40
0
 private void AddPaneWithSerializationTagButtonClick(object sender, RoutedEventArgs e)
 {
     RadPane radPane = new RadPane() { Title = "New RadPane with SerializationTag", Name = "NewRadPane" };
     radPane.Content = new TextBox() { Text = "TextBox" };
     RadDocking.SetSerializationTag(radPane, "NewRadPane");
     RadPaneGroup radPaneGroup = new RadPaneGroup();
     RadSplitContainer radSplitContainer = new RadSplitContainer() { InitialPosition = DockState.FloatingDockable };
     RadDocking.SetFloatingLocation(radSplitContainer, new Point(700, 130));
     RadDocking.SetFloatingSize(radSplitContainer, new Size(500, 200));
     radPaneGroup.Items.Add(radPane);
     radSplitContainer.Items.Add(radPaneGroup);
     this.Docking.Items.Add(radSplitContainer);
     DisableButton(sender);
 }
        protected override Telerik.Windows.Controls.RadPane CreatePaneForItem(object item)
        {
            var viewModel = item as PaneViewModel;
            if (viewModel != null)
            {
                var pane = new RadPane();
                pane.DataContext = item;
                pane.Header = viewModel.HeaderText;
                RadDocking.SetSerializationTag(pane, viewModel.SerializationTag);

                return pane;
            }

            return base.CreatePaneForItem(item);
        }
Пример #42
0
        /// <summary>
        /// Determines if the Docking's Top, Bottom, Left and Right compasses should be shown for the Dragged Pane
        /// </summary>
        private bool CanDock(RadPane paneToDock, DockPosition position)
        {
            PaneType paneToDockType = GetPaneType(paneToDock);

            switch (paneToDockType)
            {
                case PaneType.Green:
                    return true;
                case PaneType.Blue:
                    return true;
                case PaneType.Default:
                    return true;
            }

            return false;
        }
Пример #43
0
 private PaneType GetPaneType(RadPane pane)
 {
     var content = pane.Content as Grid;
     if (content.Background.Equals(this.Resources["GreenBrush"]))
     {
         return PaneType.Green;
     }
     else if (content.Background.Equals(this.Resources["BlueBrush"]))
     {
         return PaneType.Blue;
     }
     else
     {
         return PaneType.Default;
     }
 }
		private bool CanDockIn(RadPane paneToDock, RadPane paneInTargetGroup, DockPosition position)
		{
			PaneType paneToDockType = GetPaneType(paneToDock);
			PaneType paneInTargetGroupType = GetPaneType(paneInTargetGroup);

			switch (paneToDockType)
			{
				case PaneType.Green:
					switch (paneInTargetGroupType)
					{

						case PaneType.Green:
							return true;
						case PaneType.OceanBlue:
							return position != DockPosition.Top && position != DockPosition.Bottom;
						case PaneType.Purple:
							return position != DockPosition.Top && position != DockPosition.Bottom;
					}
					break;
				case PaneType.OceanBlue:
					switch (paneInTargetGroupType)
					{

						case PaneType.Green:
							return position != DockPosition.Left && position != DockPosition.Right;
						case PaneType.OceanBlue:
							return true;
						case PaneType.Purple:
							return position != DockPosition.Left && position != DockPosition.Right;
					}
					break;
				case PaneType.Purple:
					switch (paneInTargetGroupType)
					{

						case PaneType.Green:
							return position != DockPosition.Center;
						case PaneType.OceanBlue:
							return position != DockPosition.Center;
						case PaneType.Purple:
							return true;
					}
					break;
			}

			return false;
		}
Пример #45
0
        private PaneType GetPaneType(RadPane pane)
        {
            Grid c = pane.Content as Grid;
            if (c != null)
            {
                if (c.Background.Equals(this.Resources["GreenBrush"]))
                {
                    return PaneType.Green;
                }
                else
                {
                    return PaneType.Purple;
                }
            }

            return PaneType.Purple;
        }
Пример #46
0
        /// <summary>
        /// Determines if the specific Pane's Top, Bottom, Left and Right compasses should be shown for the Dragged Pane
        /// </summary>
        private bool CanDockIn(RadPane paneToDock, RadPane paneInTargetGroup, DockPosition position)
        {
            PaneType paneToDockType = GetPaneType(paneToDock);
            PaneType paneInTargetGroupType = GetPaneType(paneInTargetGroup);

            switch (paneToDockType)
            {
                case PaneType.Green:
                    switch (paneInTargetGroupType)
                    {
                        case PaneType.Green:
                            return true;
                        case PaneType.Blue:
                            return false;
                        case PaneType.Default:
                            return false;
                    }
                    break;
                case PaneType.Blue:
                    switch (paneInTargetGroupType)
                    {
                        case PaneType.Green:
                            return false;
                        case PaneType.Blue:
                            return true;
                        case PaneType.Default:
                            return false;
                    }
                    break;
                case PaneType.Default:
                    switch (paneInTargetGroupType)
                    {
                        case PaneType.Green:
                            return false;
                        case PaneType.Blue:
                            return false;
                        case PaneType.Default:
                            return true;
                    }
                    break;
            }

            return false;
        }
Пример #47
0
 private void RadContextMenuItemClick1(object sender, Telerik.Windows.RadRoutedEventArgs e)
 {
     var pane = (e.OriginalSource as RadMenuItem).Header as RadPane;
     if (Convert.ToString(pane.Header) == "Add Pane")
     {
         RadPane newPane = new RadPane() { Header = "New Pane" };
         this.PaneGroup1.AddItem(newPane, Telerik.Windows.Controls.Docking.DockPosition.Center);
     }
     else
     {
         string newHeader = pane.Header.ToString().Replace("Show ", "");
         pane.Header = newHeader;
         pane.IsHidden = false;
         var contextMenu = sender as RadContextMenu;
         ObservableCollection<RadPane> newItemsSource = contextMenu.ItemsSource as ObservableCollection<RadPane>;
         newItemsSource.Remove(pane);
         contextMenu.ItemsSource = newItemsSource;
     }
 }
Пример #48
0
        private static void AddPaneForViewModel(RadDocking dock, WindowViewModel model, Size? floatingSize, Point? floatingLocation)
        {
            var pane = new RadPane { DataContext = model };
            pane.SetBinding(RadPane.IsHiddenProperty, new Binding("IsHidden") { Mode = BindingMode.TwoWay });
            pane.SetBinding(RadPane.HeaderProperty, new Binding("Header"));
            var group = new RadPaneGroup { Items = { pane } };
            var splitContainer = new RadSplitContainer { Items = { group } };
            splitContainer.InitialPosition = DockState.FloatingOnly;
            if (floatingSize.HasValue)
            {
                RadDocking.SetFloatingSize(splitContainer, floatingSize.Value);
            }

            if (floatingLocation.HasValue)
            {
                RadDocking.SetFloatingLocation(splitContainer, floatingLocation.Value);
            }

            dock.Items.Add(splitContainer);
        }
		private PaneType GetPaneType(RadPane pane)
		{
			Panel c = pane.Content as Panel;
			if (c != null)
			{
				if (c.Background.Equals(this.Resources["GreenBrush"]))
				{
					return PaneType.Green;
				}
				else if (c.Background.Equals(this.Resources["OceanBlueBrush"]))
				{
					return PaneType.OceanBlue;
				}
				else
				{
					return PaneType.Purple;
				}
			}

			return PaneType.Purple;
		}
Пример #50
0
 private void rtvSolution_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     var vm = rtvSolution.SelectedItem as ViewModel.PrjTreeItemVM;
     if (vm == null) return;
     if (vm.Entity!=null && vm.Entity is ErlangEditor.Core.Entity.FileEntity)
     {
         try
         {
             var entity = vm.Entity as ErlangEditor.Core.Entity.FileEntity;
             if (App.MainViewModel.OpenedFiles.Any(i => i.FileName == entity.Name))
             {
                 rpContent.SelectedItem = App.MainViewModel.OpenedFiles.First(i => i.FileName == entity.Name).Pane;
                 return;
             }
             var editor = new TextEditor();
             var rp = new RadPane();
             var fileVM = new ViewModel.FileVM()
             {
                 FileName = entity.Name,
                 Pane = rp,
                 Editor = editor,
                 FileEntity = entity,
                 ItemVM = vm
             };
             editor.Text = ErlangEditor.Core.FileUtil.LoadFile(entity);
             editor.TextChanged += (a, b) => { fileVM.Changed = true; };
             editor.BorderBrush = new SolidColorBrush(Colors.White);
             editor.FontSize = 16;
             editor.ShowLineNumbers = true;
             editor.SyntaxHighlighting = ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance.GetDefinition("Erl");
             editor.TextArea.TextEntering += textEditor_TextArea_TextEntering;
             editor.TextArea.TextEntered += textEditor_TextArea_TextEntered;
             editor.FontSize = 12;
             rp.Content = editor;
             rp.Tag = fileVM;
             rp.Unloaded += (a, b) => { Debug.WriteLine(string.Format("unloaded,{0}", a)); var panel = a as RadPane; App.MainViewModel.OpenedFiles.Remove(panel.Tag as FileVM); };
             rp.Loaded += (a, b) =>
             {
                 Debug.WriteLine(string.Format("loaded,{0}", a));
                 var panel = a as RadPane;
                 var fvm = panel.Tag as FileVM;
                 if (!App.MainViewModel.OpenedFiles.Contains(fvm))
                     App.MainViewModel.OpenedFiles.Add(fvm);
             };
             rpContent.Items.Add(rp);
             var b1 = new Binding("FileName") { Source = fileVM, Mode = BindingMode.OneWay };
             var b2 = new Binding("Changed") { Source = fileVM, Mode = BindingMode.OneWay };
             var mb = new MultiBinding() { Mode = BindingMode.OneWay };
             mb.Bindings.Add(b1);
             mb.Bindings.Add(b2);
             mb.Converter = new ValueConverter.FileTabTextVC();
             rp.SetBinding(RadPane.HeaderProperty, mb);
             App.MainViewModel.OpenedFiles.Add(fileVM);
         }
         catch (Exception ecp)
         {
             App.Navigation.ShowMessageBox(ecp.Message, "出错");
         }
     }
 }
Пример #51
0
        private void AddPane(int tag, string tabTitle, object organoControl)
        {
            action = tag;

            RadPane existingPane = this.GetExistingPane(tag);

            if (existingPane == null)
            {
                RadPane pane = new RadPane();
                pane.Tag = tag;
                pane.Header = tabTitle;
                pane.Content = organoControl;

                PanelCentral.Items.Add(pane);
                Docking.ActivePane = pane;
            }
            else
            {
                existingPane.IsHidden = false;
                Docking.ActivePane = existingPane;
            }
        }
Пример #52
0
 protected override void RemovePane(RadPane pane)
 {
     base.RemovePane(pane);
 }
 protected override void RemovePane(RadPane pane)
 {
     pane.DataContext = null;
     pane.Content = null;
     pane.ClearValue(RadDocking.SerializationTagProperty);
     pane.RemoveFromParent();
 }
		private bool CanDock(RadPane paneToDock, DockPosition position)
		{
			PaneType paneToDockType = GetPaneType(paneToDock);

			switch (paneToDockType)
			{
				case PaneType.Green:
					return position != DockPosition.Left;
				case PaneType.OceanBlue:
					return false;
				case PaneType.Purple:
					return true;
			}

			return false;
		}
Пример #55
0
 void IFlyoutBehavior.OnMouseEnter(IFlyoutHost host, RadPane targetPane)
 {
 }