public MonthViewControl(ICalendarControl calendar)
 {
     InitializeComponent();
     Dock             = DockStyle.Fill;
     Calendar         = calendar;
     SelectionManager = new SelectionManager(this);
     CopyPasteManager = new CopyPasteManager(this);
 }
		public MonthViewControl(ICalendarControl calendar)
		{
			InitializeComponent();
			Dock = DockStyle.Fill;
			Calendar = calendar;
			Months = new Dictionary<DateTime, MonthControl>();
			SelectionManager = new SelectionManager(this);
			CopyPasteManager = new CopyPasteManager(this);
		}
        public void CopyDay()
        {
            var selectedDay = SelectionManager.SelectedDays.FirstOrDefault();

            if (selectedDay == null)
            {
                return;
            }
            CopyPasteManager.CopyDay(selectedDay);
        }
Example #4
0
        private void OnPasteMenuItemClicked(object sender, RoutedEventArgs e)
        {
            UnitConverter that = this;

            _ = Task.Run(async() =>
            {
                string pastedString = await CopyPasteManager.GetStringToPaste(Model.Mode, CategoryGroupType.Converter, NumberBase.Unknown, BitLength.BitLengthUnknown);
                that.Model.OnPaste(pastedString);
            });
        }
Example #5
0
        // Constructor
        internal MapManager()
        {
            // Create temporary path
            temppath = General.MakeTempDirname();
            Directory.CreateDirectory(temppath);
            General.WriteLogLine("Temporary directory:  " + temppath);

            // Basic objects
            grid         = new GridSetup();
            undoredo     = new UndoManager();
            copypaste    = new CopyPasteManager();
            launcher     = new Launcher();
            thingsfilter = new NullThingsFilter();
        }
        public void Release()
        {
            SelectionManager.Release();
            CopyPasteManager.Release();

            _days.Clear();

            xtraTabControl.SelectedPageChanged -= OnSelectedMonthChanged;
            xtraTabControl.TabPages.OfType <MonthControl>().ToList().ForEach(m =>
            {
                m.Release();
                m.Tag = null;
            });
            xtraTabControl.TabPages.Clear();
        }
        public void CloneDay()
        {
            var selectedDay = SelectionManager.SelectedDays.FirstOrDefault();

            if (selectedDay == null)
            {
                return;
            }
            using (var form = new FormCloneDay(selectedDay, Calendar.CalendarContent.Settings.FlightDateStart.Value, Calendar.CalendarContent.Settings.FlightDateEnd.Value))
            {
                form.OnHelpClick = () => Calendar.OpenHelp("clone");
                if (form.ShowDialog() == DialogResult.OK)
                {
                    var clonedDays = Calendar.ActiveCalendarSection.Days.Where(x => form.SelectedDates.Contains(x.Date)).ToList();
                    CopyPasteManager.CloneDay(selectedDay, clonedDays);
                }
            }
        }
Example #8
0
        private void OnContextRequested(UIElement sender, ContextRequestedEventArgs e)
        {
            OnValueSelected(sender);
            var requestedElement = ((FrameworkElement)sender);

            PasteMenuItem.IsEnabled = CopyPasteManager.HasStringToPaste();

            if (e.TryGetPosition(requestedElement, out Point point))
            {
                m_resultsFlyout.ShowAt(requestedElement, point);
            }
            else
            {
                // Not invoked via pointer, so let XAML choose a default location.
                m_resultsFlyout.ShowAt(requestedElement);
            }

            e.Handled = true;
        }
        private CalendarNoteControl[][] GetNotesByWeeeks(CalendarMonth month)
        {
            var monthNotes   = new List <CalendarNoteControl[]>();
            var datesByWeeks = Calendar.CalendarContent.GetDaysByWeek(month.DaysRangeBegin, month.DaysRangeEnd);

            foreach (var weekDays in datesByWeeks)
            {
                var weekNotes = new List <CalendarNoteControl>();
                foreach (var weekDay in weekDays)
                {
                    var note = Calendar.ActiveCalendarSection.Notes.FirstOrDefault(x => weekDay.Equals(x.StartDay));
                    if (note == null)
                    {
                        continue;
                    }
                    var noteControl = (CalendarNoteControl)ReflectionHelper.GetControlInstance(typeof(CalendarNoteControl), note.GetType(), note);
                    noteControl.NoteChanged += (sender, e) =>
                    {
                        var targetNoteControl = sender as CalendarNoteControl;
                        if (targetNoteControl == null)
                        {
                            return;
                        }
                        Calendar.SettingsNotSaved = true;
                    };
                    noteControl.NoteDeleted += (sender, e) =>
                    {
                        DeleteNote(note);
                        RefreshData();
                    };
                    noteControl.NoteCopied += (sender, e) =>
                    {
                        CopyPasteManager.CopyNote(note);
                        Calendar.SettingsNotSaved = true;
                    };
                    noteControl.NoteCloned += (sender, e) =>
                    {
                        using (var form = new FormCloneNote(note, Calendar.CalendarContent.Settings.FlightDateStart.Value, Calendar.CalendarContent.Settings.FlightDateEnd.Value))
                        {
                            form.OnHelpClick = () => Calendar.OpenHelp("ninjanotesclone");
                            if (form.ShowDialog() != DialogResult.OK)
                            {
                                return;
                            }
                            foreach (var range in form.SelectedRanges)
                            {
                                AddNote(range, note.Note.Clone());
                            }
                        }
                        Calendar.SettingsNotSaved = true;
                    };
                    noteControl.ColorChanging += (sender, e) =>
                    {
                        using (var form = new FormNoteColor())
                        {
                            form.NoteColor = note.BackgroundColor;
                            if (form.ShowDialog() != DialogResult.OK)
                            {
                                return;
                            }
                            note.BackgroundColor = form.NoteColor;
                            if (form.ApplyForAll)
                            {
                                foreach (var calendarNote in Calendar.ActiveCalendarSection.Notes)
                                {
                                    calendarNote.BackgroundColor = note.BackgroundColor;
                                }
                            }
                            foreach (var monthControl in xtraTabControl.TabPages.OfType <MonthControl>().ToList())
                            {
                                monthControl.RefreshNotes();
                            }
                            Calendar.SettingsNotSaved = true;
                        }
                    };
                    weekNotes.Add(noteControl);
                }
                monthNotes.Add(weekNotes.ToArray());
            }
            return(monthNotes.ToArray());
        }
        private void LoadMonth(MonthControl month)
        {
            SelectionManager.ClearSelection();
            CopyPasteManager.ResetCopy();
            foreach (var existedMonth in xtraTabControl.TabPages.OfType <MonthControl>().ToList())
            {
                existedMonth.RaiseEvents(false);
            }

            var calendarMonth = (CalendarMonth)month.Tag;

            if (!month.HasData)
            {
                var weeks        = new List <DayControl[]>();
                var datesByWeeks = Calendar.CalendarContent.GetDaysByWeek(calendarMonth.DaysRangeBegin, calendarMonth.DaysRangeEnd);
                foreach (var weekDays in datesByWeeks)
                {
                    var week = new List <DayControl>();
                    foreach (var calendarDay in weekDays.Select(weekDay =>
                                                                Calendar.ActiveCalendarSection.Days.FirstOrDefault(x => x.Date.Equals(weekDay))))
                    {
                        if (calendarDay != null)
                        {
                            var dayControl = new DayControl(calendarDay);
                            dayControl.AllowToPasteNote = CopyPasteManager.SourceNote != null;
                            dayControl.DaySelected     += (sender, e) =>
                            {
                                SelectionManager.SelectDay(e.SelectedDay.Day, e.ModifierKeys);
                                CopyPasteManager.SetCopyDay();
                            };
                            dayControl.DayCopied      += (sender, e) => CopyDay();
                            dayControl.DayPasted      += (sender, e) => PasteDay();
                            dayControl.DayCloned      += (sender, e) => CloneDay();
                            dayControl.DayDataDeleted += (sender, e) =>
                            {
                                foreach (var day in SelectionManager.SelectedDays)
                                {
                                    day.ClearData();
                                    RefreshData();
                                }
                                Calendar.SettingsNotSaved = true;
                                Calendar.CalendarView.RefreshData();
                                Calendar.SlideInfo.LoadData();
                                Calendar.UpdateDataManagementAndOutputFunctions();
                            };
                            dayControl.DataChanged += (sender, e) =>
                            {
                                var day = sender as DayControl;
                                if (day == null)
                                {
                                    return;
                                }
                                Calendar.UpdateDataManagementAndOutputFunctions();
                                Calendar.SettingsNotSaved = true;
                            };

                            dayControl.SelectionStateRequested += (sender, e) => SelectionManager.ProcessSelectionStateRequest();
                            dayControl.DayMouseMove            += (sender, e) =>
                            {
                                foreach (var day in _days)
                                {
                                    if (day.Day.BelongsToSchedules && day.ClientRectangle.Contains(day.PointToClient(Cursor.Position)) &&
                                        day.RaiseEvents)
                                    {
                                        SelectionManager.SelectDay(day.Day, Keys.Control);
                                    }
                                }
                            };
                            dayControl.NoteAdded += (sender, e) =>
                            {
                                var noteDateRange = Calendar.CalendarContent
                                                    .CalculateDateRange(SelectionManager.SelectedDays.Select(x => x.Date).ToArray()).LastOrDefault();
                                AddNote(noteDateRange);
                                RefreshData();
                                Calendar.UpdateDataManagementAndOutputFunctions();
                            };
                            dayControl.NotePasted += (sender, e) =>
                            {
                                PasteNote();
                                RefreshData();
                            };
                            dayControl.ImageCopied += (sender, e) => CopyImage();
                            dayControl.ImagePasted += (sender, e) =>
                            {
                                ImageSource imageSource    = null;
                                var         clipboardImage = ClipboardHelper.GetPngFormClipboard();
                                if (clipboardImage != null)
                                {
                                    imageSource = ImageSource.FromImage(clipboardImage);
                                }
                                else if (Clipboard.ContainsText(TextDataFormat.Html))
                                {
                                    var textContent = Clipboard.GetText(TextDataFormat.Html);
                                    try
                                    {
                                        imageSource = ImageSource.FromString(textContent);
                                    }
                                    catch
                                    {
                                    }
                                }
                                PasteImage(imageSource);
                            };
                            dayControl.ImageDeleted += (sender, e) =>
                            {
                                foreach (var day in SelectionManager.SelectedDays)
                                {
                                    day.Logo = new ImageSource();
                                    RefreshData();
                                }
                                Calendar.SettingsNotSaved = true;
                                Calendar.CalendarView.RefreshData();
                                Calendar.UpdateDataManagementAndOutputFunctions();
                            };

                            SelectionManager.SelectionStateResponse += (sender, e) =>
                                                                       dayControl.UpdateNoteMenuAccordingSelection(SelectionManager.SelectedDays.OrderBy(x => x.Date).ToList());

                            CopyPasteManager.CopyDaySet += (sender, e) =>
                            {
                                dayControl.toolStripMenuItemCopy.Enabled  = true;
                                dayControl.toolStripMenuItemClone.Enabled = true;
                            };
                            CopyPasteManager.CopyReset += (sender, e) =>
                            {
                                dayControl.toolStripMenuItemCopy.Enabled  = false;
                                dayControl.toolStripMenuItemClone.Enabled = false;
                                dayControl.ChangeCopySource(false);
                            };
                            CopyPasteManager.PasteReset += (sender, e) =>
                            {
                                dayControl.toolStripMenuItemPaste.Enabled = false;
                                dayControl.AllowToPasteNote = false;
                            };
                            CopyPasteManager.DayCopied += (sender, e) =>
                            {
                                dayControl.toolStripMenuItemPaste.Enabled = true;
                                dayControl.ChangeCopySource(dayControl.Day.Date.Equals(CopyPasteManager.SourceDay.Date));
                            };
                            CopyPasteManager.NoteCopied += (sender, e) => { dayControl.AllowToPasteNote = true; };
                            Calendar.AssignCloseActiveEditorsonOutSideClick(dayControl);
                            week.Add(dayControl);
                            _days.Add(dayControl);
                        }
                        Application.DoEvents();
                    }
                    weeks.Add(week.ToArray());
                    Application.DoEvents();
                }
                month.AddDays(weeks.ToArray());
                month.AddNotes(GetNotesByWeeeks(calendarMonth));
            }
            month.RefreshData(Calendar.GetColorSchema(calendarMonth.OutputData.SlideColor));
            month.RaiseEvents(true);
            month.ResizeControls();
        }
        public void PasteImage(ImageSource imageSource)
        {
            var selectedDays = SelectionManager.SelectedDays.ToArray();

            CopyPasteManager.PasteImage(selectedDays, imageSource);
        }
        public void PasteDay()
        {
            var selectedDays = SelectionManager.SelectedDays.ToArray();

            CopyPasteManager.PasteDay(selectedDays);
        }
Example #13
0
        // Disposer
        public void Dispose()
        {
            // Not already disposed?
            if (!isdisposed)
            {
                // Let the plugins know
                General.Plugins.OnMapCloseBegin();

                // Stop processing
                General.MainWindow.StopProcessing();

                // Change to no mode
                General.Editing.ChangeMode((EditMode)null);

                // Unbind any methods
                General.Actions.UnbindMethods(this);

                // Dispose
                if (grid != null)
                {
                    grid.Dispose();
                }
                if (launcher != null)
                {
                    launcher.Dispose();
                }
                if (copypaste != null)
                {
                    copypaste.Dispose();
                }
                if (undoredo != null)
                {
                    undoredo.Dispose();
                }
                General.WriteLogLine("Unloading data resources...");
                if (data != null)
                {
                    data.Dispose();
                }
                General.WriteLogLine("Unloading map data...");
                if (map != null)
                {
                    map.Dispose();
                }
                General.WriteLogLine("Stopping graphics device...");
                if (renderer2d != null)
                {
                    renderer2d.Dispose();
                }
                if (renderer3d != null)
                {
                    renderer3d.Dispose();
                }
                if (graphics != null)
                {
                    graphics.Dispose();
                }
                visualcamera = null;
                grid         = null;
                launcher     = null;
                copypaste    = null;
                undoredo     = null;
                data         = null;
                //tempwad = null;
                map        = null;
                renderer2d = null;
                renderer3d = null;
                graphics   = null;

                // We may spend some time to clean things up here
                GC.Collect();

                // Let the plugins know
                General.Plugins.OnMapCloseEnd();

                // Done
                isdisposed = true;
            }
        }
Example #14
0
        private void PaseValues_Click(object sender, RoutedEventArgs e)
        {
            Component c = (DataContext as Component);

            CopyPasteManager.Paste(c);
        }
Example #15
0
        private void OnCopyMenuItemClicked(object sender, RoutedEventArgs e)
        {
            var calcResult = ((CalculationResult)m_resultsFlyout.Target);

            CopyPasteManager.CopyToClipboard(calcResult.GetRawDisplayValue());
        }