protected override bool CanStartResize(SchedulingResizeState state) { if (!base.CanStartResize(state)) { return false; } var task = state.ResizedItem as GanttTask; var now = DateTime.Now; if (!this.AllowModificationsInThePast && (!state.IsResizeFromEnd && task.Start <= now || state.IsResizeFromEnd && task.End <= now)) { return false; } if (task.IsMilestone) { return this.CanResizeMilestones; } if (task.IsSummary) { return this.CanResizeSummaries; } return this.CanResizeTasks; }
protected override bool CanStartResize(SchedulingResizeState state) { if (!base.CanStartResize(state)) { return false; } return !((LockingTask)state.ResizedItem).IsResizeLocked; }
protected override void Resize(SchedulingResizeState state) { if (state.IsResizeFromEnd) { state.DestinationSlot.End = SnappingHelper.RoundUpDateTime(state.DestinationSlot.End); } else { state.DestinationSlot.Start = SnappingHelper.RoundUpDateTime(state.DestinationSlot.Start); } base.Resize(state); }
protected override bool CanResize(SchedulingResizeState state) { var now = DateTime.Now; if (base.CanResize(state) && (this.AllowModificationsInThePast || !state.IsResizeFromEnd && state.DestinationSlot.Start > now || state.IsResizeFromEnd && state.DestinationSlot.End > now)) { if (this.SnapToDates) { if (state.IsResizeFromEnd) { var difference = state.DestinationSlot.End - state.DestinationSlot.End.Date; state.DestinationSlot.End = state.DestinationSlot.End.Date + TimeSpan.FromDays(Math.Round(difference.TotalDays)); } else { var difference = state.DestinationSlot.Start - state.DestinationSlot.Start.Date; state.DestinationSlot.Start = state.DestinationSlot.Start.Date + TimeSpan.FromDays(Math.Round(difference.TotalDays)); } } return true; } return false; }
protected override bool CanResize(SchedulingResizeState state) { return false; }