/// <summary> /// Gets List of OutputColumns of Particular OuputID encapsulated in the FormOutputColumn class /// </summary> /// <param name="outputID">ID of the Output to get OutputColumns</param> /// <param name="creator">OutputColumnCreator to be used for creation of the FormInputColumn instances</param> /// <param name="changedHandler">PropertyChangedEventHanled to be associated with the newly created FormInputColumn objects</param> /// <returns>List of FomrInputColumn</returns> public virtual List <FormOutputColumn> GetFormOutputColumns(int outputID, OutputColumnCreator creator, PropertyChangedEventHandler changedHandler) { List <FormOutputColumn> outputCols = new List <FormOutputColumn>(); IDTSOutput output = ComponentMetadata.OutputCollection.GetObjectByID(outputID); if (output != null && creator != null) { for (int i = 0; i < output.OutputColumnCollection.Count; i++) { IDTSOutputColumn col = output.OutputColumnCollection[i]; FormOutputColumn oCol = creator(col); oCol.UIHelper = this; oCol.OutputID = outputID; oCol.Index = i; if (changedHandler != null) { oCol.PropertyChanged += changedHandler; } outputCols.Add(oCol); } } return(outputCols); }
/// <summary> /// Initializes objects on the Edit From with data from selected Input and Output defined by Index /// </summary> /// <param name="clbInputColumns">CheckedListBox with InputColumns</param> /// <param name="lbSelectedItems">ListBox with selected InputColumns</param> /// <param name="trvOutputColumns">TreeView with OutputColumns</param> /// <param name="outputColumnCreator">Delegate for OutputColumnCreator - Method providing new instance of FormOutputColumn for exiswting IDTSOutputColumns</param> /// <param name="propertyChangedHandler">Handler to hook to ProperrtyChanged event of FormInputColumns, FormOutput and FormOutputColum objects</param> /// <param name="inputIndex">Index of the input to used to populate InputColumns</param> /// <param name="outputIndex">Index of the output to be used to pouplate OutputColumns</param> public virtual void FormInitialize(CheckedListBox clbInputColumns, ListBox lbSelectedItems, TreeView trvOutputColumns, OutputColumnCreator outputColumnCreator, PropertyChangedEventHandler o_PropertyChanged, int inputIndex, int outputIndex) { try { Loading = true; if (clbInputColumns != null) { clbInputColumns.SuspendLayout(); } if (lbSelectedItems != null) { lbSelectedItems.SuspendLayout(); } if (trvOutputColumns != null) { trvOutputColumns.SuspendLayout(); } if (clbInputColumns != null) { List <FormInputColumn> inputCols = GetFormInputColumns(inputIndex); inputCols.ForEach(ic => clbInputColumns.Items.Add(ic, ic.IsSelected)); if (lbSelectedItems != null) { List <FormInputColumn> selectedColumns = inputCols.FindAll(ic => ic.IsSelected); selectedColumns.Sort((a, b) => a.SortOrder.CompareTo(b.SortOrder)); lbSelectedItems.Items.AddRange(selectedColumns.ToArray()); } } if (trvOutputColumns != null) { trvOutputColumns.Nodes.Clear(); List <FormOutput> outputs = GetFormOutputs(o_PropertyChanged); foreach (FormOutput o in outputs) { TreeNode outputNode = new TreeNode(o.Name); outputNode.Name = o.Guid.ToString(); outputNode.Tag = o; List <FormOutputColumn> cols = GetFormOutputColumns(o.ID, outputColumnCreator, o_PropertyChanged); foreach (FormOutputColumn col in cols) { TreeNode outputColumnNode = new TreeNode(col.Name); outputColumnNode.Name = col.Guid.ToString(); outputNode.Nodes.Add(outputColumnNode); outputColumnNode.Tag = col; col.AssociatedTreeNode = outputColumnNode; } trvOutputColumns.Nodes.Add(outputNode); } trvOutputColumns.ExpandAll(); if (trvOutputColumns.Nodes.Count > 0) { TreeNode nd = trvOutputColumns.Nodes[0]; if (nd.Nodes.Count > 0) { trvOutputColumns.SelectedNode = nd.FirstNode; } else { trvOutputColumns.SelectedNode = nd; } trvOutputColumns.SelectedNode.EnsureVisible(); } } } finally { Loading = false; if (clbInputColumns != null) { clbInputColumns.ResumeLayout(); } if (lbSelectedItems != null) { lbSelectedItems.ResumeLayout(); } if (trvOutputColumns != null) { trvOutputColumns.ResumeLayout(); } } }
/// <summary> /// Initializes objects on the Edit From default Inout and Output (Index = 0) /// </summary> /// <param name="clbInputColumns">CheckedListBox with InputColumns</param> /// <param name="lbSelectedItems">ListBox with selected InputColumns</param> /// <param name="trvOutputColumns">TreeView with OutputColumns</param> /// <param name="outputColumnCreator">Delegate for OutputColumnCreator - Method providing new instance of FormOutputColumn for exiswting IDTSOutputColumns</param> /// <param name="propertyChangedHandler">Handler to hook to ProperrtyChanged event of FormInputColumns, FormOutput and FormOutputColum objects</param> public virtual void FormInitialize(CheckedListBox clbInputColumns, ListBox lbSelectedItems, TreeView trvOutputColumns, OutputColumnCreator outputColumnCreator, PropertyChangedEventHandler o_PropertyChanged) { FormInitialize(clbInputColumns, lbSelectedItems, trvOutputColumns, outputColumnCreator, o_PropertyChanged, 0, 0); }