예제 #1
0
        protected override void BeginProcessing()
        {
            if (Append)
            {
                var panel = Far.Api.Panel as Panel;
                if (panel == null || panel.GetType() != typeof(ObjectPanel))
                {
                    throw new InvalidOperationException("There is no panel able to append objects.");
                }

                _panel = (ObjectPanel)panel;
            }
            else
            {
                _panel = new ObjectPanel();

                // common parameters
                ApplyParameters(_panel);

                // more parameters
                _panel.Columns = Columns;
                _panel.ExcludeMemberPattern = ExcludeMemberPattern;
                _panel.HideMemberPattern    = HideMemberPattern;

                // and title, if not yet
                if (string.IsNullOrEmpty(_panel.Title) && !string.IsNullOrEmpty(A.Psf._myCommand))
                {
                    _panel.Title = A.Psf._myCommand;
                }
            }
        }
예제 #2
0
        protected override void BeginProcessing()
        {
            if (Append)
            {
                var panel = Far.Api.Panel as Panel;
                if (panel == null || panel.GetType() != typeof(ObjectPanel))
                    throw new InvalidOperationException("There is no panel able to append objects.");

                _panel = (ObjectPanel)panel;
            }
            else
            {
                _panel = new ObjectPanel();

                // common parameters
                ApplyParameters(_panel);

                // more parameters
                _panel.Columns = Columns;
                _panel.ExcludeMemberPattern = ExcludeMemberPattern;
                _panel.HideMemberPattern = HideMemberPattern;

                // and title, if not yet
                if (string.IsNullOrEmpty(_panel.Title) && !string.IsNullOrEmpty(A.Psf._myCommand))
                    _panel.Title = A.Psf._myCommand;
            }
        }
예제 #3
0
        protected override void BeginProcessing()
        {
            _panel = new ObjectPanel();

            // common parameters
            ApplyParameters(_panel);

            // more parameters
            _panel.Columns = Columns;
            _panel.ExcludeMemberPattern = ExcludeMemberPattern;
            _panel.HideMemberPattern    = HideMemberPattern;

            // and title, if not yet
            if (string.IsNullOrEmpty(_panel.Title) && !string.IsNullOrEmpty(A.Psf._myCommand))
            {
                _panel.Title = A.Psf._myCommand;
            }
        }
예제 #4
0
        public void ShowPanel()
        {
            string currentDirectory = A.Psf.SyncPaths();
            try
            {
                string drive = UI.SelectMenu.SelectDrive(null, true);
                if (drive == null)
                    return;

                AnyPanel ap;
                if (drive == "Folder &tree")
                    ap = new FolderTree();
                else if (drive == "&Any objects")
                    ap = new ObjectPanel();
                else
                    ap = new ItemPanel(drive);
                ap.Open();
            }
            finally
            {
                A.SetCurrentDirectoryFinally(currentDirectory);
            }
        }
예제 #5
0
        /// <summary>
        /// Puts a value into the command line or opens a lookup panel or member panel.
        /// </summary>
        /// <param name="file">The file to process.</param>
        public override void OpenFile(FarFile file)
        {
            if (file == null)
                throw new ArgumentNullException("file");

            PSPropertyInfo pi = file.Data as PSPropertyInfo;

            // e.g. visible mode: sender is MemberDefinition
            if (pi == null)
                return;

            // lookup opener?
            if (_LookupOpeners != null)
            {
                ScriptHandler<OpenFileEventArgs> handler;
                if (_LookupOpeners.TryGetValue(file.Name, out handler))
                {
                    handler.Invoke(this, new OpenFileEventArgs(file));
                    return;
                }
            }

            // case: can show value in the command line
            string s = Converter.InfoToLine(pi);
            if (s != null)
            {
                // set command line
                ILine cl = Far.Api.CommandLine;
                cl.Text = "=" + s;
                cl.SelectText(1, s.Length + 1);
                return;
            }

            // case: enumerable
            IEnumerable ie = Cast<IEnumerable>.From(pi.Value);
            if (ie != null)
            {
                ObjectPanel op = new ObjectPanel();
                op.AddObjects(ie);
                op.OpenChild(this);
                return;
            }

            // open members
            OpenFileMembers(file);
        }