public void CloseItem(ITabItem item) { if (_lDocDict.ContainsKey(item)) { item.FloatClosed -= OnTabFloatClosed; LayoutDocument ldoc = _lDocDict[item]; _lDocDict.Remove(item); TabItemCollection.Remove(item); if (item.IsFloat) { LayoutFloatingWindowControl fwctrl = item.FloatControl; fwctrl.Close(); item.IsFloat = false; } else { Children.Remove(ldoc); } if (item is LadderDiagramViewModel) { IEnumerable <MainTabDiagramItem> fit = DiagramCollection.Where( (MainTabDiagramItem _mtditem) => { return(_mtditem.LDVM_ladder == item); }); MainTabDiagramItem mtditem = null; if (fit.Count() > 0) { mtditem = fit.First(); DiagramCollection.Remove(mtditem); } } CloseTabItem(this, new RoutedEventArgs()); } }
public DragService(LayoutFloatingWindowControl floatingWindow) { _floatingWindow = floatingWindow; _manager = floatingWindow.Model.Root.Manager; GetOverlayWindowHosts(); }
public void ShowItem(ITabItem item) { //bool isnew = false; LayoutDocument ldoc = null; if (item is FuncBlockViewModel) { FuncBlockViewModel fbvmodel = (FuncBlockViewModel)item; fbvmodel.CodeTextBox.Focus(); } if (item.IsFloat) { LayoutFloatingWindowControl fwctrl = item.FloatControl; fwctrl.Focus(); return; } if (!TabItemCollection.Contains(item)) { TabItemCollection.Add(item); item.FloatClosed += OnTabFloatClosed; ldoc = new LayoutDocument(); ldoc.Title = item.TabHeader; if (item is LadderDiagramViewModel) { IEnumerable <MainTabDiagramItem> fit = DiagramCollection.Where( (MainTabDiagramItem _mtditem) => { return(_mtditem.LDVM_ladder == item); }); MainTabDiagramItem mtditem = null; if (fit.Count() == 0) { mtditem = new MainTabDiagramItem((IProgram)item, ViewMode); DiagramCollection.Add(mtditem); } else { mtditem = fit.First(); } ldoc.Content = mtditem; } else { ldoc.Content = item; } ldoc.IsActiveChanged += OnActiveChanged; Children.Add(ldoc); _lDocDict.Add(item, ldoc); //isnew = true; } else { ldoc = _lDocDict[item]; } int ldocid = Children.IndexOf(ldoc); SelectedItem = item; SelectedContentIndex = ldocid; }
public FloatingWindowContentHost(LayoutFloatingWindowControl owner) { _owner = owner; var binding = new Binding(nameof(SizeToContent)) { Source = _owner }; BindingOperations.SetBinding(this, SizeToContentProperty, binding); }
public void Reset() { foreach (ITabItem item in TabItemCollection) { if (item.IsFloat) { LayoutFloatingWindowControl fwctrl = item.FloatControl; fwctrl.Close(); } } TabItemCollection.Clear(); DiagramCollection.Clear(); _lDocDict.Clear(); Children.Clear(); }
IOverlayWindow IOverlayWindowHost.ShowOverlayWindow(LayoutFloatingWindowControl draggingWindow) { CreateOverlayWindow(); _overlayWindow.Owner = draggingWindow; _overlayWindow.EnableDropTargets(); _overlayWindow.Show(); return _overlayWindow; }
IEnumerable<IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow) { if (_dropAreas != null) return _dropAreas; _dropAreas = new List<IDropArea>(); if (draggingWindow.Model is LayoutDocumentFloatingWindow) return _dropAreas; var rootVisual = (Content as FloatingWindowContentHost).RootVisual; foreach (var areaHost in rootVisual.FindVisualChildren<LayoutAnchorablePaneControl>()) { _dropAreas.Add(new DropArea<LayoutAnchorablePaneControl>( areaHost, DropAreaType.AnchorablePane)); } foreach (var areaHost in rootVisual.FindVisualChildren<LayoutDocumentPaneControl>()) { _dropAreas.Add(new DropArea<LayoutDocumentPaneControl>( areaHost, DropAreaType.DocumentPane)); } return _dropAreas; }
IOverlayWindow IOverlayWindowHost.ShowOverlayWindow(LayoutFloatingWindowControl draggingWindow) { //Trace.WriteLine("ShowOverlayWindow"); CreateOverlayWindow(); _overlayWindow.Owner = draggingWindow; _overlayWindow.EnableDropTargets(); _overlayWindow.Show(); return _overlayWindow; }
IEnumerable<IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow) { if (_areas != null) return _areas; bool isDraggingDocuments = draggingWindow.Model is LayoutDocumentFloatingWindow; _areas = new List<IDropArea>(); if (!isDraggingDocuments) { _areas.Add(new DropArea<DockingManager>( this, DropAreaType.DockingManager)); foreach (var areaHost in this.FindVisualChildren<LayoutAnchorablePaneControl>()) { if (areaHost.Model.Descendents().Any()) { _areas.Add(new DropArea<LayoutAnchorablePaneControl>( areaHost, DropAreaType.AnchorablePane)); } } } foreach (var areaHost in this.FindVisualChildren<LayoutDocumentPaneControl>()) { _areas.Add(new DropArea<LayoutDocumentPaneControl>( areaHost, DropAreaType.DocumentPane)); } foreach (var areaHost in this.FindVisualChildren<LayoutDocumentPaneGroupControl>()) { var documentGroupModel = areaHost.Model as LayoutDocumentPaneGroup; if (documentGroupModel.Children.Where(c => c.IsVisible).Count() == 0) { _areas.Add(new DropArea<LayoutDocumentPaneGroupControl>( areaHost, DropAreaType.DocumentPaneGroup)); } } return _areas; }
internal void RemoveFloatingWindow(LayoutFloatingWindowControl floatingWindow) { _fwList.Remove(floatingWindow); }
void IOverlayWindow.DragLeave(LayoutFloatingWindowControl floatingWindow) { Visibility = System.Windows.Visibility.Hidden; _floatingWindow = null; }
void IOverlayWindow.DragEnter(LayoutFloatingWindowControl floatingWindow) { _floatingWindow = floatingWindow; EnableDropTargets(); }