Scheduler timeline Reversed

4 posts, 1 answers
  1. arsalanelec
    arsalanelec avatar
    2 posts
    Member since:
    Mar 2015

    Posted 25 May 2017 Link to this post

    Hi,

    i have a problem with timeline in scheduler. the timline start to end is from right to left instead of left to right. i set the "righrToLeft" to false and also i changed the culture to en-US but no effect.

    another question is about the Appointment text in Persion or Arabic.how can show the Text Correctly? currectly the Words are in Revese direction. i just found a solution by disable the useHtml in appointmentElement.

    please help me!

    thanks in advanced

  2. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3047 posts

    Posted 25 May 2017 Link to this post

    Hello , 

    Thank you for writing.  

    RadScheduler supports the right to left mode. Please refer to the following help article: http://docs.telerik.com/devtools/winforms/scheduler/localization/right-to-left-support
     
    As to the question about reversed text of the appointments, it is a known issue. You can track its progress, subscribe for status changes and add your comments on the following link: https://feedback.telerik.com/Project/154/Feedback/Details/174806-fix-radscheduler-persian-text-is-rendered-in-reversed-order-in-appointmentelem
    As you have already found out, the possible solution is to set the AppointmentElement.UseHtml property to false.

    I hope this information helps. Should you have further questions I would be glad to help.
    Regards,
    Dess
    Progress Telerik
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
  3. arsalanelec
    arsalanelec avatar
    2 posts
    Member since:
    Mar 2015

    Posted 25 May 2017 in reply to Dess | Tech Support Engineer, Sr. Link to this post

    Thanks for your answer. my problem was in    :

     ((Telerik.WinControls.UI.RadSchedulerElement)(this.radScheduler1.GetChildAt(0))).RightToLeft = true;

    it changed accidentally in designer. but i found there is a bug in RadScheduler  RightToLeft  mode. the appointment mouse resizing working in reverse so if i want to append to the left i should drag the right button and vise versa! its not depend on text language.

  4. Answer
    Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3047 posts

    Posted 26 May 2017 Link to this post

    Hello,

    Thank you for writing back.

    I have logged it in our feedback portal and I have added a vote for it on your behalf. You can track its progress, subscribe for status changes and add your comments on the following link - feedback item.

    I have also updated your Telerik points.

    Currently, the possible solution that I can suggest is to use a custom AppointmentResizingBehavior:  

    this.radScheduler1.SchedulerElement.ResizeBehavior = new MyResizingBehavior(this.radScheduler1.SchedulerElement);


    public class MyResizingBehavior : AppointmentResizingBehavior
    {
        RadScheduler scheduler;
     
        public MyResizingBehavior(SchedulerVisualElement activeOwner)
            : base(activeOwner)
        {
            scheduler = activeOwner.Scheduler;
        }
     
        protected override bool UpdateMouseCursor(Point mousePosition, Rectangle nearRect, Rectangle farRect)
        {
            bool result = base.UpdateMouseCursor(mousePosition, nearRect, farRect);
            if (scheduler.RightToLeft == RightToLeft.Yes )
            {
                FieldInfo leftFI = typeof(AppointmentResizingBehavior).GetField("leftResize", BindingFlags.NonPublic | BindingFlags.Instance);
                FieldInfo rightFI = typeof(AppointmentResizingBehavior).GetField("rightResize", BindingFlags.NonPublic | BindingFlags.Instance);
     
                if (nearRect.Contains(mousePosition) && scheduler.Cursor == Cursors.SizeWE)
                {
                    leftFI.SetValue(this, false);
                    rightFI.SetValue(this, true);
                }
                else if (farRect.Contains(mousePosition) && scheduler.Cursor == Cursors.SizeWE)
                {
                    leftFI.SetValue(this, true);
                    rightFI.SetValue(this, false);
                }
            }
            return result;
        }
    }

    Regards,
    Dess
    Progress Telerik
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
Back to Top