Vediamo come affrontare il problema delle “Viste”.
Secondo l’articolo di Eclipse Corner ”
In the Eclipse Platform a view is typically used to navigate a hierarchy of information, open an editor, or display properties for the active editor”.
Nel nostro caso ci serve per implementare una struttura a tab, un tab folder, che ci offrirà un tab per la ricerca dei titoli, un altro tab per il loro inserimento e cancellazione.
Per creare la vista dobbiamo usare il file plugin.xml, andare su extensions ed aggiungere un’estensione all’RCP, ovvero un set di plug-ins che estendono la funzionalità dell’applicativo, nel nostro caso org.eclipse.ui.views.
Aggiungete una vista, datele un nome, un id,nel caso mio myMovieManager.view1, e opzionalmente un’icona, cosa importante, ricordatevi di associargli la classe da generare attraverso il form *class, che conterrà tutte le componenti grafiche in essa contenute.
Una volta fatto ciò dovete mettere mano alla classe Perspective.
layout.setEditorAreaVisible(false); layout.addStandaloneView(FilmListView.ID,false, IPageLayout.TOP, 0.90f, layout.getEditorArea()); layout.addShowViewShortcut(FilmListView.ID); IViewLayout filmlist_layout = layout.getViewLayout(FilmListView.ID); filmlist_layout.setCloseable(false); filmlist_layout.setMoveable(false);
il metodo per aggiungere la vista è addStandaloneView, gli altri servono solo per sistemare il layout e le proprietà della vista.
La nostra vista servirà per contenere un oggetto di tipo Tab folder.
@Override public void createPartControl(Composite parentWindow) { tabFolder = new TabFolder(parentWindow, SWT.BORDER); TabItem sbttabItem = new TabItem(tabFolder, SWT.NONE); sbttabItem.setText("Search By Title "); sbttabItem.setImage(new Image(parentWindow.getDisplay(), this.getClass().getResourceAsStream("/icons/search_16x16.png"))); sbttabItem.setControl(searchByTitleContent(tabFolder)); TabItem inmtabItem = new TabItem(tabFolder, SWT.NULL); inmtabItem.setText("Insert/Delete Movie "); inmtabItem.setControl(insertDeleteMovie(tabFolder)); inmtabItem.setImage(new Image(parentWindow.getDisplay(), this.getClass().getResourceAsStream("/icons/insert_16x16.gif"))); }
Il codice in questione è appartenente al metodo createPartControl della vista contenuta nel sorgente FilmListView.java, appartenente al package dell’RCP.
Potete usare tale metodo in ogni vista per “piazzare” i widgets SWT che intendete disporre nella vista.
Nel nostro caso un TabFolder, e due TabItem comprensivi di immagine in esso contenuti.
Il mio consiglio è quello di usare questo sito assiduamente come un vero e proprio catalogo delle componenti grafiche SWT, da poter piazzare come e dove vi pare.
Leggi il seguito di questo post »