private void ClearGridEntryEvents(GridEntryCollection ipeArray, int startIndex, int count) { Debug.WriteLineIf(CompModSwitches.DebugGridView.TraceVerbose, "PropertyGridView:ClearGridEntryEvents"); if (ipeArray == null) { return; } if (count == -1) { count = ipeArray.Count - startIndex; } for (int i = startIndex ; i < (startIndex + count); i++) { if (ipeArray[i] != null) { GridEntry ge = ipeArray.GetEntry(i); ge.RemoveOnValueClick(ehValueClick); ge.RemoveOnLabelClick(ehLabelClick); ge.RemoveOnOutlineClick(ehOutlineClick); ge.RemoveOnOutlineDoubleClick(ehOutlineClick); ge.RemoveOnValueDoubleClick(ehValueDblClick); ge.RemoveOnLabelDoubleClick(ehLabelDblClick); ge.RemoveOnRecreateChildren(ehRecreateChildren); } } }
private ArrayList SaveHierarchyState(GridEntryCollection entries, ArrayList expandedItems) { if (entries == null) { return new ArrayList(); } if (expandedItems == null) { expandedItems = new ArrayList(); } for (int i = 0; i < entries.Count; i++) { if (((GridEntry)entries[i]).InternalExpanded) { GridEntry entry = entries.GetEntry(i); expandedItems.Add(GetGridEntryHierarchy(entry.Children.GetEntry(0))); SaveHierarchyState(entry.Children, expandedItems); } } return expandedItems; }
private void AddGridEntryEvents(GridEntryCollection ipeArray, int startIndex, int count) { if (ipeArray == null) { return; } if (count == -1) { count = ipeArray.Count - startIndex; } for (int i= startIndex; i < (startIndex + count); i++) { if (ipeArray[i] != null) { GridEntry ge = ipeArray.GetEntry(i); ge.AddOnValueClick(ehValueClick); ge.AddOnLabelClick(ehLabelClick); ge.AddOnOutlineClick(ehOutlineClick); ge.AddOnOutlineDoubleClick(ehOutlineClick); ge.AddOnValueDoubleClick(ehValueDblClick); ge.AddOnLabelDoubleClick(ehLabelDblClick); ge.AddOnRecreateChildren(ehRecreateChildren); } } }
private /*protected virtual*/ int GetGridEntriesFromOutline(GridEntryCollection rgipe, int cCur, int cTarget, GridEntry[] rgipeTarget) { Debug.WriteLineIf(CompModSwitches.DebugGridView.TraceVerbose, "PropertyGridView:GetGridEntriesFromOutline"); if (rgipe == null || rgipe.Count == 0) return cCur; cCur--; // want to account for each entry as we find it. for (int cLocal = 0; cLocal < rgipe.Count; cLocal++) { cCur++; if (cCur >= cTarget + rgipeTarget.Length) break; GridEntry ipeCur = rgipe.GetEntry(cLocal); //Debug.Assert(ipeCur != null, "Null IPE at position " + cLocal.ToString()); if (cCur >= cTarget) rgipeTarget[cCur - cTarget] = ipeCur; if (ipeCur.InternalExpanded) { GridEntryCollection subGridEntry = ipeCur.Children; //Debug.Assert(subGridEntry != null && subGridEntry.Length > 0 && subGridEntry[0] != null, "Expanded property " + ipeCur.PropertyLabel + " has no children!"); if (subGridEntry != null && subGridEntry.Count > 0) { cCur = GetGridEntriesFromOutline(subGridEntry, cCur+1,cTarget,rgipeTarget); } } } return cCur; }
private /*protected virtual*/ GridEntry FindEquivalentGridEntry(GridEntryCollection ipeHier) { if (ipeHier == null || ipeHier.Count == 0) return null; GridEntryCollection rgipes = GetAllGridEntries(); if (rgipes == null || rgipes.Count == 0) { return null; } GridEntry targetEntry = null; int row = 0; int count = rgipes.Count; for (int i = 0; i < ipeHier.Count; i++) { if (ipeHier[i] == null) { continue; } // if we've got one above, and it's expandable, // expand it if (targetEntry != null) { // how many do we have? int items = rgipes.Count; // expand and get the new count if (!targetEntry.InternalExpanded) { SetExpand(targetEntry, true); rgipes = GetAllGridEntries(); } count = targetEntry.VisibleChildCount; } int start = row; targetEntry = null; // now, we will only go as many as were expanded... for (; row < rgipes.Count && ((row - start) <= count); row++) { if (ipeHier.GetEntry(i).NonParentEquals(rgipes[row])) { targetEntry = rgipes.GetEntry(row); row++; break; } } // didn't find it... if (targetEntry == null) { break; } } return targetEntry; }
private void ClearGridEntryEvents(GridEntryCollection ipeArray, int startIndex, int count) { if (ipeArray != null) { if (count == -1) { count = ipeArray.Count - startIndex; } for (int i = startIndex; i < (startIndex + count); i++) { if (ipeArray[i] != null) { GridEntry entry = ipeArray.GetEntry(i); entry.RemoveOnValueClick(this.ehValueClick); entry.RemoveOnLabelClick(this.ehLabelClick); entry.RemoveOnOutlineClick(this.ehOutlineClick); entry.RemoveOnOutlineDoubleClick(this.ehOutlineClick); entry.RemoveOnValueDoubleClick(this.ehValueDblClick); entry.RemoveOnLabelDoubleClick(this.ehLabelDblClick); entry.RemoveOnRecreateChildren(this.ehRecreateChildren); } } } }
private int GetGridEntriesFromOutline(GridEntryCollection rgipe, int cCur, int cTarget, GridEntry[] rgipeTarget) { if ((rgipe != null) && (rgipe.Count != 0)) { cCur--; for (int i = 0; i < rgipe.Count; i++) { cCur++; if (cCur >= (cTarget + rgipeTarget.Length)) { return cCur; } GridEntry entry = rgipe.GetEntry(i); if (cCur >= cTarget) { rgipeTarget[cCur - cTarget] = entry; } if (entry.InternalExpanded) { GridEntryCollection children = entry.Children; if ((children != null) && (children.Count > 0)) { cCur = this.GetGridEntriesFromOutline(children, cCur + 1, cTarget, rgipeTarget); } } } } return cCur; }
private GridEntry FindEquivalentGridEntry(GridEntryCollection ipeHier) { if ((ipeHier == null) || (ipeHier.Count == 0)) { return null; } GridEntryCollection allGridEntries = this.GetAllGridEntries(); if ((allGridEntries == null) || (allGridEntries.Count == 0)) { return null; } GridEntry gridEntry = null; int index = 0; int count = allGridEntries.Count; for (int i = 0; i < ipeHier.Count; i++) { if (ipeHier[i] == null) { continue; } if (gridEntry != null) { int num1 = allGridEntries.Count; if (!gridEntry.InternalExpanded) { this.SetExpand(gridEntry, true); allGridEntries = this.GetAllGridEntries(); } count = gridEntry.VisibleChildCount; } int num4 = index; gridEntry = null; while ((index < allGridEntries.Count) && ((index - num4) <= count)) { if (ipeHier.GetEntry(i).NonParentEquals(allGridEntries[index])) { gridEntry = allGridEntries.GetEntry(index); index++; break; } index++; } if (gridEntry == null) { return gridEntry; } } return gridEntry; }