V E E.l E.2 E.3 E.4 TeiM 1 1.1 1.2 1.3 1.4 1.5 2 2.1 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 3.3 3.4 3.5 Vorwort von Stefan Tilkov Einleitung Zielgruppe Über dieses Buch Konventionen Dank Überblick Die Entwicklungsumgebung Eclipse für RCP- und Plug-in-Entwickler In fünf Minuten zur ersten Rich-Client-Anwendung Weniger ist manchmal mehr Zusammenfassung Verweise Das Eclipse Pluq-in-Konzept Erweiterbarkeit von Java-Anwendungen Komponenten der RCP Plug-in-Deklaration Der Plug-in Manifest Editor Der Extension Point Schema Editor Nutzen der Extension Points Architekturdetails Lazy Loading und virtuelle Proxies Lebenszyklus einer Anwendung Adapter und Adapter-Factories Einige wichtige Klassen der Plattform Verweise 15 17 18 18 20 20 21 23 23 24 26 28 28 29 30 32 33 38 43 47 53 53 58 59 65 67 Bibliografische Informationen http://d-nb.info/985802642 digitalisiert durch
4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 5 Teil 2 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 7 7.1 7.2 7.3 7.4 8 8.1 8.2 8.3 Das User Interface SWT Besonderheiten von SWT Ereignisse in SWT Layouts SWT und Swing JFace Ereignisbehandlung in JFace Viewer FontRegistry, ColorRegistry und ImageRegistry Dialoge und Wizards JFace und SWT in RCP-Anwendungen Was es sonst noch gibt Verweise Die Workbench Ein durchgehendes Beispiel Vorbereitung TiPler, ein Todo-Listen-Manager TiPler Entwicklungsschritte Die Sprache der Anwendung Eclipse-Konfiguration Beispiel-Code Code aktiv lernen Plug-ins und Code finden Zusammenfassung Der Rahmen Hello TiPler Die Projektstruktur Die Quelldateien Zusammenfassung Externe Bibliotheken einbinden Das Datenmodell Bundling Einbinden eines Bundles in ein Plug-in 69 69 73 77 78 80 81 83 84 85 87 90 90 90 93 97 99 99 100 101 101 102 104 105 106 107 107 111 111 115 117 117 119 121
8.4 Probleme beim Bundling 122 8.5 Zusammenfassung 122 9 ViewPart: Die Todo-Liste 123 9.1 Eine leere View 124 9.2 Testen der View mit Dummy-Daten 129 9.3 Füllen der View 129 9.4 Die Adapterfactory 132 9.5 Und wenn nichts zu sehen ist? 135 9.6 Event Handling 135 9.7 Zusammenfassung 136 10 ContentProvider statt Adapter 137 10.1 Mehr zu Viewern 137 10.2 Viewer und ContentProvider 138 10.3 Spezifische ContentProvider 139 10.4 Zusammenfassung 141 11 Programmatische Actions 143 11.1 Actions in Menüs 143 11.2 Der About-Dialog 145 11.3 Zusammenfassung 146 12 Deklarative Actions 147 12.1 Überblick 147 12.2 Kontextmenüs 148 12.3 Eine Action im Kontextmenü als objectcontribution 149 12.4 Umgang mit ähnlichen Actions 152 12.5 Texteingabe mit InputDialog 153 12.6 Actions in Menüs 154 12.7 Actions in der Toolbar 157 12.8 Kontext und Binding 159 Kontext 159 Actions und ActionDelegates 161 Binding 162 12.9 Zusammenfassung 162 13 RetargetActions 163 13.1 Aktiv mitarbeiten 163 13.2 Open, New, Save & SaveAs 163
13.3 Views speicherbar machen 166 13.4 Zusammenfassung 169 14 Editoren 171 14.1 Der Item-Editor 171 14.2 Infrastruktur 172 14.3 Editoren und Views 172 14.4 Editor und Editorlnput 173 14.5 Den Editor öffnen 177 14.6 Zusammenfassung 178 14.7 Verweise 178 15 Extension Points 179 15.1 Spezifikation: Attribut-Plug-in 179 15.2 Vorbereitung der Anwendung 180 15.3 Der Extension Point 182 15.4 Die Extension Registry 185 15.5 Einbinden der ersten Extension 187 15.6 Zusammenfassung 190 16 Editor Contributions 191 16.1 Erstellen einer ContributorClass 192 16.2 Endlich: Ein neues Plug-in 194 16.3 Einbinden des neuen Plug-ins 197 16.4 Zusammenfassung 198 17 Drag & Drop 199 17.1 Überblick 199 17.2 Transfertypen 201 17.3 1. Schritt: Drag 201 17.4 2. Schritt: Drop 204 17.5 3. Schritt: Action! 205 17.6 Weitere Drag-Quellen und Drop-Ziele 206 17.7 Zusammenfassung 207 17.8 Verweise 207 18 Copy & Paste 209 18.1 Copy & Paste-Aktionen 209 18.2 Die Zwischenablage 210 10
18.3 Copy & Paste und Drag & Drop 212 18.4 Zusammenfassung 212 19 Besseres Editieren 213 19.1 In-Place-Editieren 213 19.2 Komplexe Toolbars 215 19.3 Zusammenfassung 217 20 Wizards 219 20.1 Noch ein Plug-in 219 20.2 Zusammenfassung 221 20.3 Verweise 221 Teil 3 Von der Anwendung zum Produkt 223 21 Der Produkt-Editor 225 21.1 Produkt-Export 229 21.2 Export für verschiedene Plattformen 232 21.3 Zusammenfassung 233 21.4 Verweise 233 22 Online-Hilfe 235 22.1 JavaHelp 235 22.2 Das Hilfe-Plug-in 238 Anpassen der Struktur der Hilfeseiten 240 Die Startseite der Online-Hilfe 242 Kontextsensitive Hilfe 244 Der Hilfe-Index 246 22.3 Online-Hilfe ohne eigenes Projekt 248 22.4 Zusammenfassung 248 22.5 Verweise 248 23 Internationalisierung 249 23.1 Die Texte der Manifest-Dateien 249 23.2 Lokalisierte Ressourcen 251 23.3 Sprachpakete 252 23.4 Zusammenfassung 256 24 Fragmente 257 25 Branding 259 25.1 Der Splash-Screen 259 25.2 Der About-Dialog 260
25.3 Plug-in-Details 263 25.4 Zusammenfassung 263 26 Features 265 26.1 Zusammenfassung 270 27 Installation und Update über das Internet 271 27.1 Update Site 271 27.2 Update Actions 273 27.3 Java Webstart 274 27.4 Zusammenfassung 275 27.5 Verweise 275 Teil 4 Mehr Details 277 28 Das Eclipse FileSystem 279 28.1 Ein einfacher Datei-Browser 280 28.2 Die wichtigsten Funktionen der API 283 28.3 Weitere Implementierungen 285 28.4 Zusammenfassung 285 28.5 Verweise 285 29 Das Eclipse Data Binding 287 29.1 Das Model View Controller Pattern 287 29.2 Data Binding in der RCP 288 29.3 Validierung und Konvertierung 293 29.4 Zusammenfassung 296 29.5 Verweise 296 30 Rieh Clients und OLE 297 30.1 Excel in einer RCP-Anwendung 297 30.2 Das Automation-Objekt 299 30.3 Abfragen der COM-Schnittstellen 301 30.4 Zusammenfassung 302 30.5 Verweise 303 31 Integration in die Taskleiste 305 31.1 Zusammenfassung 309 32 Eclipse Resources Plug-in 311 32.1 Erstellen von Ressourcen 314 32.2 Meta-Informationen 315 12
32.3 Änderungen verfolgen 318 32.4 Verweise 328 33 Die Job-API 329 33.1 Wozu überhaupt? 329 33.2 Der Job 330 33.3 Nebenläufigkeit von Jobs 336 33.4 Monitor 340 33.5 Verweise 342 Teil 5 Anhang 343 34 Unit-Tests 345 34.1 Im Schnellverfahren 346 34.2 Und jetzt ordentlich... 348 34.3 Tests der grafischen Oberfläche 349 34.4 Zusammenfassung 350 34.5 Verweise 350 35 Rieh Ajax Platform 351 35.1 Das RAP-Plug-in 351 35.2 Die RAP-Demo-Anwendung 352 35.3 Der Dateibrowser als Webanwendung 354 35.4 Wie RAP arbeitet 357 35.5 Themen 357 35.6 Anmerkungen 358 35.7 Zusammenfassung 358 35.8 Verweise 358 36 OSGi 359 36.1 Eclipse und OSGi 359 36.2 OSGi-Konsole 360 36.3 Versionierung 360 36.4 Verweise 361 A Die Autoren 363 Stichwortverzeichnis 365 13