BERDAFLEX Software Systems
Главная > Eclipse > Книги > Eclipse RCP. Файловый менеджер

1. Аранжировщик файлов. Hello, world



Раскрутка сайта (бесплатный мини тренинг)

1 июня 2011 в 21.00 (время Московское). Ориентировочно тренинг продлится 2,5 часа.
Обобщенный план:
  • Цели сайта (обычно это сайт визитка для продажи продуктов и услуг)
  • Кто является целевой аудиторией сайта
  • Подбор запросов пользователей в поисковых системах
  • Как генерировать "правильный" контент, т.е. что писать на страницах и где взять этот контент.
  • Как правильно ссылаться между этими страницами
  • Зачем нужна контекстная реклама (Google Adwords, Яндекс Директ)
  • Как настроить цепочку продаж в контекстной рекламе
  • Когда и что публиковать в каталогах Яндекса, DMOZ
  • Что делать с сайтами конкурентами?
  • Зачем создавать сайты-сателлиты?
  • Как меняться ссылками и покупать ссылки
  • Зачем и когда проводить ревизию сайта
Желательно определить для себя и выписать перед тренингом
  • Цели сайта, какие продукты и услуги продаем
  • Вашу целевую аудиторию
  • Десяток основных поисковых запросов по которым вы считаете, что имеет смысл заниматься продвижением
Заполните форму регистрации на бесплатный тренинг Раскрутка сайта,
и вы получите на ваш эл. адрес приглашение на тренинг.
Заранее признателен за ваши вопросы, они помогут сделать тренинг интереснее.
!!! Я гарантирую, что ваш электронный адрес не будет передан третьим лицам и использоваться для рассылки спама.
С уважением,
Сергей Бердачук

До окончательной проработки дизайна разрабатываемого приложения можно уже начинать создавать костяк проекта, на который будет постепенно наращиваться «мясо».

На основе базового шаблона «Hello world» создадим простейшее eclipse RCP приложение. Данный шаблон генерирует минимум классов, которые необходимы для создания простейшего приложения. Этот шаблон выбран для того, чтобы постепенно изучать все возможности, которые предоставляет нам платформа разработки eclipse IDE.

Рисунок 4.1. Простейшее RCP приложение «Hello world»

Простейшее RCP приложение «Hello world»

Установленная ранее целевая платформа сама по себе не является рабочим продуктом. Старт программы начинается в классе, который указан в точке расширения файла манифеста:

<extension id="application"
  point="org.eclipse.core.runtime.applications">
  <application>
     <run
        class="com.berdaflex.filearranger.Application">
     </run>
  </application>
</extension>

В нашем случае это класс Application , который реализует интерфейс IplatformRunnable. Данный интерфейс содержит всего лишь один метод run (Object args) для запуска программы, который эквивалентен методу main(..) обычного java приложения.

Рисунок 4.2. Класс запуска приложения в редакторе манифеста

Класс запуска приложения в редакторе манифеста
public class Application implements IPlatformRunnable {
    public Object run(Object args) throws Exception {
        Display display = PlatformUI.createDisplay();
        try {
            int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
            if (returnCode == PlatformUI.RETURN_RESTART) {
                return IPlatformRunnable.EXIT_RESTART;
            }
                return IPlatformRunnable.EXIT_OK;
            } finally {
                display.dispose();
            }
    }
}

Класс ApplicationWorkbenchAdvisor расширяет абстрактный класс WorkbenchAdvisor, который содержит вызываемые при старте платформы методы:

В классе ApplicationWorkbenchAdvisor должен быть реализован как минимум один метод:

Если был реализован метод createWorkbenchWindowAdvisor , который создает новый конфигуратор рабочей среды, то он переопределяет все методы жизненного цикла базового конфигуратора. В нашем случае создается конфигуратор ApplicationWorkbenchWindowAdvisor , который управляет процессом создания графического интерфейса пользователя.

public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
        super(configurer);
    }

    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
        return new ApplicationActionBarAdvisor(configurer);
    }
    
    public void preWindowOpen() {
        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
        configurer.setInitialSize(new Point(400, 300));
        configurer.setShowCoolBar(false);
        configurer.setShowStatusLine(false);
        configurer.setTitle("File Arranger");
    }
}

В методе preWindowOpen() выставляются начальные размеры окна, текст заголовка, режимы отображения панелей.

Метод createActionBarAdvisor(IActionBarConfigurer configurer) создает класс, определяющий все операции доступные в приложении, а так же создает меню. На данном этапе создается пустая заглушка с требуемыми методами.

public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }

    protected void makeActions(IWorkbenchWindow window) {
    }

    protected void fillMenuBar(IMenuManager menuBar) {
    }    
}

Класс начальной проекции Perspective это последний класс, который был создан мастером. Для удобства работы с несколькими проекциями в будущем, переименуем его в FileArrangerPerspective .

public class FileArrangerPerspective implements IPerspectiveFactory {

    public void createInitialLayout(IPageLayout layout) {
    }
}

Указание на начальную проекцию задается в методе getInitialWindowPerspectiveId() класса WorkbenchWindowAdvisor . Данный метод должен возвращать идентификатор проекции, по которому определяется класс проекции. Связь идентификатора и класса устанавливается в файле манифеста.

<extension point="org.eclipse.ui.perspectives">
  <perspective
      name="File Arranger Perspective"
      class="com.berdaflex.filearranger.FileArrangerPerspective"
      id="com.berdaflex.filearranger.perspective">
  </perspective>
</extension>

Это минимум, который требуется для создания «скелета» создаваемого RCP приложения. Но это уже рабочее приложение, которое уже можно запускать и экспортировать в продукт используя набор модулей, который входит в состав целевой платформы RCP приложения.

Rambler's Top100 Рейтинг@Mail.ru