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()); } }
private void CopyDiagrams(IEnumerable <ObservableDiagram> itemsToCopy, string destinationName) { Action <string, bool> performCopy = (name, newCollection) => { try { DiagramLibrary library = AppVM.UserConfig.DiagramLibrary; DiagramCollection targetCollection = library.Get(name); foreach (ObservableDiagram od in itemsToCopy) { Diagram clone = od.Diagram.Clone(); targetCollection.Add(clone); } Redraw(newCollection); } catch (Exception ex) { ExceptionUtils.HandleException(ex); } }; if (!string.IsNullOrWhiteSpace(destinationName)) { // Target was specified performCopy(destinationName.Trim(), false); } else { // Prompt for a target Messenger.Default.Send(new ShowDiagramCollectionSelectorMessage(performCopy)); } }
//Numeric Search and Filter logic private void MakeNumericSearch(DiagramCollection <OrgNodeViewModel> diagramCollection, DiagramCollection <OrgConnectorViewModel> ConnectorCollection, string filtertext, string option, string condition, string selection) { if (CheckSearchandFilter(ConnectorCollection)) { double comparevalue = 0; double res; bool checkNumeric = Double.TryParse(filtertext, out res); double filteramount = Convert.ToDouble(filtertext); foreach (var item in diagramCollection) { if ((item as OrgNodeViewModel).Visible == true) { if ((item as OrgNodeViewModel).Content is Employee) { if (option == "Salary") { comparevalue = Convert.ToDouble(((item as OrgNodeViewModel).Content as Employee).Salary); } else if (option == "Experiance") { DateTime today = DateTime.Today; DateTime previous = Convert.ToDateTime(((item as OrgNodeViewModel).Content as Employee).Doj); int dt = today.Year - previous.Year; comparevalue = Convert.ToDouble(dt); } if (checkNumeric) { switch (condition) { case "Greater": if (comparevalue >= filteramount) { if (selection == "Search") { if (!(SearchResult as DiagramCollection <OrgNodeViewModel>).Contains(item)) { ((item as OrgNodeViewModel).Content as Employee).IsSearched = true; } (SearchResult as DiagramCollection <OrgNodeViewModel>).Add(item); } } break; } } } } } if (selection == "Filter") { foreach (var item1 in ConnectorCollection) { (item1 as OrgConnectorViewModel).ConnectorOpacity = 0.3; } } } }
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; }
//Checking for results internal bool CheckSearchandFilter(DiagramCollection <OrgConnectorViewModel> conectorCollection) { if (SearchResult.Count > 0) { foreach (var item in SearchResult) { ((item as OrgNodeViewModel).Content as Employee).IsSearched = false; } SearchResult = new DiagramCollection <OrgNodeViewModel>(); } return(true); }
private bool CheckSearch() { if (SearchResult.Count > 0) { foreach (var item in SearchResult) { ((item as OrgNodeViewModel).Content as Employee).IsSearched = false; } SearchResult = new DiagramCollection <OrgNodeViewModel>(); } return(true); }
private void ProcessClose() { DiagramLibrary library = AppVM.UserConfig.DiagramLibrary; DiagramCollection targetCollection = null; bool newCollection = false; if (!library.TryGet(CollectionName, out targetCollection)) { targetCollection = library.Add(CollectionName); newCollection = true; } Callback(CollectionName, newCollection); }
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(); }
//Initialize Search /Filter internal void UpdateSearch(DiagramCollection <OrgNodeViewModel> diagramCollection, DiagramCollection <OrgConnectorViewModel> ConnectorCollection, string filtertext, string filteroption, string filterselection) { double res; bool checkNumeric = double.TryParse(filtertext, out res); if (!filtertext.Equals("")) { if (!filteroption.Equals("Name") && !filteroption.Equals("Designation")) { MakeNumericSearch(diagramCollection, ConnectorCollection, filtertext, filteroption, "Greater", filterselection); } else { MakeStringFilter(diagramCollection, ConnectorCollection, filtertext, filteroption, "Contains"); } } }
public static DiagramCollection Load(DiagramStyle parentStyle, Stream inputStream) { if (null == parentStyle) { throw new ArgumentNullException(nameof(parentStyle)); } if (null == inputStream) { throw new ArgumentNullException(nameof(inputStream)); } DiagramCollection collection = new DiagramCollection(parentStyle); using (StreamReader sr = new StreamReader(inputStream)) { ChordOptions currentChordOptions = new ChordOptions(); string line; while (null != (line = sr.ReadLine())) { line = line.Trim(); try { if (line.StartsWith(CommentPrefix)) // line is a comment { // ignore } else if (line.StartsWith(OptionsPrefix)) // line modifies the options { currentChordOptions = new ChordOptions(line); } else if (!string.IsNullOrEmpty(line)) // treat line as a chord { Chord chord = new Chord(line); Diagram diagram = GetDiagram(chord, currentChordOptions, collection.Style); collection.Add(diagram); } } catch (Exception) { } } } return(collection); }
private void OnTabFloatClosed(object sender, RoutedEventArgs e) { if (sender is MainTabDiagramItem) { MainTabDiagramItem mtditem = (MainTabDiagramItem)sender; mtditem.IsFloat = false; //mtditem.FloatClosed -= OnTabFloatClosed; DiagramCollection.Remove(mtditem); TabItemCollection.Remove(mtditem.LDVM_ladder); _lDocDict.Remove(mtditem.LDVM_ladder); } else { ITabItem titem = (ITabItem)sender; titem.IsFloat = false; //titem.FloatClosed -= OnTabFloatClosed; TabItemCollection.Remove(titem); _lDocDict.Remove(titem); } FloatingWinClosed(this, null); }
//String Search Logic private void MakeStringFilter(DiagramCollection <OrgNodeViewModel> diagramCollection, DiagramCollection <OrgConnectorViewModel> ConnectorCollection, string filtertext, string option, string condition) { if (CheckSearch()) { var exactvalue = filtertext; string value = string.Empty; foreach (var item in diagramCollection) { if ((item as OrgNodeViewModel).Visible == true) { if ((item as OrgNodeViewModel).Content is Employee) { if (option == "Name") { value = ((item as OrgNodeViewModel).Content as Employee).Name; } else if (option == "Designation") { value = ((item as OrgNodeViewModel).Content as Employee).Destination; } if (condition == "Contains") { if (value.IndexOf(exactvalue, 0, StringComparison.CurrentCultureIgnoreCase) != -1) { if (value == exactvalue || option == "Name") { ((item as OrgNodeViewModel).Content as Employee).IsSearched = true; (SearchResult as DiagramCollection <OrgNodeViewModel>).Add(item as OrgNodeViewModel); } } } } } } } }
public SearchViewModel() { SearchResult = new DiagramCollection <OrgNodeViewModel> (); FilterResult = new DiagramCollection <OrgNodeViewModel>(); }
public ChartViewModel() { NodeCollection = new DiagramCollection <OrgNodeViewModel>(); Connections = new DiagramCollection <OrgConnectorViewModel>(); Searchview = new SearchViewModel(); }
partial void RefreshTab() { Tabs = new TabControl(); diagrams = new DiagramCollection(children, this); diagrams.ActivateNewDiagram = true; // rebuild tabs by children diagrams.Sync(); if (activatedDiagram != null) Tabs.SelectedItem = activatedDiagram.Tab; PropertyChanged += OnTitleChanged; PropertyChanged += OnActivatedDiagramChanged; #if DEBUG_ON System.Console.WriteLine("{0} Project refreshed", System.DateTime.Now.Millisecond); #endif }