FortunePage.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package hellowicket.fortune;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Comparator;
  5. import java.util.List;
  6. import org.apache.wicket.markup.html.WebPage;
  7. import org.apache.wicket.markup.html.basic.Label;
  8. import org.apache.wicket.markup.html.list.ListItem;
  9. import org.apache.wicket.markup.html.list.ListView;
  10. import org.hibernate.Query;
  11. import org.hibernate.Session;
  12. import hellowicket.HibernateUtil;
  13. /**
  14. * A page that loads all fortune cookies
  15. */
  16. public class FortunePage extends WebPage
  17. {
  18. public FortunePage()
  19. {
  20. Session session = HibernateUtil.getSessionFactory().openSession();
  21. Query query = session.createQuery("from Fortune");
  22. query.setReadOnly(true);
  23. List list = query.list();
  24. List<Fortune> fortunes = new ArrayList<Fortune>(list);
  25. session.close();
  26. Fortune newFortune = new Fortune();
  27. newFortune.message = "Additional fortune added at request time.";
  28. fortunes.add(newFortune);
  29. sort(fortunes);
  30. ListView<Fortune> listView = new ListView<Fortune>("fortunes", fortunes)
  31. {
  32. @Override
  33. protected void populateItem(ListItem<Fortune> item)
  34. {
  35. Fortune fortune = item.getModelObject();
  36. item.add(new Label("id", fortune.id));
  37. item.add(new Label("message", fortune.message));
  38. }
  39. };
  40. add(listView);
  41. }
  42. private void sort(List<Fortune> fortunes)
  43. {
  44. Collections.sort(fortunes, new Comparator<Fortune>()
  45. {
  46. @Override
  47. public int compare(Fortune f1, Fortune f2)
  48. {
  49. return f1.message.compareTo(f2.message);
  50. }
  51. });
  52. }
  53. }