![Page 1: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/1.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 1
Einführung Eclipse RCPVortrag für die berlin.jar...
der Java-Konferenz 2008 in Berlin
Wer spricht?Manfred Borzechowski
Freier Java-Entwickler, Trainer und Berater
![Page 2: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/2.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 2
...und worüber?Nicht über Entwicklung mit EclipseKeine step-by-step RCP instructionsKaum Code-BeispieleSondern
Was Eclipse RCP ist, und Was angehende Eclipse RCP-Entwickler erwartet:
„Extensions“Neue GUI-BibliothekenEntscheidungenBauchschmerzen
![Page 3: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/3.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 3
Eine Geschichte voller „Spannungen“
VisualAge for JavaSmalltalk & RepositoryIBM & WAS & J2EEFrei & Populär AWT & „Features“Fat
WebSphere Studio? & FilesMS & .NETProprietär & LukrativSwing & „Speed“Light
Es standen sich gegenüber:
![Page 4: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/4.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 4
IDEs für Java und J2EEGemeinsame Basis durch geniale Modularisierung
Frei und LukrativJava-IDE frei: EclipseJ2EE-IDEs für WAS kommerziell
Speed und Features: SWT – eine native UI-Bibliothek
Fat und schnell und LightLazy loading, Update-Mechanismen
Aber wohl kein J2EE und .NET
Die Lösung
http://www.pythonfactory.com/downloads/Interview_Gamma_x_NW02_10.pdf
KompletteEclipse
IDELauncher
![Page 5: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/5.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 5
Plug-ins und FeaturesDie Module von Eclipse
„Everything is a Contribution“Weit mehr als Firefox Add-onsDebugger, Compiler, Projektverwaltung, CVS,...
Bis auf:Launcher, Konfigurationsdateien
Verzeichnisse und Jars im Verzeichnis plugins
Erich GammaPattern Papst
Launcher
![Page 6: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/6.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 6
Was braucht man für ein minimales Plug-in?Datei plugin.xml
Kein CodeIn Unterverzeichnis plugins
Oder neuerdings auch dropins
Start von Eclipse liest alle plugin.xmlListe mit Menü Help > About Eclipse Platform, Knopf Plug-in Details
![Page 7: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/7.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 7
Zwei grundlegende Fakten!Was ist die RCP (Rich Client Platform)?
RCP ist ein rudimentäres Eclipse!Nur die allernotwendigsten Infrastruktur-Plug-ins
Runtime, Workbench, SWT und JFace
Was bedeutet Entwicklung für RCP?
RCP-Entwicklung ist Entwicklung einer Anwendung durch Plug-ins für dieses rudimentäre Eclipse!
völlig unabhängig von der Java-IDE
Launcher
Launcher
![Page 8: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/8.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 8
Warum sollte ich RCP-Projekte machen?
Kunde braucht ModularitätAusbaustufen und Erweiterbarkeit
UI ist reichhaltig, ansprechend und flottPerspektiven, MPEs, Views, Coolbar, Preferences, Update-Mechanismen
Neue Kompetenz im ProfilAngebote im Gulp-Roboter: Swing 12, RCP 6http://www.gulp.de/robot/seek.html, Stand 2.9.2008
Es gibt auch Gründe dagegen
![Page 9: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/9.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 9
OSGi – BundlesAbhängigkeiten: MANIFEST.MF definiert
Welche Versionen anderer Bundles verlangt sindWelche eigenen Packages in anderen Bundles sichtbar sind
Lifecycle: Bundles können geladen, gestartet gestoppt und ausgetauscht
„Bei Registrierung erhalten Sie LifecycleEvents“
Nicht durch JVM, sondern ContainerEquinox, Felix, Knopflerfish
„Jar-Sealing done right“
$ java -jar org.eclipse.osgi_3.3.2.R33x_v20080105.jar -consoleosgi> ssFramework is launched.id State Bundle0 ACTIVE org.eclipse.osgi_3.3.2.R33x_v20080105osgi> install file:///workspaces/osgi/tutorial/tutorialbundle.jarBundle id is 4osgi> start 4Apr 17, 2008 11:57:29 AM tutorial.TutorialActivator startINFO: startedApr 17, 2008 11:57:29 AM baselib.BaseService sayHelloINFO: Hello, world!
![Page 10: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/10.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 10
Plug-ins sind OSGi BundlesHaben also eine MANIFEST.MF
Nennt die zwei benötigten Plug-ins der RCP:
Die ihrerseits weitere Plug-ins benötigen
Warum nur verlangt das Crystal Report Plug-in alte Eclipse-Bundle-Versionen?
![Page 11: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/11.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 11
Ein RCP Template Projekt
New > Project... > Plug-in Project
... create Rich Client Application
z.B. RCP Mail TemplateGenerierte Projektinhalte
Run As > Eclipse Application
Konfigurations-dateien
![Page 12: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/12.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 12
Konfiguration mit demPlug-in Manifest Editor
. . . .
.
.
.
Direkteditierung derKonfigurationsdateien
Links zu den Tabsunten links
Hier und daeine UtilityKonsistenz zum
Build Path
BenutztePlug-ins Benutzte
jars Was in die Workbencheingeklinkt wird
Infos für Manifest.MF
![Page 13: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/13.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 13
I'm so lazy - but for a reason
plugin.xml enthält Beschreibung aller durch die Workbench verwalteten GUI-Elemente
Menüs, Actions, Wizards, Preferences, Views, Editoren, Key Bindings, ...Sogenannte Extensions
"Contributions are only loaded when they are needed"
Minimierung der Startup-ZeitDemo: Schmeiß den Kater 'raus
Erich GammaPattern Papst
Launcher
![Page 14: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/14.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 14
Extension #1: Die Anwendung selbst
Template erstellt beispielhafte Implementierung
Mit mehreren Konfigurationsobjekten
Application
ApplicationWorkbenchAdvisor
ApplicationWorkbenchWindowAdvisor
ApplicationActionBarAdvisor
● Ruft PlatformUI.createAndRunWorkbench
● Soll die Perspective Bar gezeigt werden?
● Soll es Statusbar und Coolbar geben?
● Welche Actions sollen im Coolbar in jedem Falle vorhanden sein
● Welches ist die ID der ersten Perspektive● Soll sich das Fenster seine Position merken?
![Page 15: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/15.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 15
Geschenkt: Standard Actions
Im ApplicationActionBarAdvisorErzeugen und registrieren vonInstanzen von Standard-Actions
![Page 16: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/16.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 16
Extension #2: Die erste Perspektive
Layout der initial enthaltenen Views
Relativ zur EditorAreaViews nur über deren IDs u.U. nur für ersten Aufruf
C D A
B
![Page 17: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/17.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 17
Extension #3Views
Für Inhalt sind sie selbst verantwortlich
Keine Extensionsondern echter, handgearbeiteter Code
Einsatz von JFaceViewer für Listen, Tabellen, BäumeEditoren nicht in Views
Einsatz von SWTMasken, Controls, Graphiken
Aber: Menüs und Kommandos sind separate Extensions
Behälter fürSWT-GUI
Es gibt ein Common Navigator Framework, aber...
![Page 18: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/18.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 18
SWT – Simple/Standard Widget Toolkit
„AWT done right“Dünner Layer über native OberflächenkomponentenWindows-Oriented API
Native LibrariesNatives l&F und VerhaltenUnflexibel
„it pissed me off beyond words“http://www.builderau.com.au/news/soa/James-Gosling-Q-A/0,339028227,339176462,00.htm
Dr. André WeinandIBM, Eclipse Comitter
Component
ContainerPanel
FrameWindow
LayoutManager
Widget,Control
Composite
Shell
ButtonCheckbox
Button
TextFieldTextAreaText
FlowLayout
RowLayout
...
...
Layout
AWTSWTJames Gosling
Sun, Schöpfer von Java
![Page 19: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/19.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 19
Was lernt man schon am ersten SWT-Beispiel?
Keine Beans
Style Bits :-(
Kein separater Thread
Ressourcen müssen disposed werden
Andere Styles
![Page 20: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/20.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 20
SWT Layouts
RowLayoutähnlich FlowLayout
FillLayoutähnlich AWT GridLayout
GridLayoutähnlich AWT GridBagLayout
FormLayoutähnlich Swing SpringLayout
horizontalSpan = 3horizontalAlignment = GridData.FILLverticalAlignment = GridData.FILLgrabExcessVerticalSpace = trueheightHint = 50
horizontalAlignment = GridData.ENDverticalAlignment = GridData.BEGINNING
horizontalAlignment = GridData.END horizontalSpan=3horizontalAlignment = GridData.FILL
horizontalAlignment = GridData.FILLdata.grabExcessHorizontalSpace = true
data.horizontalAlignment = GridData.FILL;data.verticalAlignment = GridData.FILL;grabExcessVerticalSpace=trueheightHint = 100
Kann gleicheBreiten erzwingen
![Page 21: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/21.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 21
SWT Listener – AuswahlUntypisiert
Auswahl des interessierenden Events durch Konstante
Von SWT :-(
TypisiertVerifyListener
Texteingabenwidersprechen
HelpListenerBei F1
TraverListener,... Tu es – oder lass es sein!
Suchbild: Findedie Event-Konstante
![Page 22: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/22.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 22
SWT Ressourcen
Umsetzungs-ratschläge:
http://www.eclipse.org/articles/swt-design-2/swt-design-2.html
Handling mehrfach verwendeterRessourcen:
ResourceManagerRegistries
ResourceManager
JFaceResources
![Page 23: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/23.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 23
JFace Viewer und ContentProvider
Grob vergleichbar den Models von Swing
IStructuredContentProviderGibt ein Array von anzuzeigenden ObjektenVerwendbar für Listen und Tabellen
Column-spezifisch durch LabelProvider
ITreeContentProviderGibt zusätzlich Kinder und Eltern
IStructuredContentProvider
ITreeContentProvider
IStructuredViewer
TableViewer AbstractListViewer
CheckboxTabelViewer
AbstractTreeViewer
TableTreeViewerTreeViewer
ListViewer ComboViewer
![Page 24: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/24.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 24
JFace LabelProviderGrob vergleichbar mit den CellRenderern von Swing:
ILabelProviderGibt Text und Image für ein ObjektImage nur in Tabelle sichtbar, nicht in ListeEinfache Implementierung: LabelProvider
ITableLabelProviderGibt spaltenspezifischen Text und Image für ein Objekt
ILabelProvider
LabelProvider
ITabelLabelProvider
![Page 25: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/25.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 25
Neue Widgets im NebelBrutstätte für neue SWT-Widgets
http://www.eclipse.org/nebula/
Grid hat mich nicht begeistertAlternativ: http://sourceforge.net/projects/ktable
originäre SWT-Lösungrichtig brauchbar
![Page 26: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/26.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 26
...und ich etwas aus der anderen Welt brauche?
Wenn Bibliotheken Swing-GUIs bieten Einbinden mit Embedded Frames
OpenOffice.orgOOo kombinieren mit NOA – Nice Office Access
JFreeChartBietet selber (experimentellen) SWT-Support
Crystal ReportsAber nicht unter OS XOLE geht wohl auch, aber keine Erfahrung
![Page 27: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/27.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 27
Views verdrahtenLose Kopplung bevorzugtÜber SelectionService
Viewer ist SelectionProvider View ist Listener
IStructuredSelectionITextSelectionITreeSelectionIMarkSelection
http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html
Sele
ctio
n Se
rvic
e
![Page 28: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/28.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 28
Extensions #4 bis #6: Command, Handler, Binding
CommandMöglicherweise mehrere Handler
Aber nur ein aktiver wird angesprochenKein Code
HandlerKonkrete Klasse für Command mit
execute-Methodeenabled-PropertyZustandslistenern
Zugriff auf HandlerUtilBinding
Optionale Tastenkombination für Command
![Page 29: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/29.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 29
Extension #7: MenuSichtbare Einbettung eines Commands
In Views oder Workbench WindowDropdown Menü, Toolbar, Popup Menü
Konfiguriert durch Location URIEventuelle Bedingung durch <visibleWhen
View kann durch andere Plug-ins Einträge erhalten
Ort definiert durch „spezielle“ EinträgemenuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
<menuContribution locationURI="popup:rcpTunes.views.container"><menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=additions">
Ersatz für:actionSetseditorActionspopupMenusviewActions
![Page 30: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/30.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 30
Extension #8: EditorAngezeigter Inhalt wird wie View erstellt
Dirty-Zustand und Save-MetaphorKann in mehreren Instanzen geöffnet werden
Jeweils für IEditorInput
Kein Notwendigkeit daß es sich um Datei handeltirgendein textueller Inhalt dargestellt und bearbeitet wird
public void createPartControl(Composite parentComposite) {
![Page 31: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/31.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 31
Extension #9: Preference Page
Von FieldEditorPreferencePage ableitenEditoren mit Label hinzufügen
Außerdem: PreferenceStoreVorinitialisieren Auslesen
![Page 32: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/32.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 32
Extension #10: ProductSammelsurium von Properties
Zum Gebrauch innerhalb der Anwendung
In separater .product-KonfigurationsdateiSplash-ScreenOptionen für Linux, Solaris, MacOS X, WindowsLauncher-NameIcons
Nötig für den Produktexport
windowImagesaboutImageaboutTextappNamewelcomePage
![Page 33: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/33.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 33
Extension #11: Helphttp://www.eclipse.org/articles/article.php?file=Article-AddingHelpToRCP/index.html
plugin.xml referenziert toc.xml-DateienNennen Themen und UnterthemenReferenzieren Hilfe-texte im HTML-Format
ActionBarAdvisor registriert HelpActions
Benötigte weitere Plug-ins
showHelpAction = ActionFactory.HELP_CONTENTS.create(window); searchHelpAction = ActionFactory.HELP_SEARCH.create(window); dynamicHelpAction = ActionFactory.DYNAMIC_HELP.create(window);
<toc label="Sample Table of Contents"><topic label="Main Topic" href="html/maintopic.html"> <topic label="Sub Topic" href="html/subtopic.html"/> </topic><topic label="Main Topic 2"/></toc>
![Page 34: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/34.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 34
Follow me ... which way?
Viele Plug-ins Modularität und SeparationVerzahnung durch eigene Extension Points
Ein Plugin, sonst herkömmliches, programmatisches VorgehenListener, Models, Events, Observer,
Classic Road
Eclipse Avenue
Launcher
Launcher
![Page 35: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/35.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 35
Bauchschmerzen #1Deklaratives Programmieren in XML
Schema, aber keine API-DOCMuss ich gar das Framework debuggen?Keine Code Completion von CDATA
kleiner Ersatz: Wizard im Plug-in Editor
4 Konfigurationsdateien pro Plug-in müssen zusammenspielen
.classpath, plugin.xml, build.properties, manifest.mfAchtung: mit übergreifenden Abhängigkeiten
Zusätzlich: Launch-Konfiguration
![Page 36: Wer spricht? · 2018. 6. 9. · © 2008 by EDV-Beratung Manfred Borzechowski 1 Einführung Eclipse RCP Vortrag für die berlin.jar... der Java-Konferenz 2008 in Berlin Wer spricht?](https://reader034.vdokument.com/reader034/viewer/2022052004/6017b1ea340a9d5e2e53a582/html5/thumbnails/36.jpg)
© 2008 by EDV-Beratung Manfred Borzechowski 36
Bauchschmerzen #2Hoher Lernaufwand
auch für sehr erfahrene Java-EntwicklerAbsolutes Overengineering für kleine Anwendungen
Interface > IAdaptable > AdaptorFactoriesEinschränkungen der verfügbaren Widgets
Button mit Icons? Tab disablen?Bugfixes je nach Wichtigkeit für EclipseFeature-Stabilität
3.3 Commands statt Actions3.4 Neuer Update-Mechanismus