Interaction logic for DataPanel.xaml
Inheritance: System.Windows.Controls.UserControl
        public FindVargridWindow()
        {
            InitializeComponent();
            container  = LifetimeService.Instance.Container;
            controller = container.Resolve <IUIController>();
            ds         = controller.GetActiveDocument();
            TabItem ti = controller.GetTabItem(ds);

            dp = ti.Content as DataPanel;
            //dp.datavartabs.SelectedIndex = 1;//switch to DATA tab
            appWin     = LifetimeService.Instance.Container.Resolve <Window1>();
            this.Owner = appWin;
            searchtext.Focus();
        }
        public FindDatagridWindow()
        {
            InitializeComponent();

            container  = LifetimeService.Instance.Container;
            controller = container.Resolve <IUIController>();
            ds         = controller.GetActiveDocument();
            TabItem ti = controller.GetTabItem(ds);

            dp = ti.Content as DataPanel;

            appWin     = LifetimeService.Instance.Container.Resolve <Window1>();
            this.Owner = appWin;
            //fill listbox with colnames of currently active dataset
            FillColnames();
            searchtext.Focus();
        }
        public FindVargridWindow(Window1 appwin)
        {
            InitializeComponent();
            container  = LifetimeService.Instance.Container;
            controller = container.Resolve <IUIController>();
            ds         = controller.GetActiveDocument();
            if (ds == null || ds.Variables == null || ds.Variables.Count < 1)//12Sep2016 For NULL dataset we can disable the textfield and the Next button
            {
                DisableDialog();
            }
            TabItem ti = controller.GetTabItem(ds);

            dp = ti.Content as DataPanel;
            //dp.datavartabs.SelectedIndex = 1;//switch to DATA tab
            appWin     = appwin;
            this.Owner = appWin;
            searchtext.Focus();
        }
        public void LoadNewDataSet(DataSource ds)
        {
            bool bo = false; //These two lines for testing refresh on new row addition. Remove them later.
            if(bo) closeTab();

            if (!DataSourceExists(ds))
            {

                ///DocumentPanel panel = new DocumentPanel();
                //C1DockControlPanel c1panel = new C1DockControlPanel();//Anil
                StackPanel sp = new StackPanel(); //sp.Background = Brushes.Red;
                sp.Orientation = Orientation.Horizontal;
                sp.HorizontalAlignment = HorizontalAlignment.Center;
                sp.VerticalAlignment = VerticalAlignment.Center;
                //sp.Margin = new Thickness(1, 1, 1, 1);

                string sheetname=string.Empty;//29Apr2015
                if (ds.SheetName != null && ds.SheetName.Trim().Length > 0)
                    sheetname = "{" + ds.SheetName + "}";
                Label lb = new Label(); lb.FontWeight = FontWeights.DemiBold; 
                var tabtextcolor = new SolidColorBrush(Color.FromArgb(255, (byte)48, (byte)88, (byte)144));//Foreground="#FF1579DA"
                lb.Foreground = tabtextcolor;
                lb.Content = Path.GetFileName(ds.FileName) + sheetname + " (" + ds.Name + ")";//06Aug2012
                lb.ToolTip = ds.FileName+sheetname; 
                lb.Margin = new Thickness(1, 1, 1, 1);
                //Button b = new Button(); b.Content="x";
                Image b = new Image(); b.MouseLeftButtonUp += new System.Windows.Input.MouseButtonEventHandler(b_MouseLeftButtonUp);
                b.ToolTip = "Close this dataset"; b.Height = 16.0; b.Width = 22.0; 

                string packUri = "pack://application:,,,/BlueSky;component/Images/closetab.png";
                b.Source = new ImageSourceConverter().ConvertFromString(packUri) as ImageSource;
                sp.Children.Add(lb);
                sp.Children.Add(b); //sp.Children.Add(b); 

                TabItem panel = new TabItem(); 
                //panel.Margin = new Thickness(1, 1, 1, 1);
                b.Tag = panel;//for remove 
                ///////triggers///08Feb2013
                Binding bind = new Binding();//for close image to hide for inactive tabs
                bind.Source = panel;
                bind.Path = new PropertyPath("IsSelected");
                bind.Converter = new BooleanToVisibilityConverter();
                b.SetBinding(Image.VisibilityProperty, bind);

                Style st = new Style(typeof(TabItem));
                var brush1 = new SolidColorBrush(Color.FromArgb(255, (byte)212, (byte)227, (byte)242));//#FFD4E3F2
                st.Setters.Add(new Setter() { Property = TabItem.BackgroundProperty, Value = brush1 });

                Trigger tg = new Trigger { Property = TabItem.IsSelectedProperty, Value = true };
                var brush2 = new SolidColorBrush(Color.FromArgb(255, (byte)234, (byte)239, (byte)245));//#FFEAEFF5
                tg.Setters.Add(new Setter() { Property = TabItem.BackgroundProperty, Value = brush2 });

                st.Triggers.Add(tg);

                panel.Style = st;
                ///triggers///

                DataPanel datapanel = new DataPanel();
                datapanel.sortcolnames = sortcolnames;//11Apr2014
                datapanel.sortorder = sortorder; //14Apr2014

                 VirtualListDynamic vld = new VirtualListDynamic(_analyticsService, ds);
                 vld.DataF = _analyticsService.GetDataFrame(ds);
                 if (vld.DataF == null) return; //03Aug2015 When SaveAs fails and tries to load the dataset closing the current one.
                 IList list = vld;
                panel.Tag = ds; //panel.Tag = ds;
                datapanel.DS = ds; //sending reference
                datapanel.Data = list;

                datapanel.Variables = ds.Variables;

                datapanel.statusbar.Text = "";// "No Split";//03Dec2013 Status bar

                panel.Header =  sp;///Path.GetFileName(ds.FileName);
                
                panel.Content = datapanel;
                docGroup.Items.Add(panel);//panel
                //panel.IsSelected = true;
                docGroup.SelectedItem = panel; 
                //docGroup.SelectedIndex = docGroup.Items.Count - 1;
                //docGroup.Background = Brushes.Red; /color around open dataset
                ///layoutManager.Activate(panel);
            }
        }