Ejemplo n.º 1
0
        public PackageContentItemViewModel(PackageContentItem packageContentItem, PackageViewModel package)
            : base(packageContentItem)
        {
            _package = package;

            _package.PropertyChanged += Package_PropertyChanged;
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// If the chosen item is a file 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 PkgFileChooser_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            var file = PackageFileChooser.SelectedItem as PackageFileContentItem;

            if (file != null)
            {
                SelectButton.IsEnabled = true;
                PackageViewModel package = null;
                // Get the Package parent
                PackageContentItem parent = file.Parent;
                package = parent as PackageViewModel;
                while (package == null && parent != null)
                {
                    parent  = parent.Parent;
                    package = parent as PackageViewModel;
                }

                if (package != null)
                {
                    TraceLabSDK.PackageSystem.IPackageReference reference = new TraceLab.Core.PackageSystem.PackageReference(package.Package);

                    var path = new TraceLab.Core.Components.TraceLabFilePath();
                    path.Init(reference, file.ID);
                    Path = path;
                }
            }
            else
            {
                SelectButton.IsEnabled = false;
            }
        }
Ejemplo n.º 4
0
        /// <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;
        }
Ejemplo n.º 5
0
        internal void FreezeSelectedPackages()
        {
            using (new UndoManager.EventGroupScope())
            {
                // Take each selected package resulting items and put them in the adding items
                foreach (PackageViewModel package in Packages.Where(p => p.IsSelected))
                {
                    List <ContentItemViewModelReference> items = package.ResultingItems.ToList();

                    package.Package.Items.RemoveAll();

                    foreach (ContentItemViewModelReference item in items)
                    {
                        PackageContentItem packageItem = new PackageContentItem(item.ContentItem.Id, item.ContentItem.Language, item.ContentItem.FileName);
                        switch (item.ContentItem.FileType)
                        {
                        case FileType.SoundBank:
                            packageItem.InclusionMode = InclusionMode.Bank;
                            break;

                        case FileType.StreamedFile:
                            packageItem.InclusionMode = InclusionMode.Streams;
                            break;

                        case FileType.ExternalSource:
                            packageItem.InclusionMode = InclusionMode.External;
                            break;

                        case FileType.LooseMedia:
                            packageItem.InclusionMode = InclusionMode.LooseMedia;
                            break;
                        }

                        package.Package.Items.Add(packageItem);
                    }
                    // Then ensure no assignation rule uses those packages
                    RemovePackageFromAssignations(package.Id);
                }
            }
        }
Ejemplo n.º 6
0
 private PackageContentItemViewModel CreatePackageContentItemViewModel(PackageContentItem packageContentItem)
 {
     return(new PackageContentItemViewModel(packageContentItem, this));
 }