jacek pospychała [email protected] pospychała...

31
Jacek Pospychała [email protected] Eclipse Summer School 2007 Rich Client Platform

Upload: elijah-scott

Post on 26-Mar-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Rich Client Platform

Page 2: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Plan

Przykład RCP: Klient Mail Intro Update site

Page 3: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Przykład RCP: Klient Mail

Page 4: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Przykład RCP: Klient Mail

Page 5: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Przykład RCP: Klient Mail

Page 6: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Przykład RCP: Klient Mail

Page 7: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Przykład RCP: Klient Mail

Page 8: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

Page 9: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

public class Activator extends AbstractUIPlugin {

public static final String PLUGIN_ID = "mailClient";

public void start(BundleContext context)

public void stop(BundleContext context)

public static Activator getDefault()

public static ImageDescriptor getImageDescriptor(String path)

Page 10: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

public class Application implements IApplication {

public Object start(IApplicationContext context) {// ...// PlatformUI.createAndRunWorkbench(...);// ...

}

public void stop() {// ...// workbench.close();// ...

}}

Page 11: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

Page 12: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Ćwiczenie

Page 13: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Ćwiczenie: Podpowiedź

ApplicationActionBarAdvisor:

@Overrideprotected void fillStatusLine(IStatusLineManager statusLine) {

statusLine.add(exitAction);statusLine.add(messagePopupAction);

}

ApplicationWorkbenchWindowAdvisor:

configurer.setShowStatusLine(true);

Page 14: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {

public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer)

{

return new ApplicationWorkbenchWindowAdvisor(configurer);

}

public String getInitialWindowPerspectiveId() { return PERSPECTIVE_ID;}

public void preStartup()

public void postStartup()

public boolean preShutdown()

public void postShutdown()

}Miejsce na

przygotowanie srodowiska

Nasza klasa!

Page 15: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {

public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer)

{ return new ApplicationActionBarAdvisor(configurer);}

public void preWindowOpen() {IWorkbenchWindowConfigurer configurer =

getWindowConfigurer();configurer.setInitialSize(new Point(600, 400));configurer.setShowCoolBar(true);configurer.setShowStatusLine(true);

}

public void postWindowRestore()

public void postWindowCreate()

public void postWindowOpen()

public boolean preWindowShellClose() }

Nasza klasa!

Page 16: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Klient Mail

To już było!!!

Page 17: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

EbayManager

Poznalismy RCP, wracamy do naszej aplikacji

Page 18: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Intro

“Hand made” Intro

Universal Intro

Page 19: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Intro

Punkt rozszerzeń org.eclipse.ui.intro

Id: org.ess.ebaymanager.product.introClass: org.ess.ebaymanager.product.MyIntroPartIcon: icons/icon.jpg

IntroProductBindingProductId: org.ess.ebaymanager.product.productIntroId: org.ess.ebaymanager.product.intro

Page 20: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Intro

Klasa MyIntroPartpublic class MyIntroPart extends IntroPart {public void createPartControl(Composite parent) {

Composite outerContainer = new Composite(parent, SWT.NONE); GridLayout gridLayout = new GridLayout(); outerContainer.setLayout(gridLayout); outerContainer.setBackground(outerContainer.getDisplay().getSystemColor( SWT.COLOR_TITLE_BACKGROUND_GRADIENT)); Label label = new Label(outerContainer, SWT.CENTER); label.setText("WELCOME TO ECLIPSE"); GridData gd = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL); gd.horizontalAlignment = GridData.CENTER; gd.verticalAlignment = GridData.CENTER; label.setLayoutData(gd); label.setBackground(outerContainer.getDisplay().getSystemColor( SWT.COLOR_TITLE_BACKGROUND_GRADIENT));}

@Overridepublic void setFocus() {}

public void standbyStateChanged(boolean standby) {}}

Page 21: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Universal Intro

IntroId: org.eclipse.ui.intro.universal Wymagany plugin: org.eclipse.ui.intro.universal W org.ess.ebaymanager.product/plugin.xml

Rozszerzenie org.eclipse.core.runtime.products Dodajemy properties:

IntroTitle = Welcome To eBayManager IntroBrandingImage = product:splash.bmp IntroBrandingImageText = eBayManager

Alternatywny napis zamiast obrazka

Page 22: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Universal Intro

IntroId: org.eclipse.ui.intro.universal Wymagany plugin: org.eclipse.ui.intro.universal W org.ess.ebaymanager.product/plugin.xml

Rozszerzenie org.eclipse.core.runtime.products Dodajemy properties:

IntroTitle = Welcome To eBayManager IntroBrandingImage = product:splash.bmp IntroBrandingImageText = eBayManager

Alternatywny napis zamiast obrazka

Page 23: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Site

Update Manager zarządza feature'ami Najpierw potrzebujemy Feature!

Page 24: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Feature

Nowy Feature Project: org.ess.ebaymanager.feature

Pluginy: org.ess.ebaymanager.* Uzupełniamy Information Plugins -> Download Size/Installation Size Gotowe! Co dalej?

Patrz karta Overview

Page 25: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Site

Nowy Update Site project Nazwa: org.ess.ebaymanager.updatesite Generate a web page listing all features: YES

Page 26: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Site c.d.

Synchronize -> aktualizacja numerów wersji Build All -> Tworzymy Update Site

Page 27: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Site c.d.

Sprawdźmy czy działa New Local Site

katalog workspace/org.ess.ebaymanager.updatesite

Page 28: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Manager

Pora dodać Update Manager do eBayManager Nowe opcje do menu help pluginu .editor:

<extension point="org.eclipse.ui.actionSets"> <actionSet label="Software Updates" visible="true" id="org.ess.softwareUpdates"> <menu label="Software Updates" path="help/helpEnd" id="org.ess.updateMenu"> <separator name="group0"> </separator> <separator name="group1"> </separator> </menu> <action class="org.ess.ebaymanager.actions.ConfigurationManagerAction" helpContextId="org.eclipse.update.ui.newUpdates" id="my.rcp.app.ui.configManager" label="Manage Configuration..." menubarPath="help/org.ess.updateMenu/group0"> </action> <action label="Find and Install..." helpContextId="org.ess.newUpdates" class="org.ess.ebaymanager.actions.FindInstallAction" menubarPath="help/org.ess.updateMenu/group0" id="my.rcp.app.ui.newUpdates"> </action> </actionSet> </extension>

Page 29: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Manager: Akcje

W pakiecie org.ess.ebaymanager.actions Tworzymy klasy: ConfigureManagerAction FindInstallAction

Brakujące zależnosci w plugin.xml:

FindInstallAction.run():UpdateManagerUI.openInstaller(window.getShell());

ConfigureManagerAction.run():UpdateManagerUI.openConfigurationManager(window.getShell());

Page 30: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Update Manager

Page 31: Jacek Pospychała jacek.pospychala@cs.put.poznan.plJacek Pospychała jacek.pospychala@cs.put.poznan.pl Eclipse Summer School 2007Eclipse Summer School 2007

Jacek Pospychała [email protected] Eclipse Summer School 2007

Pytania?

Dziękuję za uwagę!