示例#1
0
        /// <summary>
        /// Processes and reroutes events when the list box selection changes.
        /// The three types of events are when selection count is 0, 1 or many.
        /// </summary>
        void listMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (ignoreSelectionChanges.IsBlocked)
            {
                return;
            }

            foreach (ListPageItem added in e.AddedItems)
            {
                added.Selected = true;
            }

            foreach (ListPageItem added in e.RemovedItems)
            {
                added.Selected = false;
            }


            var count = listMain.SelectedItems.Count;

            if (count == 0)
            {
                SelectedNothing.Invoke(this, directory);
            }
            else if (count == 1)
            {
                var item = (ListPageItem)listMain.SelectedItem;

                if (item.Reference is File)
                {
                    SelectedFile.Invoke(this, directory, (File)item.Reference);
                }
                else if (item.Reference is Directory)
                {
                    SelectedDirectory.Invoke(this, directory, (Directory)item.Reference);
                }
                else if (item.Reference is Jump)
                {
                    SelectedJump.Invoke(this, directory, (Jump)item.Reference);
                }
                else if (item.Reference is Link)
                {
                    SelectedLink.Invoke(this, directory, (Link)item.Reference);
                }
            }
            else
            {
                var items = new List <FileSystemItem>();
                foreach (ListPageItem item in listMain.SelectedItems)
                {
                    items.Add(item.Reference);
                }

                SelectedMultiple.Invoke(this, directory, items.ToArray());
            }
        }
        void LoadEventValues()
        {
            value_COMBO.Items.Clear();

            if (SelectedLink != null)
            {
                if (LinkType == "Type")
                {
                    int index = ParentPage.DataItemTypes.ToList().FindIndex(x => x == SelectedLink.ToString());
                    if (index >= 0)
                    {
                        var item = ParentPage.DataItemTypes[index];
                        if (item != null)
                        {
                            if (ParentPage != null)
                            {
                                var match = ParentPage.EventValues.ToList().Find(x => x.Type == item);
                                if (match != null)
                                {
                                    foreach (var value in match.Values)
                                    {
                                        value_COMBO.Items.Add(value);
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    int index = ParentPage.CollectedItems.ToList().FindIndex(x => x.Id == SelectedLink.ToString());
                    if (index >= 0)
                    {
                        var item = ParentPage.CollectedItems[index];
                        if (item != null)
                        {
                            if (item.Category == "EVENT")
                            {
                                if (ParentPage != null)
                                {
                                    var match = ParentPage.EventValues.ToList().Find(x => x.Type == item.Type);
                                    if (match != null)
                                    {
                                        foreach (var value in match.Values)
                                        {
                                            value_COMBO.Items.Add(value);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
示例#3
0
 /// <summary>
 /// Deletes the link.
 /// </summary>
 public void deleteLink()
 {
     this.CloudSetupProcess.ProcessMonitor.DeleteLink(SelectedLink.GetModel());
     Links.Remove(SelectedLink);
     SelectedLink = null;
 }