Example #1
0
        private static bool SelectTarget(PackageContentItem model, string target)
        {
            bool found = false;
            PackageFileContentItem   file   = model as PackageFileContentItem;
            PackageFolderContentItem folder = model as PackageFolderContentItem;

            if (file != null && file.ID == target)
            {
                file.IsSelected = true;
                found           = true;
            }
            else if (folder != null)
            {
                foreach (PackageContentItem child in folder.Contents)
                {
                    if (SelectTarget(child, target))
                    {
                        found = true;
                        break;
                    }
                }
            }

            return(found);
        }
        /// <summary>
        /// If the chosen item is a Package or Folder then the Select Button is enabled, and the correct
        /// path is set.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.Windows.RoutedPropertyChangedEventArgs&lt;System.Object&gt;"/> instance containing the event data.</param>
        private void PkgFolderChooser_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            bool enableButton = false;
            PackageFolderContentItem folder = PackageFileChooser.SelectedItem as PackageFolderContentItem;

            if (folder != null && !(folder is PackageViewModel))
            {
                Stack <string> subDirs = new Stack <string>();
                subDirs.Push(folder.Label);

                PackageContentItem parent = folder.Parent;
                while (parent.Parent != null)
                {
                    subDirs.Push(parent.Label);
                    parent = parent.Parent;
                }

                PackageViewModel package = parent as PackageViewModel;
                if (package != null)
                {
                    string subDirectory = "";
                    while (subDirs.Count > 0)
                    {
                        subDirectory = System.IO.Path.Combine(subDirectory, subDirs.Pop());
                    }

                    if (Directory.Exists(System.IO.Path.Combine(package.Package.Location, subDirectory)))
                    {
                        TraceLabSDK.PackageSystem.IPackageReference reference = new TraceLab.Core.PackageSystem.PackageReference(package.Package);
                        TraceLabDirectoryPath path = new TraceLabDirectoryPath();
                        path.Init(reference, subDirectory);
                        Path         = path;
                        enableButton = true;
                    }
                }
            }
            else if (folder != null && folder is PackageViewModel)
            {
                PackageViewModel package = folder as PackageViewModel;
                if (Directory.Exists(package.Package.Location))
                {
                    TraceLabSDK.PackageSystem.IPackageReference reference = new TraceLab.Core.PackageSystem.PackageReference(package.Package);
                    TraceLabDirectoryPath path = new TraceLabDirectoryPath();
                    path.Init(reference, ".");
                    Path         = path;
                    enableButton = true;
                }
            }
            SelectButton.IsEnabled = enableButton;
        }