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

Please tell me GanttView

16 Answers 455 Views
GanttView
This is a migrated thread and some comments may be shown as answers.
HyeonSu
Top achievements
Rank 1
HyeonSu asked on 17 Jul 2017, 06:09 AM

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]

 

16 Answers, 1 is accepted

Sort by
0
Polya
Telerik team
answered on 19 Jul 2017, 12:31 PM
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.
0
HyeonSu
Top achievements
Rank 1
answered on 25 Jul 2017, 06:54 AM

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?

0
Polya
Telerik team
answered on 27 Jul 2017, 03:19 PM
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.
0
HyeonSu
Top achievements
Rank 1
answered on 31 Jul 2017, 07:34 AM

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

0
HyeonSu
Top achievements
Rank 1
answered on 02 Aug 2017, 12:58 AM

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

0
Accepted
Polya
Telerik team
answered on 02 Aug 2017, 02:48 PM
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.
0
HyeonSu
Top achievements
Rank 1
answered on 04 Aug 2017, 06:10 AM

 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)

0
HyeonSu
Top achievements
Rank 1
answered on 04 Aug 2017, 06:21 AM

Oh.. Sorry never mind above question.

I solved it. Thank you.

0
Polya
Telerik team
answered on 04 Aug 2017, 01:33 PM
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.
0
HyeonSu
Top achievements
Rank 1
answered on 22 Aug 2017, 09:27 AM

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

0
Polya
Telerik team
answered on 25 Aug 2017, 08:15 AM
Hello HyeonSu,

Regarding the first question about the horizontal scroll - this behavior is not supported in the non touch version of the RadGanttView control. In the WPF framework such behavior is provided by the default ScrollViewer control which uses some OS framework functionality and APIs. These functionalities and APIs are automatically enabled when a touch device is detected by the Windows OS environment. Achieving such behavior in the non touch enabled version of the RadGanttView or any default ScrollViewer control would require implementation of custom drag and drop and scrolling functionality. We are not aware of an easy approach which could be used for achieving such behavior.

Regarding the baseline - I can suggest taking a look at our Baseline developer focused example: https://github.com/telerik/xaml-sdk/tree/master/GanttView/Baseline and let us know whether this is the desired functionality. If not could you please provide more information on what you wish to achieve.

Also we would need more information regarding the loading bar - where do you wish to display it, which example are you referring to?

More detailed information and pictures will help us better understand your requirements so we can assist further.

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.
0
HyeonSu
Top achievements
Rank 1
answered on 03 Sep 2017, 11:16 PM

Hello Polya,

I have tried to apply Ctrl + Mouse Wheel Zoom, I finally make it now.
but I have a problem in this function.

The problem is

when I do Mouse wheel with Ctrl, I don't want to move Gantt-View screen up&down.
I can't not find any related method or settings.
Please tell me solutions about this problem.

+ past questions

(1) loading bar (progress bar) - when I load Gantt View, there is a gap loading the tasks, so I need progress bar to show its not problem (just loading the lots of tasks).

Thank you, Sincerely
HyeonSu

 

0
HyeonSu
Top achievements
Rank 1
answered on 03 Sep 2017, 11:38 PM

Sorry, I have to change my question.

 

Scroll disable -> how to focus Gantt View?
I made the Ctrl + Wheel zoom, but I cant not find focus function.
Please tell me how to do this

0
Polya
Telerik team
answered on 06 Sep 2017, 02:40 PM
Hi HyeonSu,

I've prepared a sample project demostrating how to use progress bar for loading the TaskSource of the RadGanttView and then show the control itself. Please find the project attached. I can also suggest taking a look at our QSF "Scrolling Performance" demo that demonstrates how to achieve a similar scenario using a RadBusyIndicator: http://demos.telerik.com/wpf/ : GanttView->Scrolling Performance.

Regarding the focusing of the RadGanttView - in the attached project you can take a look at the RandomTasksGeneratorCompleted() method where I'm calling the Focus() function of RadGanttView. This way when the loading is complete the focused element will be the RadGanttView. If you remove this line of code you can see that the focused element is the top-right TextBox.

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.
0
Wei
Top achievements
Rank 1
answered on 23 Oct 2019, 08:05 AM

Hi Admin, 

Is it possible for me to set the timeruler in Rad Gantt View using radio buttons? For example, when I click on year, the timeruler will change to 2001, 2002, 2003. When i click on month, the timeruler will change to Jan, Feb, March and so on 

0
Vladimir Stoyanov
Telerik team
answered on 25 Oct 2019, 02:12 PM

Hello Wei,

May I ask you to check out the TimeRulerLines property of the RadGanttView? It allows you to customize the count and the types of intervals visible in the TimeRuler portion of the RadGanttView.

I hope you find this helpful.

Regards,
Vladimir Stoyanov
Progress Telerik

Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
Tags
GanttView
Asked by
HyeonSu
Top achievements
Rank 1
Answers by
Polya
Telerik team
HyeonSu
Top achievements
Rank 1
Wei
Top achievements
Rank 1
Vladimir Stoyanov
Telerik team
Share this question
or