Rich Ajax Platform: Частина 1. Вступ (исходники), Різне, Програмування, статті

Мета проекту RAP – дати можливість розробникам створювати функціонально насичені інтернет-додатки (Rich Internet Applications), використовуючи підхід Eclipse. Але що стоїть за цим терміном – “підхід Eclipse”? Скажімо так: RAP дозволяє розробникам створювати браузер-орієнтовані Ajax-додатки з використанням усього обсягу бібліотек мови Java і Eclipse API. Для цього пропонуються підтримують Web-технології реалізації SWT, JFace і Eclipse Workbench. Мета цієї статті – познайомити читача з RAP за допомогою декількох нескладних прикладів.


Два етапи установки


Установка RAP надзвичайно проста і складається лише з двох етапів: завантаження RAP і настройки Eclipse для використання з даною платформою.


Етап 1: Завантаження RAP


Завантажте RAP з сайту Eclipse.org. Найкраще взяти саму нову стабільну версію, ми при написанні статті використовували випуск 1.0. Завантаживши з сайту архівний файл, що містить цільову RAP-платформу, розпакуйте її в папку на свій вибір (Див. рисунок 1). Ця папка буде грати дуже важливу роль – саме її ви будете використовувати при налаштуванні цільової платформи на наступному етапі.


Рисунок 1. Цільова платформа RAP
RAP target


Етап 2. Установка цільової платформи


У середовищі програмування Eclipse Plug-in Development Environment (PDE) використовується концепція цільової платформи. Цільова платформа збирається з набору плагінів, які відповідають тій платформі, в рамках якій ви працюєте (тобто на яку націлені створювані вами продукти). За умовчанням як цільової встановлюється платформа, на якій Eclipse була запущена у вашому конкретному випадку. Це означає, що плагіни, які ви розробляєте в даний момент, виявляться призначеними для виконання на даному працюючому екземплярі системи. Проте головне те, що цільову платформу можна змінювати. Наприклад, ви можете вибрати в якості цільової платформи інсталяцію Eclipse V3.2 або навіть середу виконання якогось іншого програмного продукту. (Цей елегантний прийом дозволяє вам користуватися останньою версією Eclipse незалежно від того, для чого саме призначені ваші розробки.)


В даному випадку нам необхідно визначити як цільова платформу RAP, оскільки саме вона є для нас робочою. Для цього в пункті меню Window > Preferences… > Plug-in Development > Target Platform потрібно вказати місцезнаходження цільової платформи – папку, в яку ви розархівувати плагіни RAP на етапі 1 (малюнок 2).


Рисунок 2. Призначення RAP цільової платформою
Призначення RAP цільової платформою


Тепер, коли ваша цільова платформа встановлена ​​належним чином, ви можете створювати RAP-додатки. Але перш ніж ми перейдемо до власне коду, давайте розглянемо невеликий приклад – він дасть нам уявлення про можливості RAP і допоможе навчитися запускати RAP-додатки.







 



RAP і Google Web Toolkit
Google Web Toolkit (GWT) і RAP схожі в тому, що обидва вони дозволяють створювати функціонально насичені інтернет-програми за допомогою Java. Найважливіше їх відмінність полягає в тому, що GWT виконується на стороні клієнта, тоді як RAP – На сервері. Завдяки цій обставині за допомогою RAP ви отримуєте повноцінний доступ до Java API і можете скористатися знаменитою моделлю плагінів Eclipse через посередництво OSGi. У термінах Eclipse цю ситуацію можна викласти наступним чином: GWT являє собою щось на зразок автономного SWT-додатки (тобто всього лише якийсь набір інструментів), тоді як RAP дає можливість повноцінного RCP-підходу до Web-додатків.
 


Приклади


Наше знайомство з RAP ми почнемо з прикладу. Для взаємодії з RAP нам необхідно створити стартову конфігурацію для запуску RAP. Для цього потрібно відкрити діалог Run (Run > Open Run Dialog…) І створити нову OSGi-орієнтовану стартову конфігурацію. Після цього необхідно упевнитися в тому, що наступним VM-аргументам встановлені потрібні значення: -Dorg.osgi.service.http.port=8000 -Dosgi.noShutdown=true (Рисунок 3). Ці аргументи дають можливість RAP запускати себе через порт 8000 і не дозволяють Eclipse завершитися відразу після запуску.


Рисунок 3. Стартова конфігурація RAP
Стартова конфігурація RAP


Ну а тепер можна запустити браузер і перейти на http://localhost:8000/rap?startup=controls, Щоб познайомитися з демонстраційним скріншотом панелі управління RAP. Цей приклад заснований на добре відомому ControlExample з набору SWT Examples.


Рисунок 4. Панель управління RAP
Панель управління RAP

Приклади додатків


Розглянемо два приклади, в основі яких лежать шаблони клієнтської платформи RCP (Rich Client Platform), що надаються середовищем програмування PDE.


Приклад “Hello World”


У програмістів вже стало доброю традицією наводити як ілюстрації програму, яка видає повідомлення “Hello World”. Почнемо з того, як створити таке просте RAP-додаток.


Рисунок 5. “Hello World” у виконанні RAP
Hello World у виконанні RAP


Основна відмінність між RAP-і RCP-версією програми полягає в характері залежності плагінів і в точці входу програми. Якщо ми подивимося на маніфест плагіна (див. лістинг 1), то побачимо, що ці залежності різні.


Лістинг 1. Залежності RAP-додатки “Hello World” (MANIFEST.MF)





Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Helloworld Plug-in
Bundle-SymbolicName: rap.helloworld; singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: rap.helloworld.Activator
Require-Bundle: org.eclipse.rap.ui
Eclipse-LazyStart: true

Звернули увагу на залежність від org.eclipse.rap.ui? Це плагін RAP, аналогічний стандартному плагіну org.eclipse.ui з бази RCP. Якщо ви добре знайомі з OSGi і знаєте, як працює заголовок Import-Package, Вам взагалі не потрібно встановлювати залежності з конкретними плагінами; ви можете посилатися тільки на потрібні вам пакети. Це дуже важливий момент, тому що завдяки цьому ви можете організувати свій код так, щоб він працював і з RAP, і з RCP. Наприклад, якщо ми поглянемо на коди workbench advisor в RAP (лістинг 2) і RCP (лістинг 3), то побачимо схожість цих кодів і підключених в обох випадках пакетів.


Лістинг 2. Workbench advisor в RCP





import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
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(“Hello RCP”);
}
}


Лістинг 3. Workbench advisor в RAP





import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
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(“Hello RAP”);
}
}


Інше ключове розходження між RAP-і RCP-додатками полягає в точці входу (аналогічно методу main(String[] args) в мові Java). У разі RCP ми маємо точку розширення org.eclipse.core.runtime.applications, Де ви визначаєте IApplication (Зверніть увагу, що у версіях Eclipse до 3.3 йому відповідало IPlatformRunnable). RAP-еквівалент RCP-програми – це точка розширення org.eclipse.rap.ui.entrypoint, Яка визначає IEntryPoint. Порівнявши типовий код точки входу в RCP-(лістинг 4) та RAP-Банк (лістинг 5), ви побачите, що між ними є певна схожість. В обох випадках ми створюємо компоненти Display і Workbench для забезпечення можливості запуску workbench advisor.


Лістинг 4. Точка входу RCP-додатки (org.eclipse.core.runtime.applications)





public class Application implements IApplication {
public Object start(IApplicationContext context) throws Exception {
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display,
new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART)
return IApplication.EXIT_RESTART;
else
return IApplication.EXIT_OK;
} finally {
display.dispose();
}

}
public void stop() {
final IWorkbench workbench = PlatformUI.getWorkbench();
if (workbench == null)
return;
final Display display = workbench.getDisplay();
display.syncExec(new Runnable() {
public void run() {
if (!display.isDisposed())
workbench.close();
}
});
}


Лістинг 5. Точка входу RAP-додатки (org.eclipse.rap.ui.entrypoint)





public class Application implements IEntryPoint {
public Display createUI() {
Display display = PlatformUI.createDisplay();
PlatformUI.createAndRunWorkbench
( display, new ApplicationWorkbenchAdvisor() );
return display;
}
}

Приклад RCP Mail


Класичний приклад RCP Mail (Рисунок 6) після мінімальних змін може бути запущений в середовищі RAP (рисунок 7). Цей факт вказує на те, що в середовищі RAP доступні для використання, зокрема, такі workbench-концепції, як види, перспективи та редактори (див. порівняння концепцій в таблиці 1). Якщо хочете, можете погратися з вихідними кодами двох останніх прикладів.


Таблиця 1. RAP і RCP

















RAP RCP
OSGi (на стороні сервера) OSGi
Standard Widget Toolkit (SWT) RAP Widget Toolkit (RWT)
JFace JFace
Workbench Web Workbench

Малюнок 6. RCP Mail
RCP Mail

Малюнок 7. RAP Mail
RAP Mail

Висновок


За допомогою декількох простих прикладів і демонстраційних скріншотів стаття знайомить читачів з платформою RAP. RAP дозволяє розробникам, не перевчаючи, використовувати Eclipse для створення функціонально насичених інтернет-додатків (Rich Internet Applications). RAP, крім того, дає можливість організувати розробляється код таким чином, щоб він міг виконуватися як локальним (RCP), так і віддаленим (RAP) чином. По суті, RAP ставить Eclipse в один ряд з браузерами і Web 2.0.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*