eclipse extensibility
DESCRIPTION
Eclipse Extensibility. João Paulo – jpsm Mário Barbosa - mbaj. O Que é o Eclipse ?. Plataforma Open Source Baseada em um sistema de plug-ins Doada para o Eclipse Foundation pela IBM em 2004 Inicialmente IDE Java Multiplataforma. Eclipse Public License (EPL). - PowerPoint PPT PresentationTRANSCRIPT
O Que é o Eclipse ?
•Plataforma Open Source•Baseada em um sistema de plug-ins•Doada para o Eclipse Foundation pela
IBM em 2004•Inicialmente IDE Java•Multiplataforma
Desenvolvimento do Eclipse
•Arquivos fontes de Java: 9.689•Linhas de código em Java: 1.903.219•JUnits usados automaticamente em cada
Build: 21.332•Instâncias da palavra “foo”: 224•Número de rosquinhas comidas: 1120
IDE´s do Eclipse • JDT (Java Development
Tooling) • PDE (Plug-in Development
Environment)• CDT (C/C++ Development
Tools)• AJDT (AspectJ
Development Tools) • COBOL• VE (Visual Editor)• WTP (Web Tools Platform)• WST(Web Standard Tools)• JST (J2EE Standard Tools)
• Pollinate• WSVT ( Web Service
Validation Tools) • Hyades• OMONDO
RCP
•RCP (Rich Client Plataform)▫Plataforma para construir aplicações de
Clientes com uma rica funcionalidade•Open Source/Free•Iniciada em 2003 (desde o Eclipse 2.1)
Dentro do RCP
•Runtime Components▫OSGi – Open System Gateway initiative
Aplicações/Bundles▫Extensões
•UI Components▫SWT – Standard Widget Toolkit▫Jface – Framework de abstração de UI▫Workbench
View/ Editors/ Actions/ Perspective …▫Text/ Form/ GEM
Dentro do RCP
•User Experience/ Assistence▫Introdução ao plugin
“Bem vindo ao nosso produto”▫Dicas
“Mostre me como fazer”▫Ajuda do Eclipse
Baseada em XML/ XHTML
Dentro do RCP
•Disponibilização/ Updates▫Disponibilização
Suporta JNLP (webstart)▫Update de programas▫Update de UI▫Update de Funcionalidades
Platform Runtime• Descobre dinamicamente
os plug-ins instalados
• Plug-ins são ativados após ação do usuário
OSGi
•Open Service Gateway initiative•Pequena camada runtime•Procurar e ativa plugins•Maior compatibilidade e portabilidade
▫Hardware▫Systemas Operacionais
JDT (Java Development tooling)• Utilizam extension points.
Frameworks▫ Conjunto de plug-ins
• Contribuições no desenvolvimento de programas▫ Escrita▫ Compilação▫ Teste▫ Debug
PDE (Plug-in development environment)
• Possui um conjunto de ferramentas para o desenvolvimento de plug-ins▫ New Project Creation Wizards▫ Import wizards▫ Export wizards▫ Views▫ Conversion tools▫ ...
SWT
•SWT (Standard Widget Toolkit)•IBM desenvolveu o VisualAge
▫IDE desenvolvida em Smalltalk▫Virou um projeto OpenSource
•Uma nova GUI Toolkit▫Look and Feel Nativo▫Performance Nativa
Workbench UI
• Implementam o “cockpit” do usuário
• Define extension points para UI components▫ Menu and tool bar
actions▫ Drag and drop▫ Dialogs▫ Viewers▫ ...
Plug-ins são componentes
•Cada plug-in representa um conjunto de funcionalidades que podem ou não ser extendidas de outros plug-ins
•Possuem um ou mais extension points•Cada plug-in é definido em seu próprio
arquivo plugin.xml e se encontra em seu próprio sub-diretório ou jar
Desenvolvendo um Plug-in
•Decidir como ele será integrado a plataforma
•Identificar os extensions-points a serem utilizados
•Implementar os extension-points de acordo com sua especificação
•Prover um manifest file (manifest.mf) e um plugin-manifest (plugin.xml)
HelloWorld – Plug in Project•Selecione File -> New Project•Escolha a opção Plug-in project •Insira o nome do projeto
Código simplificado
package com.example.helloworld;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart;
public class HelloWorldView extends ViewPart { Label label; public HelloWorldView() { } public void createPartControl(Composite parent) { label = new Label(parent, SWT.WRAP); label.setText("Hello World"); } public void setFocus() { // set focus to my widget. For a label, this doesn't // make much sense, but for more complex sets of widgets // you would decide which one gets the focus. } }
Substitua o código da classe do plugin pelo código abaixo
plugin.xml gerado
<?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.2"?><plugin>
<extension point="org.eclipse.ui.views"> -> única extensão utilizada<category
name="Hello Category“ id="com.example.helloworld">
</category><view
name="Hello View"icon="icons/sample.gif"category="com.example.helloworld"class="com.example.helloworld.views.HelloWorldView"id="com.example.helloworld.views.HelloWorldView">
</view></extension>
</plugin>
Dê dois cliques em plugin.xml no Package Explorer e selecione a aba plugin.xml
Rodando o plug-in
•Na aba overview clique em Launch an Eclipse application ou rode a aplicação normalmente como eclipse application
Referências• http://pesquompile.wikidot.com/eclipse-n• http://www.slideshare.net/vijaykiran/eclipse-rcp• http://www.slideshare.net/joomlatools/joomladay-nl-2008-
debugging-joomla-in-eclipse-338480• http://www.slideshare.net/ciukes/introduction-to-the-eclipse-platf
orm-141827
• http://www.slideshare.net/neerajbhusare/eclipse-modeling-framework
• http://www.slideshare.net/fbahr/introduction-to-the-graphical-modeling-framework-gmf
• http://www.cjug.org/presentations/2005/Sep01west/eclipse_rcp.pdf
• http://wiki.eclipse.org/index.php/Rich_Client_Platform• http://wiki.eclipse.org/RCP_FAQ• Eclipse HELP