После почти трехлетнего перерыва вышла бета версия Aswing 2.0
Основные изменения:
- новый скин (LookAndFeel) по умолчанию
- добавлены компоненты JStepper, DateChooser
- добавлен WeightBoxLayout
- багфиксы и мелкие фичи
В библиотеку включен новый проект - порт для haXe под названием haXeAsWing.
Фактически, это ее точная (с минимальными отличиями) копия, и мы можем использовать любой из вариантов на выбор.
upd. paling добавил ссылку на демо компонентов, готовую swf можно посмотреть в папке bin
Что изменилось, и как этим пользоваться?
Вариант 1.
- чтобы начать использовать haXeAsWing, достаточно просто добавить в проект последнюю версию его исходников из svn
Вариант 2. Подключение родного AsWing 2
- чтобы использовать сам AsWing нужно скачать swc, распаковать ее zipом, подключить library.swf из нее с помощью -swf-lib
К сожалению, ошибка в -swf-lib все еще осталась (haxe некорректно преобразует enum), поэтому нам в исходниках понадобится /org/aswing/AsWingConstants.hx следующего содержания.
Как видно, первый вариант выглядит проще, но пока у него есть несколько странностей и с flash-библиотекой легче перейти с 1.5 на 2.0
- перед инициализацией гуи обязателен вызов AsWingManager.initAsStandard(flash.Lib.current);
(если передать в качестве параметра DisplayObject, gui создастся в нем. Upd. от 07.06.2011 - null передавать не рекомендуется, тк AsWingManager не сможет инициализироваться )
- порт может немного по-другому отрабатывать layout компонентов, у меня это вылечилось добавлением для компонентов setPreferredSize
Я не буду здесь описывать, как создать собственно интерфейс - с этим вполне справится туториал, попробую только объяснить отличия от 1.5
1. GuiBuilder еще не успел обновиться, и интерфейсы в нем созданные немного перекашивает, приходится работать руками.
2. По причине из п.1 я не стал пока трогать WeightBoxLayout
3. Datepicker и numeric stepper довольно милые. В новом скине красивые тени и объемный чекбокс.
4. Все старые скины (LookAndFeel) не работают, их надо переделывать
5. Единственный новый совместимый скин PalingLAF видимо пока работает только с flash-версией, по крайней мере мне его прикрутить не удалось.
Дело в том, что новый скин по умолчанию, теперь не использует растровую графику вообще. Вместо картинок, компоненты полностью рисуются вручную в коде.
Градиентные заливки в компонентах полностью настраиваются и содержат три цвета - foreground, mideground и background
В презентации AsWing 2.0 поведение можно потрогать руками.
У каждого компонента есть методы setForeground, setBackground и setMideground, задающие цвета текста и градиента, метод setFont, задающий шрифт, и метод setStyleTune, задающий параметры градиента, тени и скругления (реализованный немного странно).
Кроме того, у каждого компонента остались базовые настройки стиля из LAF, поэтому их можно легко переопределить, например так