Example #1
0
        public void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs e)
        {
            if (!RealChangeEnabledStateEventHandler(null, e))
            {
                System.Windows.Forms.MessageBox.Show(Localization.GetString("This is not an appropriate context in which to use this tool"),
                                                     Localization.GetString(this.ToString()));
                return;
            }

            SimPe.Collections.PackedFileDescriptors pfds = e.GetDescriptors();
            bool first = true;
            uint inst  = 0x8000;

            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                if (first)
                {
                    first = false;
                    inst  = pfd.Instance;
                }
                else
                {
                    pfd.Instance = inst;
                }

                inst++;
            }
        }
Example #2
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            SimPe.Collections.PackedFileDescriptors pfds = this.LoadDescriptors(false);
            if (es.Count > 0)
            {
                foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
                {
                    if (pfd != null)
                    {
                        if (es[0].Resource != null)
                        {
                            if (es[0].Resource.FileDescriptor != null)
                            {
                                es[0].Resource.FileDescriptor.UserData = pfd.UserData;
                            }
                        }
                    }
                }
            }
        }
Example #3
0
 public SimPe.Collections.PackedFileDescriptors GetDescriptors()
 {
     SimPe.Collections.PackedFileDescriptors pfds = new SimPe.Collections.PackedFileDescriptors();
     foreach (SimPe.Events.ResourceContainer e in list)
     {
         if (e.HasFileDescriptor)
         {
             pfds.Add(e.Resource.FileDescriptor);
         }
     }
     return(pfds);
 }
Example #4
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            bool   multi  = es.Count > 1;
            string flname = SetupSaveDialog(es[0].Resource.FileDescriptor.ExportFileName, multi);

            if (flname == null)
            {
                return;
            }

#if !DEBUG
            try
#endif
            {
                if (!multi)                 //extract one File
                {
                    SimPe.Packages.PackedFileDescriptor pfd = (SimPe.Packages.PackedFileDescriptor)es[0].Resource.FileDescriptor;

                    ToolLoaderItemExt.SavePackedFile(flname, true, pfd, es.LoadedPackage.Package);
                    pfd.Path = null;
                }
                else                 //extract multiple Files
                {
                    SimPe.Collections.PackedFileDescriptors pfds = new SimPe.Collections.PackedFileDescriptors();
                    foreach (SimPe.Events.ResourceContainer e in es)
                    {
                        if (e.HasFileDescriptor)
                        {
                            pfds.Add(e.Resource.FileDescriptor);
                        }
                    }

                    SimPe.Interfaces.Files.IPackedFileDescriptor[] ar = new SimPe.Interfaces.Files.IPackedFileDescriptor[pfds.Length];
                    pfds.CopyTo(ar);
                    ExtractAllFiles(flname, ar, es.LoadedPackage.Package);
                }
            }
#if !DEBUG
            catch (Exception ex)
            {
                Helper.ExceptionMessage(Localization.Manager.GetString("err002") + flname, ex);
            }
#endif
        }
Example #5
0
        public override void ExecuteEventHandler(object sender, SimPe.Events.ResourceEventArgs es)
        {
            if (!ChangeEnabledStateEventHandler(null, es))
            {
                return;
            }

            SimPe.Collections.PackedFileDescriptors pfds = this.LoadDescriptors(true);
            es.LoadedPackage.Package.BeginUpdate();
            foreach (SimPe.Interfaces.Files.IPackedFileDescriptor pfd in pfds)
            {
                es.LoadedPackage.Package.Add(pfd);
            }
            es.LoadedPackage.Package.EndUpdate();
        }
Example #6
0
        /// <summary>
        /// Load a list of FIleDescriptors from the disc
        /// </summary>
        /// <param name="add">true if you want to add them lateron</param>
        /// <returns></returns>
        protected SimPe.Collections.PackedFileDescriptors LoadDescriptors(bool add)
        {
            System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog();
            if (!add)
            {
                ofd.Filter = ExtensionProvider.BuildFilterString(
                    new SimPe.ExtensionType[] {
                    SimPe.ExtensionType.ExtractedFile,
                    SimPe.ExtensionType.ExtractedFileDescriptor,
                    SimPe.ExtensionType.AllFiles
                }
                    );
            }
            else
            {
                ofd.Filter = ExtensionProvider.BuildFilterString(
                    new SimPe.ExtensionType[] {
                    SimPe.ExtensionType.ExtractedFileDescriptor,
                    SimPe.ExtensionType.ExtrackedPackageDescriptor,
                    SimPe.ExtensionType.ExtractedFile,
                    SimPe.ExtensionType.Package,
                    SimPe.ExtensionType.DisabledPackage,
                    SimPe.ExtensionType.AllFiles
                }
                    );
            }

            ofd.Title       = SimPe.Localization.GetString(this.ToString());
            ofd.Multiselect = add;
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                SimPe.Collections.PackedFileDescriptors pfds = LoadedPackage.LoadDescriptorsFromDisk(ofd.FileNames);
                return(pfds);
            }

            return(new SimPe.Collections.PackedFileDescriptors());
        }
Example #7
0
        void SaveRelations()
        {
            if (locked)
            {
                return;
            }
            SimPe.Collections.PackedFileDescriptors pfds = new SimPe.Collections.PackedFileDescriptors();
            locked = true;

            try
            {
                foreach (ExtSrel srel in crmap.Values)
                {
                    if (srel.Package != null)
                    {
                        srel.SynchronizeUserData();
                    }
                    else
                    {
                        srel.Package = this.Package;
                        srel.SynchronizeUserData();
                        pfds.Add(srel.FileDescriptor);
                    }

                    if (!this.Equals(srel.SourceSim))
                    {
                        if (srel.SourceSim != null)
                        {
                            if (srel.SourceSim.Changed)
                            {
                                srel.SourceSim.SynchronizeUserData();
                            }
                        }
                    }
                }

                crmap.Clear();

                locked = false;

                this.Package.BeginUpdate();
                try
                {
                    for (int i = pfds.Count - 1; i >= 0; i--)
                    {
                        if (i == 0)
                        {
                            this.Package.ForgetUpdate();
                        }
                        this.Package.Add(pfds[i], true);
                    }
                }
                finally
                {
                    this.Package.EndUpdate();
                }
            }
            finally
            {
                locked = false;
            }
        }