protected virtual bool IsLastChildRow(IHierarchicalRow parent, GridViewRowInfo row) { ITraverser <GridViewRowInfo> traverser = this.GetTraverser(parent); traverser.MoveToEnd(); return(traverser.Current == row); }
public override void UpdateHScrollbarMaximum() { int val2 = 0; ITraverser <ListViewDataItem> enumerator = (ITraverser <ListViewDataItem>) this.Scroller.Traverser.GetEnumerator(); enumerator.Reset(); bool flag = this.Owner.ShowGroups && this.Owner.Groups.Count > 0 && (this.Owner.EnableGrouping || this.Owner.EnableCustomGrouping) && !this.FullRowSelect; while (enumerator.MoveNext()) { val2 = Math.Max(enumerator.Current.ActualSize.Width + (enumerator.Current is ListViewDataItemGroup || !flag ? 0 : this.GroupIndent), val2); } if (this.HScrollBar.Maximum != val2) { if (this.HScrollBar.Value + this.HScrollBar.LargeChange - 1 > val2) { this.HScrollBar.Maximum = val2; this.HScrollBar.Value = val2 - this.HScrollBar.LargeChange + 1; } else { this.HScrollBar.Maximum = val2; } } this.UpdateHScrollbarVisibility(); }
public GridTraverser(GridTraverser gridTraverser) { this.rootRow = gridTraverser.hierarchyRow; this.hierarchyRow = gridTraverser.hierarchyRow; this.mode = gridTraverser.mode; this.overDetailsRow = gridTraverser.overDetailsRow; if (gridTraverser.traverser is ViewInfoTraverser) { this.traverser = (ITraverser <GridViewRowInfo>) new ViewInfoTraverser((ViewInfoTraverser.ViewInfoEnumeratorPosition)gridTraverser.traverser.Position); } else { if (!(gridTraverser.traverser is HierarchyRowTraverser)) { return; } if (this.hierarchyRow is GridViewGroupRowInfo) { this.traverser = (ITraverser <GridViewRowInfo>) new GroupRowTraverser((HierarchyRowTraverser.HierarchyRowTraverserPosition)gridTraverser.traverser.Position); } else { this.traverser = (ITraverser <GridViewRowInfo>) new HierarchyRowTraverser((HierarchyRowTraverser.HierarchyRowTraverserPosition)gridTraverser.traverser.Position); } } }
internal override void UpdateHScrollbarMaximum() { int newMaximum = 0; ITraverser <ListViewDataItem> enumerator = (ITraverser <ListViewDataItem>) this.Scroller.Traverser.GetEnumerator(); enumerator.Reset(); bool calcIndent = this.owner.ShowGroups && this.owner.Groups.Count > 0 && (this.owner.EnableGrouping || this.owner.EnableCustomGrouping) && !this.FullRowSelect; while (enumerator.MoveNext()) { newMaximum = Math.Max( enumerator.Current.ActualSize.Width + ((!(enumerator.Current is ListViewDataItemGroup) && calcIndent) ? this.GroupIndent : 0), newMaximum); } if (this.HScrollBar.Maximum != newMaximum) { if (this.HScrollBar.Value + this.HScrollBar.LargeChange - 1 > newMaximum) { this.HScrollBar.Maximum = newMaximum; this.HScrollBar.Value = newMaximum - this.HScrollBar.LargeChange + 1; } else { this.HScrollBar.Maximum = newMaximum; } } UpdateHScrollbarVisibility(); }
public virtual void ReplicationReflector(ReplicationReflector replicationReflector ) { Db4objects.Drs.Inside.ICollectionHandler _collectionHandler = new CollectionHandlerImpl (replicationReflector); _traverser = new TransientReplicationProvider.MyTraverser(this, replicationReflector , _collectionHandler); }
protected override void HandleLeftKey(System.Windows.Forms.KeyEventArgs e) { int columnIndex = this.owner.Columns.IndexOf(this.owner.CurrentColumn); ITraverser <ListViewDetailColumn> enumerator = (ITraverser <ListViewDetailColumn>) this.columnScroller.Traverser.GetEnumerator(); enumerator.Position = columnIndex; if (enumerator.MovePrevious()) { this.owner.CurrentColumn = enumerator.Current; } }
/// <summary> /// Handles a press of the Home key. /// </summary> /// <param name="e">The event args.</param> protected virtual void HandleHomeKey(KeyEventArgs e) { ITraverser <ListViewDataItem> enumerator = this.Scroller.Traverser.GetEnumerator() as ITraverser <ListViewDataItem>; enumerator.Reset(); if (enumerator.MoveNext() && enumerator.Current != null) { this.ProcessSelection(enumerator.Current, Control.ModifierKeys, false); } }
protected override void HandleRightKey(KeyEventArgs e) { int num = this.Owner.Columns.IndexOf(this.Owner.CurrentColumn); ITraverser <ListViewDetailColumn> enumerator = (ITraverser <ListViewDetailColumn>) this.columnScroller.Traverser.GetEnumerator(); enumerator.Position = (object)num; if (!enumerator.MoveNext()) { return; } this.Owner.CurrentColumn = enumerator.Current; }
public GenericReplicationSession(IReplicationProvider providerA, IReplicationProvider providerB, IReplicationEventListener listener, IReflector reflector) { //null means bidirectional replication. _reflector = new ReplicationReflector(providerA, providerB, reflector); _collectionHandler = new CollectionHandlerImpl(_reflector); _traverser = new GenericTraverser(_reflector, _collectionHandler); _providerA = (IReplicationProviderInside)providerA; _providerB = (IReplicationProviderInside)providerB; _listener = listener; RunIsolated(new _IBlock4_73(this)); }
protected virtual void CreateTraverser(GridViewInfo viewInfo) { GridViewHierarchyRowInfo hierarchyRow = this.hierarchyRow as GridViewHierarchyRowInfo; if (this.hierarchyRow.HasChildViews) { if (hierarchyRow != null && !this.IsSelfReference(hierarchyRow)) { this.oldRowIsGroupRow = false; this.traverser = (ITraverser <GridViewRowInfo>) new ViewInfoTraverser(viewInfo != null ? viewInfo : hierarchyRow.ActiveView); } else { this.traverser = (ITraverser <GridViewRowInfo>) new HierarchyRowTraverser((GridViewRowInfo)this.hierarchyRow); } } else if (hierarchyRow != null && (this.processHierarchy || this.hierarchyRow == this.rootRow || this.oldRowIsGroupRow)) { this.oldRowIsGroupRow = false; this.traverser = (ITraverser <GridViewRowInfo>) new ViewInfoTraverser(viewInfo != null ? viewInfo : hierarchyRow.ActiveView); } else if (this.hierarchyRow is GridViewTemplate) { this.traverser = (ITraverser <GridViewRowInfo>) new ViewInfoTraverser(((GridViewTemplate)this.hierarchyRow).MasterViewInfo); } else if (this.hierarchyRow is GridViewGroupRowInfo) { this.traverser = (ITraverser <GridViewRowInfo>) new GroupRowTraverser((GridViewGroupRowInfo)this.hierarchyRow); } ViewInfoTraverser traverser = this.traverser as ViewInfoTraverser; if (traverser != null) { if (this.mode == GridTraverser.TraversalModes.TopPinnedRows) { traverser.FilterByPinPosition = true; traverser.FilteredPinPosition = PinnedRowPosition.Top; } else if (this.mode == GridTraverser.TraversalModes.BottomPinnedRows) { traverser.FilterByPinPosition = true; traverser.FilteredPinPosition = PinnedRowPosition.Bottom; } else if (this.mode == GridTraverser.TraversalModes.ScrollableRows) { traverser.FilterByPinPosition = true; traverser.FilteredPinPosition = PinnedRowPosition.None; } } this.traverser.Reset(); }
public override bool Accept(ITraverser traverser) { if (traverser.Enter(this)) { for (int i = 0; i < _childNodes.Count; i++) { if (!_childNodes[i].Accept(traverser)) { break; } } } return(traverser.Leave(this)); }
public GenericReplicationSession(IReplicationProvider providerA, IReplicationProvider providerB, IReplicationEventListener listener, IReflector reflector) { //null means bidirectional replication. _reflector = new ReplicationReflector(providerA, providerB, reflector); _collectionHandler = new CollectionHandlerImpl(_reflector); _traverser = new GenericTraverser(_reflector, _collectionHandler); _providerA = (IReplicationProviderInside)providerA; _providerB = (IReplicationProviderInside)providerB; _listener = listener; _providerA.StartReplicationTransaction(_providerB.GetSignature()); _providerB.StartReplicationTransaction(_providerA.GetSignature()); long syncedTimeStamp = Math.Max(_providerA.TimeStamps().Commit(), _providerB.TimeStamps ().Commit()); _providerA.SyncCommitTimestamp(syncedTimeStamp); _providerB.SyncCommitTimestamp(syncedTimeStamp); }
public Path <T> GetPath(T startNode, T endNode, ITraverser <T> traverser) { if (startNode == endNode) { return(new Path <T>(new List <T>() { startNode })); } this.startNode = startNode; this.endNode = endNode; this.traverser = traverser; closedList.Clear(); openList.Clear(); var startNodeMeta = GetNodeMeta(startNode); startNodeMeta.GCost = 0.0f; openList.Add(startNodeMeta); while (true) { if (openList.Count == 0) { return(Path <T> .Empty); // No path exists } current = openList[openList.Count - 1]; openList.Remove(current); if (current.Node == endNode) { return(Backtrack()); // Path discovered } if (!closedList.Contains(current)) { closedList.Add(current); AddNeighboursToOpen(); } } }
internal InstanceReplicationPreparer(IReplicationProviderInside providerA, IReplicationProviderInside providerB, IReplicationProvider directionTo, IReplicationEventListener listener , bool isReplicatingOnlyDeletions, HashSet4 uuidsProcessedInSession, ITraverser traverser, ReplicationReflector reflector, Db4objects.Drs.Inside.ICollectionHandler collectionHandler) { _event = new ReplicationEventImpl(); _stateInA = _event._stateInProviderA; _stateInB = _event._stateInProviderB; _providerA = providerA; _providerB = providerB; _directionTo = directionTo; _listener = listener; _isReplicatingOnlyDeletions = isReplicatingOnlyDeletions; _uuidsProcessedInSession = uuidsProcessedInSession; _traverser = traverser; _reflector = reflector; _collectionHandler = collectionHandler; }
internal InstanceReplicationPreparer(IReplicationProviderInside providerA, IReplicationProviderInside providerB, IReplicationProvider directionTo, IReplicationEventListener listener , bool isReplicatingOnlyDeletions, long lastReplicationVersion, HashSet4 uuidsProcessedInSession , ITraverser traverser, ReplicationReflector reflector, Db4objects.Drs.Inside.ICollectionHandler collectionHandler) { _event = new ReplicationEventImpl(); _stateInA = _event._stateInProviderA; _stateInB = _event._stateInProviderB; _providerA = providerA; _providerB = providerB; _directionTo = directionTo; _listener = listener; _isReplicatingOnlyDeletions = isReplicatingOnlyDeletions; _lastReplicationVersion = lastReplicationVersion; _uuidsProcessedInSession = uuidsProcessedInSession; _traverser = traverser; _reflector = reflector; _collectionHandler = collectionHandler; }
private bool StepOutOfHierarchy() { GridViewHierarchyRowInfo hierarchyRow1 = this.hierarchyRow as GridViewHierarchyRowInfo; if (this.hierarchyRow is GridViewGroupRowInfo || this.hierarchyRow.HasChildViews || this.processHierarchy && (this.hierarchyRow.Parent != null || this.hierarchyRow is GridViewHierarchyRowInfo)) { IHierarchicalRow hierarchyRow2 = this.hierarchyRow; this.oldRowIsGroupRow = hierarchyRow2 is GridViewGroupRowInfo; this.hierarchyRow = this.hierarchyRow.Parent; GridViewInfo gridViewInfo = this.Current != null ? this.Current.ViewInfo : (GridViewInfo)null; bool flag = this.Current is GridViewHierarchyRowInfo; if (this.hierarchyRow == null) { this.hierarchyRow = this.rootRow; } if (this.hierarchyTraversers.Count > 0) { ITraverser <GridViewRowInfo> traverser = this.hierarchyTraversers.Pop(); traverser.MovePrevious(); traverser.MovePrevious(); for (int index = 0; index < 5; ++index) { traverser.MoveNext(); if (traverser.Current == hierarchyRow2) { this.traverser = traverser; return(this.ProcessHierarchy || hierarchyRow1 == null || (hierarchyRow1.ViewTemplate.Templates.Count <= 0 || !hierarchyRow1.ViewTemplate.IsSelfReference) || (gridViewInfo == null || hierarchyRow1.ViewTemplate == gridViewInfo.ViewTemplate) && (flag || hierarchyRow1 != this.rootRow)); } } } this.CreateTraverser(); while (this.traverser.MoveNext()) { if (this.traverser.Current == hierarchyRow2) { return(this.ProcessHierarchy || hierarchyRow1 == null || (hierarchyRow1.ViewTemplate.Templates.Count <= 0 || !hierarchyRow1.ViewTemplate.IsSelfReference) || (gridViewInfo == null || hierarchyRow1.ViewTemplate == gridViewInfo.ViewTemplate) && (flag || hierarchyRow1 != this.rootRow)); } } } return(false); }
public Area <T> GetFill(T center, int range, ITraverser <T> traverser) { this.traverser = traverser; fill.Clear(); frontier.Clear(); NodeMeta first = GetFillData(center); first.GCost = 0; frontier.Add(GetFillData(center)); for (int step = 0; step <= range; step++) { for (int i = frontier.Count - 1; i >= 0; i--) { if (frontier[i].GCost <= step) { fill.Add(frontier[i]); AddNeighbours(frontier[i]); frontier.RemoveAt(i); } } } List <T> fillResult = new List <T>(); for (int i = 0; i < fill.Count; i++) { T node = fill[i].Node; if (traverser.CanEndOn(node) && traverser.AddToResult(node)) { fillResult.Add(node); } } return(new Area <T>(fillResult)); }
private bool MoveNextCore() { if (this.traverser == null) { return(false); } IHierarchicalRow hierarchyRow = this.hierarchyRow; ITraverser <GridViewRowInfo> traverser = this.traverser; if (this.StepInHierarchy()) { return(true); } while (!this.traverser.MoveNext()) { if (!this.StepOutOfHierarchy()) { this.hierarchyRow = hierarchyRow; this.traverser = traverser; return(false); } } return(true); }
public override bool Accept(ITraverser traverser) { return(traverser.Visit(this)); }
public abstract bool Accept(ITraverser traverser);
protected override bool ProcessDialogKey(Keys keyData) { if (keyData == Keys.Tab) { var view = this.ListViewElement.ViewElement as DetailListViewElement; var element = this.ListViewElement; int columnIndex = element.Columns.IndexOf(element.CurrentColumn); ITraverser <ListViewDetailColumn> colEnumerator = (ITraverser <ListViewDetailColumn>)view.ColumnScroller.Traverser.GetEnumerator(); colEnumerator.Position = columnIndex; if (colEnumerator.MoveNext()) { var isEditing = element.IsEditing; element.CurrentColumn = colEnumerator.Current; if (isEditing) { element.BeginEdit(); } return(true); } else { ListViewTraverser enumerator = view.Scroller.Traverser.GetEnumerator() as ListViewTraverser; enumerator.Position = element.CurrentItem; if (enumerator.MoveNext()) { var isEditing = element.IsEditing; colEnumerator.Reset(); colEnumerator.MoveNext(); element.CurrentColumn = colEnumerator.Current; element.CurrentItem = enumerator.Current; element.SelectedItem = enumerator.Current; if (isEditing) { element.BeginEdit(); } return(true); } } } if (keyData == (Keys.Tab | Keys.Shift)) { var view = this.ListViewElement.ViewElement as DetailListViewElement; var element = this.ListViewElement; int columnIndex = element.Columns.IndexOf(element.CurrentColumn); ITraverser <ListViewDetailColumn> colEnumerator = (ITraverser <ListViewDetailColumn>)view.ColumnScroller.Traverser.GetEnumerator(); colEnumerator.Position = columnIndex; if (colEnumerator.MovePrevious()) { var isEditing = element.IsEditing; element.CurrentColumn = colEnumerator.Current; if (isEditing) { element.BeginEdit(); } return(true); } else { ListViewTraverser enumerator = view.Scroller.Traverser.GetEnumerator() as ListViewTraverser; enumerator.Position = element.CurrentItem; if (enumerator.MovePrevious()) { var isEditing = element.IsEditing; colEnumerator.MoveToEnd(); element.CurrentColumn = colEnumerator.Current; element.CurrentItem = enumerator.Current; element.SelectedItem = enumerator.Current; if (isEditing) { element.BeginEdit(); } return(true); } } } return(base.ProcessDialogKey(keyData)); }
public GameRecordScrapeEngine(ITraverser <IGameRecord> gameTraverser) { this.GameTraverser = gameTraverser; this.ResultCuller = new ResultCuller(); this.ScrapeJobs = ImmutableDictionary.Create <Guid, IScrapeJob>(); }
public Area <T> GetArea(T center, int range, ITraverser <T> traverser) { return(simpleFill.GetFill(center, range, traverser)); }
public Path <T> GetPath(T start, T end, ITraverser <T> traverser) { return(aStar.GetPath(start, end, traverser)); }
protected virtual void HandleDragDrop(RadDropEventArgs e) { RadElement hitTarget1 = e.HitTarget as RadElement; BaseListViewVisualItem targetElement = e.HitTarget as BaseListViewVisualItem; BaseListViewElement hitTarget2 = e.HitTarget as BaseListViewElement; if (hitTarget1 != null) { targetElement = this.owner.ViewElement.GetVisualItemAt(hitTarget1.PointToControl(e.DropLocation)); } ListViewDataItem listViewDataItem = targetElement?.Data; bool flag = false; if (listViewDataItem != null) { listViewDataItem.Owner.ListSource.BeginUpdate(); if (this.owner.ViewElement.ShouldDropAfter(targetElement, e.DropLocation)) { ITraverser <ListViewDataItem> enumerator = this.owner.ViewElement.Scroller.Traverser.GetEnumerator() as ITraverser <ListViewDataItem>; enumerator.Position = (object)listViewDataItem; flag = !enumerator.MoveNext(); listViewDataItem = enumerator.Current; } int newIndex = this.owner.ListSource.IndexOf(listViewDataItem); if (this.draggedItems != null) { foreach (ListViewDataItem draggedItem in this.draggedItems) { int oldIndex = this.owner.ListSource.IndexOf(draggedItem); this.owner.ListSource.Move(oldIndex, newIndex); if (oldIndex > newIndex) { ++newIndex; } } } else if (this.draggedItem != null) { int num1 = this.owner.ListSource.IndexOf(this.draggedItem); if (flag) { int num2 = this.owner.ListSource.Count - 1; } else if (num1 < newIndex) { --newIndex; } this.owner.ListSource.Move(this.owner.ListSource.IndexOf(this.draggedItem), newIndex); } listViewDataItem.Owner.ListSource.EndUpdate(); listViewDataItem.Owner.ViewElement.Scroller.UpdateScrollValue(); } else { if (hitTarget2 == null) { return; } hitTarget2.Owner.ListSource.BeginUpdate(); if (this.draggedItems != null) { foreach (ListViewDataItem draggedItem in this.draggedItems) { hitTarget2.Owner.ListSource.Move(this.owner.ListSource.IndexOf(draggedItem), this.owner.ListSource.Count - 1); } } else if (this.draggedItem != null) { hitTarget2.Owner.ListSource.Move(this.owner.ListSource.IndexOf(this.draggedItem), this.owner.ListSource.Count - 1); } hitTarget2.Owner.ListSource.EndUpdate(); hitTarget2.Owner.ViewElement.Scroller.UpdateScrollValue(); } }
public MyTraverser(TransientReplicationProvider _enclosing, ReplicationReflector reflector, Db4objects.Drs.Inside.ICollectionHandler collectionHandler) { this._enclosing = _enclosing; this._delegate = new GenericTraverser(reflector, collectionHandler); }
public GameRecordTraverser(IStoneProvider provider, ITraverser <IFileRecord> fileTraverser) { this.StoneProvider = provider; this.FileTraverser = fileTraverser; }