plug-ins crash course roland overgaauw e-mail: [email protected]

49
Plug-ins Crash Course Roland Overgaauw e-mail: [email protected]

Upload: braden-shirer

Post on 31-Mar-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Plug-ins Crash Course

Roland Overgaauw

e-mail: [email protected]

Page 2: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Plug-ins Crash Course

Page 3: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Wat is Eclipse

• een opensource framework

• een kernel & een verzameling Plug-ins

Page 4: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Eclipse Bouwstenen

Platform Core (load en execute plugins)

Workbench UI (bestaat uit plug-ins)

Gui

SWT

JFace

perspectiveseditorsviewsdialogsetc...

Help

Team

Workspace/Resources

Page 5: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

plug-ins afhankelijk van plug-ins

Workbench UI

Tool 1

Tool 3

Tool 4

Tool 2

Platform Core

Java Devl Tool

extention points plug-ins

Page 6: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Wat is een Plug-in(1)

Page 7: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Wat is een Plug-in(2)

• directory in [INSTALL]/plugins[INSTALL]

Plug-ins

Page 8: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Wat is een Plug-in(3)

• must have– directory– plugin manifest: plugin.xml– (jar file)

Page 9: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (1) wizard 1

• The hard way / The Easy way– File -> new -> Project

– of klik

Page 10: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (2) wizard 2

Page 11: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (3) wizard 3

Page 12: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (3) wizard 4

Page 13: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (4) wizard 5

Page 14: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (5.1) easy 1

Page 15: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (5.1) easy 2

Page 16: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (5.1) easy 3

Page 17: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (5.1) easy 4

Page 18: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (5.2) easy 5

Page 19: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (6) result

Page 20: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (7) plugin.xml 1

<?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><plugin id="nl.java2.demo.plugin02" name="Plugin02 Plug-in" version="1.0.0" provider-name="java 2 nl" class="nl.java2.demo.plugin02.Plugin02Plugin">

<runtime> <library name="plugin02.jar"> <export name="*"/> </library> </runtime> <requires> <import plugin="org.eclipse.ui"/> <import plugin="org.eclipse.core.runtime.compatibility"/> </requires>

</plugin>

Page 21: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (8) plugin.xml 2

• plugin.xml - Manifest– dependencies

• welke andere plugins heb ik nodig

– runtime• waar kan ik mijn classjes vinden (jarfile)

– extentions• welke andere extention point(s) gebruik ik

– extentionspoint• welke nieuwe extention point(s) lever ik

Page 22: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (9) extensions page

Page 23: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (10) add extension

Page 24: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (11) choose extension point

Page 25: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (12) add actionSet

Page 26: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (13) add menu

Page 27: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (14) add ction

Page 28: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (15) add separation

Page 29: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (16) add ActionClass

Page 30: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (17) add ActionClass

Page 31: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (18) ActionClasspackage nl.java2.demo.plugin02;

import org.eclipse.jface.action.IAction;import org.eclipse.jface.viewers.ISelection;import org.eclipse.ui.IWorkbenchWindow;import org.eclipse.ui.IWorkbenchWindowActionDelegate;

public class MyAction implements IWorkbenchWindowActionDelegate {

private IWorkbenchWindow workbenchWindow;

public MyAction() {}public void run(IAction action) {

MessageDialog.openInformation(workbenchWindow.getShell(),"Plugin02 Plug-in","Hello, Frodo”

);

}public void selectionChanged(IAction action, ISelection selection) {}public void dispose() {}public void init(IWorkbenchWindow window) {

workbenchWindow = window;

}}

Page 32: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (19) testen

Page 33: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (20) perspective

Page 34: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (21) commands

Page 35: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (22) result 1

properties van (menu)

Page 36: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (23) result 2

Page 37: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (24) deploying plug-ins

Page 38: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (25) deploying plug-ins

Page 39: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Hello Frodo (26) finished

Page 40: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (1)

Editors

Perspectives

ViewsViewsViews

Page 41: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (2) perspectives

• ui.perspectives– niewe workbench perspectives en default layout

• ui.perspectiveExtensions– toegevoegde waarde aan bestaande perspectives

Page 42: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (3) editors & views

• ui.editors– editors in de editors pane

• ui.editorActions– toevoegen van Actions aan bestaande editors

menu of toolbar

• ui.views

• ui.viewsActions

Page 43: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (4) actions

• ui.actionsSets– User actions in menu’s, toolbars

• ui.actionsSetPartAssociations– Verbinding tussen actions en componenten

• ui.popupMenus

Page 44: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (5)

• ui.commands– Shortcuts via Keyboard– (Windows -> Preferences -> Workebench ->

Keys)

• ui.dropActions– sleur n pleur

Page 45: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (6)

• ui.preferencePages

• ui.propertiesPages

• ui.startup

• ui.workingSets

Page 46: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (7) Gandalfs

• ui.exportWizards

• ui.importWizards

• ui.newWizards– extends org.eclipse.jface.wizard.Wizard– implement org.eclipse.ui.INewWizard– methode addPage() gebruiken om WizardPage

toe te voegen.

Page 47: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

extention points (8) help

• ui.markerHelp– toeveoegen van help markers

• ui.markerResolution– class MarkerResolutionGenerator– voor gebruik van QuickFix functies

• help.contexts• help.support• help.ui.browser

Page 48: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Q&A

Page 49: Plug-ins Crash Course Roland Overgaauw e-mail: r.overgaauw@infoprofs.nl

Thanx!

presentatie te bekijken op

http://www.xs4all.nl/~rfover