This is a migrated thread and some comments may be shown as answers.

GanttView ResizeBehavior

3 Answers 159 Views
GanttView
This is a migrated thread and some comments may be shown as answers.
JIG
Top achievements
Rank 1
JIG asked on 07 Apr 2016, 10:46 AM

hi,

I tried to trigger the event ResizeCompleted on a Custom ganttask. 

I found in the telerik manual (http://docs.telerik.com/devtools/wpf/controls/radganttview/features/drag-and-drop/dragdrop-custom-behaviors.html) the following event : ResizeCompleted(SchedulingResizeState state) – occurs when the resize operation has finished

 

When I try to use it in code, I got it like in the picture! It can't find the override event like explained in the manual. 

 

 

Note: Using version '2015.2.728.40'

3 Answers, 1 is accepted

Sort by
0
Yana
Telerik team
answered on 08 Apr 2016, 11:49 AM
Hi Marnix,

Indeed, such an event is not raised inside the ResizeBehavior of GanttView - it seems there was some miscommunication on our side regarding this topic.

Please take our apology for misleading you, I will make sure to update the documentation right away.
I have also updated your points for bringing this to our attention.

Could you explain the required scenario with RadGanttView in more details, so we could check whether there is another way to achieve it?

I am looking forward to your reply.

Regards,
Yana
Telerik
Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
0
JIG
Top achievements
Rank 1
answered on 22 Apr 2016, 08:45 AM

Hi,

So we want to resize the elements in a GanttView. (See picture one).

We are using a Custom GanttTask class to show the Tasks (Orders and Operation, 2 different tables in DB)

public class SchedulingGanttTask : GanttTask
  {
      public string Type { get; set; } //Operation Or Order
      public Guid ID { get; set; } //TaskID Or ODMTID
      public TblDatODMT Order { get; set; } //Order
      public TblDatTask Operation { get; set; } //Operation
      public string ShortName { get; set; } //Voor Beide
      public string ShortDesc { get; set; } //Voor Beide
      public string LongDesc { get; set; } //Voor Beide
 
      public TblLstStatus Status { get; set; } //Zowel voor Task als Order
      public string SystemStatus { get; set; } //Zowel voor Task als Order
      public TblLstOrganisation RespOrganisation { get; set; } // WorkCenter, zowel nodig voor Operation als Order
      public TblLstPriority Priority { get; set; } //Enkel voor Order, Operation heeft geen priority
      public TblLstLocation Location { get; set; } //Voor Beide
      public TblLstEquipment Equipment { get; set; } //Voor Beide
 
      public DateTime PlannedStart { get; set; } //Voor Beide
      public DateTime PlannedEnd { get; set; } //Voor Beide
      public DateTime? OrderStart { get; set; } //Enkel voor Order
      public DateTime? OrderEnd { get; set; } //Enkel voor Order
      public DateTime? RealStart { get; set; } //Voor Beide
      public DateTime? RealEnd { get; set; } //Voor Beide
      public DateTime? DueDate { get; set; } //Voor Beide
 
      public string ERPCode { get; set; } //Voor Beide
 
      public TblLstTaskType TaskType { get; set; } //Enkel voor Operation
      public TblLstActivity Activity { get; set; } //Enkel voor Operation
      public int? CountPersons { get; set; }
  }

 

After resize and after dragdrop, we went to Save the data immediately in the DB. Because the data is first changing in the custom class, we need a Completed event for the resize. So we can update the value in the DB.

 There is already code available when changing the date using a DatePicker. This code should also be triggered when the resize is completed.

public void dtp_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            RadDateTimePicker dtPicker = sender as RadDateTimePicker;
 
            var x = dtPicker.DataContext;
 
            SchedulingGanttTask dpGanttObject = ((SchedulingGanttTask)dtPicker.DataContext);
 
            if (dpGanttObject.Type.ToLower() == "Operation".ToLower())
            {
                if (dtPicker.Name.ToString() == "Start")
                {
                    dpGanttObject.Operation.PlannedStart = dtPicker.SelectedValue.Value;
                    //Checken op we order START/END ook moeten aanpassen
                    if (dpGanttObject.Operation.PlannedStart < dpGanttObject.Order.PlannedStart) //Indien operationStart < orderStart
                        dpGanttObject.Order.PlannedStart = dpGanttObject.Operation.PlannedStart;
                }
 
                if (dtPicker.Name.ToString() == "End")
                {
                    dpGanttObject.Operation.PlannedEnd = dtPicker.SelectedValue.Value;
                    //Checken op we order START/END ook moeten aanpassen
                    if (dpGanttObject.Operation.PlannedEnd > dpGanttObject.Order.PlannedEnd)           //Indien operationEnd > orderEnd
                        dpGanttObject.Order.PlannedEnd = dpGanttObject.Operation.PlannedEnd;
                }
            }
            else
            {
                if (dtPicker.Name.ToString() == "Start")
                    dpGanttObject.Order.PlannedStart = dtPicker.SelectedValue.Value;
 
                if (dtPicker.Name.ToString() == "End")
                    dpGanttObject.Order.PlannedEnd = dtPicker.SelectedValue.Value;    
            }
        }

0
Yana
Telerik team
answered on 27 Apr 2016, 07:33 AM
Hello Marnix,

I am sorry for the delayed reply.

In this case I'd suggest you use TaskEdited event of the GanttView as it is raised when a task property is updated through the UI - it will be fired after resize, dragdrop as well as editing in the Grid part of the control.

Please try it and let us know whether it's suitable to you.

Regards,
Yana
Telerik
Do you need help with upgrading your AJAX, WPF or WinForms project? Check the Telerik API Analyzer and share your thoughts.
Tags
GanttView
Asked by
JIG
Top achievements
Rank 1
Answers by
Yana
Telerik team
JIG
Top achievements
Rank 1
Share this question
or