Dezvoltarea aplicațiilor încorporate cu ejface

  • Despre structura bibliotecii eJFace, API-ul acesteia, precum și despre aplicarea acestora
  • Despre diferențele dintre JFace și eJFace
  • Despre modul de dezvoltare a aplicațiilor eJFace, eSWT și eWorkbench în eRCP
  • Cum puteți adăuga funcționalitatea eJFace la aplicația dvs.

Pe scurt

Să începem cu un scurt răspuns la trei dintre cele mai importante întrebări pe care dezvoltatorii le au la prima vedere la eJFace.







  • eJFace face parte din biblioteca desktop JFace destinată dispozitivelor mobile.
  • Un API independent de platformă pentru interfața cu utilizatorul care completează și interacționează cu eSWT.
  • Include unele widget-uri eSWT care oferă funcționalități utile, de exemplu browserele bazate pe MVC, care reduc timpul de dezvoltare și de suport.
  • Nu include componentele bibliotecii JFace, prea voluminoase pentru a fi utile pe dispozitivele mobile.

2. Pentru ce se utilizează eJFace?

  • Această bibliotecă implementează caracteristici avansate ale interfeței utilizator care sunt utile pentru dispozitivele încorporate.
  • Creează aplicații eRCP care se integrează cu eWorkbench.
  • Se pune în aplicare un set de clase care se extind ESWT, care permite integrarea aplicațiilor în ERCP ERCP bancul de lucru și de a pune în aplicare widget-uri mai complexe, cum ar fi browserele, axat pe MVC.

3. Care sunt caracteristicile eJFace?

EJFace pachet și detalii

Tabelul 1. Pachete suportate în eJFace

După cum sa menționat deja, eJFace exclude un număr de pachete semnificative și biblioteci de JFace, axat pe computere desktop și dispozitive mobile irelevante. Având în vedere cerințele de compactare și reducerea complexității implementării, eJFace furnizează pachetele prezentate mai sus. Pentru mai multe informații despre interfețele de programare ale fiecărui pachet, consultați documentația Java eJFace (consultați Resurse).

În cele ce urmează este o scurtă descriere a pachetelor menționate în tabelul 1.

Diferențele dintre eJFace și JFace

După cum sa menționat deja, eJFace este un subset strict al JFace. Unele biblioteci, care sunt puțin probabil să fie utilizate pe dispozitive încorporate, sunt excluse sau reduse semnificativ. Tabelul 2 rezumă principalele diferențe dintre eJFace și JFace.

Tabelul 2. Diferențele dintre eJFace și JFace

Comparație între eJFace și JFace

Pachete excluse din JFace

org.eclipse.jface.dialogs
org.eclipse.jface.operation (în eJFace este implementată numai interfața IRunnableWithProgress)
org.eclipse.jface.window
org.eclipse.jface.wizard

Pachetele sunt reduse în comparație cu JFace

org.eclipse.jface.action
org.eclipse.jface.preference (numai clasa PreferencePage este implementată în eJFace)
org.eclipse.jface.viewers (în eJFace sunt implementate numai TreeViewer și TableViewer)

De asemenea, vă puteți întreba de ce codul eJFace nu utilizează clasa de comandă din eSWT Mobile Extensions. Preferăm să nu creăm dependențe eJFace pe extensiile mobile, deoarece aceasta este o componentă opțională în eRCP. În plus, QueryDialog și TimedMessageBox sunt furnizate în extensiile mobile. care înlocuiesc câteva casete de dialog JFace pe versiuni adecvate pentru dispozitivele mobile.

Schimbările la org.eclipse.jface.action necesită explicații. JFace acceptă adăugarea elementelor numai în bara de stare. Deoarece eWorkbench nu implementează funcția generală a barei de meniu, majoritatea claselor de acțiune de la eJFace sunt eliminate. Cu toate acestea, acțiunile sunt înlocuite de clasa de comandă implementată în eSWT pentru extensiile mobile.

Aplicația demo eJFace org.eclipse.jface.viewers

În eJFace, sunt implementate numai TreeViewer și TableViewer. Pentru a afla cum să dezvoltați aplicațiile eWorkbench, consultați Resurse.

TreeViewer

Pentru a crea o aplicație demonstrativă TreeViewer, trebuie să creați o clasă de nod ca model de date. Aici vom crea clase de noduri cu numele NBATeamNode și NBAPlayer. Acum trebuie să definim relația dintre noduri. De exemplu, NBATeamNode poate adăuga încă o instanță a NBATeamNode sau NBAPlayer. Pentru a le adăuga, trebuie să definiți două arrayLists separate și NBATeamNode.

Listarea 1. Definirea unei clase de noduri și a unor relații ierarhice corespunzătoare

După org.eclipse.ercp.eworkbench.applications expansiune TreeViewer vom crea un exemplu și se asociază cu compoziția actuală a metodei clasei generate createPartControl SampleView. Apoi, setăm aspectul dorit al acestui arbore și adăugăm furnizorului de conținut copac și etichetele de copaci acestui TreeViewer. Furnizorul de conținut furnizează relația ierarhică a întregului arbore, în timp ce furnizorul de etichete furnizează imaginea și textul fiecărui element. În cele din urmă, setați TreeViewer ca nod de intrare. Amintiți-vă că acestea trebuie să fie nodul rădăcină al modelului dvs. de date. De exemplu, mai întâi vom crea un nod rădăcină și adăugați-l la trei NBATeamNode ca numele diferitelor echipe. Acum vom adăuga cinci jucători NBA novice la fiecare echipă, folosind variabila NBAPlayer. După cum puteți vedea, introduceți root-ul NBATeamNode cu numele "root" în TreeViewer.

Listing 2. Clasa SampleView

Trei furnizori de conținut trebuie să implementeze ITreeContentProvider. Definiți relațiile ierarhice ale acestui arbore utilizând metodele getParent și getChildren. Și, în sfârșit, obținem subelementul fiecărui element utilizând metodele getElements.

Listing 3. TreeViewerContentProvider

Furnizorul de etichete arbore trebuie să implementeze ILabelProvider. După cum puteți vedea, definim imaginea și textul reprezentat de fiecare nod folosind metodele getImage și getText.

Listing 4. TreeViewerLabelProvider
Figura 1. Aplicația demo TreeViewer de pe eWorkbench

Dezvoltarea aplicațiilor încorporate cu ejface

Dezvoltarea aplicațiilor încorporate cu ejface






TableViewer

Pentru a crea o aplicație demonstrativă, TableViewer, trebuie să creați o clasă de model de date. Creăm Book.java. După cum puteți vedea, în coloanele tabelului ar trebui afișate cinci coloane. Prin urmare, pentru a utiliza fiecare parametru, trebuie să utilizați metoda getter-setter.

5. Definirea clasei modelului de date
Listarea 6. Clasa SampleView

TableViewerContentProvider trebuie să implementeze interfața IStructuredContentProvider. TableViewerContentProvider determină relațiile de ieșire din tabel. După cum puteți vedea, în această clasă, folosind metoda getElements, putem obține date din fiecare matrice specifică care va reprezenta numele sau prețul cărții.

Listarea 7. TableViewerContentProvider

TableViewerLabelProvider trebuie să implementeze interfața ITableLabelProvider. TableViewerLabelProvider definește textul și imaginea fiecărei coloane a tabelului. Putem obține textul fiecărui element folosind metoda getColumnText. (Aici nu implementăm metoda getColumnImage.)

Listarea 8. TableViewerLabelProvider

După instalarea acestei aplicații demo pe dispozitivul eWorkbench, veți vedea pictograma Test TreeViewer Exemple din lista de aplicații. Pentru a porni comanda, faceți clic pe Deschidere în fereastra sa. Veți vedea masa pe care am creat-o.

Figura 2. Aplicația demonstrativă a TableViewer în eWorkbench de pe dispozitiv

Dezvoltarea aplicațiilor încorporate cu ejface

Dezvoltarea aplicațiilor încorporate cu ejface

Aplicația demo eJFace org.eclipse.jface.preference

PreferencePage

Pentru a stoca parametrii necesari, de exemplu, informații despre server, nume de utilizator și parolă, eJFace implementează numai PreferencePage. În plus, va funcționa numai dacă specificați eWorkbench ca țintă. Pentru mai multe informații despre dezvoltarea aplicațiilor eWorkbench și încorporarea unei aplicații în ele cu o setare a parametrilor prin adăugarea unui punct de extensie, consultați Resurse. Figura 3 prezintă modul de elaborare a unei aplicații simple pentru setarea parametrilor, inclusiv implementarea butoanelor OK. Anulați și restabiliți setările implicite.

Afișarea 9. Pastrarea în plugin.xml

Pentru ca pagina de setări să apară în eWorkbench, clasa sa trebuie să extindă PreferencePage și să implementeze pagina IWorkbenchPreference. Mai întâi, declarați variabilele necesare, inclusiv String. Text. Casa de discuri. Buton și magazie de preferințe. PreferenceStore. în care sunt stocate perechile de nume-valoare pe care le-ați introdus. Pentru a afișa parametrii utilizatorilor, utilizați metoda createContents.

Pentru a restabili valorile implicite, folosim funcțiile performDefaults. Utilizați funcțiaOK pentru a salva valorile introduse după ce faceți clic pe OK. Utilizați funcția performCancel pentru a reveni din pagina de setări fără să salvați atunci când dați clic pe Anulați. init (IWorkbench arg0) este metoda necesară care trebuie implementată împreună cu implementarea pe pagina cu parametrii IWorkbenchPreferencePage.

Listing 10. Exemple de setări pentru pagina de cod

După instalarea acestei aplicații pe dispozitivul din eWorkbench din lista de aplicații, veți vedea pictograma Cerere demo de preferință. Faceți clic pe OK pentru a salva intrările, Anulare pentru a ieși din pagina de setări și Restore pentru a restabili valorile implicite.

Figura 3. Aplicația de demonstrație a paginii de preferințe de pe eWorkbench

Dezvoltarea aplicațiilor încorporate cu ejface

Dezvoltarea aplicațiilor încorporate cu ejface

Aplicația demo eJFace org.eclipse.jface.resource

În eJFace, sunt incluse numai cele mai importante librării org.eclipse.jface.resource. În aplicația demo, am arătat cum să folosim ImageRegistry și fontRegistry pentru a gestiona eficient obiectele și fonturile imaginilor. JFaceColors este de asemenea folosit pentru a gestiona culorile widget-urilor corespunzătoare. În plus, am arătat cum să folosim widgetul de comandă pentru implementarea funcției org.eclipse.jface.action.

Exemplul de cod este afișat în listare 11, unde fontul, culoarea și imaginea sunt setate utilizând registrul pentru widget-urile corespunzătoare. Am arătat, de asemenea, cum să creați widget-ul comenzii eSWT. În plus, aceasta funcționează numai în cazul în care obiectivul aplicației este eWorkbench. Pentru a afla cum să dezvoltați aplicațiile eWorkbench, consultați Resurse.

ImageRegistry este folosit pentru a stoca și încărca diverse imagini. Folosind metoda put () și get (). Puteți să atribuiți un nume oricărei imagini și să gestionați cu ușurință un număr mare de imagini. FontRegistry este similar cu ImageRegistry și este folosit pentru a stoca și încărca diferite fontData. Folosind metode de a pune și a obține, utilizatorul poate gestiona eficient fonturile. JFaceResources pot fi folosite pentru a administra ImageRegistry și FontRegistry în cadrul programului.

JFaceColors poate atribui dinamic culoarea textului și culoarea de fundal a widget-ului. StringConverter implementează capacitatea de a manipula șiruri Java. În acest exemplu, am folosit-o pentru a trunchia un obiect șir la un StringArray.

Widget-ul de comandă este o interfață foarte utilă de programare eSWT. Comanda apare numai când widgetul corespunzător este focalizat. În exemplul nostru, RecoverCommand este asociat cu un obiect compozit. RecoverCommand va fi afișat în timp ce focalizarea este asupra obiectului compozit. În caz contrar, RecoverCommand dispare. Am adăugat SelectionListener la RecoverCommand. Dacă este selectat RecoverCommand. se numește widgetSelected.

Iată un exemplu de fișier de resurse al dispozitivului (codul sursă poate fi găsit în secțiunea Descărcări).

Listing 11. Eșantion de cod de resurse
Figura 4. Exemplu de resursă eJFace (înainte de schimbare)

Dezvoltarea aplicațiilor încorporate cu ejface

Figura 5. Exemplu de resursă eJFace (după modificare)

Dezvoltarea aplicațiilor încorporate cu ejface

Integrați aplicația eJFace în eWorkbench

Figura 6. Exemplul eJFace combinat pe eWorkbench

Dezvoltarea aplicațiilor încorporate cu ejface

Figura 7. Pagina de setări NBA; valorile implicite se bazează pe NBA

Dezvoltarea aplicațiilor încorporate cu ejface

Dezvoltarea aplicațiilor încorporate cu ejface

Figura 8. Tabel cu înregistrările jucătorilor

Dezvoltarea aplicațiilor încorporate cu ejface

Dezvoltarea aplicațiilor încorporate cu ejface

concluzie

Acest articol prezintă măsurile necesare pentru a dezvolta aplicații eJFace. Am arătat diferențe între JFace și eJFace, și a oferit motivația de a dezvolta eJFace. Pe drum ne-am uitat la structura bibliotecii eJFace, interfețele sale și aplicarea lor, au învățat cum să dezvolte aplicații eJFace, iar eWorkbench ESWT printre ERCP, precum și posibilitățile de funcționalitate eJFace adăugate în aplicația demo.

Descărcați resurse

Subiecte conexe







Articole similare

Trimiteți-le prietenilor: