Beispiel #1
0
 protected override void OnInitialized()
 {
     SetClassMap();
     SelectParent?.AddOption(this);
     SelectOptGroupParent?.AddOption(this);
     base.OnParametersSet();
 }
Beispiel #2
0
        /// <inheritdoc />
        public override object FromBinary(byte[] bytes, Type type)
        {
            var selectionEnvelope = Proto.Msg.SelectionEnvelope.Parser.ParseFrom(bytes);
            var message           = _payloadSupport.PayloadFrom(selectionEnvelope.Payload);

            var elements = new SelectionPathElement[selectionEnvelope.Pattern.Count];

            for (var i = 0; i < selectionEnvelope.Pattern.Count; i++)
            {
                var p = selectionEnvelope.Pattern[i];
                if (p.Type == Proto.Msg.Selection.Types.PatternType.ChildName)
                {
                    elements[i] = new SelectChildName(p.Matcher);
                }
                if (p.Type == Proto.Msg.Selection.Types.PatternType.ChildPattern)
                {
                    elements[i] = new SelectChildPattern(p.Matcher);
                }
                if (p.Type == Proto.Msg.Selection.Types.PatternType.Parent)
                {
                    elements[i] = new SelectParent();
                }
            }

            return(new ActorSelectionMessage(message, elements));
        }
Beispiel #3
0
 protected async Task OnSelectOptionClick(EventArgs _)
 {
     if (!Disabled)
     {
         await SelectParent.ToggleOrSetValue(Value);
         await InvokeAsync(StateHasChanged);
     }
 }
        /// <inheritdoc />
        public override object FromBinary(byte[] bytes, Type type)
        {
            var selectionEnvelope = Proto.Msg.SelectionEnvelope.Parser.ParseFrom(bytes);

            var elements = new SelectionPathElement[selectionEnvelope.Pattern.Count];

            for (var i = 0; i < selectionEnvelope.Pattern.Count; i++)
            {
                var p = selectionEnvelope.Pattern[i];
                if (p.Type == Proto.Msg.Selection.Types.PatternType.ChildName)
                {
                    elements[i] = new SelectChildName(p.Matcher);
                }
                if (p.Type == Proto.Msg.Selection.Types.PatternType.ChildPattern)
                {
                    elements[i] = new SelectChildPattern(p.Matcher);
                }
                if (p.Type == Proto.Msg.Selection.Types.PatternType.Parent)
                {
                    elements[i] = new SelectParent();
                }
            }

            object message;

            try
            {
                message = _payloadSupport.PayloadFrom(selectionEnvelope.Payload);
            }
            catch (Exception ex)
            {
                var payload = selectionEnvelope.Payload;

                var manifest = !payload.MessageManifest.IsEmpty
                    ? payload.MessageManifest.ToStringUtf8()
                    : string.Empty;

                throw new SerializationException(
                          $"Failed to deserialize payload object when deserializing {nameof(ActorSelectionMessage)} with " +
                          $"payload [SerializerId={payload.SerializerId}, Manifest={manifest}] addressed to [" +
                          $"{string.Join(",", elements.Select(e => e.ToString()))}]. {GetErrorForSerializerId(payload.SerializerId)}", ex);
            }

            return(new ActorSelectionMessage(message, elements));
        }
 protected override void Dispose(bool disposing)
 {
     SelectParent?.RemoveOption(this);
     SelectOptGroupParent?.RemoveOption(this);
     base.Dispose(disposing);
 }
        private void InitializeCommands()
        {
            BeginAnalysis.Subscribe((v) => {
                BaseUrl.Value = EnsureUri(v)?.ToString();
                Load();
            });

            ApplyXPath.Subscribe((v) => {
                SetXPath(v);
            });

            CopyLinkUrl.Subscribe((v) => {
                Debug.WriteLine(v.Value);
                var url = EnsureUri(v.Value)?.ToString();
                if (url != null)
                {
                    Clipboard.SetData(DataFormats.Text, url);
                }
            });
            ExecuteLinkUrl.Subscribe((v) => {
                Debug.WriteLine(v);
                var url = EnsureUri(v.Value)?.ToString();
                if (url != null)
                {
                    try {
                        System.Diagnostics.Process.Start(url);
                    } catch (Exception ex) {
                        Debug.WriteLine(ex.ToString());
                    }
                }
            });
            AnalizeLinkUrl.Subscribe((v) => {
                Debug.WriteLine(v);
                BeginAnalysis.Execute(v.Value);
            });
            AnalizeNewLinkUrl.Subscribe((v) => {
                Debug.WriteLine(v);
                var url = EnsureUri(v.Value)?.ToString();
                if (url != null)
                {
                    var aw = new DxxAnalysisWindow(url);
                    aw.Show();
                }
            });
            DownloadLinkUrl.Subscribe((v) => {
                using (var dlg = new CommonSaveFileDialog("Download to file.")) {
                    var uri = EnsureUri(v.Value);
                    if (uri != null)
                    {
                        var ti = new DxxTargetInfo(uri, DxxUrl.GetFileName(uri), "");
                        dlg.OverwritePrompt  = true;
                        dlg.DefaultFileName  = DxxUrl.TrimName(ti.Name);
                        dlg.RestoreDirectory = true;
                        if (dlg.ShowDialog(Owner) == CommonFileDialogResult.Ok)
                        {
                            DxxDownloader.Instance.Reserve(ti, dlg.FileName, 0, (f) => {
                                Owner.Dispatcher.InvokeAsync(() => {
                                    if (f == DxxDownloadingItem.DownloadStatus.Completed)
                                    {
                                        DxxFileDispositionDialog.Show(dlg.FileName, Owner);
                                    }
                                });
                            });
                        }
                    }
                }
            });

            SelectParent.Subscribe((v) => {
                var parent = v.Node.ParentNode;
                if (null != parent)
                {
                    ApplyXPath.Execute(parent.XPath);
                }
            });

            SelectThisNode.Subscribe((v) => {
                //Debug.WriteLine(v);
                ApplyXPath.Execute(v.Node.XPath);
            });

            CopyAttrName.Subscribe((v) => {
                Clipboard.SetData(DataFormats.Text, v.Name);
            });
            CopyAttrValue.Subscribe((v) => {
                Clipboard.SetData(DataFormats.Text, v.Value ?? "");
            });
        }