/// <summary>Create the pane.</summary> /// <param name="paneHost"></param> public PpsGenericWpfWindowPane(IPpsWindowPaneHost paneHost) : base(paneHost.PaneManager.Shell) { PaneHost = paneHost ?? throw new ArgumentNullException(nameof(paneHost)); PaneManager.Shell.AddIdleAction(this); } // ctor
public static IPpsWindowPane CreateEmptyPane(this IPpsWindowPaneManager paneManager, IPpsWindowPaneHost paneHost, Type paneType) { var ti = paneType.GetTypeInfo(); var ctorBest = (ConstructorInfo)null; var ctoreBestParamLength = -1; if (!typeof(IPpsWindowPane).IsAssignableFrom(paneType)) { throw new ArgumentException($"{paneType.Name} does not implement {nameof(IPpsWindowPane)}."); } // search for the longest constructor foreach (var ci in ti.GetConstructors()) { var pi = ci.GetParameters(); if (ctoreBestParamLength < pi.Length) { ctorBest = ci; ctoreBestParamLength = pi.Length; } } if (ctorBest == null) { throw new ArgumentException($"'{ti.Name}' has no constructor."); } // create the argument set var parameterInfo = ctorBest.GetParameters(); var paneArguments = new object[parameterInfo.Length]; for (var i = 0; i < paneArguments.Length; i++) { var pi = parameterInfo[i]; var tiParam = pi.ParameterType.GetTypeInfo(); if (tiParam.IsAssignableFrom(paneManager.Shell.GetType())) { paneArguments[i] = paneManager.Shell; } else if (tiParam.IsAssignableFrom(typeof(IPpsWindowPaneManager))) { paneArguments[i] = paneManager; } else if (tiParam.IsAssignableFrom(typeof(IPpsWindowPaneHost))) { paneArguments[i] = paneHost; } else if (pi.HasDefaultValue) { paneArguments[i] = pi.DefaultValue; } else { throw new ArgumentException($"Unsupported argument '{pi.Name}' for type '{ti.Name}'."); } } // activate the pane return((IPpsWindowPane)Activator.CreateInstance(paneType, paneArguments)); } // func CreateEmptyPane
/// <summary>Pane constructor, that gets called by the host.</summary> public PpsPdfViewerPane(IPpsWindowPaneHost paneHost) : base(paneHost) { InitializeComponent(); // add commands Commands.AddButton("100;100", "print", new PpsAsyncCommand(ctx => PrintAsync(ctx), ctx => CanPrint(ctx)), "Drucken", "Druckt die Pdf-Datei."); } // ctor
/// <summary></summary> /// <param name="pane"></param> /// <param name="text"></param> /// <param name="value"></param> /// <returns></returns> public static IPpsProgress DisableUI(this IPpsWindowPaneHost pane, string text = null, int value = -1) { var progress = pane.Progress.CreateProgress() ?? PpsShell.EmptyProgress; if (text != null) { progress.Text = text; } progress.Value = value; return(progress); } // func DisableUI
public PpsHelpPagePane(IPpsWindowPaneHost paneHost) : base(paneHost) { Commands.AddButton("100;100", "save", PublishCommand, "Veröffentlichen", "Änderungen für alle freigeben" ); this.AddCommandBinding(Shell, PublishCommand, new PpsAsyncCommand( ctx => PublishHelpPageAsync(), ctx => IsLocalChanged ) ); } // ctor
/// <summary>Trace pane constructor</summary> /// <param name="paneHost"></param> public PpsTracePane(IPpsWindowPaneHost paneHost) : base(paneHost) { traceEnvironment = new PpsTraceEnvironment(paneHost); InitializeComponent(); this.AddCommandBinding(Environment, ApplicationCommands.SaveAs, new PpsCommand( ctx => SaveTrace() ) ); this.AddCommandBinding(Environment, ApplicationCommands.Copy, new PpsCommand( ctx => CopyToClipboard(ctx.Parameter), ctx => CanCopyToClipboard(ctx.Parameter) ) ); this.AddCommandBinding( Environment, ApplicationCommands.Open, new PpsAsyncCommand( ctx => ExecuteCommandAsync(ConsoleCommandTextBox.Text), ctx => !String.IsNullOrEmpty(ConsoleCommandTextBox.Text) ) ); this.AddCommandBinding(Environment, AssignDebugTarget, new PpsAsyncCommand( ctx => UpdateDebugTargetAsync((PpsMasterDataRow)ctx.Parameter, false), ctx => ctx.Parameter is PpsMasterDataRow ) ); this.AddCommandBinding(Environment, ClearDebugTarget, new PpsAsyncCommand( ctx => UpdateDebugTargetAsync((PpsMasterDataRow)ctx.Parameter, true), ctx => ctx.Parameter is PpsMasterDataRow row && row.GetProperty("DebugPath", null) != null ) ); var collectionView = CollectionViewSource.GetDefaultView(Environment.Log); collectionView.SortDescriptions.Add(new SortDescription(nameof(PpsTraceItemBase.Stamp), ListSortDirection.Descending)); } // ctor
private IPpsObjectDataAccess dataAccess; // access token to the data object #region -- Ctor/Dtor/Load/Unload ---------------------------------------------- /// <summary></summary> /// <param name="paneHost"></param> public PpsGenericMaskWindowPane(IPpsWindowPaneHost paneHost) : base(paneHost) { idleActionToken = Shell.AddIdleAction( elapsed => { if (elapsed > 3000) { if (data != null && data.IsDirty) { CommitEditAsync().AwaitTask(); } return(false); } else { return(data != null && data.IsDirty); } } ); } // ctor
public PpsTraceEnvironment(IPpsWindowPaneHost paneHost) { this.paneHost = paneHost ?? throw new ArgumentNullException(nameof(paneHost)); } // ctor