Package org.jboss.errai.demo.grocery.client.local

Source Code of org.jboss.errai.demo.grocery.client.local.ItemListPage

package org.jboss.errai.demo.grocery.client.local;

import java.util.Iterator;

import javax.annotation.PostConstruct;
import javax.enterprise.context.Dependent;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import org.jboss.errai.demo.grocery.client.shared.Item;
import org.jboss.errai.demo.grocery.client.shared.qual.New;
import org.jboss.errai.ioc.client.container.IOCBeanManager;
import org.jboss.errai.ui.nav.client.local.Page;
import org.jboss.errai.ui.shared.api.annotations.DataField;
import org.jboss.errai.ui.shared.api.annotations.Templated;

import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

@Dependent
@Templated("#main")
@Page
public class ItemListPage extends Composite {

  @Inject IOCBeanManager bm;
  @Inject EntityManager em;

  @Inject @DataField VerticalPanel listContainer;
  @Inject @DataField ItemForm newItemForm;

  @PostConstruct
  private void initInstance() {
    refreshFromDb();
    newItemForm.setAfterSaveAction(new Runnable() {
      @Override
      public void run() {
        newItemForm.setItem(new Item());
      }
    });
  }

  @SuppressWarnings("unused")
  private void onNewItem(@Observes @New Item i) {
    System.out.println("ItemListPage@" + System.identityHashCode(this) + " got new item: " + i);
    refreshFromDb();
  }
 
  @PostConstruct
  void refreshFromDb() {

    // clean up the old widgets before we add new ones
    // (this will eventually become a feature of the ErraiUI framework)
    Iterator<Widget> it = listContainer.iterator();
    while (it.hasNext()) {
      bm.destroyBean(it.next());
      it.remove();
    }

    TypedQuery<Item> itemQuery = em.createNamedQuery("allItemsByName", Item.class);
    for (Item item : itemQuery.getResultList()) {
      ItemWidget itemWidget = bm.lookupBean(ItemWidget.class).newInstance();
      itemWidget.setItem(item);
      listContainer.add(itemWidget);
    }
  }
}
TOP

Related Classes of org.jboss.errai.demo.grocery.client.local.ItemListPage

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.