W poprzednim artykule stworzyliśmy szkielet aplikacji Eclipse RCP wykorzystującej jBPM.
Dzisiaj spróbujemy stworzyć widok prezentujący wszystkie dostępne procesy biznesowe.
Na początek w metodzie createInitialLayout klasy Perspective ukrywamy obszar edytora:
layout.setEditorAreaVisible(false);
Następnie w edytorze plugin.xml dodajemy rozszerzenie org.eclipse.ui.views wybierając szablon Sample View. Jako typ viewera wybieramy TableViewer. Ponieważ za chwilę dodamy widok do naszej perspektywy, przy tworzeniu widoku odznaczamy dodawanie widoku do perspektywy zasobów.
W edytorze pliku plugin.xml dodajemy rozszerzenie org.eclipse.ui.perspectiveExtensions, w elemencie perspectiveExtension wklejamy ID naszej perspektywy. Następnie klikamy prawym przyciskiem na elemencie perspectiveExtension i z menu kontekstowego wybieramy New/View. W atrybucie Id wklejamy id naszego widoku, relationship ustawiamy na left, relative na org.eclipse.ui.editorss. Uruchamiamy aplikację, żeby przekonać się czy nowy widok pojawił się na oknie głównym.
Możemy już zająć się napełnianiem naszego widoku danymi o procesach biznesowych zainstalowanych w naszej bazie. W metodzie createPartControl klasy naszego widoku linijkę
viewer.setInput(getViewSite());
zastępujemy linijką:
viewer.setInput(JbpmConfiguration.getInstance().getCurrentJbpmContext());
Następnie zmieniamy implementację metody getElements prywatnej klasy ViewContentProvider na:
public Object[] getElements(Object parent) {
return ((JbpmContext) parent).getGraphSession().findAllProcessDefinitions().toArray();
}
Pozostaje już tylko konfiguracja LabelProvidera modyfikujemy w nim metodę getColumnText:
public String getColumnText(Object obj, int index) {
ProcessDefinition definition = (ProcessDefinition)obj;
return getText(definition.getName() + "(" + definition.getVersion()+")");
}
W tym momencie nasz widok prezentuje listę dostępnych procesów biznesowych wraz z numerami wersji. Pozostaje nam odświeżanie widoku w akcji dodawania procesu. Do klasy naszego widoku dodajemy metodę:
public void refresh(){
viewer.refresh();
}
A w metodzie run akcji dopisywania procesu biznesowego dodajemy następującą linijkę:
((ProcessesView) window.getActivePage().findView("jbpm.views.ProcessesView")).refresh();
Mamy już podgląd zainstalowanych procesów biznesowych. W następnym odcinku będziemy rozwijać naszą aplikację o kolejne funkcjonalności.

