示例#1
0
        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);
                }
            }
        }
示例#2
0
 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;
 }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        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;
        }
示例#5
0
        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;
 }