private void DocumentEntity_DoubleClick(DocumentEntity e) { // first check if (e == null || e.DigitalFile == null || e.DigitalFile.Trim().Length < 1 || this.theEventStack == null) { return; } try { // temp input var inputFn = e.DigitalFile; try { if (!inputFn.ToLower().Trim().StartsWith("http://") && !inputFn.ToLower().Trim().StartsWith("https://")) { inputFn = thePackage.MakePackageFileAvailableAsTempFile(inputFn); } } catch (Exception ex) { Log.Error(ex, "Making local file available"); } // give over to event stack var evt = new AasxPluginResultEventDisplayContentFile(); evt.fn = inputFn; this.theEventStack.PushEvent(evt); } catch (Exception ex) { Log.Error(ex, "when double-click"); } }
private void Hyperlink_Click(object sender, RoutedEventArgs e) { if (sender is Hyperlink lnk && lnk.Tag is string furtherUrl) { // give over to event stack var evt = new AasxPluginResultEventDisplayContentFile(); evt.fn = "" + furtherUrl; evt.preferInternalDisplay = true; _eventStack?.PushEvent(evt); } }
public void UpdateDisplay() { // access var inst = this.DataContext as FormInstanceListOfSame; var desc = inst?.workingDesc as FormDescSubmodelElement; if (inst == null || desc == null || GridOuterElement == null || GridInner == null) { return; } // obligatory this.TextBlockFormTitle.Text = "" + desc.FormTitle; this.TextBlockFormInfo.Text = "" + desc.FormInfo; this.TextBlockFormInfo.Visibility = (this.TextBlockFormInfo.Text.Trim() != "") ? Visibility.Visible : Visibility.Collapsed; // url link ButtonFormUrl.Visibility = Visibility.Hidden; if (desc.FormUrl != null && desc.FormUrl.Length > 0) { ButtonFormUrl.Visibility = Visibility.Visible; ButtonFormUrl.Click += (object sender3, RoutedEventArgs e3) => { // try find topmost instance var top = FormInstanceHelper.GetTopMostParent(inst); var topBase = top as FormInstanceBase; if (topBase != null && topBase.outerEventStack != null) { // give over to event stack var evt = new AasxPluginResultEventDisplayContentFile(); evt.fn = desc.FormUrl; evt.preferInternalDisplay = true; topBase.outerEventStack.PushEvent(evt); } }; } // (re-) create rows GridInner.Children.Clear(); GridInner.RowDefinitions.Clear(); int ri = 0; foreach (var si in inst.SubInstances) { if (si?.subControl != null) { // row var rd = new RowDefinition(); rd.Height = GridLength.Auto; GridInner.RowDefinitions.Add(rd); // have the control itself var sc = si.subControl; Grid.SetRow(sc, ri); Grid.SetColumn(sc, 0); GridInner.Children.Add(sc); if (this.showButtonsMinus) { // make a button like the "-" var bt = CreateButtonLike(ButtonInstancePlus, content: "➖"); bt.VerticalAlignment = VerticalAlignment.Top; bt.Content = "\u2796"; if (inst.workingDesc != null && inst.workingDesc is FormDescSubmodelElementCollection) { bt.Margin = new Thickness( bt.Margin.Left, bt.Margin.Top + 6, bt.Margin.Right, bt.Margin.Bottom); } bt.SetBinding( Button.WidthProperty, CreateBindingWithElementName("ActualWidth", "ButtonInstancePlus")); bt.SetBinding( Button.HeightProperty, CreateBindingWithElementName("ActualHeight", "ButtonInstancePlus")); // remeber the instances var masterInst = inst; var subInst = si; // attach the lambda bt.Click += (object sender, RoutedEventArgs e) => { if (inst.SubInstances.Count > this.minRows) { // carefully delete try { masterInst.SubInstances.Remove(subInst); } catch (Exception ex) { AdminShellNS.LogInternally.That.SilentlyIgnoredError(ex); } // redraw UpdateDisplay(); } }; Grid.SetRow(bt, ri); Grid.SetColumn(bt, 1); GridInner.Children.Add(bt); } else { // give the subcontrol a little more room Grid.SetColumnSpan(sc, 2); } // next row ri++; } } }