- •1 Постановка задачи 6
- •Введение
- •1 Постановка задачи
- •2 Теоретический раздел
- •3 Обзор предметной области
- •3.1 Апплет Clock2.Java
- •3.2 Обзор исходного кода Clock2.Java
- •4. Инструкция программиста
- •4.1. Бизнес-логика приложения в пользовательском классе
- •4.1.1. Поля и свойства Clock
- •4.1.2. Конструкторы класса Clock
- •4.1.3. Методы класса Clock
- •4.2. Визуализация текущей даты и времени
- •4.3. Сохранение текущего состояния приложения в файл и чтение из файла
- •4.3.1. Поля и свойства пользовательского класса ClockConfig
- •4.3.2. Конструкторы пользовательского класса ClockConfig
- •4.3.3. Методы пользовательского класса ClockConfig
- •5. Инструкция Пользователя
- •5.1. Запуск приложения
- •5.2. Основные элементы приложения
- •5.3. Управление главным окном приложения
- •5.4. Настройка приложения
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
- •Приложение е
- •Список использованных источников
4. Инструкция программиста
4.1. Бизнес-логика приложения в пользовательском классе
В исходном приложении на языке Java бизнес-логика приложения была представлена public class Clock2, после трансляции на язык C# класс был переименован в public class Clock и унаследован от FrameworkElement.
4.1.1. Поля и свойства Clock
private double r – определяет радиус циферблата аналоговых часов.
public double Radius { get { return r; } } – свойство для получения значения радиуса циферблата аналоговых часов.
private DateTime currentDataTime – поле для хранения текущей даты и времени.
public DateTime CurrentDataTime { get { return currentDataTime; } } - свойство для получения занчения текущей даты и времени.
private double xcenter, ycenter – координаты центра циферблата на Canvas.
private int Hour, Minutes, Seconds – целочисленные значения текущего времени, где Hour – текущий час, Minutes – текущее значение минут, Seconds – текущее значение секунд. Используется в вычислениях новых координат стрелок часов.
private int lastxs, lastys, lastxm, lastym, lastxh, lastyh – поля хранят координаты концов секундной, минутной и часовой стрелок соответственно. Используется для перерисовки стрелок часов.
private bool drag = false – поле используемое для определения возможности перемещения окна приложения по экрану.
private Point startpoint = new Point(0, 0) – хранит значение координат окна приложения на экране.
public Canvas ParrentCanvas – используется для расположения фигур представляющих часы.
public Ellipse CircleOfDial – окружность циферблата.
public TextBlock TBDate – используется для хранения и отображения текущей даты. Располагается на ParrentCanvas.
public TextBlock TBTime используется для хранения и отображения текущего времени. Располагается на ParrentCanvas.
private TextBlock[] NumberHour – массив техтовых блоков, используемый для отображения цифр на циферблате часов.
public Line HourArrow, HourArrow1, MinutesArrow, MinutesArrow1, SecondsArrow – линии для отображения стрелок часов. Для отображения минутной и часовой стрелок (для каждой) используется по две фигуры (линии).
private StackPanel PanelControlBtn – панель для хранения кнопок закрытия, сворачивания окна, настройки приложения.
private Button btnOption, btnClose, btnMinimazed – кнопки настройки, закрытия и сворачивания окна приложения.
private OptionWin OptionWindow – окно для отображения и настройки параметров приложения.
public ClockConfig clockConfig – пользовательский класс используемый для хранения настроек приложения, а также для их записи и чтения в/из файла.
private Thread TimerOfClock – поток, отвечающий за перерисовку часов.
private double MinR = 120, MaxR = 350 – минимальное и максимальное значения радиуса циферблата часов.
private ThreadStart threadStartClock – основной метод потока TimerOfClock, отвечающий за перерисовку часов.
4.1.2. Конструкторы класса Clock
Данный класс имеет один конструктор по умолчанию: public Clock().
В конструкторе по умолчанию выполняется создание ParrentCanvas, а затем расположение всех фигур, текстовых боков на нем, также выполняется чтение настроек приложения из файла и их применение. После того как настройки будут применены, будет запущен поток TimerOfClock, отвечающий за перерисовку часов.
