Пример #1
0
 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());
     }
 }
Пример #2
0
        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));
            }
        }
Пример #3
0
        //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;
                    }
                }
            }
        }
Пример #4
0
        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;
        }
Пример #5
0
 //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);
 }
Пример #6
0
 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);
        }
Пример #8
0
 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();
 }
Пример #9
0
        //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");
                }
            }
        }
Пример #10
0
        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);
        }
Пример #11
0
 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);
 }
Пример #12
0
        //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);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Пример #13
0
 public SearchViewModel()
 {
     SearchResult = new DiagramCollection <OrgNodeViewModel> ();
     FilterResult = new DiagramCollection <OrgNodeViewModel>();
 }
Пример #14
0
 public ChartViewModel()
 {
     NodeCollection = new DiagramCollection <OrgNodeViewModel>();
     Connections    = new DiagramCollection <OrgConnectorViewModel>();
     Searchview     = new SearchViewModel();
 }
Пример #15
0
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
        }