featurez
- смена цвета текущей линии
- выбор толщины линии
- вставка превьюшек в комбобокс выбора толщины
- выбор стиля линии
- комбинируется с текущими толщиной и цветом
- рисование линий
- рисование эллипсов
- рисование секторов
- подсказки для элементов выбора стиля и толщины линии
- подсветка текущего выбранного инструмента рисования
- масштабирование документа
- возможность ручной установки необходимого варианта масштаба
- компонент выбора шрифта
- список заполняется всеми шрифтами, доступными в системе
- прорисовка элементов управления выбранной фигуры
- размещение текстового объекта в области документа
- ввод строки
- смена шрифта
- его размера
- отрисовка курсора для указания точки начала отрисовки
- вывод рамки границ текста
- установка курсора за последнюю букву строки
- ввод и отображение текста в реальном времени в области документа
- ранее использовалась строка из соответствующего JTextField
- компоненты установки стиля шрифта "жирный" и "курсив"
- обработка нажатия BackSpace при вводе текста
- установка угла поворота текстового объекта
- выделение элемента управления фигуры по щелчку мыши
- отрисовка симметричных фигур при зажатом CTRL
- сохранение графических объектов в файл формата *.isd
- загрузка и отрисовка сохраненной в файле графики
- запрос на сохранение при попытке закрытия документа
- если в документе отсутствуют изменения, диалог не появляется, в этой ситуации также недоступна кнопка "Сохранить"
- базовый макет окна настроек приложения
- меню смены варианта оформления (требуется ресурс Java\jre6\lib\ext\substance.jar)
- Swing Metal
- Substance Business
- Substance Office 2007
- Substance Creme
- печать документов
- сохранение и загрузка текстовых объектов
- отрисовка листа в документе
- модель работы с файлом конфигурации
скин Nimbus (требуется Java 6 Update 10+)- загрузка/сохранение/применение параметров конфига
- текущий скин
- привязка к сетке
- при сохранении файла в диалоге указывается его имя по умолчанию (или
имя файла, если документ создан не с нуля, а модифицирован), при
открытии соответственно меняется заголовок окна
- проверка существования конфига, при его отсутствии создается с настройками по умолчанию
- меню последних использовавшихся файлов, список хранится в конфиге
- начало построения фигуры по щелчку мыши, завершение по второму (не требуется держать кнопку постоянно нажатой)
- настройка показа иконки в системном трее, по правой кнопке вызывается меню сворачивания/восстановления и выхода из программы
- построение линиий заданной с клавиатуры длины
- точный вывод на печать и работа с документом в реальном масштабе
- приближение/удаление листа документа колесом мыши
- если инструмент рисования имеет несколько вариантов, последний выбранный будет запомнен и применен после использования других инструментов (например, тип линии не сбрасывается на стандартный)
- новый алгоритм вывода элементов управления
- привязка рисуемой фигуры к ближайшему элементу управления из массива прежних объектов
- выделение одной или нескольких (с шифтом) фигур, отмена выделения щелчком по уже выделенной фигуре, снятие выделения со всех щелчком по свободной области
- удаление (Delete / всплывающее меню) выделенных объектов
- установка масштаба и единиц измерения
- поворот выделенных объектов
- перемещение выделенных объектов
- новые алгоритмы рисования
- полилиния (добавление новых сегментов щелчком мыши, завершение ESC)
- мультилиния (в отличие от полилинии, создает набор отдельных линий, а
не целый объект, при этом каждая следующая начинается из конца
предыдущей)
- прямоугольник под любым углом (установка первой стороны щелчком мыши, следующий щелчок завершает построение)
- окружность из указанного центра
- окружность по трем точкам
- эллипс из указанного центра
- эллипс из построенных диаметров
- сектор радиусу и вычисленному углу поворота
- дуга
- усеченная окружность
- построение стен двойными линиями с их соответствующей обрезкой на точках стыка
- отмена построения правой кнопкой
- подсветка "активных" фигур, т.е. тех, которые будут выделены при щелчке в данной позиции
- выделение фигур рамкой
- инструмент измерения длины и площади
- масштабирование выделенных объектов
- зум листа или выделенной области
- работа с буфером обмена
- отмена/повторение действия
modz
- оптимизирован метод отрисовки пунктирной рамки во время рисования
- гораздо меньше вычислений
- изменение угла отрисовки сектора
- ранее строился от 0 градусов до 90
- элементы управления эллипса и сектора рисуются вдоль отображаемых частей фигуры, а не по углам обтекающего прямоугольника
- кнопки сохранения и печати доступны только при наличии открытых документов
- поддержка любого сочетания чисел при масштабировании
- курсор принимает размер текущего шрифта
- все текстовые объекты сохраняются и отрисовываются вместе с остальными фигурами
- цвет шрифта выставляется в соответствии с выбранным на панели инструментов
- кнопки рисования заменены компонентами JToggleButton и объединены в группу
- для JButton приходилось вручную обрабатывать состояние "нажата" и сбрасывать его для неиспользуемых в данный момент кнопок
- компоненты параметров шрифта вынесены в отдельный пакет и управляются как единый набор элементов
оптимизирована процедура выбора фигуры
- один условный блок при считывании координат мыши вместо восьми о_О; метод pick() больше не перегружен, переписан для универсального использования и наследуется от класса DrawRect
- создан абстрактный класс ShapeForDrawing с общей информацией и методами для работы с геометрией, классы фигур расширяют его, реализуя методы rubberShape и paint
- ранее использовался громоздкий класс построения прямоугольников, остальные фигуры наследовали его и перекрывали необходимые методы
- для доступа ко всем иконкам панели инструментов создан интерфейс, содержащий константы с путями к ним
- переписаны диалоги открытия и сохранения документов
- при запуске происходит максимизация окна, раньше высчитывались координаты по размерам экрана :D
работа пунктов меню открыть/сохранить синхронизирована с поведением соответствующих кнопок- добавлены новые иконки для панели инструментов и меню
- проект переведен на платформу NetBeans
- улучшены алгоритмы работы с памятью и отрисовки
- изменен стандартный курсор
- выделение текста происходит по описывающему прямоугольнику, а не контуру всех букв
- удален инструмент группового выделения, функционал переписан для использования вместе с инструментом перетаскивания
- фигура выделяется уже при нажатии мыши, а не по щелчку, т.е. ее можно сразу начинать перетаскивать
fixez
- шаг сетки меняется в зависимости от толщины линии
смена штриха влияет на все отображаемые фигуры, вместо текущей
- после сброса выделения фигура меняет цвет на черный
- при выборе новой фигуры, имеющей тип, отличный от предыдущего, зеленая закраска предыдущей фигуры не пропадает
- графические ресурсы компонентов выбора стиля/толщины линии подгружаются из директории классов
- на кнопке выбора цвета через некоторое время появляются артефакты
если была выбрана фигура, то в новом созданном документе будут отрисованы ее элементы управления- дублируются элементы меню последних использовавшихся файлов (при повторном открытии/сохранении)
- при использовании разных типов трансформации, последняя затирает предыдущую
bugz