SlideShare a Scribd company logo
1 of 19
Ilja Panin http://the33cows.com
Eclipse Monkey
Безграничный функционал Flex Builder
Ilja Panin http://the33cows.com
Что такое Eclipse Monkey ?
Это плагин к Eclipse который позволяет
писать к нему расширения на языке
JavaScript (также Ruby, Python и Groove).
Ilja Panin http://the33cows.com
Установка
Устанавливается как и большинство плагинов
Eclipse, адрес сайта:
http://download.eclipse.org/technology/dash/update/
Ilja Panin http://the33cows.com
Основные возможности
• файловая система
• запуск программ
• веб-запросы
• …
Работа с Eclipse Platform:
• Workspace
• Projects
• Debugger
• Plug-ins
• …
Работа с Java:
Ilja Panin http://the33cows.com
Инициализация скриптов
• Выбор пункта из меню
• По сочетанию клавиш
• По событию среды
Ilja Panin http://the33cows.com
От теории к практике
Ilja Panin http://the33cows.com
Hello world
/*
* Menu: sample > hello word
* Key: M3+6
* Kudos: Ilja Panin http://the33cows.com
* DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
*/
function main()
{
Packages.org.eclipse.jface.dialogs.MessageDialog.openInformation(window.getShell(), "Monkey", "Hello World");
}
E >
Ilja Panin http://the33cows.com
Стандартные диалоги
Packages.org.eclipse.jface.dialogs.InputDialog
Диалог ввода текста
Packages.org.eclipse.swt.widgets.FontDialog
Диалог выбора шрифта
Packages.org.eclipse.swt.widgets.ColorDialog
Стандартный диалог выбора цвета
Больше информации о диалогах можно найти в хелпе к эклипс платформе
Искать в пакете org.eclipse.swt.widgets
E >
Ilja Panin http://the33cows.com
Кастомные диалоги и окна
Можно создать любой произвольный диалог используя
SWT: The Standard Widget Toolkit
E >
http://www.eclipse.org/swt/
Ilja Panin http://the33cows.com
Работа с View
Мы можем получить доступ к любому View.
Можем открывать их, закрывать, работать с ними, как
это делает платформа или плагины
E >
Подробнее: http://code.google.com/p/monkey-for-flex/wiki/KnowHow
Ilja Panin http://the33cows.com
Использование «чужого» кода
По умолчанию Eclipse Monkey доступны только
основные ресурсы платформы.
Чтобы начать использовать остальные ресурсы
платформы или плагинов нужно воспользоваться
функцией:
loadBundle(<имя пакета>)
E >
Пример:
loadBundle("com.adobe.flexbuilder.editors.common");
//”Загружает” классы Flex Builder
Ilja Panin http://the33cows.com
Работа с Java
Работая с Eclipse Monkey, мы имеем возможность использовать
стандартные объекты Java, их методы и свойства
E >
Пример 1:
Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl");
//запукает процесс tskill.exe, который убивает процесс adl
// AIR отладчик, подробнее у меня в блоге.
Пример 2:
hashSet = new Packages.java.util.HashSet();
//создали экземпляр класса HashSet
Ilja Panin http://the33cows.com
Работа с редакторами
Получить текущий редактор можно следующим образом:
var editor = window.getActivePage().getActiveEditor();
Для работы с редактором (получение текста, вставка, текста,
управление курсором и выделением) нужно получить ссылку на
класс наследованный от
org.eclipse.ui.editors.text.TextEditor
В Flex Builder для MXML редактора используя getActiveEditor()
мы не получим ссылки на требуемый типа редактора.
Ilja Panin http://the33cows.com
Работа с редакторами.
Flex Builder
Flex Builder имеет 3 типа редакторов
MXMLEditor и CSSEditor – сложные редакторы, каждый объединяет
в себя визуальный и текстовый редактор. Для получения
текстового редактора я использую следующий код:
this.getCurrentTextEditor = function() {
var editor = window.getActivePage().getActiveEditor();
if (editor) {
if (editor.getClass().getName() == "com.adobe.flexbuilder.editors.mxml.MXMLEditor"
|| editor.getClass().getName() == "com.adobe.flexbuilder.editors.css.CSSEditor")
{
editor = editor.getCodeEditor();
}
}
return editor;
}
1. ASEditor
2. MXMLEditor
3. CSSEditor
ASEditor – «простой» редактор, наследуется от
org.eclipse.ui.editors.text.TextEditor и мы можем работать с ним
сразу
Ilja Panin http://the33cows.com
Работа с редакторами.
Вставка, удаление, выделение текста
Для работы с текстом нужно изучить хелп по
org.eclipse.ui.editors.text.TextEditor,
org.eclipse.jface.text.TextSelection :)
Я сейчас уже не помню, что к чему и использую несколько ранее
написанных мною методов. Они будут выложены вместе с
докладом
E >
Ilja Panin http://the33cows.com
Flex Builder Code Model
Adobe Flex Builder 3 Extensibility >
Adobe Flex Builder 3 Extensibility API Reference
Взяв его на вооружение будем «правильно готовить» билдер :)
Разработчики Flex Builder предоставили нам возможность работать с
API Flex Builder. В Help можно даже найти скромный раздел:
Ilja Panin http://the33cows.com
Flex Builder Code Model
доступ к модели кода
Получить доступ к нему мы можем используя следующий код:
loadBundle("com.adobe.flexbuilder.codemodel");
var CMFactory = Packages.com.adobe.flexbuilder.codemodel.common.CMFactory;
Дальше пример того, что можно сделать имея этот класс.
Входной точкой для работы с API Flex Builder является класс
com.adobe.flexbuilder.codemodel.common.CMFactory
Ilja Panin http://the33cows.com
Flex Builder Code Model
автогенерация кода класс для любого интерфейса
У Flex Builder немного хромает автогенерация кода когда класс имплементирует
какой либо интерфейс:
- Код методов создается лишь тогда когда мы выбираем интерфейс при
создании класса, если мы добавляем интерфейс потом то мы код
приходиться создавать с нуля ручкам.
- Мы не можем задать произвольный шаблон для генерации кода
- Если интерфейс наследован от другого то автогенератор добавляет все
методы, и те которые не нужны.
Например:
MyAxisRenderer extends UIComponent implements IAxisRenderer
где public interface IAxisRenderer extends IUIComponent
При генерации билдером в MyAxisRenderer будут вставлены все методы из
IUIComponent хотя они есть т.к. мы наследовались от UIComponent
Возьмем Eclipse Monkey и будем шаманить…
E >
Ilja Panin http://the33cows.com
Почитать о Eclipse Monkey
За стартовую точку я советую взять проект
monkey-for-flex

More Related Content

Viewers also liked

Presentatie Xbiv5 1 0 Slide Share
Presentatie Xbiv5 1 0 Slide SharePresentatie Xbiv5 1 0 Slide Share
Presentatie Xbiv5 1 0 Slide ShareSvenConvenso
 
siil ja siil
siil ja siilsiil ja siil
siil ja siilivo456
 
Tremopoulos Koronia Eu 2009
Tremopoulos Koronia Eu 2009Tremopoulos Koronia Eu 2009
Tremopoulos Koronia Eu 2009aigaiopelagitis
 
CulturaItalia - Funzionamento e modalità di adesione
CulturaItalia - Funzionamento e modalità di adesioneCulturaItalia - Funzionamento e modalità di adesione
CulturaItalia - Funzionamento e modalità di adesioneCulturaItalia
 
« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης
« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης
« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης ΠολυχρονιάδηςTheo Potouroglou
 
Web 2.0 maakt je onderwijs aantrekkelijker
Web 2.0 maakt je onderwijs aantrekkelijkerWeb 2.0 maakt je onderwijs aantrekkelijker
Web 2.0 maakt je onderwijs aantrekkelijkerWytze Koopal
 
Paraisooinfierno
ParaisooinfiernoParaisooinfierno
Paraisooinfiernodiana_paola
 
もてるプレテのすすめかたLT
もてるプレテのすすめかたLTもてるプレテのすすめかたLT
もてるプレテのすすめかたLTguest4edc4e
 
Midia Kit Piicker Travel Tips
Midia Kit Piicker Travel TipsMidia Kit Piicker Travel Tips
Midia Kit Piicker Travel TipsDiana Branisso
 
Risorse virtuali per la lingua spagnola e portoghese
Risorse virtuali per la lingua spagnola e portogheseRisorse virtuali per la lingua spagnola e portoghese
Risorse virtuali per la lingua spagnola e portoghesepatrizia lùperi
 
Seccion Sindical De Ugt Ayuntamiento De CáDiz
Seccion Sindical De Ugt Ayuntamiento De CáDizSeccion Sindical De Ugt Ayuntamiento De CáDiz
Seccion Sindical De Ugt Ayuntamiento De CáDizugt cádiz
 
ANSP aborda três importantes temas em três dias
ANSP aborda três importantes temas em três diasANSP aborda três importantes temas em três dias
ANSP aborda três importantes temas em três diasoficinadotexto
 

Viewers also liked (20)

Svara Korekcija
Svara KorekcijaSvara Korekcija
Svara Korekcija
 
Unidad III Tema 2
Unidad III Tema 2Unidad III Tema 2
Unidad III Tema 2
 
Kurver
KurverKurver
Kurver
 
Presentatie Xbiv5 1 0 Slide Share
Presentatie Xbiv5 1 0 Slide SharePresentatie Xbiv5 1 0 Slide Share
Presentatie Xbiv5 1 0 Slide Share
 
siil ja siil
siil ja siilsiil ja siil
siil ja siil
 
Tremopoulos Koronia Eu 2009
Tremopoulos Koronia Eu 2009Tremopoulos Koronia Eu 2009
Tremopoulos Koronia Eu 2009
 
Mod. Ii Aa 08 09
Mod. Ii  Aa 08 09Mod. Ii  Aa 08 09
Mod. Ii Aa 08 09
 
Pcpi ab
Pcpi abPcpi ab
Pcpi ab
 
CulturaItalia - Funzionamento e modalità di adesione
CulturaItalia - Funzionamento e modalità di adesioneCulturaItalia - Funzionamento e modalità di adesione
CulturaItalia - Funzionamento e modalità di adesione
 
« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης
« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης
« Η αγορά της μουσικής στην Ελλάδα» - Μπάμπης Πολυχρονιάδης
 
Web 2.0 maakt je onderwijs aantrekkelijker
Web 2.0 maakt je onderwijs aantrekkelijkerWeb 2.0 maakt je onderwijs aantrekkelijker
Web 2.0 maakt je onderwijs aantrekkelijker
 
Prezent
PrezentPrezent
Prezent
 
CV -ul meu
CV -ul meuCV -ul meu
CV -ul meu
 
Paraisooinfierno
ParaisooinfiernoParaisooinfierno
Paraisooinfierno
 
もてるプレテのすすめかたLT
もてるプレテのすすめかたLTもてるプレテのすすめかたLT
もてるプレテのすすめかたLT
 
Midia Kit Piicker Travel Tips
Midia Kit Piicker Travel TipsMidia Kit Piicker Travel Tips
Midia Kit Piicker Travel Tips
 
Risorse virtuali per la lingua spagnola e portoghese
Risorse virtuali per la lingua spagnola e portogheseRisorse virtuali per la lingua spagnola e portoghese
Risorse virtuali per la lingua spagnola e portoghese
 
Seccion Sindical De Ugt Ayuntamiento De CáDiz
Seccion Sindical De Ugt Ayuntamiento De CáDizSeccion Sindical De Ugt Ayuntamiento De CáDiz
Seccion Sindical De Ugt Ayuntamiento De CáDiz
 
Learning03
Learning03Learning03
Learning03
 
ANSP aborda três importantes temas em três dias
ANSP aborda três importantes temas em três diasANSP aborda três importantes temas em três dias
ANSP aborda três importantes temas em três dias
 

Similar to Eclipse Monkey

Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekYa_Cheburek
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектовRomero78
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование SymfonyMedia Gorod
 
PostSharp - Threading Model Library
PostSharp - Threading Model LibraryPostSharp - Threading Model Library
PostSharp - Threading Model LibraryAndrey Gordienkov
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill Chebunin
 
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Rinat Shaikhutdinov
 
C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.Igor Shkulipa
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.Igor Shkulipa
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими рукамиRoman Dvornov
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interfaceAsya Dudnik
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interfaceAsya Dudnik
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Dependency injection
Dependency injectionDependency injection
Dependency injectionGetDev.NET
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryMax Rozdobudko
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 

Similar to Eclipse Monkey (20)

Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by Cheburek
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
 
PostSharp - Threading Model
PostSharp - Threading ModelPostSharp - Threading Model
PostSharp - Threading Model
 
PostSharp - Threading Model Library
PostSharp - Threading Model LibraryPostSharp - Threading Model Library
PostSharp - Threading Model Library
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
 
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visu...
 
C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.C++ Базовый. Занятие 15.
C++ Базовый. Занятие 15.
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
Java 9 - Back to the Future
Java 9 - Back to the FutureJava 9 - Back to the Future
Java 9 - Back to the Future
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
 
Java fx for interface
Java fx for interfaceJava fx for interface
Java fx for interface
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...Jenkins в docker in mesos in ...
Jenkins в docker in mesos in ...
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
 
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 

Eclipse Monkey

  • 1. Ilja Panin http://the33cows.com Eclipse Monkey Безграничный функционал Flex Builder
  • 2. Ilja Panin http://the33cows.com Что такое Eclipse Monkey ? Это плагин к Eclipse который позволяет писать к нему расширения на языке JavaScript (также Ruby, Python и Groove).
  • 3. Ilja Panin http://the33cows.com Установка Устанавливается как и большинство плагинов Eclipse, адрес сайта: http://download.eclipse.org/technology/dash/update/
  • 4. Ilja Panin http://the33cows.com Основные возможности • файловая система • запуск программ • веб-запросы • … Работа с Eclipse Platform: • Workspace • Projects • Debugger • Plug-ins • … Работа с Java:
  • 5. Ilja Panin http://the33cows.com Инициализация скриптов • Выбор пункта из меню • По сочетанию клавиш • По событию среды
  • 6. Ilja Panin http://the33cows.com От теории к практике
  • 7. Ilja Panin http://the33cows.com Hello world /* * Menu: sample > hello word * Key: M3+6 * Kudos: Ilja Panin http://the33cows.com * DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript */ function main() { Packages.org.eclipse.jface.dialogs.MessageDialog.openInformation(window.getShell(), "Monkey", "Hello World"); } E >
  • 8. Ilja Panin http://the33cows.com Стандартные диалоги Packages.org.eclipse.jface.dialogs.InputDialog Диалог ввода текста Packages.org.eclipse.swt.widgets.FontDialog Диалог выбора шрифта Packages.org.eclipse.swt.widgets.ColorDialog Стандартный диалог выбора цвета Больше информации о диалогах можно найти в хелпе к эклипс платформе Искать в пакете org.eclipse.swt.widgets E >
  • 9. Ilja Panin http://the33cows.com Кастомные диалоги и окна Можно создать любой произвольный диалог используя SWT: The Standard Widget Toolkit E > http://www.eclipse.org/swt/
  • 10. Ilja Panin http://the33cows.com Работа с View Мы можем получить доступ к любому View. Можем открывать их, закрывать, работать с ними, как это делает платформа или плагины E > Подробнее: http://code.google.com/p/monkey-for-flex/wiki/KnowHow
  • 11. Ilja Panin http://the33cows.com Использование «чужого» кода По умолчанию Eclipse Monkey доступны только основные ресурсы платформы. Чтобы начать использовать остальные ресурсы платформы или плагинов нужно воспользоваться функцией: loadBundle(<имя пакета>) E > Пример: loadBundle("com.adobe.flexbuilder.editors.common"); //”Загружает” классы Flex Builder
  • 12. Ilja Panin http://the33cows.com Работа с Java Работая с Eclipse Monkey, мы имеем возможность использовать стандартные объекты Java, их методы и свойства E > Пример 1: Packages.java.lang.Runtime.getRuntime().exec("tskill.exe adl"); //запукает процесс tskill.exe, который убивает процесс adl // AIR отладчик, подробнее у меня в блоге. Пример 2: hashSet = new Packages.java.util.HashSet(); //создали экземпляр класса HashSet
  • 13. Ilja Panin http://the33cows.com Работа с редакторами Получить текущий редактор можно следующим образом: var editor = window.getActivePage().getActiveEditor(); Для работы с редактором (получение текста, вставка, текста, управление курсором и выделением) нужно получить ссылку на класс наследованный от org.eclipse.ui.editors.text.TextEditor В Flex Builder для MXML редактора используя getActiveEditor() мы не получим ссылки на требуемый типа редактора.
  • 14. Ilja Panin http://the33cows.com Работа с редакторами. Flex Builder Flex Builder имеет 3 типа редакторов MXMLEditor и CSSEditor – сложные редакторы, каждый объединяет в себя визуальный и текстовый редактор. Для получения текстового редактора я использую следующий код: this.getCurrentTextEditor = function() { var editor = window.getActivePage().getActiveEditor(); if (editor) { if (editor.getClass().getName() == "com.adobe.flexbuilder.editors.mxml.MXMLEditor" || editor.getClass().getName() == "com.adobe.flexbuilder.editors.css.CSSEditor") { editor = editor.getCodeEditor(); } } return editor; } 1. ASEditor 2. MXMLEditor 3. CSSEditor ASEditor – «простой» редактор, наследуется от org.eclipse.ui.editors.text.TextEditor и мы можем работать с ним сразу
  • 15. Ilja Panin http://the33cows.com Работа с редакторами. Вставка, удаление, выделение текста Для работы с текстом нужно изучить хелп по org.eclipse.ui.editors.text.TextEditor, org.eclipse.jface.text.TextSelection :) Я сейчас уже не помню, что к чему и использую несколько ранее написанных мною методов. Они будут выложены вместе с докладом E >
  • 16. Ilja Panin http://the33cows.com Flex Builder Code Model Adobe Flex Builder 3 Extensibility > Adobe Flex Builder 3 Extensibility API Reference Взяв его на вооружение будем «правильно готовить» билдер :) Разработчики Flex Builder предоставили нам возможность работать с API Flex Builder. В Help можно даже найти скромный раздел:
  • 17. Ilja Panin http://the33cows.com Flex Builder Code Model доступ к модели кода Получить доступ к нему мы можем используя следующий код: loadBundle("com.adobe.flexbuilder.codemodel"); var CMFactory = Packages.com.adobe.flexbuilder.codemodel.common.CMFactory; Дальше пример того, что можно сделать имея этот класс. Входной точкой для работы с API Flex Builder является класс com.adobe.flexbuilder.codemodel.common.CMFactory
  • 18. Ilja Panin http://the33cows.com Flex Builder Code Model автогенерация кода класс для любого интерфейса У Flex Builder немного хромает автогенерация кода когда класс имплементирует какой либо интерфейс: - Код методов создается лишь тогда когда мы выбираем интерфейс при создании класса, если мы добавляем интерфейс потом то мы код приходиться создавать с нуля ручкам. - Мы не можем задать произвольный шаблон для генерации кода - Если интерфейс наследован от другого то автогенератор добавляет все методы, и те которые не нужны. Например: MyAxisRenderer extends UIComponent implements IAxisRenderer где public interface IAxisRenderer extends IUIComponent При генерации билдером в MyAxisRenderer будут вставлены все методы из IUIComponent хотя они есть т.к. мы наследовались от UIComponent Возьмем Eclipse Monkey и будем шаманить… E >
  • 19. Ilja Panin http://the33cows.com Почитать о Eclipse Monkey За стартовую точку я советую взять проект monkey-for-flex