Escolar Documentos
Profissional Documentos
Cultura Documentos
April 05
Consideraes Gerais
Objetivo: Discutir os principais conceitos relacionados a Plataforma de Desenvolvimento Eclipse e suas facilidades para a Programao JAVA A quem se destina : Alunos e Profissionais que desejem aprofundar seus conhecimentos sobre Orientao a Objetos e sua aplicao em uma linguagem totalmente orientada a Objetos.
April 05
Ementa
Introduo a Plataforma Eclipse
Introduo Arquitetura da Plataforma Componentes da Plataforma JDT PDE
April 05
Bibliografia
Eclipse project briefing materials
http://www.eclipse.org/eclipse/presentation/ eclipse-slides.html
April 05
POO-Java
Introduo ao Eclipse
The Eclipse Platform is an IDE for anything, and for nothing in particular."
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5
O que o Eclipse
O Eclipse uma plataforma para a integrao de ferramentas de desenvolvimento. Iniciativa Open Source. Arquitetura extensvel baseada no uso e desenvolvimento de plug-ins. Pblico Alvo:
Desenvolvedores de Aplicao Desenvolvedores de Ferramentas de Desenvolvimento Pesquisadores
April 05
Neutralidade de linguagens
No possui restrio quanto ao tipo de contedo
HTML, Java, C, JSP, EJB, XML, GIF,
Histrico do Eclipse
Origens
A linha Visual Age de IDEs da IBM estava precisando de um reposicionamento comercial e uma refatorao da sua arquitetura Esta refatorao deu origem ao Eclipse como software livre e sua arquitetura de plug-ins O Eclipse se tornou a base da nova linha de IDEs da IBM, o WebSphere Studio Tambm a base da nova linha de ferramentas da Rational (XDE), encampada pela IBM
April 05
Histrico do Eclipse
Origens (cont.)
Infra-estrutura para o desenvolvimento de ferramentas de desenvolvimento para qualquer plataforma e linguagem Java apenas a linguagem de sistema do Eclipse, assim como C a linguagens de sistema do VB Em vez do Swing, utilizada a biblioteca SWT para componentes visuais Foco no apoio codificao (automao,refatorao, extreme programming) em vez da construo visual
April 05
Histrico do Eclipse
Independncia da IBM
A Eclipse Foundation se tornou este ano uma entidade jurdica independente da IBM, e seu conselho diretor hoje presidida por um executivo da Oracle Este fato estimulou outras grandes empresas como a SAP a se tornarem parte da fundao Amplo mercado de plug-ins de terceiros, como o SOFIA, Genuitec (MyEclipse), TruStudio (Python), W4T, etc
April 05
10
Histrico do Eclipse
1999 Abril - Incio do Eclipse dentro da OTI / IBM responsaveis pleos produtos IBM VisualAge (Smalltalk, Java, J2ME). 2000 Junho- Lanamento do Eclipse Tech Preview 2001 Maro- Incio do http://www.eclipsecorner.org/ Junho- Eclipse 0.9 Outubro - Eclipse 1.0 Novembro - IBM doa base de cdigo do Eclipse, Eclipse Platafom, JDT e do PDE - Lanamento do http://www.eclipse.org/ 2002 Junho- Eclipse 2.0 Setembro - Eclipse 2.0.1 Novembro - Eclipse 2.0.2 2003 Maro - Eclipse 2.1 Junho Eclipse 2.1.1 Novembro 2.1.2
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 11
Quem Contribui?
April 05
12
POO-Java
Arquitetura da Plataforma
April 05
13
Team
Sua Ferramenta
Workspace
Debug
Ferramenta XPTO
14
April 05
15
Arquitetura Eclipse
Plug-in Menor bloco de construo do Eclipse. Unidade mnima de funcionalidade. Exemplos: editor HTML, Ao para criar arquivos zip Uma aplicao complexa pode ser baseada em vrios plugins; a maior parte do prprio Eclipse implementada por plugins Pontos de Extenso Entidades definidas para o agrupamento de contribuies. Um plugin declara pontos de extenso e extenses para pontos de extenso de outros plugins Exemplo: ponto de extenso para preferncias referentes a interface com usurios de um editor Extenso Uma contribuio Exemplo: preferncia especficas de um editor HTML
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 16
Arquitetura Eclipse
Cada plug-in: Contribui com 1 ou mais pontos de extenso Opcionalmente, declara novos pontos de extenso Depende de outros plug-ins Contm bibliotecas Java e outros arquivos Pertence ao seu prprio diretrio de plug-ins Detalhes sobre o plug-in so escritos no arquivo plugin.xml no diretrio raiz do plug-in. Runtime da Eclipse Plataform Estrutura micro-kernel. Toda a funcionalidade suprida por plug-ins. Ao iniciar Runtime descobre todos os plug-ins registrado
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 17
Inventrios - Manifest
Plugins explicitam seus pontos de extenso, extenses e relaes com outros plugins atravs de um arquivo de inventrio (manifest) no formato XML Com base nos arquivos de inventrio, o sistema cria uma listagem dos plugins disponveis e suas interconexes durante a inicializao Os plugins s so ativados quando efetivamente solicitados
April 05
18
Plug-in Manifest
plugin.xml
<plugin Plug-in identification id = com.example.tool" name = Example Plug-in Tool" class = "com.example.tool.ToolPlugin"> Other plug-ins needed <requires> <import plugin = "org.eclipse.core.resources"/> <import plugin = "org.eclipse.ui"/> </requires> <runtime> Location of plug-ins code <library name = tool.jar"/> </runtime> <extension Declare point = "org.eclipse.ui.preferencepages"> contribution <page id = "com.example.tool.preferences" icon = "icons/knob.gif" this plug-in title = Tool Knobs" makes class = "com.example.tool.ToolPreferenceWizard/> Declare new extension </extension> <extension-point point open to name = Frob Providers contributions from other id = "com.example.tool.frobProvider"/> plug-ins </plugin>
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 19
interface I
Plug-in A
Plug-in B
Implementa a interface I com a classe C Contribui com a classe C para o ponto de extenso P
10
UML
JUnit
Ant
Modelagem
Desenvolvimento
Testes
Distribuio
April 05
21
POO-Java
Componentes da Plataforma
April 05
22
11
Componentes da Plataforma
A Plataforma a base comum para todos os componentes. Consiste em vrios componentes chaves:
Plataforma Eclipse Workbench
UI
SWT
Core
Workspace
Ant
Plataforma de execuo
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 23
Workspace
Ferramentas lem, criam, modificam e removem recursos da rea de trabalho Recursos
Projetos, pastas e arquivos
April 05
24
12
Workspace Component
Tools operate on files in users workspace Workspace holds 1 or more toplevel projects Projects map to directories in file system Tree of folders and files
{Files, Folders, Projects} termed resources Tools read, create, modify, and delete resources in workspace Plug-ins access via workspace and resource APIs
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 25
Projetos no Eclipse
Um projeto um conjunto de arquivos em um diretrio raiz Um projeto tem uma espcie (nature), qual corresponde uma configurao do ambiente Projetos, arquivos e diretrios que os compem so encarados como recursos Pode-se criar marcadores com listas de tarefas, pontos de parada de depurao etc.; plugins podem definir tipos de marcadores A forma preferida de acrescentar recursos de construo via scripts Ant
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 26
13
Alteraes de recursos
Mudanas nos recursos que compem um projeto so descritas por uma rvore de alteraes de recursos (resource deltas) Alteraes em lote geram uma nica rvore Plugins podem ser informados de mudanas em algum recurso
coerncia de operao e de interface com o usurio entre plugins construo parcial (incremental build)
April 05
27
Workbench (Bancada)
Interface do usurio da plataforma Eclipse
Fornece uma estrutura para a interao de ferramentas com os usurios
Componentes do Workbench
Perspectivas Vises Editores Oferece suporte ao trabalho em equipe
CVS
Padro
Outros
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 28
14
Workbench
Composta de visores e editores; diferentes perspectivas correspondem a diferentes organizaes de visores e editores Editores acrescentam aes aos menus e barras de ferramentas da bancada Visores fornecem diversas informaes ao usurio sobre os recursos que esto sendo editados visores, editores, perspectivas e aes podem ser acrescentados ao sistema por plugins
April 05
29
Workbench Terminology
Menu bar Tool bar Perspective and Fast View bar Text editor
Outline view
April 05
15
SWT
Interface independente de plataforma; implementao em Java + JNI Usa biblioteca padro do sistema; quando isso no possvel, emulao Interface de programao porttil + interface de usurio consistente com o sistema Permite extenses no-portteis, como ActiveX em Windows) Pode ser usada em outros projetos
April 05
31
JFace
Conjunto de classes para tarefas comuns de GUI, como assistentes, preferncias, dilogos etc. Aes (actions): definio abstrata de um comando a ser includo na interface sem definir onde (nome, cone, dica etc.) Visores (viewers): adaptadores que implementam o padro observer para alguns elementos SWT, como listas, rvores e tabelas
April 05
32
16
JFace APIs
Image and font registries Dialog, preference, and wizard frameworks Structured viewers
Model-aware adapters for SWT tree, table, list widgets
Text infrastructure
Document model for SWT styled text widget Coloring, formatting, partitioning, completion
Actions
Location-independent user commands Contribute action to menu, tool bar, or button
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 33
April 05
34
17
Help
Plugins podem acrescentar documentao ao sistema Documentos em HTML Estrutura das relaes entre documentos em XML O plugin define onde os tpicos de ajuda devem ser inseridos na rvore de documentao Servidor HTTP embutido no Eclipse
April 05
35
Help Component
Help is presented in a standard web browser
April 05
36
18
Debug Component
Launch configurations
How to run a program (debug mode option)
Generic debug UI
Debug perspective Debug views: stack frames, breakpoints,
Local variables
19
April 05
39
April 05
40
20
Product Information
Window image
Splash screen
Welcome pages
Product Information
Primary feature controls product information
Splash screen Window image About product info Initial welcome page Default perspective Preference default overrides
April 05
42
21
April 05
43
POO-Java
JDT Java Developmnet Tools
April 05
44
22
April 05
45
23
April 05
47
Implementao
Construtor parcial usa uma rvore de alteraes de recursos juntamente com um grafo de dependncias armazenado persistentemente para reconstrues otimizadas Sistema mantm uma rvore de elementos Java para navegao pelos editores e visores; essa rvore construda e carregada em memria em partes, em funo da necessidade
April 05
48
24
Implementao
Interface de usurio e infra-estrutura separados Define a espcie projeto Java, o construtor parcial Java e marcadores para depurao Define a perspectiva Java, visores de pacotes e de hierarquia de tipos, assistentes para a criao de classes, pacotes, interfaces etc. Define preferncias, como classpath, opes de formatao do editor Java etc.
April 05
49
Java Perspective
Java-centric view of files in Java projects
Java elements meaningful for Java programmers
Java project package class field method Java editor
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 50
25
Java Perspective
Browse type hierarchies
Up hierarchy to supertypes Down hierarchy to subtypes
Type hierarchy
Java Perspective
Search for Java elements
Declarations or references Including libraries and other projects
Hits flagged in margin of editor All search results
April 05
52
26
Java Editor
Hovering over identifier shows Javadoc spec
April 05
53
Java Editor
Method completion in Java editor
List of plausible methods Doc for method
April 05
54
27
Java Editor
On-the-fly spell check catches errors early
Preview
55
Java Editor
Code templates help with drudgery
Statement template
Preview
April 05
56
28
Java Editor
Java editor creates stub methods
Method stub insertion for anonymous inner types
April 05
57
Java Editor
Java editor helps programmers write good Java code
Variable name suggestion JavaDoc code assist
April 05
58
29
Refactoring
JDT has actions for refactoring Java code
April 05
59
Refactoring
Refactoring actions rewrite source code
Within a single Java source file Across multiple interrelated Java source files
30
Refactoring
Full preview of all ensuing code changes
Programmer can veto individual changes
List of changes
April 05
61
Refactoring
Growing catalog of refactoring actions
Organize imports Rename {field, method, class, package} Move {field, method, class} Extract {method, local variable, interface} Inline {method, local variable} Reorder method parameters Push members down
April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 62
31
Java compiler
Takes care of translating Java sources to binaries
Java debugger
Allows programmer to get inside the running program
POO-Java
PDE Plugin Developmnet Environmnt
April 05
64
32
Desenvolvendo um plug-in
Definies Declarativas (manifest)
Plugin.xml
Definio
Implementao
Execuo
Implementao procedural
Java
April 05
65
Introduo ao PDE
Ambiente de desenvolvimento de plug-ins dentro do workbench do Eclipse Tambm um plug-in, construdo usando os recursos da prpria plataforma e o JDT Permite a definio de um plug-in project, que agrega os elementos do plug-in (arquivo manifest, cdigo-fonte, gifs) Possibilita a construo, compilao, depurao, teste e empacotamento de um plug-in
April 05
66
33
April 05
67
Definir no arquivo de manifesto (plugin.xml), os pontos de extenso que o plug-in ir contemplar Definir uma subclasse de alguma classe da plataforma Eclipse de acordo com a extenso sendo definida Implementar mtodos herdados destas classes juntamente com cdigo de lgica de funcionamento do plug-in
(2)
(3)
April 05
68
34
org.eclipse.ui.views org.eclipse.ui.viewActions org.eclipse.ui.editors org.eclipse.ui.editorsActions org.eclipse.ui.popMenus org.eclipse.ui.actionSets org.eclipse.ui.actionSetPart Association org.eclipse.ui.perspectives org.eclipse.ui.perspectivesE xtensions
April 05
69
April 05
70
35