// Navigate into a directory, or open a file either with the attached program or the default program for it
 public void DoubleClickCall(object sender)
 {
     if (sender.GetType() == typeof(UserDirectory))
     {
         UserDirectory clickedDirectory = (UserDirectory)sender;
         SelectedDirectory.IsExpanded    = true;
         clickedDirectory.ViewIsSelected = false;
         clickedDirectory.IsSelected     = true;
         clickedDirectory.IsExpanded     = true;
         SelectedDirectory = clickedDirectory;
     }
     else if (sender.GetType() == typeof(UserFile))
     {
         UserFile clickedFile = (UserFile)sender;
         if (OpenFileHandler != null)
         {
             OpenFileEventArgs eventArgs = new OpenFileEventArgs
             {
                 FilePath = clickedFile.ItemPath
             };
             OpenFileHandler?.Invoke(this, eventArgs);
         }
         else
         {
             Process.Start(clickedFile.ItemPath);
         }
     }
 }
예제 #2
0
        public override Explorer OpenFile(OpenFileEventArgs args)
        {
            var filedata = args.File.Data ?? GetFileData(args.File);

            if (args.File.Name.EndsWith(".bnk") && filedata is FPakEntry entry)
            {
                var data     = InspectedFile.ReadEntry(entry);
                var bankinfo = _files.Where(f => f.Name == "SoundbanksInfo.xml").SingleOrDefault();
                if (bankinfo != null)
                {
                    var bankData = InspectedFile.ReadEntry(bankinfo.Data);
                    var doc      = new XmlDocument();
                    var xml      = Encoding.UTF8.GetString(bankData);
                    doc.LoadXml(xml);
                    var info = new SoundBankInfo(doc);
                    return(new UE4.VorbisBank.BankExplorer(new UE4.VorbisBank.BankFile(data, info)));
                }
                else
                {
                    return(new UE4.VorbisBank.BankExplorer(new UE4.VorbisBank.BankFile(data)));
                }
            }
            else if (args.File.Name.EndsWith(".uasset") && filedata is FPakEntry asset)
            {
                var data = InspectedFile.ReadEntry(filedata);
                new UAsset(data, GetCookedAssetVersion());
                return(null);
            }
            else
            {
                return(null);
            }
        }
예제 #3
0
 void mplayer_OpenFile(Object sender, OpenFileEventArgs e)
 {
     trackBar1.Maximum = (int)(mplayer.AudioLength / 1000);
     this.Text         = e.FileName;
     trackBar1.Value   = 0;
     timer1.Enabled    = false;
 }
예제 #4
0
 protected virtual void OnOpenFile(OpenFileEventArgs e)
 {
     if (OpenFile != null)
     {
         OpenFile(this, e);
     }
 }
예제 #5
0
 /// <include file='doc.xml' path='doc/ScriptFork/*'/>
 /// <param name="args">.</param>
 public sealed override Explorer OpenFile(OpenFileEventArgs args)
 {
     if (AsOpenFile == null)
     {
         return(DoOpenFile(args));
     }
     else
     {
         return(InvokeExplorerScript(AsOpenFile, args));
     }
 }
예제 #6
0
 /// <summary>
 /// DocManager reports about successful/unsuccessful Open File operation
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void docManager_OpenEvent(object sender, OpenFileEventArgs e)
 {
     // Update MRU List
     if (e.Succeeded)
     {
         mruManager.Add(e.FileName);
     }
     else
     {
         mruManager.Remove(e.FileName);
     }
 }
예제 #7
0
        /* ----------------------------------------------------------------- */
        ///
        /// Invoke
        ///
        /// <summary>
        /// OpenFileDialog を表示します。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        public void Invoke(OpenFileEventArgs e)
        {
            var dialog = new OpenFileDialog
            {
                Title            = e.Title,
                FileName         = e.FileName,
                CheckPathExists  = e.CheckPathExists,
                InitialDirectory = e.InitialDirectory,
                Filter           = e.Filter,
                FilterIndex      = e.FilterIndex,
                Multiselect      = e.Multiselect,
            };

            e.Result      = dialog.ShowDialog();
            e.FileName    = dialog.FileName;
            e.FileNames   = dialog.FileNames;
            e.FilterIndex = dialog.FilterIndex;
        }
예제 #8
0
        /* ----------------------------------------------------------------- */
        ///
        /// CreateUserProgramMessage
        ///
        /// <summary>
        /// Creates a message to show the OpenFileDialog.
        /// </summary>
        ///
        /// <param name="src">User settings.</param>
        ///
        /// <returns>OpenFileEventArgs object.</returns>
        ///
        /* ----------------------------------------------------------------- */
        public static OpenFileEventArgs CreateUserProgramMessage(this SettingsFolder src)
        {
            var io   = src.IO;
            var path = src.Value.UserProgram;
            var dest = new OpenFileEventArgs
            {
                Title       = Properties.Resources.TitleBroseUserProgram,
                FileName    = GetFileName(path, io),
                Multiselect = false,
                Filter      = ViewResource.UserProgramFilters.GetFilter(),
            };

            if (src.Value.ExplicitDirectory)
            {
                dest.InitialDirectory = GetDirectoryName(path, io);
            }
            return(dest);
        }
예제 #9
0
        private void VSSolution_Errors(object sender, OpenFileEventArgs e)
        {
            //MessageBox.Show("Errors found - " + e.Errors.Count);

            string filename = e.filename;

            filename = Path.GetFileName(filename);

            var ns = dg.Rows.Cast <DataGridViewRow>().Where(s => (string)s.Cells["File"].Value == filename).ToList();

            foreach (var b in ns)
            {
                dg.Rows.Remove(b);
                Diagnostic dc = b.Tag as Diagnostic;
                RemoveFromHash(dc);
            }

            LoadIntellisenseResults(e.Errors);
        }
예제 #10
0
        public void Invoke(object sender, OpenFileEventArgs e)
        {
            // lookup data panel (should be checked, user could use another)
            if (!(sender is DataPanel dp))
            {
                throw new InvalidOperationException("Event sender is not a data panel object.");
            }

            // destination row (should be valid, checked on creation by us)
            DataRow drSet = (DataRow)((MemberPanel)dp.Parent).Value.BaseObject;

            // the source row
            DataRow drGet = (DataRow)e.File.Data;

            // copy data using name pairs
            for (int i = 0; i < _namePairs.Length; i += 2)
            {
                drSet[_namePairs[i]] = drGet[_namePairs[i + 1]];
            }
        }
예제 #11
0
        /// <inheritdoc/>
        public override Explorer OpenFile(OpenFileEventArgs args)
        {
            if (args == null)
            {
                return(null);
            }

            // can?
            var xfile = (SuperFile)args.File;

            if (!xfile.Explorer.CanOpenFile)
            {
                args.Result = JobResult.Ignore;
                return(null);
            }

            // call
            var args2    = new OpenFileEventArgs(xfile.File);
            var explorer = xfile.Explorer.OpenFile(args2);

            args.Result = args2.Result;
            return(explorer);
        }
예제 #12
0
 private void Form_VS_OpenProjectEvent1(object sender, OpenFileEventArgs e)
 {
     form_VS.SetProject(projectService.OpenProject(e.path));
 }
예제 #13
0
 private void Form_VS_OpenFileEvent(object sender, OpenFileEventArgs e)
 {
     form_VS.AddCS(projectService.OpenFile(e.path));
 }
예제 #14
0
 /// <summary>
 /// <see cref="Explorer.OpenFile"/> worker.
 /// </summary>
 /// <param name="args">.</param>
 public virtual Explorer DoOpenFile(OpenFileEventArgs args)
 {
     return(base.OpenFile(args));
 }
예제 #15
0
 void mplayer_OpenFile(Object sender, OpenFileEventArgs e)
 {
     Linha_tempo.Maximum = (int)(mplayer.AudioLength / 1000);
     Linha_tempo.Value   = 0;
     timer.Enabled       = false;
 }
예제 #16
0
 private static void STLModel3D_OpenFileProcessing(object sender, OpenFileEventArgs e)
 {
     UpdateMainPercentage(e.Percentage);
 }
예제 #17
0
 private void OpenProjectEvent(object sender, OpenFileEventArgs e)
 {
     mainForm.GetProject(projectService.OpenProject(e.path));
 }
예제 #18
0
        /// <inheritdoc/>
        public override Explorer OpenFile(OpenFileEventArgs args)
        {
            if (args == null) return null;

            // can?
            var xfile = (SuperFile)args.File;
            if (!xfile.Explorer.CanOpenFile)
            {
                args.Result = JobResult.Ignore;
                return null;
            }

            // call
            var args2 = new OpenFileEventArgs(xfile.File);
            var explorer = xfile.Explorer.OpenFile(args2);
            args.Result = args2.Result;
            return explorer;
        }
예제 #19
0
 /// <summary>
 /// <see cref="Explorer.OpenFile"/> worker.
 /// </summary>
 /// <param name="args">.</param>
 public virtual Explorer DoOpenFile(OpenFileEventArgs args)
 {
     return base.OpenFile(args);
 }
예제 #20
0
파일: Explorer.cs 프로젝트: pezipink/FarNet
 /// <summary>
 /// Opens the file.
 /// </summary>
 /// <param name="args">.</param>
 /// <returns>The explorer to be opened in a child panel, or null.</returns>
 /// <remarks>
 /// It is normally called for the current file in a panel on [Enter].
 /// The core does nothing after the call if it returns null.
 /// Otherwise it opens the returned explorer.
 /// </remarks>
 public virtual Explorer OpenFile(OpenFileEventArgs args)
 {
     return null;
 }
예제 #21
0
        /// <inheritdoc/>
        public override Explorer DoOpenFile(OpenFileEventArgs args)
        {
            if (args == null) return null;

            object data = args.File.Data;
            PSObject psData = PSObject.AsPSObject(data);
            var type = psData.BaseObject.GetType();

            // replace dictionary entry with its value if it is complex
            if (type == typeof(DictionaryEntry))
            {
                var value = ((DictionaryEntry)psData.BaseObject).Value;
                if (value != null && !Converter.IsLinearType(value.GetType()))
                {
                    data = value;
                    psData = PSObject.AsPSObject(value);
                }
            }

            // replace key/value pair with its value if it is complex
            var typeName = type.FullName;
            if (typeName.StartsWith("System.Collections.Generic.KeyValuePair`", StringComparison.OrdinalIgnoreCase))
            {
                var value = psData.Properties["Value"].Value;
                if (value != null && !Converter.IsLinearType(value.GetType()))
                {
                    data = value;
                    psData = PSObject.AsPSObject(value);
                }
            }

            // case: linear type: ignore, it is useless to open
            if (Converter.IsLinearType(type))
            {
                args.Result = JobResult.Ignore;
                return null;
            }

            // case: enumerable (string is excluded by linear type case)
            IEnumerable asIEnumerable = Cast<IEnumerable>.From(data);
            if (asIEnumerable != null)
            {
                var explorer = new ObjectExplorer();
                explorer.AddObjects(asIEnumerable);
                return explorer;
            }

            // case: group
            PSPropertyInfo pi = psData.Properties["Group"];
            if (pi != null && pi.Value is IEnumerable && !(pi.Value is string))
            {
                var explorer = new ObjectExplorer();
                explorer.AddObjects(pi.Value);
                return explorer;
            }

            // case: WMI
            if (typeName == "System.Management.ManagementClass")
            {
                pi = psData.Properties[Word.Name];
                if (pi != null && pi.Value != null)
                {
                    var values = A.InvokeCode("Get-WmiObject -Class $args[0] -ErrorAction SilentlyContinue", pi.Value.ToString());
                    var explorer = new ObjectExplorer();
                    explorer.AddObjects(values);
                    return explorer;
                }
            }

            // open members
            return new MemberExplorer(data);
        }
예제 #22
0
 private void OpenFileEvent(object sender, OpenFileEventArgs e)
 {
     _mainForm.AddCs(_projectService.OpenFile(e.Path));
 }
예제 #23
0
 /// <include file='doc.xml' path='doc/ScriptFork/*'/>
 /// <param name="args">.</param>
 public override sealed Explorer OpenFile(OpenFileEventArgs args)
 {
     if (AsOpenFile == null)
         return DoOpenFile(args);
     else
         return InvokeExplorerScript(AsOpenFile, args);
 }
예제 #24
0
파일: Panel.UI.cs 프로젝트: pezipink/FarNet
        /// <summary>
        /// Opens the file.
        /// </summary>
        /// <remarks>
        /// It is called for the current file when [Enter] is pressed.
        /// The base method just calls <see cref="FarNet.Explorer.OpenFile"/> if the explorer supports it.
        /// </remarks>
        /// <param name="file">The file to be opened.</param>
        public virtual void UIOpenFile(FarFile file)
        {
            if (file == null)
                return;

            if (!Explorer.CanOpenFile)
                return;

            var args = new OpenFileEventArgs(file);
            var explorer = UIOpenFile(args);
            if (explorer != null)
                explorer.OpenPanelChild(this);
        }
예제 #25
0
 private void OpenFileEvent(object sender, OpenFileEventArgs e)
 {
     mainForm.AddCS(projectService.OpenFile(e.path));
 }
예제 #26
0
 protected virtual void OnOpenFile(OpenFileEventArgs e)
 {
     if (OpenFile != null) OpenFile(this, e);
 }
예제 #27
0
        /// <inheritdoc/>
        public override Explorer DoOpenFile(OpenFileEventArgs args)
        {
            if (args == null)
            {
                return(null);
            }

            object   data   = args.File.Data;
            PSObject psData = PSObject.AsPSObject(data);
            var      type   = psData.BaseObject.GetType();

            // replace dictionary entry with its value if it is complex
            if (type == typeof(DictionaryEntry))
            {
                var value = ((DictionaryEntry)psData.BaseObject).Value;
                if (value != null && !Converter.IsLinearType(value.GetType()))
                {
                    data   = value;
                    psData = PSObject.AsPSObject(value);
                }
            }

            // replace key/value pair with its value if it is complex
            var typeName = type.FullName;

            if (typeName.StartsWith("System.Collections.Generic.KeyValuePair`", StringComparison.OrdinalIgnoreCase))
            {
                var value = psData.Properties["Value"].Value;
                if (value != null && !Converter.IsLinearType(value.GetType()))
                {
                    data   = value;
                    psData = PSObject.AsPSObject(value);
                }
            }

            // case: linear type: ignore, it is useless to open
            if (Converter.IsLinearType(type))
            {
                args.Result = JobResult.Ignore;
                return(null);
            }

            // case: enumerable (string is excluded by linear type case)
            IEnumerable asIEnumerable = Cast <IEnumerable> .From(data);

            if (asIEnumerable != null)
            {
                var explorer = new ObjectExplorer();
                explorer.AddObjects(asIEnumerable);
                return(explorer);
            }

            // case: group
            PSPropertyInfo pi = psData.Properties["Group"];

            if (pi != null && pi.Value is IEnumerable && !(pi.Value is string))
            {
                var explorer = new ObjectExplorer();
                explorer.AddObjects(pi.Value);
                return(explorer);
            }

            // case: WMI
            if (typeName == "System.Management.ManagementClass")
            {
                pi = psData.Properties[Word.Name];
                if (pi != null && pi.Value != null)
                {
                    var values   = A.InvokeCode("Get-WmiObject -Class $args[0] -ErrorAction SilentlyContinue", pi.Value.ToString());
                    var explorer = new ObjectExplorer();
                    explorer.AddObjects(values);
                    return(explorer);
                }
            }

            // open members
            return(new MemberExplorer(data));
        }
예제 #28
0
 /// <summary>
 /// Calls <see cref="FarNet.Explorer.OpenFile"/>.
 /// </summary>
 /// <param name="args">.</param>
 public virtual Explorer UIOpenFile(OpenFileEventArgs args)
 {
     return Explorer.OpenFile(args);
 }