28.07.2012

Einen Eclipse Scout Data Service definieren

Als nächstes wird ein DataService definiert über den der Client die Daten beim Server abfragen kann.

Um einer DataService anzulegen navigiert man unter dem Server-Knoten zu Outline Services->StandardOutlineService und wählt im Kontextmenü New Service Operation aus.

Create New Project

Als Operation Name wird getItemTableData eingetragen. In dem Beispiel wird als Return Type ein Object[][] verwendet. Es wäre aber auch möglich eine Bean-Klasse mit dem Name ItemBean zu definieren und die Werte in diesen Objekte vom Server zum Client zu übertragen.

Create New Project

Geschlossen wird der Dialog mit Finish.

Mit einem Doppelklick auf den StandardOutlineService öffnet sich die Java-Klasse, in der die Methode getItemTableData generiert wurde. Dort ergänzt man die Methode um folgenden Code:

package org.hameister.scout.itemmanager.server.services.outline;

import org.eclipse.scout.commons.exception.ProcessingException;
import org.eclipse.scout.service.AbstractService;
import org.hameister.scout.itemmanager.shared.services.outline.IStandardOutlineService;

public class StandardOutlineService extends AbstractService implements IStandardOutlineService {

  @Override
  public Object[][] getItemTableData() throws ProcessingException {
    return new Object[0][0];
  }
}

Da wir aktuell noch keine DataSource definiert haben, wird einfach ein leeres Object-Array zurückgeliefert. Später werden wir diese Stelle nochmals anpassen, so dass reale Daten zurückgegeben werden.

Um die Daten bei Server abzufragen muss im Client angegeben werden, welche Methode er aufzurufen hat. Dazu wechselt man zu ItemTablePage und in dem Tab Scout Object Properties auf der grüne Pluszeichen Exec Load Table Data.

Create New Project

Daraufhin wird eine neue Methode generiert, die mit folgendem Code ergänzt wird:

  @Override
  protected Object[][] execLoadTableData(SearchFilter filter) throws ProcessingException {
    return SERVICES.getService(IStandardOutlineService.class).getItemTableData();
  }