Please tell me GanttView

11 posts, 1 answers
  1. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 17 Jul Link to this post

    Hello, Progress Telerik adminitrators.

    Our team was going to apply Gantt Chart by Winform, but we have to change for this reason.
    REF ) http://www.telerik.com/forums/show-multiple-tasks-on-one-line-in-gantt-view
    Therefore, I am looking forward to apply Telerik WPF GanttView in our team project.

    So, We tested Telerik WPF GanttView several ways.
    I want to know, Are our tests doing right?

           Supported : 1. Timeline in milliseconds (0.001s) 
           Supported : 2. Hierarchy structure + Multiple task in a line
           Supported : 3. When clicking a task, show Guideline (start time, end time) / Not tasks, only one task 
           Supported : 4. Rearrange task (sort fast start time first etc..)

     Not Supported : 1. Zoom-In Zoom-Out by [Ctrl + MouseWheel] Horizontal axis / [Shift + MouseWheel] Vertical axis

    But We have a big problem, WPF is too slow in our test Project.
    We made 20000 sample start time&end time data.(1 line - 10000  task).
    but it is too slow to render to the screen (almost 3 minutes above)

    How to make it faster? If you need our test project,
    I will send you an email. if you tell me leave your e-mail address.

    Regards, Hyeons

    [Attached our demo projects screenshot]

     

  2. Polya
    Admin
    Polya avatar
    235 posts

    Posted 19 Jul Link to this post

    Hello HyeonSu,

    Based on the provided information I've prepared a sample project that contains 10000 GanttTasks with about 100 recurrences for each task. The project is based on our developer focused example about Recurring tasks on single row: https://github.com/telerik/xaml-sdk/tree/master/GanttView/SameRowRecurringTask.
    In it I've modified the TimeRulerRecurreceBehavior.GetAllChildren method to use only the recurrent tasks that are in the visible time range, which improves the performance significantly as it limits the containers to be rendered.
    You can find the project attached. Hope this helps.

    Regards,
    Polya
    Progress Telerik
    Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
  3. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 25 Jul in reply to Polya Link to this post

    how about mililiseconds and zoom-in & zoom-out?
    (I think default setting is a minute.. I want to change minimum a second...)

    I cant find any related options and settings from WPF...
    Please tell me how to make it?

  4. Polya
    Admin
    Polya avatar
    235 posts

    Posted 27 Jul Link to this post

    Hi HyeonSu,

    Regarding the use of seconds - you can use the TimeRulerLines property to customize the type of the intervals in the TimeRuler area of the RadGanttView and set its TickInterval to OneSecond or FiveSeconds. You can find more information in this help article: http://docs.telerik.com/devtools/wpf/controls/radganttview/features/timeruler/configuring#timerulerlines-property

    Regarding the zoom in/out - it can be achieved by changing the PixelLength of RadGanttView. We have a great example demonstrating the zoom functionality in our QSF demos: http://demos.telerik.com/wpf/ -> GanttView -> First Look example.

    Hope this helps.

    Regards,
    Polya
    Progress Telerik
    Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
  5. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 31 Jul in reply to Polya Link to this post

    Thank you very much, Polya

    I'm really satisfied for your answer.
    So I resolved zoom in/out problem and time intervals.

    Now, I have 2 more questions.

    1.

    I want to change each tasks height instantly, 
    In other words, I can change X-axis ratio (time interval) , but I don't know how to change Y-axis ratio.
    Is It possible to change? I want to know it is support or not.

     

    2.

    I want to change RadGanttView tooltip.
    In the tooltip, I can show Title, Start (date), End (date) now.

    but I want to customize its contents.
    I want to change (Start => yyyyMMdd hhmmss ) to  ( Start => yyyyMMdd hhmmss.fff )
    yes, I want to show Milliseconds information in the tooltip.

    More over I want to chnage column info too. Could you tell me the mothod to solve my needs.
    Thank you. I will wait your answer

  6. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 01 Aug in reply to HyeonSu Link to this post

    We have an another question.

    3. I move the scroll in the Gantt chart and When tasks are straddled between visible and invisible parts, there are symptoms that the tasks disappear. So long period tasks are completely disappear. how can I solve this problem?

    If you want to check Code. I e-mail you.

     

    Thank you. I will wait your answer

  7. Answer
    Polya
    Admin
    Polya avatar
    235 posts

    Posted 02 Aug Link to this post

    Hello HyeonSu,

    In order to change the row height of the RadGanttView we need to change the MinHeight of all the CellContainers so there is no discrepancy in the heights when a cell is in edit mode or when it has a set DataTemplate for it. Also in order for the RelationContainers to appear correctly positioned in the middle of the EventContainers we need to change their Margin accordingly ( = the new MinHeight/2 ):
    1) Change the SimpleCellContainerStyle, CellContainerStyle, CellEditingContainerStyle and SimpleTreeCellContainerStyle to set the MinHeight to the desired value.
    2) Change the RelationContainerStyle and DragRelationSlotContainerStyle to modify the Margin and set the Top and Left margin to MinHeight/2.

    Regarding your second question: In order to modify the ToolTip when the mouse hovers over an event container you need to modify the default EventContainerStyle and customizing its EventToolTipTemplate in the desired way.

    If you also need to modify the ToolTip when the task gets dragged or re-sized you also need to modify the GanttDragResizeVisualCueTemplate of the GanttDragResizeVisualCueStyle.

    Regarding the third question, I'm afraid that we would need a project demonstrating your scenario. You will have to open a support ticket and attach the project there as in the forum only image attachments are allowed. Please have in mind that only users with an active trial or paid license are eligible to access the support ticketing system.
    You could take a look at our Support Plans for more details.

    Regards,
    Polya
    Progress Telerik
    Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
  8. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 04 Aug Link to this post

     Thank you for your detail answer.

    I found the cause of the third question.
    When I talked about speed improvement last time, You give me a demo that renders the task quickly that i can see in the screen.

    ================================================ this is that demo code

    private IEnumerable<IEventInfo> GetAllChildren(TimeLineVisualizationState state, int index, HierarchicalItem hierarchicalItem) {
             var recurringTask = hierarchicalItem.SourceItem as RecurrenceTask;
             if (recurringTask != null) {
                      var visibleRecurences = recurringTask.Recurrences.Where( t => t.End.Ticks <= state.VisibleTimeRange.End &&                        t.Start.Ticks >= state.VisibleTimeRange.Start ); // this part
                      foreach (var recurrence in visibleRecurences) {  // actually this code was actually  recurringTask.Recurrences
                                    var roundedRecurrence = state.Rounder.Round( new DateRange( recurrence.Start, recurrence.End ) );
                                    var range = new Range<long>( roundedRecurrence.Start.Ticks, roundedRecurrence.End.Ticks );
                                    yield return new TimeLineRecurrenceEventInfo( range, hierarchicalItem.Index ) { OriginalEvent = recurrence };
                       }
              }
    }

    The problem was visible range...

    if I use visibleRecurences -> I can only see tasks that fully in the screen (a part of the tasks are disappear). but fast..
    On the other hand, I use recurringTask.Recurrences -> I can see all tasks without disappear
    (Even things that are not visible on the screen)  but it's too slow.

    How can I solve this problem? I want to see without disappear and to render quickly.

    I will wait for your complement answer.
    After verifying all the our customer's requirements (needs), team is willing to buy telerik WPF products. (verifying first)

  9. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 04 Aug in reply to HyeonSu Link to this post

    Oh.. Sorry never mind above question.

    I solved it. Thank you.

  10. Polya
    Admin
    Polya avatar
    235 posts

    Posted 04 Aug Link to this post

    Hi HyeonSu,

    I am glad to hear that the issue is resolved.

    Regards,
    Polya
    Progress Telerik
    Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
  11. HyeonSu
    HyeonSu avatar
    11 posts
    Member since:
    May 2017

    Posted 1 day and 8 hours ago Link to this post

    Hello Polya,

    I have three problems to proceed our POC.
    I need your help.

    1. I want to Panning Gantt View . In other words, I want to move screen (not a task) click and move mouse.
    What event should I use?

    2. I want to display a baseline on the GanttView. I wish the baseline can move and can measure the time-value at the point

    3. how could I display progress bar (loading bar), I want a example code or detailed explanation(I can not understand description on docs)

    Thanks, Sincerely

Back to Top