суббота, 28 марта 2009 г.

Первые шаги c Eclipse RCP. Пункты меню

Я учавствую в проекте, где интерфейс создается на технологии Eclipse RCP. Пару недель назад я увидел её впевые и многое было непонятно. Например, я не мог даже добавить нормально менюшку ещё одну к списку готовых. Порой проскаквало ощущение, что если участие моё в этом проекте как-нибудь положительно закончится, то я ни за что больше не буду писать в Eclipse=)

Первое, что мне захотелось сделать, это добавить новую менюшку к уже имеющимся. Сразу встала проблема понимания как всё в этой технологии завязано, зачем нужны для одной менюшки и Action, и command (org.eclipse.ui.commands) на который вешается какой-то handler, унаследованный, например, от AbstractHandler (org.eclipse.core.commands.AbstractHandler). Методом научного тыка пришло понимание как всё это работает.

В терминах Eclipse то, что я создаю называется plugin. Значит так, открываем plugin.xml, идет на вкладку Extensions. Создадим новую команду - добавим расширение org.eclipse.ui.commands. Повесим какой-нибудь handler - IDE нам помагает очень просто это сделать, а также укажем какой-нибудь ID - его запомним в голове.

Теперь создадим новый ActionSet (org.eclipse.ui.actionSets) и в нём новый Action. Поля id, label и class интуитивно понятны, а вот в definitionID надо написать имя созданного нами handler'a. Иначе при выборе пункта меню мышкой мы будем постоянно получать сообщение о том, что действие не реализовано.

Последний штрих: укажем расположение в меню. Для этого есть поле menubarPath. Здесь надо просто указать ID пункта меню. Будьте внимательны, если хотите сделать подменю, то не забудьте "/" в конце!

четверг, 5 марта 2009 г.

размещение окон в Visual Studio

Забавно. По умолчанию окно Solution Explorer цепляется к правой границе экрана. Не долго думая, я всегда цеплял остальные окна там же: Properties, ToolBox. И меня это до некоторых пор устраивало, до тех пор, пока я не начал ковырять xaml.
Представь, когда ты в дизайнере усиленно правишь код, потом подымаешь мышку, чтобы пролистать вверх (а тянуть руку до PgUp, PgDown мне неудобно) и тут появляется всплывающее окно...
Какая гадость, достало. Так постепенно у людей складывается от вращение к Майкрософт. Наверное я слишком дотошный. Непонятно почему в eclipse и NetBeans все такие мелочи давно предусмотрены...

Рефакторинг XAML в WPF

Кoвыряю WPF первый день.
Кучу времени убил на такую проблему: переименовываю класс, наследуемый от Window и сразу лезет туча ошибок. Кое-как допер что файл .cs он редактирует, а .xaml нада ручками подправлять. Объясните, почему мелкомягкие не сделали рефакторинга нормального?