Package net.atos.java.example.boodschappen.client

Source Code of net.atos.java.example.boodschappen.client.BoodschappenPanel$CheckFieldUpdater

package net.atos.java.example.boodschappen.client;

import java.util.List;

import net.atos.java.example.boodschappen.model.Boodschap;
import net.atos.java.example.boodschappen.shared.BoodschappenService;
import net.atos.java.example.boodschappen.shared.BoodschappenServiceAsync;

import com.google.gwt.cell.client.ButtonCell;
import com.google.gwt.cell.client.FieldUpdater;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.view.client.ListDataProvider;

/**
* Algemeen boodschappen paneel.
*
* @author Pal Hargitai
*/
public class BoodschappenPanel extends FlowPanel {

  /** Boodschappen service. */
  private BoodschappenServiceAsync boodschappenService = GWT.create(BoodschappenService.class);
  /** Aanbieder voor de boodschappen. */
  private ListDataProvider<Boodschap> dataProvider;
  /** De tabel voor de boodschappen. */
  private CellTable<Boodschap> table;

  /**
   * Maakt het panel aan.
   */
  public BoodschappenPanel() {
    super();
    // Maak de tabel.
    table = new CellTable<Boodschap>();
    table.addColumn(new NaamColumn(), "Naam");
    table.addColumn(new HoeveelheidColumn(), "Hoeveelheid");
    table.addColumn(new EenheidColumn(), "Eenheid");
    table.addColumn(new AfvinkColumn(), "Hebben we!");
    // Geef de tabel data.
    dataProvider = new ListDataProvider<Boodschap>();
    dataProvider.addDataDisplay(table);
    // Haal de data op.
    boodschappenService.ophalenBoodschappen(new BoodschappenCallback());
    add(table);
  }

  /**
   * Terug koppeling voor de gezochte boodschappen.
   *
   * @author Pal Hargitai
   */
  public class BoodschappenCallback implements AsyncCallback<List<Boodschap>> {
    /** {@inheritDoc} */
    @Override
    public void onFailure(Throwable caught) {
      Window.alert(caught.getMessage());
    }

    /** {@inheritDoc} */
    @Override
    public void onSuccess(List<Boodschap> result) {
      dataProvider.setList(result);
      dataProvider.flush();
    }
  }

  /**
   * Naam kolom.
   *
   * @author Pal Hargitai
   */
  public class NaamColumn extends TextColumn<Boodschap> {
    /** Default constructor. */
    public NaamColumn() {
      setSortable(true);
    }

    /** {@inheritDoc} */
    @Override
    public String getValue(Boodschap object) {
      return object.getBoodschap();
    }
  }

  /**
   * Hoeveelheid kolom.
   *
   * @author Pal Hargitai
   */
  public class HoeveelheidColumn extends TextColumn<Boodschap> {
    /** Default constructor. */
    public HoeveelheidColumn() {
      setSortable(true);
    }

    /** {@inheritDoc} */
    @Override
    public String getValue(Boodschap object) {
      if (object.getHoeveelheid() == null) {
        return "";
      } else {
        return object.getHoeveelheid().toString();
      }
    }
  }

  /**
   * Kolom voor hoeveelheid eenheid.
   *
   * @author Pal Hargitai
   */
  public class EenheidColumn extends TextColumn<Boodschap> {
    /** Default constructor. */
    public EenheidColumn() {
      setSortable(true);
    }

    /** {@inheritDoc} */
    @Override
    public String getValue(Boodschap object) {
      if (object.getEenheid() == null) {
        return "";
      } else {
        return object.getEenheid().toString();
      }
    }
  }

  /**
   * Kolom voor het afvinken van de boodschap.
   *
   * @author Pal Hargitai
   */
  public class AfvinkColumn extends Column<Boodschap, String> {
    /** Default constructor. */
    public AfvinkColumn() {
      // Kolom heeft een knop.
      super(new ButtonCell());
      setFieldUpdater(new CheckFieldUpdater());
    }

    /** {@inheritDoc} */
    @Override
    public String getValue(Boodschap object) {
      return "Check!";
    }
  }

  /**
   * Vinkt de boodschap af.
   *
   * @author Pal Hargitai
   */
  public class CheckFieldUpdater implements FieldUpdater<Boodschap, String> {
    /** {@inheritDoc} */
    @Override
    public void update(int index, Boodschap object, String value) {
      boodschappenService.afvinkenBoodschap(object.getIdentificatie(), new VerversenCallback());
    }
  }

  /**
   * Maakt de terug koppeling van het ophalen van de boodschappen.
   * @return De terug koppeling.
   */
  public AsyncCallback<List<Boodschap>> createOphalenCallback() {
    return new BoodschappenCallback();
  }

  /**
   * Terug koppeling voor het verversen.
   *
   * @author Pal Hargitai
   */
  public class VerversenCallback implements AsyncCallback<Void> {
    /** {@inheritDoc} */
    @Override
    public void onFailure(Throwable caught) {
      Window.alert(caught.getMessage());
    }

    /** {@inheritDoc} */
    @Override
    public void onSuccess(Void result) {
      boodschappenService.ophalenBoodschappen(new BoodschappenCallback());
    }
  }

  /**
   * Verstopt het paneel.
   *
   * @author Pal Hargitai
   */
  public class VerstopCallback implements AsyncCallback<Void> {
    /** {@inheritDoc} */
    @Override
    public void onFailure(Throwable caught) {
      Window.alert(caught.getMessage());
    }
 
    /** {@inheritDoc} */
    @Override
    public void onSuccess(Void result) {
      setVisible(false);
    }
  }
}
TOP

Related Classes of net.atos.java.example.boodschappen.client.BoodschappenPanel$CheckFieldUpdater

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.