private void DoCapture(IScreenDefn screenDefn, ScreenContent content, string CaptureFolderPath) { var itemReport = screenDefn.Capture(content); // accum capture data if post aid key is pagedown. if ((content.PostAidKey != null) && (this.CaptureReport != null) && (content.PostAidKey.Value == AidKey.RollUp)) { var r2 = DataTableExt.CombineVertically(this.CaptureReport, itemReport); this.CaptureReport = r2; } else { this.CaptureReport = itemReport; } var htmlText = this.CaptureReport.ToHtmlTableText(); var fileName = screenDefn.ScreenName + "." + "html"; var captureFilePath = System.IO.Path.Combine(CaptureFolderPath, fileName); System.IO.File.WriteAllText(captureFilePath, htmlText); }
/// <summary> /// the contents of the model have been changed. Send signal back to the /// control or window that subscribes to the ModelChanged event. /// ( the ScreenDefnCollectionControl subscribes to this event. ) /// </summary> /// <param name="Model"></param> void SignalModelChanged(IScreenDefn Model) { if ((Model != null) && (this.ModelChanged != null)) { this.ModelChanged(Model); } }
public static ColumnReport Report(this IScreenDefn Defn) { var defnHeader = Defn as ISectionHeader; var report = defnHeader.Report("Screen Definition. " + Defn.ScreenName); return(report); }
/// <summary> /// capture the data of the screen to a DataItemReport class. /// </summary> /// <param name="Defn"></param> /// <param name="Content"></param> /// <returns></returns> public static DataItemReport CaptureToReport(this IScreenDefn Defn, ScreenContent Content) { ISectionHeader sectionHeader = Defn as ISectionHeader; var start = new OneScreenLoc(1, 1); var itemReport = sectionHeader.CaptureToReport(start, Content); return(itemReport); }
public CaptureContentMessage(string CaptureFolderPath, bool CaptureAuto, IScreenDefn ScreenDefn, ScreenContent ScreenContent) { this.CaptureAuto = CaptureAuto; this.CaptureFolderPath = CaptureFolderPath; this.ScreenDefn = ScreenDefn; this.ScreenContent = ScreenContent; }
private void lvScreenDefn_SelectionChanged(object sender, SelectionChangedEventArgs e) { var lv = sender as ListView; var screenDefn = lv.SelectedItem as IScreenDefn; if (screenDefn != null) { this.CurrentScreenDefn = new ScreenDefnModel(screenDefn); } }
public static ScreenItemInstance FindItem( this IScreenDefn Defn, IScreenLoc FindLoc, ScreenContent Content) { ScreenItemInstance found = null; ISectionHeader sectionHeader = Defn as ISectionHeader; var start = new OneScreenLoc(1, 1); found = sectionHeader.FindItem(start, FindLoc, Content); return(found); }
/// <summary> /// see the ModelChanged event of the ScreenDefnControl control. /// When the Model property of ScreenDefnControl changes, the code behind of that control /// signals its ModelChanged event. This collection control monitors that event. When the /// model changes ( item is clicked in the listview of screen defn models. ) want to /// apply changes back to the list of screen definitions. /// </summary> /// <param name="obj"></param> private void ScreenDefnControl_ModelChanged(IScreenDefn obj) { if (obj != null) { var item = this.ScreenDefnObservableList.FirstOrDefault(c => c.ScreenName == obj.ScreenName); if (item != null) { var ix = this.ScreenDefnObservableList.IndexOf(item); var defn = new ScreenDefn(obj); this.ScreenDefnObservableList.Insert(ix, defn); this.ScreenDefnObservableList.Remove(item); } } }
public static IScreenDefn ToScreenDefn( this XElement Elem, XNamespace Namespace) { IScreenDefn screenDefn = null; if (Elem != null) { var screenName = Elem.Element(Namespace + "ScreenName").StringOrDefault(""); var namespaceName = Elem.Element(Namespace + "NamespaceName").StringOrDefault(""); var screenGuid = Elem.Element(Namespace + "ScreenGuid").StringOrDefault(null); var screenDim = Elem.Element(Namespace + "ScreenDim").ToScreenDim(Namespace); var itemList = Elem.Element(Namespace + "ScreenItemList").ToScreenItemList(Namespace); screenDefn = new ScreenDefn(screenName, namespaceName, screenGuid, screenDim, itemList); } return(screenDefn); }
private IScreenDefn FindMatchingScreenDefn( ScreenContent Content, ScreenDefnList ScreenDefnList) { IScreenDefn matchDefn = null; foreach (var screenDefn in ScreenDefnList) { var isMatch = screenDefn.Match(Content); if (isMatch == true) { matchDefn = screenDefn; break; } } return(matchDefn); }
/// <summary> /// determine if the ScreenDefn matches the screen content. /// </summary> /// <param name="Content"></param> /// <returns></returns> public static bool Match(this IScreenDefn Defn, ScreenContent Content) { bool isMatch = true; // BgnTemp // SpecialLogFile.AppendTextLines(this.ToColumnReport()); // EndTemp // extract all ContentText on the screen. Add to FieldDict. Content.AddAllContentText(); ISectionHeader sectionHeader = Defn as ISectionHeader; var start = new OneScreenLoc(1, 1); isMatch = sectionHeader.Match(start, Content, Defn.ScreenName); return(isMatch); }
public static XElement ToXElement(this IScreenDefn Defn, XName Name) { if (Defn == null) { return(new XElement(Name, null)); } else { XElement xe = new XElement(Name, new XElement("ScreenName", Defn.ScreenName), new XElement("NamespaceName", Defn.NamespaceName), new XElement("ScreenGuid", Defn.ScreenGuid), Defn.ScreenDim.ToXElement("ScreenDim"), Defn.Items.ToXElement("ScreenItemList") ); return(xe); } }
/// <summary> /// capture the data of the screen to a DataTable class. /// </summary> /// <param name="Defn"></param> /// <param name="Content"></param> /// <returns></returns> public static EnhancedDataTable Capture( this IScreenDefn Defn, ScreenContent Content, ScreenItemInstance ItemInstance = null) { ISectionHeader sectionHeader = Defn as ISectionHeader; var start = new OneScreenLoc(1, 1); var report = sectionHeader.CaptureToReport(start, Content); var table = report.ToDataTable(); // mark the selected datarow in the dataTable. int rownum = 0; if ((ItemInstance != null) && (ItemInstance.RepeatNum > 0)) { rownum = ItemInstance.RepeatNum - 1; } table.MarkSelectedRow(rownum); return(table); }
public WorkScreenDefnModel(ActionCode WorkMode, IScreenDefn defn) : this(WorkMode, defn.ScreenName, defn.NamespaceName, defn.ScreenDim, defn.Items) { }
/// <summary> /// fill and make visible the hover window. /// Called by the DrawHoverBox method of ItemCanvas. /// </summary> /// <param name="Position"></param> /// <param name="CanvasRowCol"></param> /// <param name="MatchScreenDefn"></param> /// <param name="Content"></param> public void DrawHoverBox( Point Position, IScreenLoc CanvasRowCol, IScreenDefn MatchScreenDefn, ScreenContent Content) { // first remove any existing popup hover box. RemoveHoverBox(); // hovering on a screen with a screen defn. Find the item on the screen // which is being hovered over. string itemName = ""; string itemValue = ""; int itemRowNum = 0; ScreenItemInstance hoverItem = null; if ((MatchScreenDefn != null) && (CanvasRowCol != null)) { var foundItem = MatchScreenDefn.FindItem(CanvasRowCol, Content); if (foundItem != null) { hoverItem = foundItem; itemName = foundItem.GetItemName().EmptyIfNull(); itemValue = foundItem.GetValue(Content); itemRowNum = foundItem.RepeatNum; } } // capture the contents of the screen to a DataTable. EnhancedDataTable itemTable = null; Grid srcmbrGrid = null; object hoverData = null; string hoverXaml = null; string hoverCode = null; if ((MatchScreenDefn != null) && (hoverItem != null)) { itemTable = MatchScreenDefn.Capture(Content, hoverItem); { hoverXaml = FindHoverXaml(hoverItem.Item); hoverCode = FindHoverCode(hoverItem.Item); } if (hoverCode.IsNullOrEmpty( ) == false) { hoverData = CompileAndRunHoverCode(hoverCode, itemTable); } if ((MatchScreenDefn.ScreenName == "wrkmbrpdm") && (hoverData == null)) { // BgnTemp { if (itemTable.Rows.Count == 0) { var rep = Content.ToColumnReport("Content report"); rep.DebugPrint(); itemTable = MatchScreenDefn.Capture(Content, hoverItem); } } // EndTemp var srcmbr = itemTable.SelectedRow["MbrName"].ToString(); var srcfName = itemTable.SelectedRow["SrcfName"].ToString(); var srcfLib = itemTable.SelectedRow["SrcfLib"].ToString(); var sourceLines = SrcmbrScripts.GetSrcmbrLines(srcfName, srcfLib, srcmbr); hoverData = new { srcmbr, srcfName, srcfLib, sourceLines }; } } Grid grid = null; if (hoverData != null) { if (hoverXaml.IsNullOrEmpty( ) == false) { var sr = new StringReader(hoverXaml); var xr = XmlReader.Create(sr); var uiElem = XamlReader.Load(xr); grid = uiElem as Grid; grid.DataContext = hoverData; } else { var uiElem = hoverData.ToUIElement(); grid = uiElem as Grid; } } else { // create the controls that make up the hover control. ListBox lb = null; System.Windows.Controls.Canvas canvas = null; if (srcmbrGrid != null) { var rv = BuildSrcmbrHoverGrid(srcmbrGrid); grid = rv.Item1; } else { var rv = BuildFoundation(); grid = rv.Item1; lb = rv.Item2; canvas = rv.Item3; lb.Items.Add("field name:" + itemName); lb.Items.Add("RowCol:" + CanvasRowCol.ToText()); lb.Items.Add("Value:" + itemValue); lb.Items.Add("Row number:" + itemRowNum); } } ShowHoverBox(grid, Position); }
public ScreenDefnModel(IScreenDefn defn) : this(defn.ScreenName, defn.NamespaceName, defn.ScreenGuid, defn.ScreenDim, defn.Items) { }
public static void AssignScreenGuid(this IScreenDefn defn) { defn.ScreenGuid = Guid.NewGuid().ToString(); }
public ScreenDefn(IScreenDefn source) : this(source.ScreenName, source.NamespaceName, source.ScreenGuid, source.ScreenDim, source.Items) { }
public MatchScreenDefnMessage(IScreenDefn ScreenDefn, ScreenContent ScreenContent) { this.ScreenDefn = ScreenDefn; this.ScreenContent = ScreenContent; }