コード例 #1
0
        public Form1()
        {
            InitializeComponent();
            FillResources(schedulerDataStorage1, 5);
            InitAppointments();

            schedulerControl1.Start          = DateTime.Now;
            schedulerControl1.ActiveViewType = SchedulerViewType.Timeline;
            schedulerControl1.Appearance.Appointment.ForeColor = Color.Gray;
            schedulerControl1.TimelineView.AppointmentDisplayOptions.SnapToCellsMode   = AppointmentSnapToCellsMode.Never;
            schedulerControl1.TimelineView.AppointmentDisplayOptions.StatusDisplayType = AppointmentStatusDisplayType.Bounds;
            schedulerControl1.DayView.AppointmentDisplayOptions.SnapToCellsMode        = AppointmentSnapToCellsMode.Never;
            schedulerControl1.DayView.AppointmentDisplayOptions.StatusDisplayType      = AppointmentStatusDisplayType.Bounds;
            schedulerControl1.TimelineView.Scales.Clear();
            schedulerControl1.TimelineView.Scales.Add(new TimeScaleDay());
            schedulerControl1.TimelineView.Scales.Add(new TimeScaleHour());
            schedulerControl1.TimelineView.Scales[1].Width = 100;


            TimelineView view = schedulerControl1.ActiveView as TimelineView;

            view.AppointmentDisplayOptions.AllowHtmlText = true;

            UpdateControls();
        }
コード例 #2
0
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);
            var unit  = new UnitsView("unit1", "section_id");

            sched.Views.Add(unit);

            var timeline = new TimelineView("timeline", "section_id")
            {
                RenderMode = TimelineView.RenderModes.Bar,
                X_Unit     = TimelineView.XScaleUnits.Day,
                X_Size     = 7,
                X_Date     = "%d"
            };

            sched.Views.Add(timeline);


            var list_name = "sections";

            unit.ServerList     = list_name;
            timeline.ServerList = list_name;

            sched.Config.show_loading = true;

            // check LoadTimelineSections/Index.cshtml for a client-side settings
            sched.BeforeInit.Add("customEvents()");

            sched.InitialView = timeline.Name;
            return(View(sched));
        }
コード例 #3
0
        // GET: MVCFormInLightbox
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);

            sched.LoadData            = true;
            sched.EnableDataprocessor = true;

            var timeline = new TimelineView("timeline", "room_id")
            {
                RenderMode = TimelineView.RenderModes.Bar
            };

            sched.XY.scale_height = 40;
            timeline.X_Date       = "%d<br>%D";
            timeline.FitEvents    = false;
            sched.Views.Add(timeline);

            timeline.AddOptions(new List <object> {
                new { key = 1, label = "first" },
                new { key = 2, label = "second" },
                new { key = 3, label = "third" },
                new { key = 4, label = "fourth" }
            });
            //view, width, height
            var box = sched.Lightbox.SetExternalLightbox("MVCFormInLightbox/LightboxControl", 420, 195);

            //css class to be applied to the form
            box.ClassName     = "custom_lightbox";
            sched.InitialDate = new DateTime(2011, 9, 5);

            //try in new skin
            //sched.Skin = DHXScheduler.Skins.Terrace;

            return(View(sched));
        }
コード例 #4
0
        public void OneContextTwoNodes()
        {
            Gtk.Application.Init();

            string    context = "Context1";
            TestModel model   = new TestModel();

            /*INode nodeA = */ model.CreateAddNode(10, context, new Size(80, 50));
            /*INode nodeB = */ model.CreateAddNode(20, context, new Size(100, 40));
            TimelineLayoutManager layout = new TimelineLayoutManager(model);

            layout.Update();

            TestRenderer renderer = new TestRenderer();
            TimelineView view     = new TimelineView(model, renderer);

            Gtk.Widget[] children = view.Children;

            Assert.That(children.Length, Is.EqualTo(2));

            Assert.That(children[0].Visible, Is.True);
            Assert.That(children[1].Visible, Is.True);

            int ax = (int)view.ChildGetProperty(children[0], "x").Val;
            int ay = (int)view.ChildGetProperty(children[0], "y").Val;
            int bx = (int)view.ChildGetProperty(children[1], "x").Val;
            int by = (int)view.ChildGetProperty(children[1], "y").Val;

            Assert.That(ay, Is.GreaterThan(0));
            Assert.That(ay, Is.EqualTo(by));

            Assert.That(ax, Is.GreaterThan(0));
            Assert.That(bx, Is.GreaterThan(0));
            Assert.That(ax, Is.Not.EqualTo(bx));
        }
コード例 #5
0
ファイル: TimelineSlider.cs プロジェクト: radtek/Shopdrawing
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);
            if (!this.isLeftButtonDown || !this.IsSelected)
            {
                return;
            }
            Point position = e.MouseDevice.GetPosition((IInputElement)null);

            if (position == this.previousAbsoluteMousePosition)
            {
                return;
            }
            this.previousAbsoluteMousePosition = position;
            if (!this.haveMoved)
            {
                this.haveMoved = true;
                ValueEditorUtils.ExecuteCommand((ICommand)this.GetValue(TimelineSlider.SlideBeginCommandProperty), (IInputElement)this, (object)null);
                this.autoScrollTimer       = TimelineView.CreateAutoScrollTimer();
                this.autoScrollTimer.Tick += new EventHandler(this.AutoScrollTimer_Tick);
                this.autoScrollTimer.Start();
            }
            this.Value = this.ComputeValueFromPosition(e.MouseDevice.GetPosition(this.GetReferenceElement()));
            ValueEditorUtils.ExecuteCommand((ICommand)this.GetValue(TimelineSlider.SlideCommandProperty), (IInputElement)this, (object)null);
            this.BringIntoView(this.viewRect);
        }
コード例 #6
0
 public TimeLineViewHolder(View itemView, int viewType)
     : base(itemView)
 {
     name          = itemView.FindViewById <TextView>(Resource.Id.tx_name);
     mTimelineView = itemView.FindViewById <TimelineView>(Resource.Id.time_marker);
     mTimelineView.InitLine(viewType);
 }
コード例 #7
0
        private void UpdateCenter()
        {
            double num = TimelineView.PositionFromSeconds(this.timelineView.CurrentTime);

            this.wasCurrentTimeVisible = num >= this.ScrollBar.Value && num <= this.ScrollBar.Value + this.visibleWidth;
            this.centerTime            = TimelineView.SecondsFromPosition(this.ScrollBar.Value + this.visibleWidth / 2.0);
        }
コード例 #8
0
        /// <summary>
        /// Add resources views - units and timeline
        /// </summary>
        /// <returns></returns>
        public ActionResult MultipleResources()
        {
            var scheduler = new DHXScheduler(this);
            scheduler.Skin = DHXScheduler.Skins.Terrace;
            var rooms = new DHXSchedulerModelsDataContext().Rooms.ToList();

            scheduler.Views.Clear();
            scheduler.Views.Add(new MonthView());

            var unit = new UnitsView("unit", "room_id");
            unit.AddOptions(rooms);//parse model objects
            scheduler.Views.Add(unit);

            var timeline = new TimelineView("timeline", "room_id");
            timeline.RenderMode = TimelineView.RenderModes.Bar;
            timeline.FitEvents = false;
            timeline.AddOptions(rooms);
            scheduler.Views.Add(timeline);

            //show timeline view by default
            scheduler.InitialView = timeline.Name;

            scheduler.Lightbox.AddDefaults();//add default set of options - text and timepicker
            //add controls to the details form
            var select = new LightboxSelect("room_id", "Room id");
            select.AddOptions(rooms);
            scheduler.Lightbox.Add(select);

            scheduler.LoadData = true;
            scheduler.InitialDate = new DateTime(2011, 9, 7);
            scheduler.EnableDataprocessor = true;

            return View(scheduler);
        }
コード例 #9
0
        void ReleaseDesignerOutlets()
        {
            if (CircleView != null)
            {
                CircleView.Dispose();
                CircleView = null;
            }

            if (TimelineView != null)
            {
                TimelineView.Dispose();
                TimelineView = null;
            }

            if (TitleLabel != null)
            {
                TitleLabel.Dispose();
                TitleLabel = null;
            }

            if (TimeLineViewTopConstraint != null)
            {
                TimeLineViewTopConstraint.Dispose();
                TimeLineViewTopConstraint = null;
            }

            if (TimeLineBottomConstraint != null)
            {
                TimeLineBottomConstraint.Dispose();
                TimeLineBottomConstraint = null;
            }
        }
コード例 #10
0
        public ActionResult DragBetween()
        {
            //each scheduler must have unique name
            var scheduler = new DHXScheduler("sched1");

            scheduler.Extensions.Add(SchedulerExtensions.Extension.DragBetween);
            scheduler.InitialView = scheduler.Views[scheduler.Views.Count - 1].Name;


            var scheduler2 = new DHXScheduler("sched2");
            var timeline   = new TimelineView("timeline", "room_id");

            timeline.RenderMode = TimelineView.RenderModes.Bar;

            var rooms = new List <object>();

            for (var i = 1; i < 10; i++)
            {
                rooms.Add(new { key = i, label = string.Format("Room #{0}", i) });
            }

            timeline.FitEvents = false;
            scheduler2.Views.Add(timeline);
            timeline.AddOptions(rooms);
            timeline.X_Unit = TimelineView.XScaleUnits.Hour;
            timeline.X_Size = 18;
            timeline.AddSecondScale(TimelineView.XScaleUnits.Day, "%j, %M");
            timeline.X_Step        = 4;
            scheduler2.InitialView = timeline.Name;

            return(View(new mod()
            {
                sh1 = scheduler, sh2 = scheduler2
            }));
        }
コード例 #11
0
 public TimelineViewSelectionEventArgs(TimelineView view, float begin, float end, float lastBegin, float lastEnd) : base(view)
 {
     this.beginTime     = begin;
     this.endTime       = end;
     this.lastBeginTime = lastBegin;
     this.lastEndTime   = lastEnd;
 }
コード例 #12
0
        public static ContentView AsView(this PageType type)
        {
            ContentView view = null;

            switch (type)
            {
            case PageType.Analysis:
                view = new AnalysisView();
                break;

            case PageType.Favorites:
                view = new FavoritesView();
                break;

            case PageType.Gallery:
                view = new GalleryView();
                break;

            case PageType.Home:
                view = new UploadView();
                break;

            case PageType.Search:
                view = new SearchResultsView();
                break;

            case PageType.Timeline:
                view = new TimelineView();
                break;
            }

            return(view);
        }
コード例 #13
0
ファイル: TimelineViewTest.cs プロジェクト: SayHalou/ospy
        public void OneContextTwoNodes()
        {
            Gtk.Application.Init ();

            string context = "Context1";
            TestModel model = new TestModel();
            /*INode nodeA = */model.CreateAddNode(10, context, new Size(80, 50));
            /*INode nodeB = */model.CreateAddNode(20, context, new Size(100, 40));
            TimelineLayoutManager layout = new TimelineLayoutManager(model);
            layout.Update();

            TestRenderer renderer = new TestRenderer();
            TimelineView view = new TimelineView(model, renderer);

            Gtk.Widget[] children = view.Children;

            Assert.That(children.Length, Is.EqualTo(2));

            Assert.That(children[0].Visible, Is.True);
            Assert.That(children[1].Visible, Is.True);

            int ax = (int) view.ChildGetProperty(children[0], "x").Val;
            int ay = (int) view.ChildGetProperty(children[0], "y").Val;
            int bx = (int) view.ChildGetProperty(children[1], "x").Val;
            int by = (int) view.ChildGetProperty(children[1], "y").Val;

            Assert.That(ay, Is.GreaterThan(0));
            Assert.That(ay, Is.EqualTo(by));

            Assert.That(ax, Is.GreaterThan(0));
            Assert.That(bx, Is.GreaterThan(0));
            Assert.That(ax, Is.Not.EqualTo(bx));
        }
コード例 #14
0
ファイル: PlaysTimeline.cs プロジェクト: kuggaa/VAS
 protected void AddTimeline(TimelineView timelineView, IViewModel viewModel)
 {
     AddObject(timelineView);
     if (timelineView is EventTypeTimelineView)
     {
         viewModelToView [viewModel] = timelineView;
     }
 }
コード例 #15
0
        public TimelineEditorComponent(MyGUIViewHost viewHost, TimelineEditorView view, SaveableClipboard clipboard)
            : base("Medical.GUI.Editor.TimelineEditor.TimelineEditorComponent.layout", viewHost)
        {
            Widget window = this.widget;

            window.RootKeyChangeFocus += new MyGUIEvent(window_RootKeyChangeFocus);

            this.clipboard          = clipboard;
            this.editorController   = view.EditorController;
            this.propEditController = view.PropEditController;

            this.timelineController = view.TimelineController;
            timelineController.TimelinePlaybackStarted += timelineController_TimelinePlaybackStarted;
            timelineController.TimelinePlaybackStopped += timelineController_TimelinePlaybackStopped;
            timelineController.TimeTicked += timelineController_TimeTicked;

            window.KeyButtonReleased += new MyGUIEvent(window_KeyButtonReleased);

            //Play Button
            playButton = window.findWidget("PlayButton") as Button;
            playButton.MouseButtonClick += new MyGUIEvent(playButton_MouseButtonClick);

            fastForwardButton = window.findWidget("FastForward") as Button;
            fastForwardButton.MouseButtonClick += new MyGUIEvent(fastForwardButton_MouseButtonClick);

            rewindButton = window.findWidget("Rewind") as Button;
            rewindButton.MouseButtonClick += new MyGUIEvent(rewindButton_MouseButtonClick);

            //Timeline view
            ScrollView timelineViewScrollView = window.findWidget("ActionView") as ScrollView;

            timelineView                     = new TimelineView(timelineViewScrollView);
            timelineView.KeyReleased        += new EventHandler <KeyEventArgs>(timelineView_KeyReleased);
            timelineView.ActiveDataChanging += new EventHandler <CancelEventArgs>(timelineView_ActiveDataChanging);
            timelineView.MarkerMoved        += new EventDelegate <TimelineView, float>(timelineView_MarkerMoved);
            timelineView.ActiveDataChanged  += new EventHandler(timelineView_ActiveDataChanged);

            //Track filter
            ScrollView trackFilterScrollView = window.findWidget("ActionFilter") as ScrollView;

            actionFilter = new TrackFilter(trackFilterScrollView, timelineView);
            actionFilter.AddTrackItem += new AddTrackItemCallback(actionFilter_AddTrackItem);

            numberLine = new NumberLine(window.findWidget("NumberLine") as ScrollView, timelineView);

            //Add tracks to timeline.
            buildTrackActions();
            foreach (TimelineActionPrototype action in actionDataManager.Prototypes)
            {
                timelineView.addTrack(action.TypeName);
            }

            //Enabled = false;

            ViewHost.Context.getModel <EditMenuManager>(EditMenuManager.DefaultName).setMenuProvider(this);
        }
コード例 #16
0
        public ActionResult Index()
        {
            var locale       = SchedulerLocalization.Localizations.English;
            var skin         = DHXScheduler.Skins.Standart;
            var request_lang = this.Request.QueryString["language"];
            var request_skin = this.Request.QueryString["skin"];

            if (!string.IsNullOrEmpty(request_lang))
            {
                locale = (SchedulerLocalization.Localizations)Enum.Parse(typeof(SchedulerLocalization.Localizations), request_lang);
            }
            if (!string.IsNullOrEmpty(request_skin))
            {
                skin = (DHXScheduler.Skins)Enum.Parse(typeof(DHXScheduler.Skins), request_skin);
            }


            var scheduler = new DHXScheduler(this);

            scheduler.Skin = skin;
            scheduler.Localization.Set(locale);


            scheduler.InitialDate = new DateTime(2011, 11, 24);

            scheduler.XY.scroll_width          = 0;
            scheduler.Config.first_hour        = 8;
            scheduler.Config.last_hour         = 19;
            scheduler.Config.time_step         = 30;
            scheduler.Config.multi_day         = true;
            scheduler.Config.limit_time_select = true;

            scheduler.Localization.Directory = "locale";


            var rooms = Repository.Rooms.ToList();

            var unit = new UnitsView("unit1", "room_id");

            unit.AddOptions(rooms);
            scheduler.Views.Add(unit);

            var timeline = new TimelineView("timeline", "room_id");

            timeline.RenderMode = TimelineView.RenderModes.Bar;
            timeline.FitEvents  = false;

            timeline.AddOptions(rooms);
            scheduler.Views.Add(timeline);


            scheduler.EnableDataprocessor = true;
            scheduler.LoadData            = true;
            scheduler.InitialDate         = new DateTime(2011, 9, 19);
            return(View(new LocaleData(scheduler, locale.ToString(), skin.ToString())));
        }
コード例 #17
0
        public OffsetSequenceEditor(SaveableClipboard clipboard, MyGUIViewHost viewHost, OffsetSequenceEditorView view, MedicalController medicalController)
            : base("Medical.GUI.OffsetSequence.OffsetSequenceEditor.layout", viewHost)
        {
            this.clipboard         = clipboard;
            this.medicalController = medicalController;
            this.simObjectMover    = view.SimObjectMover;

            widget.KeyButtonReleased  += new MyGUIEvent(window_KeyButtonReleased);
            widget.RootKeyChangeFocus += new MyGUIEvent(widget_RootKeyChangeFocus);

            //Remove button
            Button removeButton = widget.findWidget("RemoveAction") as Button;

            removeButton.MouseButtonClick += new MyGUIEvent(removeButton_MouseButtonClick);

            //Timeline view
            ScrollView timelineViewScrollView = widget.findWidget("ActionView") as ScrollView;

            timelineView                    = new TimelineView(timelineViewScrollView);
            timelineView.Duration           = Duration;
            timelineView.KeyReleased       += new EventHandler <KeyEventArgs>(timelineView_KeyReleased);
            timelineView.ActiveDataChanged += timelineView_ActiveDataChanged;

            //Properties
            ScrollView timelinePropertiesScrollView = widget.findWidget("ActionPropertiesScrollView") as ScrollView;

            actionProperties         = new TimelineDataProperties(timelinePropertiesScrollView, timelineView);
            actionProperties.Visible = false;
            actionProperties.addPanel("Offset Position", new OffsetKeyframeProperties(timelinePropertiesScrollView, this, view.UICallback));

            //Timeline filter
            ScrollView timelineFilterScrollView = widget.findWidget("ActionFilter") as ScrollView;

            trackFilter = new TrackFilter(timelineFilterScrollView, timelineView);
            trackFilter.AddTrackItem += new AddTrackItemCallback(trackFilter_AddTrackItem);

            numberLine = new NumberLine(widget.findWidget("NumberLine") as ScrollView, timelineView);

            //Add tracks to timeline.
            timelineView.addTrack("Offset Position");

            ViewHost.Context.getModel <EditMenuManager>(EditMenuManager.DefaultName).setMenuProvider(this);

            Button chooseTargetButton = (Button)widget.findWidget("ChooseTargetButton");

            chooseTargetButton.MouseButtonClick += chooseTargetButton_MouseButtonClick;

            targetLabel         = (TextBox)widget.findWidget("TargetLabel");
            targetLabel.Caption = DefaultTargetLabelText;

            CurrentSequence = view.Sequence;
        }
コード例 #18
0
        protected override void ShowMenu(Point coords)
        {
            TimelineView timeline = GetTimeline(coords);

            if (timeline as PeriodsTimelineView != null)
            {
                ShowPeriodsMenu(coords);
            }
            else
            {
                base.ShowMenu(coords);
            }
        }
コード例 #19
0
        public SolutionProgressView(
            IAsyncJobScheduler scheduler,
            IImportJobRepository importJobRepository,
            PluginViewModel viewModel,
            TimelineView timeline)
        {
            InitializeComponent();

            this.scheduler           = scheduler ?? throw new System.ArgumentNullException(nameof(scheduler));
            this.importJobRepository = importJobRepository ?? throw new System.ArgumentNullException(nameof(importJobRepository));
            this.viewModel           = viewModel;
            this.timeline            = timeline;
        }
コード例 #20
0
        public bool Execute()
        {
            if (OnOption.IsPresent)
            {
                TimelineView.Show();
            }

            if (OffOption.IsPresent)
            {
                TimelineView.Hide();
            }

            if (StartPlayback.IsPresent)
            {
                if (!TimelineView.Timeline.IsBusy)
                {
                    if (DoCommandWaitOnPlay)
                    {
                        DevCommandManager.Instance.StartWait();

                        TimelineView.PlayStopped += HandleTimelineViewPlayStopped;
                    }

                    TimelineView.Play();
                }
                else
                {
                    Debug.Log("Error:  Choreography already in progress");
                    return(false);
                }
            }

            // Currently this option would only work if you started choreography with the UI button (which works fine),
            // because if you start it with the dev command we set the 'wait gate' on dev commands (above)
            if (StopPlayback.IsPresent)
            {
                TimelineView.Stop();
            }

            if (InfoOption.IsPresent)
            {
                // NOTE: time does not accomodate for the eval
                var stepCount = TimelineView.Timeline.RecursiveStepCount;
                var duration  = TimelineView.Timeline.RecursiveDuration;
                var estimated = TimelineView.Timeline.RecursiveDurationIsEstimated;

                Debug.Log("Total steps: " + stepCount + "; total time: " + duration + " seconds; estimated:" + estimated);
            }

            return(true);
        }
コード例 #21
0
        public void WorkWithTimelineView()
        {
            // ExStart
            // ExFor: TimelineView
            // ExFor: TimelineView.#ctor
            // ExFor: TimelineView.DateFormat
            // ExFor: TimelineView.DisplayOverlapped
            // ExFor: TimelineView.ShowDates
            // ExFor: TimelineView.ShowPanZoom
            // ExFor: TimelineView.ShowTimescale
            // ExFor: TimelineView.ShowToday
            // ExFor: TimelineView.TextLinesCount
            // ExSummary: Shows how to work with <see cref="Aspose.Tasks.TimelineView" />.
            var project = new Project();

            // initialize a timeline view
            var view = new TimelineView();

            // set a value indicating how to format dates on the Timeline view.
            view.DateFormat = DateFormat.DateDddDd;
            // set a value indicating whether to display overlapped tasks on multiple rows.
            view.DisplayOverlapped = true;
            // set a value indicating whether to show pan and zoom control.
            view.ShowPanZoom = true;
            // set a value indicating whether to show timescale.
            view.ShowTimescale = true;
            // set a value indicating whether to display a line representing today.
            view.ShowToday = true;
            // set a value indicating how many lines are used to display task in a timeline.
            view.TextLinesCount = 2;

            // gets a value indicating whether to display overlapped tasks on multiple rows.
            Console.WriteLine("Show Dates: " + view.ShowDates);

            // add the view to the project
            project.Views.Add(view);

            // add some test data to project
            var task1 = project.RootTask.Children.Add("Task 1");

            task1.Set(Tsk.Start, new DateTime(2020, 4, 29, 8, 0, 0));
            task1.Set(Tsk.Duration, task1.ParentProject.GetDuration(24, TimeUnitType.Hour));
            var task2 = project.RootTask.Children.Add("Task 2");

            task2.Set(Tsk.Start, new DateTime(2020, 4, 29, 8, 0, 0));
            task2.Set(Tsk.Duration, task1.ParentProject.GetDuration(40, TimeUnitType.Hour));

            project.Save(OutDir + "SetTimeScaleCount_out.pdf", SaveFileFormat.PDF);
            // ExEnd
        }
コード例 #22
0
ファイル: PlaysTimeline.cs プロジェクト: kuggaa/VAS
        protected override void ShowMenu(Point coords)
        {
            TimelineView timeline = GetTimeline(coords);

            EventTypeTimelineView catTimeline = timeline as EventTypeTimelineView;

            if (catTimeline != null)
            {
                ShowPlaysMenu(coords, catTimeline);
            }
            else if (timeline as TimerTimelineView != null)
            {
                ShowTimersMenu(coords);
            }
        }
コード例 #23
0
ファイル: StringTrackView.cs プロジェクト: stahlnow/Timeliner
        public StringTrackView(TLStringTrack track, TimelineView tv, RulerView rv)
            : base(track, tv, rv)
        {
            Keyframes = new EditableList<StringKeyframeView>();

            KFSyncer = Keyframes.SyncWith(Model.Keyframes,
                                          kf =>
                                          {
                                          	var kv = new StringKeyframeView(kf, this);
                                          	kf.NeighbourChanged += NeedsRebuild;
                                          	var kfs = Model.Keyframes.ToList();
                                          	var prev = kfs.FindLastIndex(x => x.Time.Value < kf.Time.Value);
                                          	kv.AddToSceneGraphAt(KeyframeGroup, Keyframes.Count - 1 - prev);
                                          	return kv;
                                          },
                                          kv =>
                                          {
                                          	kv.Dispose();
                                          });

            Background.Click += Background_MouseClick;

            KeyframeDefinition.StartX = 0;
            KeyframeDefinition.StartY = -25f;
            KeyframeDefinition.EndX = 0;
            KeyframeDefinition.EndY = 25f;
            KeyframeDefinition.ID = Model.GetID() + "_KF";
            KeyframeDefinition.Transforms = new SvgTransformCollection();
            KeyframeDefinition.Transforms.Add(new SvgScale(1, 1));

            CollapsedKeyframeDefinition.ID = Model.GetID() + "_CKF";
            CollapsedKeyframeDefinition.StartX = 0;
            CollapsedKeyframeDefinition.StartY = -25f;
            CollapsedKeyframeDefinition.EndX = 0;
            CollapsedKeyframeDefinition.EndY = 25f;
            CollapsedKeyframeDefinition.Transforms = new SvgTransformCollection();
            CollapsedKeyframeDefinition.Transforms.Add(new SvgScale(1, 1));

            KeyframeGroup.ID = "Keyframes";

            CurrentValue.FontSize = 12;
            CurrentValue.X = 5;
            CurrentValue.CustomAttributes["class"] = "trackfont";
            CurrentValue.CustomAttributes["pointer-events"] = "none";
            CurrentValue.Y = 24;

            UpdateScene();
        }
コード例 #24
0
        public override Task <ActionResult> Execute(object sender, EventArgs args, object obj)
        {
            if (HasParent <ScrollBar>(args))
            {
                return(OK);
            }

            TimelineView view = sender as TimelineView;

            view.Append(new DetailView()
            {
                DataContext = ViewModel.SelectedTweet
            });

            return(OK);
        }
コード例 #25
0
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);
            var unit  = new UnitsView("unit1", "room_id");

            sched.Views.Add(unit);

            //can add IEnumerable of objects, native units or dictionary

            var rooms = Repository.Rooms.ToList();

            unit.AddOptions(rooms);//parse model objects
            sched.Config.details_on_create   = true;
            sched.Config.details_on_dblclick = true;

            var timeline = new TimelineView("timeline", "room_id")
            {
                RenderMode = TimelineView.RenderModes.Bar
            };

            sched.XY.scale_height = 40;
            timeline.X_Date       = "%d<br>%D";
            timeline.FitEvents    = false;
            sched.Views.Add(timeline);

            timeline.AddOptions(rooms);

            var select = new LightboxSelect("color", "Priority");

            select.AddOptions(new List <object> {
                new { key = "#ccc", label = "Low" },
                new { key = "#76B007", label = "Medium" },
                new { key = "#FE7510", label = "Hight" }
            });
            sched.Lightbox.Add(select);


            select = new LightboxSelect("room_id", "Room id");
            select.AddOptions(rooms);

            sched.Lightbox.Add(select);

            sched.LoadData            = true;
            sched.EnableDataprocessor = true;
            sched.InitialDate         = new DateTime(2011, 9, 5);
            return(View(sched));
        }
コード例 #26
0
        // GET: CustomScale
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);

            sched.Config.first_hour = 8;
            sched.Config.last_hour  = 18;
            sched.InitialDate       = new DateTime(2011, 9, 19);

            var rooms = Repository.Rooms.ToList();
            //new DHXSchedulerModelsDataContext().Rooms.ToList();
            var timeline = new TimelineView("timeline", "room_id");

            timeline.X_Unit = TimelineView.XScaleUnits.Hour;
            timeline.X_Size = 72;

            timeline.Scale.IgnoreRange(19, 23);
            timeline.Scale.IgnoreRange(0, 7);

            timeline.RenderMode = TimelineView.RenderModes.Bar;
            timeline.FitEvents  = false;


            sched.TimeSpans.Add(new DHXMarkTime
            {
                FullWeek = true,
                Zones    = new List <Zone> {
                    new Zone(8 * 60 + 10, 19 * 60 - 10)
                },
                CssClass    = "day_split",
                InvertZones = true,
                Sections    = new List <Section> {
                    new Section(timeline.Name, rooms.Select(r => r.key.ToString()).ToList())
                }
            });

            timeline.AddOptions(rooms);
            sched.Views.Add(timeline);
            sched.InitialView = timeline.Name;
            var week = sched.Views[1];

            week.Scale.Ignore((int)DayOfWeek.Saturday, (int)DayOfWeek.Sunday);


            sched.LoadData = true;

            return(View(sched));
        }
コード例 #27
0
        public override void Render(StringBuilder builder, DHXScheduler par)
        {
            if (!this.HandleDifferentResources)
            {
                return;
            }
            List <SchedulerView> schedulerViewList = new List <SchedulerView>();

            for (int index = 0; index < par.Views.Count; ++index)
            {
                if (par.Views[index] is UnitsView || par.Views[index] is TimelineView)
                {
                    schedulerViewList.Add(par.Views[index]);
                }
            }
            if (schedulerViewList.Count == 0)
            {
                return;
            }
            List <string> stringList = new List <string>();

            foreach (SchedulerView schedulerView in schedulerViewList)
            {
                UnitsView unitsView = schedulerView as UnitsView;
                if (unitsView != null)
                {
                    stringList.Add(unitsView.Property);
                }
                else
                {
                    TimelineView timelineView = schedulerView as TimelineView;
                    if (timelineView != null)
                    {
                        stringList.Add(timelineView.Y_Property);
                    }
                }
            }
            string[] strArray = new string[stringList.Count];
            for (int index = 0; index < stringList.Count; ++index)
            {
                strArray[index] = string.Format("(ev.{0} == evs[i].{0})", (object)stringList[index]);
            }
            builder.Append(string.Format("\n\t{0}.attachEvent(\"onEventCollision\", function(ev, evs){{ var c = 0, l = {0}.config.collision_limit;for (var i=0; i<evs.length; i++) {{  if (", (object)par.Name));
            builder.Append(string.Join("&&", strArray));
            builder.Append("&& ev.id != evs[i].id) c++; } return !(c < l);});");
        }
コード例 #28
0
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);

            sched.Skin = DHXScheduler.Skins.Terrace;
            var unit = new UnitsView("unit1", "room_id");

            sched.Views.Add(unit);


            var context = new DHXSchedulerDataContext();

            //can add IEnumerable of objects, native units or dictionary
            unit.AddOptions(context.Rooms);//parse model objects
            sched.Config.details_on_create   = true;
            sched.Config.details_on_dblclick = true;

            var timeline = new TimelineView("timeline", "room_id");

            var items = new List <object>();

            timeline.FitEvents = false;
            sched.Views.Add(timeline);
            timeline.AddOptions(context.Rooms);


            var select = new LightboxSelect("textColor", "Priority");

            items = new List <object>();
            items.Add(new { key = "gray", label = "Low" });
            items.Add(new { key = "blue", label = "Medium" });
            items.Add(new { key = "red", label = "Hight" });
            select.AddOptions(items);
            sched.Lightbox.Add(select);


            select = new LightboxSelect("room_id", "Room id");
            select.AddOptions(context.Rooms);
            sched.Lightbox.Add(select);

            sched.LoadData            = true;
            sched.EnableDataprocessor = true;
            sched.InitialDate         = new DateTime(2011, 9, 5);
            return(View(sched));
        }
コード例 #29
0
    protected void _ConfigureViews(DHXScheduler scheduler, IEnumerable cars)
    {
        var units = new TimelineView("Thue_Xes", "carid");

        units.X_Step   = 2;
        units.X_Length = 12;
        units.X_Size   = 12;
        //width of the first column
        units.Dx = 180;
        //row height
        units.Dy = 90;
        //order bar height
        units.EventDy = units.Dy - 10;
        units.AddOptions(cars);
        units.RenderMode = TimelineView.RenderModes.Bar;
        scheduler.Views.Clear();
        scheduler.Views.Add(units);
        scheduler.InitialView = scheduler.Views[0].Name;
    }
コード例 #30
0
        /// <summary>
        /// Add resources views - units and timeline
        /// </summary>
        /// <returns></returns>
        public ActionResult MultipleResources()
        {
            var scheduler = new DHXScheduler(this);

            scheduler.Skin = DHXScheduler.Skins.Terrace;
            var rooms = Repository.Rooms.ToList();

            scheduler.Views.Clear();
            scheduler.Views.Add(new MonthView());

            var unit = new UnitsView("unit", "room_id");

            unit.AddOptions(rooms);//parse model objects

            scheduler.Views.Add(unit);

            var timeline = new TimelineView("timeline", "room_id")
            {
                RenderMode = TimelineView.RenderModes.Bar,
                FitEvents  = false
            };

            timeline.AddOptions(rooms);
            scheduler.Views.Add(timeline);


            //show timeline view by default
            scheduler.InitialView = timeline.Name;

            scheduler.Lightbox.AddDefaults();//add default set of options - text and timepicker
            //add controls to the details form
            var select = new LightboxSelect("room_id", "Room id");

            select.AddOptions(rooms);
            scheduler.Lightbox.Add(select);


            scheduler.LoadData            = true;
            scheduler.InitialDate         = new DateTime(2011, 9, 7);
            scheduler.EnableDataprocessor = true;

            return(View(scheduler));
        }
コード例 #31
0
        public ActionResult Index()
        {
            ViewBag.Title            = "Scheduler | Daily Timeline View";
            ViewBag.SampleTitle      = "Daily Timeline View";
            ViewBag.ShortDescription = "Use days as sections of the Timeline view";
            ViewBag.LongDescription  = "A view can have any number of days";

            var sched = new DHXScheduler(this);

            sched.Config.details_on_create   = true;
            sched.Config.details_on_dblclick = true;

            var timeline = new TimelineView("timeline", "room_id")
            {
                RenderMode = TimelineView.RenderModes.Days,
                Days       = 7
            };

            timeline.X_Date    = "%H:%i";
            timeline.FitEvents = false;
            sched.Views.Add(timeline);

            var select = new LightboxSelect("color", "Priority");

            select.AddOptions(new List <object> {
                new { key = "#ccc", label = "Low" },
                new { key = "#76B007", label = "Medium" },
                new { key = "#FE7510", label = "Hight" }
            });
            sched.Lightbox.Add(select);

            var rooms = Repository.Rooms.ToList();

            select = new LightboxSelect("room_id", "Room id");
            select.AddOptions(rooms);
            sched.Lightbox.Add(select);

            sched.LoadData            = true;
            sched.EnableDataprocessor = true;
            sched.InitialView         = timeline.Name;
            sched.InitialDate         = new DateTime(2011, 9, 5);
            return(View(sched));
        }
コード例 #32
0
        public override Task <ActionResult> Execute(object sender, EventArgs args, object obj)
        {
            DetailView detail = obj as DetailView;

            FrameworkElement ele = sender as FrameworkElement;

            while (!(ele is TimelineView))
            {
                ele = ele.Parent as FrameworkElement;
            }

            if (ele != null)
            {
                TimelineView view = ele as TimelineView;
                view.Remove(detail);
            }

            return(OK);
        }
コード例 #33
0
ファイル: HomeController.cs プロジェクト: carrental/mvc
        protected TimelineView GenericTimeline(string name, IEnumerable cars)
        {
            var timeline = new TimelineView(name, "section_id");

            //width of the first column
            timeline.Dx = 149;
            timeline.AddOptions(cars);
            //row height
            timeline.Dy = 38;

            //rent boxes height
            timeline.EventDy  = timeline.Dy - 5;
            timeline.FolderDy = 114;
            timeline.FolderEventsAvailable = false;
            timeline.ResizeEvents          = false;
            timeline.SectionAutoheight     = false;
            timeline.RenderMode            = TimelineView.RenderModes.Tree;
            return(timeline);
        }
コード例 #34
0
ファイル: Timeliner.cs プロジェクト: stahlnow/Timeliner
        public Timeliner(TLContext context)
        {
            Context = context;

            TimelineModel = new TLDocument("", @"timeline.xml");
            Shell.Instance.Root = TimelineModel;

            TimelineModel.CreateMapper(context.MappingRegistry);
            //only after mapper and root are set
            TimelineModel.Initialize();

            var commandHistory = TimelineModel.Mapper.Map<ICommandHistory>();
            TimelineView = new TimelineView(TimelineModel, commandHistory, Timer);

            TimelineModel.Tracks.Added += Timeline_Tracks_Added;
            TimelineModel.Tracks.Removed += Timeline_Tracks_Removed;
            TimelineModel.Tracks.OrderChanged += Timeline_Tracks_OrderChanged;

            TimelineView.Tracks.OrderChanged += TimelineView_Tracks_OrderChanged;
        }
コード例 #35
0
        //
        // GET: /CustomizeScale/
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);

            sched.Config.first_hour = 8;
            sched.Config.last_hour = 18;
            sched.InitialDate = new DateTime(2011, 9, 19);

            var rooms = new DHXSchedulerModelsDataContext().Rooms.ToList();
            var timeline = new TimelineView("timeline", "room_id");
            timeline.X_Unit = TimelineView.XScaleUnits.Hour;
            timeline.X_Size = 72;

            timeline.Scale.IgnoreRange(19, 23);
            timeline.Scale.IgnoreRange(0, 7);

            timeline.RenderMode = TimelineView.RenderModes.Bar;
            timeline.FitEvents = false;

            sched.TimeSpans.Add(new DHXMarkTime
            {
                FullWeek = true,
                Zones = new List<Zone> { new Zone(8 * 60 + 10, 19 * 60 - 10) },
                CssClass = "day_split",
                InvertZones = true,
                Sections = new List<Section>{
                    new Section(timeline.Name, rooms.Select(r => r.key.ToString()).ToList())

                }
            });

            timeline.AddOptions(rooms);
            sched.Views.Add(timeline);
            sched.InitialView = timeline.Name;
            var week = sched.Views[1];
            week.Scale.Ignore((int)DayOfWeek.Saturday, (int)DayOfWeek.Sunday);

            sched.LoadData = true;

            return View(sched);
        }
コード例 #36
0
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);
            sched.Skin = DHXScheduler.Skins.Terrace;
            var unit = new UnitsView("unit1", "room_id");
            sched.Views.Add(unit);

            var context = new DHXSchedulerDataContext();

            //can add IEnumerable of objects, native units or dictionary
            unit.AddOptions(context.Rooms);//parse model objects
            sched.Config.details_on_create = true;
            sched.Config.details_on_dblclick = true;

            var timeline = new TimelineView("timeline", "room_id");

            var items = new List<object>();
            timeline.FitEvents = false;
            sched.Views.Add(timeline);
            timeline.AddOptions(context.Rooms);

            var select = new LightboxSelect("textColor", "Priority");
            items = new List<object>();
            items.Add(new { key = "gray", label = "Low" });
            items.Add(new { key = "blue", label = "Medium" });
            items.Add(new { key = "red", label = "Hight" });
            select.AddOptions(items);
            sched.Lightbox.Add(select);

            select = new LightboxSelect("room_id", "Room id");
            select.AddOptions(context.Rooms);
            sched.Lightbox.Add(select);

            sched.LoadData = true;
            sched.EnableDataprocessor = true;
            sched.InitialDate = new DateTime(2011, 9, 5);
            return View(sched);
        }
コード例 #37
0
        public ActionResult Index()
        {
            var sched = new DHXScheduler(this);
            var unit = new UnitsView("unit1", "room_id");
            sched.Views.Add(unit);

            var context = new DHXSchedulerModelsDataContext();

            //can add IEnumerable of objects, native units or dictionary
            unit.AddOptions(context.Rooms);//parse model objects
            sched.Config.details_on_create = true;
            sched.Config.details_on_dblclick = true;

            var timeline = new TimelineView("timeline", "room_id");
            timeline.RenderMode = TimelineView.RenderModes.Bar;
            var rooms = context.Rooms.ToList();
            timeline.FitEvents = false;
            sched.Views.Add(timeline);
            timeline.AddOptions(rooms);

            var select = new LightboxSelect("color", "Priority");
            select.AddOptions(new List<object>{
                new { key = "#ccc", label = "Low" },
                new { key = "#76B007", label = "Medium" },
                new { key = "#FE7510", label = "Hight" }
            });
            sched.Lightbox.Add(select);

            select = new LightboxSelect("room_id", "Room id");
            select.AddOptions(rooms);
            sched.Lightbox.Add(select);

            sched.LoadData = true;
            sched.EnableDataprocessor = true;
            sched.InitialDate = new DateTime(2011, 9, 5);
            return View(sched);
        }
コード例 #38
0
ファイル: TrackView.cs プロジェクト: stahlnow/Timeliner
        public TrackView(TLTrackBase track, TimelineView tv, RulerView rv)
            : base(track, tv)
        {
            Model = track;
            Parent = tv;
            FRuler = rv;

            MainGroup.Transforms = new SvgTransformCollection();
            MainGroup.Transforms.Add(new SvgTranslate(0, 0));

            var width = new SvgUnit(SvgUnitType.Percentage, 100);

            Label.FontSize = 12;
            Label.X = 5;
            Label.Y = Label.FontSize;
            Label.Text = Model.Label.Value;
            Label.ID = "label";
            Label.MouseDown += Background_MouseDown;
            Label.MouseUp += Background_MouseUp;
            Label.CustomAttributes["class"] = "trackfont";

            SizeBarDragRect.FillOpacity = 0.3f;
            SizeBarDragRect.Visible = false;
            SizeBarDragRect.CustomAttributes["pointer-events"] = "none";

            Background.Width = width;
            Background.Height = 1; // this is the value range, not the actual track size
            Background.ID ="bg";

            ClipRect.Width = width;
            ClipRect.Height = Background.Height;
            ClipRect.ID = "ClipRect";

            //document roots id is "svg". this is where the trackclips are added to
            TrackClipPath.ID = "svg_clip" + IDGenerator.NewID;
            TrackClipPath.Children.Add(ClipRect);

            TrackGroup.ID = "Clip";
            TrackGroup.Transforms = new SvgTransformCollection();
            TrackGroup.Transforms.Add(new SvgScale(1, 1));
            var uri = new Uri("url(#" + TrackClipPath.ID + ")", UriKind.Relative);
            TrackGroup.ClipPath = uri;

            PanZoomGroup.ID = "PanZoom";
            PanZoomGroup.Transforms = new SvgTransformCollection();
            PanZoomGroup.Transforms.Add(FRuler.PanZoomMatrix); //pan/zoom
            PanZoomGroup.Transforms.Add(new SvgTranslate(0)); //min/max

            SizeBar.Width = width;
            SizeBar.Height = 3;
            SizeBar.ID = "SizeBar";
            SizeBar.CustomAttributes["class"] = "sizebar";
            SizeBar.Y = Background.Height.Value;

            //register event handlers
            Background.MouseDown += Background_MouseDown;
            Background.MouseUp += Background_MouseUp;
            Background.MouseMove += Background_MouseMove;

            SizeBar.MouseDown += Background_MouseDown;
            SizeBar.MouseMove += Background_MouseMove;
            SizeBar.MouseUp += Background_MouseUp;

            CreateTrackMenu();
            CreateKeyframeMenu();
        }
コード例 #39
0
ファイル: ValueTrackView.cs プロジェクト: stahlnow/Timeliner
        public ValueTrackView(TLValueTrack track, TimelineView tv, RulerView rv)
            : base(track, tv, rv)
        {
            Keyframes = new EditableList<ValueKeyframeView>();

            KFSyncer = Keyframes.SyncWith(Model.Keyframes,
                                          kf =>
                                          {
                                          	var kv = new ValueKeyframeView(kf, this);
                                          	kf.NeighbourChanged += NeedsRebuild;
                                          	var kfs = Model.Keyframes.ToList();
                                          	var prev = kfs.FindLastIndex(x => x.Time.Value < kf.Time.Value);
                                          	kv.AddToSceneGraphAt(KeyframeGroup, Keyframes.Count - 1 - prev);
                                          	return kv;
                                          },
                                          kv =>
                                          {
                                          	kv.Model.NeighbourChanged -= NeedsRebuild;
                                          	kv.Dispose();
                                          });

            CurveSyncer = Curves.SyncWith(Model.Curves,
                                          cu =>
                                          {
                                          	var cv = new CurveView(cu, this);
                                          	cv.AddToSceneGraphAt(CurveGroup);
                                          	return cv;
                                          },
                                          cv =>
                                          {
                                          	cv.Dispose();
                                          }
                                         );

            Background.Click += Background_MouseClick;

            KeyframeDefinition.CenterX = 0;
            KeyframeDefinition.CenterY = 0;
            KeyframeDefinition.Radius = 3;
            KeyframeDefinition.ID = Model.GetID() + "_KF";
            KeyframeDefinition.Transforms = new SvgTransformCollection();
            KeyframeDefinition.Transforms.Add(new SvgScale(1, 1));

            EaseNoneDefinition.ID = Model.GetID() + "_NE";
            EaseNoneDefinition.StartX = 0;
            EaseNoneDefinition.StartY = -25f;
            EaseNoneDefinition.EndX = 0;
            EaseNoneDefinition.EndY = 25f;
            EaseNoneDefinition.Transforms = new SvgTransformCollection();
            EaseNoneDefinition.Transforms.Add(new SvgScale(1, 1));

            var half = Model.CCollapsedHeight / 2f;

            EaseInDefinition.ID = Model.GetID() + "_EI";
            EaseInDefinition.Points = new SvgUnitCollection();
            AddPoint(EaseInDefinition, new PointF(0, -half));
            AddPoint(EaseInDefinition, new PointF(-half, 0));
            AddPoint(EaseInDefinition, new PointF(0, half));
            EaseInDefinition.Transforms = new SvgTransformCollection();
            EaseInDefinition.Transforms.Add(new SvgScale(1, 1));

            EaseOutDefinition.ID = Model.GetID() + "_EO";
            EaseOutDefinition.Points = new SvgUnitCollection();
            AddPoint(EaseOutDefinition, new PointF(0, -half));
            AddPoint(EaseOutDefinition, new PointF(half, 0));
            AddPoint(EaseOutDefinition, new PointF(0, half));
            EaseOutDefinition.Transforms = new SvgTransformCollection();
            EaseOutDefinition.Transforms.Add(new SvgScale(1, 1));

            EaseInOutDefinition.ID = Model.GetID() + "_EIO";
            EaseInOutDefinition.Points = new SvgUnitCollection();
            AddPoint(EaseInOutDefinition, new PointF(0, -half));
            AddPoint(EaseInOutDefinition, new PointF(half, 0));
            AddPoint(EaseInOutDefinition, new PointF(0, half));
            AddPoint(EaseInOutDefinition, new PointF(-half, 0));
            EaseInOutDefinition.Transforms = new SvgTransformCollection();
            EaseInOutDefinition.Transforms.Add(new SvgScale(1, 1));

            CurveGroup.ID = "Curves";
            KeyframeGroup.ID = "Keyframes";

            CurrentValue.FontSize = 12;
            CurrentValue.X = 5;
            CurrentValue.CustomAttributes["class"] = "trackfont";
            CurrentValue.CustomAttributes["pointer-events"] = "none";
            CurrentValue.Y = 24;

            UpdateScene();
        }
コード例 #40
0
        public ActionResult Index()
        {
            SchedulerLocalization.Localizations lang;
            var language = this.Request.QueryString["language"];
            var skn = this.Request.QueryString["skin"];
            DHXScheduler.Skins skin;
            #region language
            switch (this.Request.QueryString["language"])
            {
                case "ar":
                    lang = SchedulerLocalization.Localizations.Arabic;
                    break;
                case "be":
                    lang = SchedulerLocalization.Localizations.Belarusian;
                    break;
                case "ca":
                    lang = SchedulerLocalization.Localizations.Catalan;
                    break;
                case "cn":
                    lang = SchedulerLocalization.Localizations.Chinese;
                    break;
                case "cs":
                    lang = SchedulerLocalization.Localizations.Czech;
                    break;
                case "da":
                    lang = SchedulerLocalization.Localizations.Danish;
                    break;
                case "nl":
                    lang = SchedulerLocalization.Localizations.Dutch;
                    break;
                case "fi":
                    lang = SchedulerLocalization.Localizations.Finnish;
                    break;
                case "fr":
                    lang = SchedulerLocalization.Localizations.French;
                    break;
                case "de":
                    lang = SchedulerLocalization.Localizations.German;
                    break;
                case "el":
                    lang = SchedulerLocalization.Localizations.Greek;
                    break;
                case "he":
                    lang = SchedulerLocalization.Localizations.Hebrew;
                    break;
                case "hu":
                    lang = SchedulerLocalization.Localizations.Hungarian;
                    break;
                case "id":
                    lang = SchedulerLocalization.Localizations.Indonesia;
                    break;
                case "it":
                    lang = SchedulerLocalization.Localizations.Italian;
                    break;
                case "jp":
                    lang = SchedulerLocalization.Localizations.Japanese;
                    break;
                case "no":
                    lang = SchedulerLocalization.Localizations.Norwegian;
                    break;
                case "pl":
                    lang = SchedulerLocalization.Localizations.Polish;
                    break;
                case "pt":
                    lang = SchedulerLocalization.Localizations.Portuguese;
                    break;
                case "ro":
                    lang = SchedulerLocalization.Localizations.Romanian;
                    break;
                case "ru":
                    lang = SchedulerLocalization.Localizations.Russian;
                    break;
                case "si":
                    lang = SchedulerLocalization.Localizations.Slovenian;
                    break;
                case "es":
                    lang = SchedulerLocalization.Localizations.Spanish;
                    break;
                case "sv":
                    lang = SchedulerLocalization.Localizations.Swedish;
                    break;
                case "tr":
                    lang = SchedulerLocalization.Localizations.Turkish;
                    break;
                case "ua":
                    lang = SchedulerLocalization.Localizations.Ukrainian;
                    break;
                default:
                    lang = SchedulerLocalization.Localizations.English;
                    language = "en";
                    break;
            }
            #endregion

            #region skin
            switch (this.Request.QueryString["skin"])
            {
                case "glossy":
                    skin = DHXScheduler.Skins.Glossy;
                    break;
                case "terrace":
                    skin = DHXScheduler.Skins.Terrace;
                    break;
                default:
                    skin = DHXScheduler.Skins.Standart;
                    skn = "classic";
                    break;
            }
            #endregion
            var scheduler = new DHXScheduler(this);
            scheduler.Skin = DHXScheduler.Skins.Terrace;
            scheduler.InitialDate = new DateTime(2011, 11, 24);

            scheduler.XY.scroll_width = 0;
            scheduler.Config.first_hour = 8;
            scheduler.Config.last_hour = 19;
            scheduler.Config.time_step = 30;
            scheduler.Config.multi_day = true;
            scheduler.Config.limit_time_select = true;
            scheduler.Skin = skin;
            scheduler.Localization.Directory = "locale";
            scheduler.Localization.Set(lang, false);

            var rooms = new DHXSchedulerModelsDataContext().Rooms.ToList();

            var unit = new UnitsView("unit1", "room_id");
            unit.AddOptions(rooms);//parse model objects
            scheduler.Views.Add(unit);

            var timeline = new TimelineView("timeline", "room_id");
            timeline.RenderMode = TimelineView.RenderModes.Bar;
            timeline.FitEvents = false;
            timeline.AddOptions(rooms);
            scheduler.Views.Add(timeline);

            scheduler.EnableDataprocessor = true;
            scheduler.LoadData = true;
            scheduler.InitialDate = new DateTime(2011, 9, 19);
            return View(new LocaleData(scheduler, language, skn));
        }
コード例 #41
0
ファイル: RulerView.cs プロジェクト: stahlnow/Timeliner
        public RulerView(TLRuler ruler, TimelineView tv)
            : base(ruler, tv)
        {
            Model = ruler;
            Parent = tv;

            PanZoomMatrix = new SvgMatrix(FView.Elements.ToList());

            MainGroup.Transforms = new SvgTransformCollection();
            MainGroup.Transforms.Add(new SvgTranslate(0, 0));

            var width = new SvgUnit(SvgUnitType.Percentage, 100);

            Background.Width = width;
            Background.Height = 25;
            Background.ID = "bg";
            Background.CustomAttributes["class"] = "ruler";

            //register event handlers
            Background.MouseDown += Background_MouseDown;
            Background.MouseUp += Background_MouseUp;
            Background.MouseMove += Background_MouseMove;

            var caller = Parent.Document.Mapper.Map<ISvgEventCaller>();
            PlayButton = SvgDocumentWidget.Load(Path.Combine(TimelineView.ResourcePath, "PlayButton.svg"), caller, 2);
            StopButton = SvgDocumentWidget.Load(Path.Combine(TimelineView.ResourcePath, "StopButton.svg"), caller, 1);
            StopButton.X = 25;

            PlayButton.Click += PlayButton_Click;
            StopButton.Click += StopButton_Click;

            TimeCodeLabelBackground.Width = CLeftOffset;
            TimeCodeLabelBackground.Height = Background.Height;
            TimeCodeLabelBackground.CustomAttributes["class"] = "ruler";
            TimeCodeLabelBackground.MouseDown += Background_MouseDown;

            TimeCodeLabel.FontSize = 20;
            TimeCodeLabel.X = 55;
            TimeCodeLabel.Y = TimeCodeLabel.FontSize;
            TimeCodeLabel.CustomAttributes["class"] = "time";
            TimeCodeLabel.ID = Model.GetID() + "_label";
            TimeCodeLabel.Text = "00:00:00:000";
            TimeCodeLabel.CustomAttributes["class"] = "time";
            TimeCodeLabel.MouseDown += Background_MouseDown;

            SizeBar.Width = Background.Width;
            SizeBar.Height = 10;
            SizeBar.ID = "SizeBar";
            SizeBar.Y = Background.Height;
            SizeBar.MouseDown += Background_MouseDown;
            SizeBar.MouseMove += Background_MouseMove;
            SizeBar.MouseUp += Background_MouseUp;

            MouseTimeLabel.ID = "MouseTimeLabel";
            MouseTimeLabel.Y = Height;
            MouseTimeLabel.FontSize = 14;

            ClipRect.Width = width;
            ClipRect.Height = Height;
            ClipRect.ID = "ClipRect";

            //document roots id is "svg". this is where the trackclips are added to
            RulerClipPath.ID = "svg_clip" + IDGenerator.NewID;
            RulerClipPath.Children.Add(ClipRect);

            var uri = new Uri("url(#" + RulerClipPath.ID + ")", UriKind.Relative);
            MainGroup.ClipPath = uri;

            NumberGroup.ID = "Ticks";
            NumberGroup.Transforms = new SvgTransformCollection();
            NumberGroup.Transforms.Add(PanZoomMatrix);

            PanZoomGroup.ID = "PanZoom";
            PanZoomGroup.Transforms = new SvgTransformCollection();
            PanZoomGroup.Transforms.Add(PanZoomMatrix);

            for (int i=0; i<70; i++)
            {
                var num = new SvgText(i.ToString());
                num.FontSize = 20;
                num.Y = num.FontSize;
                num.CustomAttributes["class"] = "time hair";
                num.Transforms = new SvgTransformCollection();
                num.Transforms.Add(new SvgTranslate(i));
                num.Transforms.Add(new SvgScale(1/Timer.PPS, 1));
                NumberGroup.Children.Add(num);
            }

            LoopRegion.ID = "LoopRegion";
            LoopRegion.Y = Background.Height / 4;
            LoopRegion.Height = Background.Height / 2;
            LoopRegion.FillOpacity = 0.7f;
            LoopRegion.CustomAttributes["pointer-events"] = "fill";
            LoopRegion.CustomAttributes["class"] = "loop";
            LoopRegion.MouseDown += Background_MouseDown;
            LoopRegion.MouseUp += Parent.Default_MouseUp;
            LoopRegion.MouseMove += Parent.Default_MouseMove;
            PanZoomGroup.Children.Add(LoopRegion);

            LoopStart.ID = "LoopStart";
            LoopStart.Width = 1/Timer.PPS * CHandlerWidth;
            LoopStart.Height = Background.Height;
            PanZoomGroup.Children.Add(LoopStart);
            LoopStart.MouseDown += Background_MouseDown;
            LoopStart.MouseUp += Parent.Default_MouseUp;
            LoopStart.MouseMove += Parent.Default_MouseMove;
            LoopStart.CustomAttributes["pointer-events"] = "fill";
            LoopStart.CustomAttributes["class"] = "loopcap";

            LoopEnd.ID = "LoopEnd";
            LoopEnd.Width = 1/Timer.PPS * CHandlerWidth;
            LoopEnd.Height = Background.Height;
            PanZoomGroup.Children.Add(LoopEnd);
            LoopEnd.MouseDown += Background_MouseDown;
            LoopEnd.MouseUp += Parent.Default_MouseUp;
            LoopEnd.MouseMove += Parent.Default_MouseMove;
            LoopEnd.CustomAttributes["pointer-events"] = "fill";
            LoopEnd.CustomAttributes["class"] = "loopcap";

            CreateMenu();

            //init scalings
            PanZoom(0, 0, 0);
            UpdateScene();
        }
コード例 #42
0
        /// <summary>
        /// Block time areas
        /// </summary>
        /// <returns></returns>
        public ActionResult Limit()
        {
            var sched = new DHXScheduler(this);

            sched.InitialDate = new DateTime(2011, 9, 19);

            // block specific date range
            sched.TimeSpans.Add(new DHXBlockTime()
            {
                StartDate = new DateTime(2011, 9, 14),
                EndDate = new DateTime(2011, 9, 17)
            });

            // block each tuesday from 12AM to 15PM
            sched.TimeSpans.Add(new DHXBlockTime()
            {
                Day = DayOfWeek.Tuesday,
                Zones = new List<Zone>() { new Zone { Start = 0, End = 15 * 60 } }
            });

            // block each sunday
            sched.TimeSpans.Add(new DHXBlockTime()
            {
                Day = DayOfWeek.Sunday
            });

            // block each monday from 12am to 8am, and from 18pm to 12am of the next day
            sched.TimeSpans.Add(new DHXBlockTime()
            {
                Day = DayOfWeek.Monday,
                Zones = new List<Zone>() { new Zone { Start = 0, End = 8 * 60 }, new Zone { Start = 18 * 60, End = 24 * 60 } }
            });
            #region add units and timeline
            var rooms = new DHXSchedulerDataContext().Rooms.ToList();
            var unit = new UnitsView("unit", "room_id");
            unit.AddOptions(rooms);//parse model objects
            sched.Views.Add(unit);

            var timeline = new TimelineView("timeline", "room_id");
            timeline.RenderMode = TimelineView.RenderModes.Bar;
            timeline.FitEvents = false;
            timeline.AddOptions(rooms);
            sched.Views.Add(timeline);
            #endregion
            //block different sections in timeline and units view
            sched.TimeSpans.Add(new DHXBlockTime()
            {
                FullWeek = true,
                Sections = new List<Section>() {
                    new Section(unit.Name, rooms.Take(2).Select(r => r.key.ToString()).ToArray()),
                    new Section(timeline.Name, rooms.Skip(2).Select(r => r.key.ToString()).ToArray())
                }
            });

            sched.LoadData = true;
            sched.EnableDataprocessor = true;
            return View(sched);
        }