Ordeal’s Movie Manager RCP(Part1)

7 ottobre 2008

Per farmi perdonare la lunga assenza da questo blog, ho deciso di implementare e commentare qui un esempio di RCP, ovvero  una Rich Client Platform, un tipo di applicativo sviluppato in Java che fa uso di un set minimale di plug-ins Eclipse.

Innanzitutto dovete avere installato l’IDE Eclipse, che trovate qui.
Una volta installato l’IDE, procedete alla creazione del progetto da File->New->Project->Plug-in Project, cliccando su “Yes” alla domanda “Would you like to create a rich client application ?”.
A questo punto dovete selezionare un template, possibilmente minimale, da cui partire, come Hello RCP.
Quello che a questo punto vi si presenta tra i sorgenti è:

  • La classe Activator, che controlla il ciclo di vita del plug-in (in particolare date un’occhiata ai metodi start() e stop()
  • La classe Application, che sostanzialmente ha due metodi start() e stop(), che riguardano l’istanziazione dell’oggetto Display (un’interfaccia al dispositivo vero e proprio) , e del Workbench, ovvero di quel set di plug-ins che l’applicazione si “porta dietro”, che sono in buona parte un sottoinsieme dei plug-ins che troviamo anche nell’IDE Eclipse.
  • Le classi ApplicationActionBarAdvisor, ApplicationWorkbenchAdvisor, ApplicationWorkbenchWindowAdvisor, necessarie alla creazione della finestra principale, della Prospettiva su cui le nostre Viste andranno situate, delle barre, e all’esecuzione precedente alla creazione della finestra di metodi che devono essere eseguiti allo start-up dell’applicazione.
  • La classe Perspective, in cui viene deciso il layout delle cosidette “Viste” che stiamo per creare.

Adesso parliamo del target dell’applicazione.
L’idea nasce dalla necessità di creare un’interfaccia semplice e custom ad una relazione di un Database, utilizzata per catalogare dei titoli di films.
I campi di questa tabella sono:


create table omm_movies (
  Titolo character(100) not null default 'Titolo',
  Anno numeric(4) not null default '2007',
  NumDVD numeric(4) ,
  DivX boolean,
  GiaVisto boolean,
  Regista char(150) default null,
  MOVIE_ID numeric ,
  primary key(MOVIE_ID)
);

In particolare il campo NumDVD specifica in quale DVD del vostro scaffale/cassetto è collocato il film, il campo MOVIE_ID invece è un ID incrementale associato ad una sequenza che vedremo creata nel codice stesso.
Le funzionalità da implementare sono: ricerca per titolo, inserimento del titolo e cancellazione.
Vedremo nella prossima puntata come implementare la pagina relativa alla ricerca per titolo.

Intanto vi linko da subito eseguibili e sorgenti per Win32 e per GNU/Linux@x86.