Exemplo n.º 1
0
        private void ClearSearch()
        {
            SearchedItems = new ObservableCollection <TreeViewItemAdv>();
            foreach (Model model in Treeview.ItemsSource)
            {
                TreeViewItemAdv mainitem = Treeview.ItemContainerGenerator.ContainerFromItem(model) as TreeViewItemAdv;

                if (mainitem != null)
                {
                    ApplyInline(mainitem, false);
                }


                foreach (Model level2 in model.Children)
                {
                    TreeViewItemAdv level2item = mainitem.ItemContainerGenerator.ContainerFromItem(level2) as TreeViewItemAdv;
                    if (level2item != null)
                    {
                        ApplyInline(level2item, false);
                    }
                    if (level2item != null)
                    {
                        foreach (Model level3 in level2.Children)
                        {
                            TreeViewItemAdv level3item = level2item.ItemContainerGenerator.ContainerFromItem(level3) as TreeViewItemAdv;
                            if (level3item != null)
                            {
                                ApplyInline(level3item, false);
                            }
                        }
                    }
                }
            }
            Treeview.UpdateLayout();
        }
Exemplo n.º 2
0
        private void Search()
        {
            ClearSearch();

            if (!string.IsNullOrEmpty(SearchTextBox.Text))
            {
                string searchText = SearchTextBox.Text;

                foreach (Model model in Treeview.ItemsSource)
                {
                    TreeViewItemAdv mainitem = Treeview.ItemContainerGenerator.ContainerFromItem(model) as TreeViewItemAdv;

                    if (mainitem != null && MatchSearchText(model.Header))
                    {
                        //Function which is used to apply inline to the TextBlock
                        ApplyInline(mainitem, false);
                    }

                    foreach (Model level2 in model.Children)
                    {
                        if (MatchSearchText(level2.Header) || level2.Children.Count > 0)
                        {
                            mainitem.IsExpanded = true;
                            Treeview.UpdateLayout();
                        }
                        TreeViewItemAdv level2item = mainitem.ItemContainerGenerator.ContainerFromItem(level2) as TreeViewItemAdv;

                        if (level2item != null)
                        {
                            ApplyInline(level2item, false);
                        }
                        if (level2item != null)
                        {
                            foreach (Model level3 in level2.Children)
                            {
                                if (MatchSearchText(level3.Header) || level3.Children.Count > 0)
                                {
                                    level2item.IsExpanded = true;
                                    Treeview.UpdateLayout();
                                }
                                TreeViewItemAdv level3item = level2item.ItemContainerGenerator.ContainerFromItem(level3) as TreeViewItemAdv;
                                if (level3item != null)
                                {
                                    ApplyInline(level3item, false);
                                }
                            }
                        }
                    }
                }

                if (SearchedItems != null && SearchedItems.Count > 0)
                {
                    ApplyInline(SearchedItems[0], true);
                    SearchedItems[0].BringIntoView();
                    matchindex = 0;
                }
            }
        }
Exemplo n.º 3
0
 public void OnDemandLoad(TreeViewItemAdv treeitem)
 {
     if (treeitem != null)
     {
         this.TreeItem    = treeitem as TreeViewItemAdv;
         this.currentItem = TreeItem.DataContext as IFile;
         timer.Start();
     }
 }
Exemplo n.º 4
0
        public void DragEnd(object sender, DragTreeViewItemAdvEventArgs e)
        {
            e.Cancel = false;
            TreeViewItemAdv drop = e.TargetDropItem as TreeViewItemAdv;

            if (drag != null && drop != null && drag.ParentItemsControl == drop.ParentItemsControl)
            {
                e.Cancel = true;
            }
        }
Exemplo n.º 5
0
        private void BuildDirectoryTree(TreeViewItemAdv item, IFile file)
        {
            string path = "";

            if (item != null && file != null)
            {
                if (file.Info is DriveInfo)
                {
                    path = ((DriveInfo)file.Info).Name;
                }
                else if (file.Info is DirectoryInfo)
                {
                    path = ((DirectoryInfo)file.Info).FullName;
                }

                if (String.IsNullOrEmpty(path))
                {
                    return;
                }
                DirectoryInfo info = new DirectoryInfo(path);
                if (info.Exists)
                {
                    try
                    {
                        DirectoryInfo[] infos = info.GetDirectories();
                        foreach (DirectoryInfo directory in infos)
                        {
                            Directory _file = new Directory();
                            _file.Name = directory.Name;
                            _file.Info = directory;
                            BitmapImage image = new BitmapImage(new Uri("folder.png", UriKind.RelativeOrAbsolute));
                            _file.Icon = image;
                            ((Directory)file).Files.Add(_file);
                            ((Directory)file).Items.Add(_file);
                        }
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.Message);
                    }
                }
                else
                {
                    MessageBox.Show("The Device is not ready.", "Disk Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                item.IsLoadOnDemand = false;
            }
        }
Exemplo n.º 6
0
        internal static TextBlock GetEditableTextBlock(TreeViewItemAdv item)
        {
            if (item != null)
            {
                TextBlock oobj = null;

                if (oobj == null)
                {
                    oobj = VisualUtils.FindDescendant(item.Template.FindName("PART_Header", item) as ContentPresenter, typeof(TextBlock)) as TextBlock;
                }

                return(oobj);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 7
0
        private void BuildItemsTree(TreeViewItemAdv item, IFile file)
        {
            string path = "";

            if (file != null)
            {
                bool isloaded = ((Directory)file).Items.Count > 0;
                if (file != null)
                {
                    if (file.Info is DriveInfo)
                    {
                        path = ((DriveInfo)file.Info).Name;
                    }
                    else if (file.Info is DirectoryInfo)
                    {
                        path = ((DirectoryInfo)file.Info).FullName;
                    }

                    if (!isloaded)
                    {
                        DirectoryInfo info = new DirectoryInfo(path);
                        if (info.Exists)
                        {
                            try
                            {
                                DirectoryInfo[] infos = info.GetDirectories();
                                foreach (DirectoryInfo directory in infos)
                                {
                                    Directory _file = new Directory();
                                    _file.Name = directory.Name;
                                    _file.Info = directory;

                                    _file.FileType = "File Folder";
                                    BitmapImage image = new BitmapImage(new Uri("/WindowsExplorerDemo;component/folder.png", UriKind.RelativeOrAbsolute));
                                    _file.Icon         = image;
                                    _file.DateModified = directory.LastWriteTime;
                                    ((Directory)file).Files.Add(_file);
                                    ((Directory)file).Items.Add(_file);
                                }

                                FileInfo[] files = info.GetFiles();
                                foreach (FileInfo directory in files)
                                {
                                    Directory _file = new Directory();
                                    _file.Name         = directory.Name;
                                    _file.Info         = directory;
                                    _file.FileType     = directory.Extension;
                                    _file.Size         = directory.Length / 1024;
                                    _file.Icon         = ExtractIcon(directory);
                                    _file.DateModified = directory.LastWriteTime;
                                    ((Directory)file).Items.Add(_file);
                                }
                            }
                            catch (Exception e)
                            {
                                MessageBox.Show(e.Message);
                            }
                        }
                        else
                        {
                            MessageBox.Show("The Device is not ready.", "Disk Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                }
            }
        }
        public MainWindow()
        {
            InitializeComponent();
            TreeViewAdv     treeViewAdv = new TreeViewAdv();
            TreeViewItemAdv root1       = new TreeViewItemAdv()
            {
                Header = "Marital Status"
            };
            TreeViewItemAdv subitem11 = new TreeViewItemAdv()
            {
                Header = "Single"
            };
            TreeViewItemAdv subitem12 = new TreeViewItemAdv()
            {
                Header = "Married"
            };
            TreeViewItemAdv subitem13 = new TreeViewItemAdv()
            {
                Header = "Married with Children"
            };

            root1.Items.Add(subitem11);
            root1.Items.Add(subitem12);
            root1.Items.Add(subitem13);

            TreeViewItemAdv root2 = new TreeViewItemAdv()
            {
                Header = "Baby Vaccines"
            };
            TreeViewItemAdv subitem21 = new TreeViewItemAdv()
            {
                Header = "Hepatitis B"
            };
            TreeViewItemAdv subitem22 = new TreeViewItemAdv()
            {
                Header = "Tetanus"
            };
            TreeViewItemAdv subitem23 = new TreeViewItemAdv()
            {
                Header = "Polio"
            };
            TreeViewItemAdv subitem24 = new TreeViewItemAdv()
            {
                Header = "Measles"
            };

            root2.Items.Add(subitem21);
            root2.Items.Add(subitem22);
            root2.Items.Add(subitem23);
            root2.Items.Add(subitem24);

            TreeViewItemAdv root3 = new TreeViewItemAdv()
            {
                Header = "Baby Vaccines"
            };

            treeViewAdv.Items.Add(root1);
            treeViewAdv.Items.Add(root2);
            treeViewAdv.Items.Add(root3);
            Grid.Children.Add(treeViewAdv);

            root1.IsExpanded = true;
        }
Exemplo n.º 9
0
        internal void ApplyInline(TreeViewItemAdv item, bool issearchhighlightbrush)
        {
            var tempSearchText = SearchTextBox.Text;

            String[] metaCharacters = { "\\", "^", "$", "{", "}", "[", "]", "(", ")", ".", "*", "+", "?", "|", "<", ">", "-", "&" };
            if (metaCharacters.Any(tempSearchText.Contains))
            {
                for (int i = 0; i < metaCharacters.Length; i++)
                {
                    if (tempSearchText.Contains(metaCharacters[i]))
                    {
                        tempSearchText = tempSearchText.Replace(metaCharacters[i], "\\" + metaCharacters[i]);
                    }
                }
            }

            Regex regex = null;

            if (!string.IsNullOrEmpty(tempSearchText))
            {
                if (this.SearchType == SearchType.StartsWith)
                {
                    if (!(bool)CaseSensitiveSearchCheckBox.IsChecked)
                    {
                        regex = new Regex("^(" + tempSearchText + ")", RegexOptions.IgnoreCase);
                    }
                    else
                    {
                        regex = new Regex("^(" + tempSearchText + ")", RegexOptions.None);
                    }
                }
                else if (this.SearchType == SearchType.EndsWith)
                {
                    if (!(bool)CaseSensitiveSearchCheckBox.IsChecked)
                    {
                        regex = new Regex("(" + tempSearchText + ")$", RegexOptions.IgnoreCase);
                    }
                    else
                    {
                        regex = new Regex("(" + tempSearchText + ")$", RegexOptions.None);
                    }
                }
                else
                {
                    if (!(bool)CaseSensitiveSearchCheckBox.IsChecked)
                    {
                        regex = new Regex("(" + tempSearchText + ")", RegexOptions.IgnoreCase);
                    }
                    else
                    {
                        regex = new Regex("(" + tempSearchText + ")", RegexOptions.None);
                    }
                }
            }

            var textBlock = GetEditableTextBlock(item);

            string[] substrings = { textBlock.Text };
            //get all the words from the 'content'
            if (regex != null)
            {
                substrings = regex.Split(textBlock.Text.ToString());
            }
            textBlock.Inlines.Clear();
            foreach (var item1 in substrings)
            {
                if (regex != null && regex.Match(item1).Success)
                {
                    //create a 'Run' and add it to the TextBlock
                    Run run = new Run(item1);
                    if (!issearchhighlightbrush)
                    {
                        run.Background = SearchBrush;
                    }
                    else
                    {
                        run.Background = SearchHighLightBrush;
                    }
                    textBlock.Inlines.Add(run);
                }
                else
                {
                    textBlock.Inlines.Add(item1);
                }
            }
            if (substrings.Count() > 1 && !SearchedItems.Contains(item))
            {
                SearchedItems.Add(item);
            }
        }
Exemplo n.º 10
0
 public void DragStart(object sender, DragTreeViewItemAdvEventArgs e)
 {
     drag = (sender as TreeViewAdv).SelectedContainer;
 }
Exemplo n.º 11
0
        private async void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                CancellationTokenSource source = new CancellationTokenSource();
                CancellationToken       token  = source.Token;
                sfBusyIndicator.IsBusy = true;
                EditControl1.IsEnabled = false;

                //var slowTask = Task<ObservableCollection<CustomIntelliSenseItem>>.Factory.StartNew(() => SlowDude(source.Token), source.Token);

                var slowTask2 = Task <DataTable> .Factory.StartNew(() => LoadTables(source.Token), source.Token);

                //await slowTask;
                await slowTask2;

                //if (((ObservableCollection<CustomIntelliSenseItem>)slowTask.Result).Count > 0)
                //{
                //    EditControl1.IntellisenseCustomItemsSource = ((ObservableCollection<CustomIntelliSenseItem>)slowTask.Result);

                //}


                if (((DataTable)slowTask2.Result).Rows.Count > 0)
                {
                    foreach (DataRow item in ((DataTable)slowTask2.Result).Rows)
                    {
                        TreeViewItemAdv itemMenu = new TreeViewItemAdv();
                        itemMenu.Header = item["tablas"].ToString();

                        string    query      = "select column_name as columnas from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='" + item["tablas"].ToString() + "' order by column_name ";
                        DataTable DtColumnas = SiaWin.Func.SqlDT(query, "Columnas", idemp);
                        ObservableCollection <CustomIntelliSenseItem> columnas = new ObservableCollection <CustomIntelliSenseItem>();
                        foreach (DataRow rowColum in DtColumnas.Rows)
                        {
                            itemMenu.Items.Add(new TreeViewItemAdv()
                            {
                                Header = rowColum["columnas"].ToString()
                            });
                        }

                        ItemMain.Items.Add(itemMenu);
                    }

                    //    TreeViewItemAdv itemMenu = new TreeViewItemAdv();
                    //    itemMenu.Header = row["tablas"].ToString();


                    //    string query = "select column_name as columnas from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='" + row["tablas"].ToString() + "' order by column_name ";
                    //    DataTable DtColumnas = SiaWin.Func.SqlDT(query, "Columnas", idemp);
                    //    ObservableCollection<CustomIntelliSenseItem> columnas = new ObservableCollection<CustomIntelliSenseItem>();
                    //    foreach (DataRow rowColum in DtColumnas.Rows)
                    //    {
                    //        itemMenu.Items.Add(new TreeViewItemAdv() { Header = rowColum["columnas"].ToString() });
                    //        //columnas.Add(new CustomIntelliSenseItem() { Text = rowColum["columnas"].ToString() });
                    //    }
                    //    ItemMain.Items.Add(itemMenu);
                }

                EditControl1.IsEnabled      = true;
                this.sfBusyIndicator.IsBusy = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Errror en el load" + ex);
            }
        }