예제 #1
0
 protected internal void DeleteTerm(Term term)
 {
     if (term != null)
     {
         TimeBox.Delete(term, false);
     }
 }
예제 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ClearButton_Click(object sender, EventArgs e)
 {
     InputTextBox.Clear();
     OutputTextBox.Clear();
     TimeBox.Clear();
     CountText.Clear();
 }
예제 #3
0
        /// <summary>
        /// Konstruktor.
        /// </summary>
        public TimingAdjustmentToolView()
        {
            InitializeComponent();

            this.framesBoxTimingChange = new FramesBox();
            this.framesBoxTimingChange.FramesChanged += new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
            this.framesBoxTimingChange.Dock           = DockStyle.Fill;

            this.framesBoxTimingFrom = new FramesBox();
            this.framesBoxTimingFrom.FramesChanged += new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
            this.framesBoxTimingFrom.Dock           = DockStyle.Fill;

            this.framesBoxTimingTo = new FramesBox();
            this.framesBoxTimingTo.FramesChanged += new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
            this.framesBoxTimingTo.Dock           = DockStyle.Fill;

            this.timeBoxTimingChange              = new TimeBox();
            this.timeBoxTimingChange.TimeChanged += new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
            this.timeBoxTimingChange.Dock         = DockStyle.Fill;

            this.timeBoxTimingFrom              = new TimeBox();
            this.timeBoxTimingFrom.TimeChanged += new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
            this.timeBoxTimingFrom.Dock         = DockStyle.Fill;

            this.timeBoxTimingTo              = new TimeBox();
            this.timeBoxTimingTo.TimeChanged += new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
            this.timeBoxTimingTo.Dock         = DockStyle.Fill;
        }
예제 #4
0
        private static bool TermWhere(Term o, TimeBox timeBox, Dictionary <int, IList <Term> > groupByLevelTerms, int termCapacity, bool lockedTermIncluded)
        {
            if (o.Is <IImmutableTerm>())
            {
                return(false);
            }

            bool?locked = null;
            var  inside = !o.IsOutOfBoundary(t =>
            {
                if (lockedTermIncluded)
                {
                    return;
                }
                locked = t.SaftyGetProperty <bool, Term>(x => x.Locked);
            }, timeBox);
            var result = inside && (locked == null || locked.Value == false);

            if (result)
            {
                if (!groupByLevelTerms.ContainsKey(o.Level))
                {
                    groupByLevelTerms[o.Level] = new List <Term>(termCapacity);
                }

                groupByLevelTerms[o.Level].Add(o);
            }
            return(result);
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RandomButton_Click(object sender, EventArgs e)
        {
            InputTextBox.Clear();
            OutputTextBox.Clear();
            TimeBox.Clear();
            CountText.Clear();

            int    n    = rnd.Next(2, 20);
            int    k    = rnd.Next(1, n);
            string line = null;

            for (int i = 0; i < k; i++)
            {
                int temp1 = rnd.Next(1, n);
                int temp2 = rnd.Next(1, n);
                if (temp1 != temp2)
                {
                    line += temp1 + " " + temp2 + "\n";
                    i++;
                }
            }
            if (line != null)
            {
                InputTextBox.Text = line.Trim();
            }
            CountText.Text = n + " " + k;
        }
예제 #6
0
 protected void SetTermEnd(Term term, TimeBox timeBox)
 {
     _termEndAlterOffSet = NewEndTime.Subtract(term.End);
     //timeBox.SetTime(term, term.Start, NewEndTime, (t, success) =>
     //                                             {
     //                                                 _setTimeCallBack(term, "", success);
     //                                             }, false);
 }
예제 #7
0
 protected void LockTerm(Term term, TimeBox timeBox)
 {
     _termStartAlterOffSet = default(TimeSpan);
     _termEndAlterOffSet   = default(TimeSpan);
     term.Snapshot();
     term.Locked = true;
     _setTimeCallBack(term, "", true);
 }
예제 #8
0
        protected void ResizeTermEnd(Term term, TimeBox timeBox)
        {
            _termEndAlterOffSet += EndAlterOffSet;

            //timeBox.SetTime(term, term.Start, end, (t, success) =>
            //                                                {
            //                                                    _setTimeCallBack(term, "", success);
            //                                                }, false);
        }
예제 #9
0
 protected void MoveTerm(Term term, TimeBox timeBox)
 {
     _termStartAlterOffSet += MoveOffSet;
     _termEndAlterOffSet   += MoveOffSet;
     //timeBox.SetTime(term, start, end, (t, success) =>
     //                                            {
     //                                                _setTimeCallBack(term, "", success);
     //                                            }, false);
 }
예제 #10
0
 protected void SetTermStart(Term term, TimeBox timeBox)
 {
     _termStartAlterOffSet = NewStartTime.Subtract(term.Start);
     //term.Start = NewStartTime;
     //timeBox.SetTime(term, NewStartTime, term.End, (t, success) =>
     //                                             {
     //                                                 _setTimeCallBack(term, "", success);
     //                                             } ,false);
 }
예제 #11
0
 public void GameOver()
 {
     RegisterButton.Enabled = true;
     StartButton.Enabled    = true;
     QuitGameButton.Enabled = false;
     TimeBox.ReadOnly       = false;
     ServerBox.ReadOnly     = false;
     UsernameBox.ReadOnly   = false;
     TimeBox.Focus();
 }
        private void TimeBox_Leave(object sender, EventArgs e)
        {
            int  value  = 0;
            bool parsed = int.TryParse(TimeBox.Text, out value);

            if (!parsed || value < 0)
            {
                MessageBox.Show("Wpisana wartość nie jest liczbą całkowitą, jest mniejsza od zera lub zostawiłeś puste pole!!! POZOSTAW ZERO, ABY NIE UŻYWAĆ PARAMETRU.");
                TimeBox.Focus();
            }
        }
예제 #13
0
        private IEnumerable <Term> GetTerm()
        {
            //工时:1/1-1/31工时 取1/1-2/1 term
            //检查1/1日term是否有BelongToPrv=true,有则将其工时排除在1/31内
            //检查2/1日term是否有BelongToPrv=false,有则将其工时排除在1/31内
            var terms = TimeBox.CollideTerms(new DateRange(ScheduleDate.Start, ScheduleDate.End.AddDays(1))).OrderBy(o => o.Start).ToList();

            terms.ReMove(o => o.End.Date == ScheduleDate.Start.Date, true);
            terms.ReMove(o => o.Start.Date == ScheduleDate.End.Date, false);
            return(terms);
        }
예제 #14
0
 protected internal void TimeBoxCreateTerm(Term term)
 {
     TimeBox.Create(term, (terms, success) =>
     {
         if (!success)
         {
             FailedTerm.Add(term);
             return;
         }
     }, true);
 }
예제 #15
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            UpdateListBox();
            TimeBox.Clear();
            LrcBox.Clear();
            CurrentPositionBar.Width = 0;

            if (File.Exists("temp.txt"))
            {
                lrcManager.LoadFromFileName("temp.txt");
                UpdateListBox();
            }
        }
예제 #16
0
        public override void AddParentEntry()         // Add a Termin
        {
            TimeBox timeBox = new TimeBox(true);

            timeBox.posEntry.Text = "0";             // Default pos
            Entry    textEntry = new Entry();
            ComboBox cbType    = new ComboBox(API_Contract.ProgrammTerminTypVal);

            cbType.Active = 1;             // Default is 'Programm'
            GetUserArgs[] args = new GetUserArgs[] {
                new GetUserArgs(new Label("Text"), textEntry),
                new GetUserArgs(new Label("Sichtbarkeit"), cbType),
            };
            var diag = new GetUserDataDialog(args, timeBox, "Speichern", 0, "Abbruch", 1);

            if (diag.Run() == 0)
            {
                bool validated;
                while (!(validated = timeBox.ValidateTime()))
                {
                    if (diag.Run() == 1)
                    {
                        validated = false;
                        break;
                    }
                }
                if (validated)                   // There is valid user data
                {
                    var    treeContent = CurrTreeStore;
                    string finalTime;
                    string tmpTime   = timeBox.Time;
                    string text      = textEntry.Text;
                    string typString = GtkHelper.ComboBoxActiveString(cbType);
                    int    typ       = cbType.Active;
                    // Save on UI
                    TreeIter insertIter;
                    insertIter = treeContent.AppendValues(tmpTime, text, typString);
                    GtkHelper.SortInByColumn(treeContent, (int)ProgrammColumnID.Uhrzeit, insertIter);
                    finalTime = API_Contract.ClearTimeConflicts(treeContent, insertIter);
                    // Save on Database
                    var insert = new Table_Termin(CurrTabIndex, finalTime, text, typ);
                    dbAdapter.InsertEntry(insert);
                }
            }
            // Free Memory
            diag.Destroy();
            foreach (var arg in args)             // Free args
            {
                arg.Dispose();
            }
        }
예제 #17
0
        /// <summary>
        /// 基本代换班
        /// </summary>
        public void InitializeSwapingForTerm(long?assignment)
        {
            if (!assignment.HasValue)
            {
                return;
            }
            InitializeTerm(assignment);
            CurrentTerms = TimeBox.CollideTerms(Term).ToList();
            SubEvents    = CurrentTerms.Where(o => o.Id != Term.Id).OrderBy(o => o.Level).ToList();

            HasLockedAssignment = Term.Locked;
            HasLockedSubEvent   = CurrentTerms.Any(o => o.Locked);
            HasAbsentEvent      = CurrentTerms.SpecificTerm <AbsentEvent>().Any();
        }
예제 #18
0
 private void RegisteredState()
 {
     RegisterUserButton.Enabled = true;
     JoinGameButton.Enabled     = true;
     QuitGameButton.Enabled     = false;
     PlayerBox.Enabled          = true;
     ServerBox.Enabled          = true;
     TimeBox.Enabled            = true;
     WordBox.Enabled            = false;
     WordBox.Text        = "";
     Waiting.Visible     = false;
     JoinGameButton.Text = "Join Game";
     TimeBox.Focus();
 }
예제 #19
0
 private void AddSubEvent(Term t, TimeBox tb)
 {
     var lowestTerm = tb.GetOrderedBottoms(t).LastOrDefault();
     if (lowestTerm != null)
     {
         //AssignmentTypes.Cast<ISelectable>().Any(o => o.IsSelected == true & lowestTerm.Style.Equals(o))
         if (_customValidation(lowestTerm))
         {
             tb.Create(t, (terms, success) => _dispatchedCallback(t, "", success), false);
             return;
         }
     }
     _dispatchedCallback(t, "BottomTermNotFound", false);
 }
예제 #20
0
 protected internal void SetTimeOff(Term timeOff, Term term)
 {
     if (TimeOff != null)
     {
         TimeBox.SetTime(timeOff, term.Start.Date, term.Start.AddDays(1).Date, (terms, success) =>
         {
             if (!success)
             {
                 Message.AppendLine(LanguageReader.GetValue("Shifts_BoxPairSwap_SetTimeOff"));
                 return;
             }
         }, true);
     }
 }
예제 #21
0
        protected void DeleteTerm(Term term, TimeBox timeBox)
        {
            _termStartAlterOffSet = default(TimeSpan);
            _termEndAlterOffSet   = default(TimeSpan);
            var success = timeBox.Delete(term, false);

            _setTimeCallBack(term, "", success);

            var delete = new Func <Term, bool>(t => timeBox.Delete(t, false));

            if (!_lastSteps.ContainsKey(timeBox))
            {
                _lastSteps.Add(timeBox, delete);
            }
        }
예제 #22
0
        private void AddSubEvent(Term t, TimeBox tb)
        {
            var lowestTerm = tb.GetOrderedBottoms(t).LastOrDefault();

            if (lowestTerm != null)
            {
                //AssignmentTypes.Cast<ISelectable>().Any(o => o.IsSelected == true & lowestTerm.Style.Equals(o))
                if (_customValidation(lowestTerm))
                {
                    tb.Create(t, (terms, success) => _dispatchedCallback(t, "", success), false);
                    return;
                }
            }
            _dispatchedCallback(t, "BottomTermNotFound", false);
        }
예제 #23
0
 private void UpdateTimingControls(FramesBox framesBoxControl, TimeBox timeBoxControl, long newValue)
 {
     if (timingDisplayType == TimingType.Frames)
     {
         framesBoxControl.FramesChanged -= new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
         framesBoxControl.Frames         = (int)newValue;
         framesBoxControl.FramesChanged += new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
     }
     else if (timingDisplayType == TimingType.Time)
     {
         timeBoxControl.TimeChanged -= new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
         timeBoxControl.Time         = TimeSpan.FromTicks(newValue);
         timeBoxControl.TimeChanged += new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
     }
 }
예제 #24
0
        /// <summary>
        /// 事件代换班
        /// </summary>
        public void InitializeSwapingForSubEvent(Pair <DateRange> dateRange, long subevent)
        {
            var tempassignment = TimeBox.CollideTerms(dateRange.Applier).SpecificTerm <AssignmentBase>().OrderBy(o => o.Start).ToList();

            if (tempassignment.Count == 0)
            {
                return;
            }
            InitializeTerm(subevent);
            CurrentTerms   = TimeBox.CenterTerms(new DateRange(tempassignment[0].Start, tempassignment[tempassignment.Count - 1].End)).ToList();
            AbsentEvents   = CurrentTerms.SpecificTerm <AbsentEvent>().ToList();
            HasAbsentEvent = AbsentEvents.CollideTerms(dateRange.Applier).Any() ||
                             AbsentEvents.CollideTerms(dateRange.Replier).Any();
            //验证是否重叠
            HasExchanged = CurrentTerms.Any(o => o.Level > 0 && o.Id != subevent && o.IsCoverd(dateRange.Replier));
        }
예제 #25
0
 private void SubmitBookingButton_Click(object sender, EventArgs e)
 {
     if (_signedIn)
     {
         //Take information from the combo boxes and store it in strings. This will then be used to check against the database
         //To see if the booking can be made or not
         string Platform   = PlatformCombobox.GetItemText(PlatformCombobox.SelectedItem);
         string TimeLength = comboBox2.GetItemText(comboBox2.SelectedItem);
         string Software   = comboBox3.GetItemText(comboBox3.SelectedItem);
         string NoOfPeople = NoOfPeopleComboBox.GetItemText(NoOfPeopleComboBox.SelectedItem);
         string Time       = TimeBox.GetItemText(TimeBox.SelectedItem);
     }
     else
     {
         MessageBox.Show("Please sign in to quick book", "Quick book", MessageBoxButtons.OK);
     }
 }
예제 #26
0
        /// <summary>
        /// 多日代换班
        /// </summary>
        public void InitializeSwapingForMultiDay()
        {
            var tempassignment = TimeBox.CollideTerms(SwapingDate).SpecificTerm <AssignmentBase>().OrderBy(o => o.Start).ToList();
            var count          = tempassignment.Count;

            if (count == 0)
            {
                return;
            }
            DateRange range;

            if (count == 1)
            {
                range = new DateRange(tempassignment[0].Start, tempassignment[0].End);
            }
            else
            {
                var frist = tempassignment.First();
                var last  = tempassignment.Last();
                range = new DateRange
                {
                    Start = frist.Start < SwapingDate.Start ? tempassignment[1].Start : frist.Start,
                    End   = last.Start < SwapingDate.End ? last.End : tempassignment[count - 1].End
                };
            }
            var collide = TimeBox.CenterTerms(range).ToList();

            //初始化班
            CurrentTerms = collide.SpecificTerm <AssignmentBase>().ToList();
            //初始化第一层事件
            LevelOnes = collide.Where(o => o.Level == 1).ToList();
            //初始化第二层事件
            LevelTwos = collide.Where(o => o.Level == 2).ToList();
            //初始化第三层事件
            LevelThrees = collide.Where(o => o.Level == 3).ToList();

            //是否存在TimeOff
            HasTimeOff = collide.Any(o => o is TimeOff);
            //是否存在AbsentEvent
            HasAbsentEvent = collide.Any(o => o is AbsentEvent);
            //是否存在锁
            Lockeds = collide.Where(o => o.Locked).ToList();
            //DayOff
            DayOffs = collide.Where(o => o is DayOff).ToList();
        }
예제 #27
0
        private void ApllyTimebtn_Click(object sender, EventArgs e)
        {
            int ind = 0;

            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                if (dataGridView1.Rows[i].Cells[0].Value.ToString() == dataGridView1.CurrentRow.ToString())
                {
                    ind = i;
                }
            }

            EventClass eventClass = new EventClass(dataGridView1.CurrentRow.Cells[0].Value.ToString(), "--", TimeBox.Text.ToString());

            AddInfoTodayGrid(eventClass.nameItem, eventClass.dateItem, eventClass.timeItem);
            dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
            TimeBox.Clear();
        }
예제 #28
0
        /// <summary>
        /// 时段代换班(scheduleDate用于取TimeBox班表,如果计算工时则需要获取整个排班期班表,如果换班则需要取两人交换范围的班表,dateRange是交换时间段)
        /// </summary>
        public void InitializeSwapingForDateRange(DateRange dateRange)
        {
            var tempassignment = TimeBox.CollideTerms(dateRange).SpecificTerm <AssignmentBase>().OrderBy(o => o.Start).ToList();

            if (tempassignment.Count == 0)
            {
                return;
            }
            CurrentTerms = TimeBox.CenterTerms(new DateRange(tempassignment[0].Start, tempassignment[tempassignment.Count - 1].End)).ToList();
            //初始化班
            TempTerms           = CurrentTerms.SpecificTerm <AssignmentBase>().ToList();
            HasAbsentEvent      = CurrentTerms.CollideTerms(dateRange).SpecificTerm <AbsentEvent>().Any();
            AbsentEvents        = CurrentTerms.SpecificTerm <AbsentEvent>().ToList();
            HasLockedSubEvent   = CurrentTerms.Any(o => o.Level > 0 && o.Locked);
            HasTimeOff          = CurrentTerms.CollideTerms(dateRange).SpecificTerm <TimeOff>().Any();
            HasShrink           = CurrentTerms.CollideTerms(dateRange).SpecificTerm <Shrink>().Any();
            HasLockedAssignment = TempTerms.Any(o => o.Locked);
        }
예제 #29
0
 private void UpdateLabels(bool refresh = false)
 {
     if (_replayController.PlayListReplays.Count == 0)
     {
         return;
     }
     TimeBox.Text  = _replayController.CurrentTime.ToTimeString();
     timeBar.Value =
         (int)(Math.Min(_replayController.CurrentTime, _replayController.MaxTime) / _replayController.MaxTime * timeBar.Maximum);
     ShowCoordinates();
     SpeedLabel.Text = "Speed: " + _replayController.GetSpeed().ToString("F2");
     if (refresh)
     {
         TimeBox.Refresh();
         SpeedLabel.Refresh();
         CoordinateLabel.Refresh();
     }
 }
예제 #30
0
        public EditProgrammList() : base()
        {
            // Init UI
            timeBox = new TimeBox(false);

            typLabel = new Label("   Typ");
            cbTyp    = new ComboBox(new string[] { "     " });

            var typBox = new HBox();

            typBox.PackStart(typLabel, false, true, 10);
            typBox.PackStart(cbTyp, false, true, 2);

            this.PackStart(timeBox, false, true, 5);
            this.PackStart(typBox, false, true, 5);

            Init = false;
        }
예제 #31
0
        /// <summary>
        /// Konstruktor.
        /// </summary>
        public SynchronizationToolView()
        {
            InitializeComponent();

            this.framesBoxOrginalTiming = new FramesBox();
            this.framesBoxOrginalTiming.FramesChanged += new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
            this.framesBoxOrginalTiming.Dock           = DockStyle.Fill;

            this.framesBoxCorrectTiming = new FramesBox();
            this.framesBoxCorrectTiming.FramesChanged += new EventHandler <EventArgs <int> >(TimingControlValueChangedHandler);
            this.framesBoxCorrectTiming.Dock           = DockStyle.Fill;

            this.timeBoxOrginalTiming              = new TimeBox();
            this.timeBoxOrginalTiming.TimeChanged += new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
            this.timeBoxOrginalTiming.Dock         = DockStyle.Fill;

            this.timeBoxCorrectTiming              = new TimeBox();
            this.timeBoxCorrectTiming.TimeChanged += new EventHandler <EventArgs <TimeSpan> >(TimingControlValueChangedHandler);
            this.timeBoxCorrectTiming.Dock         = DockStyle.Fill;
        }
예제 #32
0
 protected void LockTerm(Term term, TimeBox timeBox)
 {
     _termStartAlterOffSet = default(TimeSpan);
     _termEndAlterOffSet = default(TimeSpan);
     term.Snapshot();
     term.Locked = true;
     _setTimeCallBack(term, "", true);   
 }
예제 #33
0
        private static bool TermWhere(Term o, TimeBox timeBox, Dictionary<int, IList<Term>> groupByLevelTerms, int termCapacity, bool lockedTermIncluded)
        {
            if (o.Is<IImmutableTerm>()) return false;

            bool? locked = null;
            var inside = !o.IsOutOfBoundary(t =>
                                            {
                                                if (lockedTermIncluded) return;
                                                locked = t.SaftyGetProperty<bool, Term>(x => x.Locked);

                                            }, timeBox);
            var result = inside && (locked == null || locked.Value == false);
            if (result)
            {
                if (!groupByLevelTerms.ContainsKey(o.Level))
                    groupByLevelTerms[o.Level] = new List<Term>(termCapacity);

                groupByLevelTerms[o.Level].Add(o);
            }
            return result;
        }
예제 #34
0
 protected void SetTermStart(Term term, TimeBox timeBox)
 {
     _termStartAlterOffSet = NewStartTime.Subtract(term.Start);
     //term.Start = NewStartTime;
     //timeBox.SetTime(term, NewStartTime, term.End, (t, success) =>
     //                                             {
     //                                                 _setTimeCallBack(term, "", success);
     //                                             } ,false);
 }
예제 #35
0
 protected void SetTermEnd(Term term, TimeBox timeBox)
 {
     
     _termEndAlterOffSet = NewEndTime.Subtract(term.End);
     //timeBox.SetTime(term, term.Start, NewEndTime, (t, success) =>
     //                                             {
     //                                                 _setTimeCallBack(term, "", success);
     //                                             }, false);
 }
예제 #36
0
 protected void MoveTerm(Term term, TimeBox timeBox)
 {
     _termStartAlterOffSet += MoveOffSet;
     _termEndAlterOffSet += MoveOffSet;
     //timeBox.SetTime(term, start, end, (t, success) =>
     //                                            {
     //                                                _setTimeCallBack(term, "", success);
     //                                            }, false);
 }
예제 #37
0
 protected void ResizeTermEnd(Term term, TimeBox timeBox)
 {
     _termEndAlterOffSet += EndAlterOffSet;
     
     //timeBox.SetTime(term, term.Start, end, (t, success) =>
     //                                                {
     //                                                    _setTimeCallBack(term, "", success);
     //                                                }, false);
 }
예제 #38
0
        protected void DeleteTerm(Term term, TimeBox timeBox)
        {
            _termStartAlterOffSet = default(TimeSpan);
            _termEndAlterOffSet = default(TimeSpan);
            var success = timeBox.Delete(term, false);
            _setTimeCallBack(term, "", success);

            var delete = new Func<Term,bool>( t => timeBox.Delete(t, false));

            if (!_lastSteps.ContainsKey(timeBox))
                _lastSteps.Add(timeBox, delete);
        }