private void clbInputColumns_ItemCheck(object sender, ItemCheckEventArgs e) { if (initializing) { return; } FormInputColumn fic = clbInputColumns.Items[e.Index] as FormInputColumn; if (fic != null && e.CurrentValue != e.NewValue) { if (e.NewValue == CheckState.Checked) { if (!lbSelectedItems.Items.Contains(fic)) { lbSelectedItems.Items.Add(fic); } } else { if (lbSelectedItems.Items.Contains(fic)) { lbSelectedItems.Items.Remove(fic); } } } }
public void SelectLookupInputColumn(System.Windows.Forms.CheckedListBox clbInputColumns, System.Windows.Forms.ListBox lbSelectedItems, int checkedIndex, System.Windows.Forms.CheckState state, int nullColumnLineageId) { FormInputColumn icol = clbInputColumns.Items[checkedIndex] as FormInputColumn; IDTSInput input = ComponentMetadata.InputCollection[0]; if (icol != null) { if (state == CheckState.Checked) { DesignTimeComponent.SetUsageType(input.ID, VirtualInput, icol.LineageID, DTSUsageType.UT_READONLY); IDTSInputColumn inputCol = input.InputColumnCollection.GetInputColumnByLineageID(icol.LineageID); IDTSCustomProperty keyCol = inputCol.CustomPropertyCollection[Resources.LookupErrorAggIsKeyColumnName]; keyCol.Value = true; icol.DTSInputColumn = inputCol; if (lbSelectedItems != null && !lbSelectedItems.Items.Contains(icol)) { int sortOrder = 0; if (lbSelectedItems.Items.Count > 0) { FormInputColumn lastCol = lbSelectedItems.Items[lbSelectedItems.Items.Count - 1] as FormInputColumn; sortOrder = lastCol.SortOrder; } icol.SortOrder = sortOrder + 1; lbSelectedItems.Items.Add(icol); } } else { bool isInput = false; if (icol.DTSInputColumn != null) { IDTSCustomProperty prop = icol.DTSInputColumn.CustomPropertyCollection[Resources.LookupErrorAggIsNullColumnName]; isInput = (bool)prop.Value; IDTSCustomProperty keyCol = icol.DTSInputColumn.CustomPropertyCollection[Resources.LookupErrorAggIsKeyColumnName]; keyCol.Value = false; } if (!isInput) { DesignTimeComponent.SetUsageType(input.ID, VirtualInput, icol.LineageID, DTSUsageType.UT_IGNORED); icol.DTSInputColumn = null; } if (lbSelectedItems != null && lbSelectedItems.Items.Contains(icol)) { lbSelectedItems.Items.Remove(icol); } } } }
/// <summary> /// Gets InputColumns of Input at selected inde of InputCollection encapsulated in the FormInputColumn class /// </summary> /// <param name="index">Index of the Input to get InputColumns</param> /// <returns>List of FormInputColumn</returns> public virtual List <FormInputColumn> GetFormInputColumns(int index) { List <FormInputColumn> inputCols = new List <FormInputColumn>(); IDTSInput input = GetInput(index); IDTSVirtualInput vInput = GetVirtualInput(index); if (input != null && VirtualInput != null) { for (int i = 0; i < VirtualInput.VirtualInputColumnCollection.Count; i++) //foreach (IDTSVirtualInputColumn vcol in VirtualInput.VirtualInputColumnCollection) { IDTSVirtualInputColumn vcol = VirtualInput.VirtualInputColumnCollection[i]; FormInputColumn icol = new FormInputColumn(vcol, i); if (vcol.UsageType != DTSUsageType.UT_IGNORED) { IDTSInputColumn inputCol = input.InputColumnCollection.GetInputColumnByLineageID(vcol.LineageID); icol.DTSInputColumn = inputCol; } bool isValidForInput = CheckColumnForInputValidity(vInput, input, icol); if (isValidForInput) { inputCols.Add(icol); } } inputCols.Sort((a, b) => a.Name.CompareTo(b.Name)); for (int i = 0; i < inputCols.Count; i++) { if (i >= 0 && i < inputCols.Count - 1 && inputCols[i].Name == inputCols[i + 1].Name) { inputCols[i].DisplayName = string.Format("{0}.{1}", inputCols[i].SourceComponent, inputCols[i].Name); } else if (i > 0 && i < inputCols.Count && inputCols[i].Name == inputCols[i - 1].Name) { inputCols[i].DisplayName = string.Format("{0}.{1}", inputCols[i].SourceComponent, inputCols[i].Name); } } inputCols.Sort((a, b) => a.Index.CompareTo(b.Index)); } return(inputCols); }
public List <int> GetInputColumnsLineages() { List <int> colLineages = new List <int>(lbSelectedItems.Items.Count); foreach (var item in lbSelectedItems.Items) { FormInputColumn fic = item as FormInputColumn; if (fic != null) { colLineages.Add(fic.LineageID); } } return(colLineages); }
private void removeToolStripMenuItem_Click(object sender, EventArgs e) { FormInputColumn icol = lbSelectedItems.SelectedItem as FormInputColumn; if (icol != null) { for (int i = 0; i < clbInputColumns.Items.Count; i++) { FormInputColumn fic = clbInputColumns.Items[i] as FormInputColumn; if (fic != null && fic.LineageID == icol.LineageID) { clbInputColumns.SetItemChecked(i, false); break; } } } }
/// <summary> /// Selects an InputColumn (to become available in the input buffer) /// </summary> /// <param name="clbInputColumns">CheckedListbox with InputColumns</param> /// <param name="lbSelectedItems">ListBox with Selected InputColumns</param> /// <param name="checkedIndex">Index of the Item being checked</param> /// <param name="state">CheckState of the item being checkd</param> public virtual void SelectInputColumn(CheckedListBox clbInputColumns, ListBox lbSelectedItems, int checkedIndex, CheckState state) { FormInputColumn icol = clbInputColumns.Items[checkedIndex] as FormInputColumn; IDTSInput input = ComponentMetadata.InputCollection[0]; if (icol != null) { if (state == CheckState.Checked) { DesignTimeComponent.SetUsageType(input.ID, VirtualInput, icol.LineageID, DTSUsageType.UT_READONLY); IDTSInputColumn inputCol = input.InputColumnCollection.GetInputColumnByLineageID(icol.LineageID); icol.DTSInputColumn = inputCol; if (lbSelectedItems != null && !lbSelectedItems.Items.Contains(icol)) { int sortOrder = 0; if (lbSelectedItems.Items.Count > 0) { FormInputColumn lastCol = lbSelectedItems.Items[lbSelectedItems.Items.Count - 1] as FormInputColumn; sortOrder = lastCol.SortOrder; } icol.SortOrder = sortOrder + 1; lbSelectedItems.Items.Add(icol); } } else { DesignTimeComponent.SetUsageType(input.ID, VirtualInput, icol.LineageID, DTSUsageType.UT_IGNORED); icol.DTSInputColumn = null; if (lbSelectedItems != null && lbSelectedItems.Items.Contains(icol)) { lbSelectedItems.Items.Remove(icol); } } } }
/// <summary> /// Set the caption for dsiplaying the column names in the Property Grid editor /// </summary> private void ValidateLineages() { caption = "<< No Columns Selected >>"; captions = new List <string>(inputLineages.Count); if (inputLineages.Count > 0) { List <int> lineagesToRemove = new List <int>(inputLineages.Count); if (InputColumnsUIEditor.UIHelper != null) { var inputCols = InputColumnsUIEditor.UIHelper.GetFormInputColumns(); foreach (int lineage in inputLineages) { FormInputColumn fic = inputCols.Find(ic => ic.LineageID == lineage); if (fic != null) { captions.Add(fic.DisplayName); } else { lineagesToRemove.Add(lineage); } } } else { captions.AddRange(inputLineages.ConvertAll <string>(il => il.ToString(CultureInfo.InvariantCulture))); } if (lineagesToRemove.Count > 0) { lineagesToRemove.ForEach(l => inputLineages.Remove(l)); } if (captions.Count > 0) { caption = string.Join(" | ", captions.ToArray()); } } }
/// <summary> /// Moves the selected item in the selected item ListBox /// </summary> /// <param name="lbSelectedItems">Moves selected InputColumn in provide ListBox by one position Up or Down</param> /// <param name="moveUp">If true, movement is Up otherwise Down</param> public virtual void MoveSelectedItem(ListBox lbSelectedItems, bool moveUp) { if (lbSelectedItems == null) { return; } int idx = lbSelectedItems.SelectedIndex; if (moveUp && idx > 0) { lbSelectedItems.SuspendLayout(); FormInputColumn icol = lbSelectedItems.SelectedItem as FormInputColumn; FormInputColumn prevCol = lbSelectedItems.Items[idx - 1] as FormInputColumn; int ord = icol.SortOrder; icol.SortOrder = prevCol.SortOrder; prevCol.SortOrder = ord; lbSelectedItems.Items.RemoveAt(idx); lbSelectedItems.Items.Insert(idx - 1, icol); lbSelectedItems.SelectedIndex = idx - 1; lbSelectedItems.ResumeLayout(true); } else if (moveUp == false && idx >= 0 && idx < lbSelectedItems.Items.Count - 1) { lbSelectedItems.SuspendLayout(); FormInputColumn icol = lbSelectedItems.SelectedItem as FormInputColumn; FormInputColumn nextCol = lbSelectedItems.Items[idx + 1] as FormInputColumn; int ord = icol.SortOrder; icol.SortOrder = nextCol.SortOrder; nextCol.SortOrder = ord; lbSelectedItems.Items.RemoveAt(idx); lbSelectedItems.Items.Insert(idx + 1, icol); lbSelectedItems.SelectedIndex = idx + 1; lbSelectedItems.ResumeLayout(true); } }
private void btnDown_Click(object sender, EventArgs e) { int idx = lbSelectedItems.SelectedIndex; if (idx >= 0 && idx < lbSelectedItems.Items.Count - 1) { try { lbSelectedItems.SuspendLayout(); FormInputColumn icol = lbSelectedItems.SelectedItem as FormInputColumn; FormInputColumn nextCol = lbSelectedItems.Items[idx + 1] as FormInputColumn; lbSelectedItems.Items.RemoveAt(idx); lbSelectedItems.Items.Insert(idx + 1, icol); lbSelectedItems.SelectedIndex = idx + 1; } finally { lbSelectedItems.ResumeLayout(true); } } }
private void btnUp_Click(object sender, EventArgs e) { int idx = lbSelectedItems.SelectedIndex; if (idx > 0) { try { lbSelectedItems.SuspendLayout(); FormInputColumn icol = lbSelectedItems.SelectedItem as FormInputColumn; FormInputColumn prevCol = lbSelectedItems.Items[idx - 1] as FormInputColumn; lbSelectedItems.Items.RemoveAt(idx); lbSelectedItems.Items.Insert(idx - 1, icol); lbSelectedItems.SelectedIndex = idx - 1; } finally { lbSelectedItems.ResumeLayout(true); } } }
public virtual bool CheckColumnForInputValidity(IDTSVirtualInput vInput, IDTSInput input, FormInputColumn icol) { return(CheckColumnForInputValidity(icol != null ? icol.DTSVirtualColumn : null)); }
//Dissallow DT_NTEXT, DT_TEXT and DT_IMAGE data types. public override bool CheckColumnForInputValidity(IDTSVirtualInput vInput, IDTSInput input, FormInputColumn icol) { bool validForInput = false; var dt = icol.DTSVirtualColumn.DataType; if (dt == DataType.DT_NTEXT || dt == DataType.DT_TEXT || dt == DataType.DT_IMAGE) { validForInput = false; } else { if (icol.DTSInputColumn != null) { //IDTSCustomProperty nullCol = icol.DTSInputColumn.CustomPropertyCollection[Resources.LookupErrorAggIsNullColumnName]; //bool isNullCol = (bool)nullCol.Value; IDTSCustomProperty keyCol = icol.DTSInputColumn.CustomPropertyCollection[Resources.LookupErrorAggIsKeyColumnName]; bool isKeyCol = (bool)keyCol.Value; if (!isKeyCol) { DesignTimeComponent.SetUsageType(input.ID, vInput, icol.LineageID, DTSUsageType.UT_IGNORED); icol.DTSInputColumn = null; } } validForInput = true; } return(validForInput); }