Guest User

Untitled

a guest
Nov 19th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.54 KB | None | 0 0
  1. package hu.xxx.ddc.components;
  2.  
  3. import hu.xxx.ddc.main.CheckBoxPanel;
  4. import hu.xxx.ddc.main.DDCWebSession;
  5. import hu.xxx.ddc.main.DependenciesPanel;
  6. import hu.xxx.ddc.model.DdcPDeps;
  7. import hu.xxx.ddc.model.DdcPDepsPK;
  8. import hu.xxx.ddc.model.DdcPObjects;
  9. import hu.xxx.ddc.services.DdcCustomBo;
  10. import java.sql.Timestamp;
  11. import java.util.ArrayList;
  12. import java.util.Iterator;
  13. import java.util.List;
  14. import java.util.Map;
  15. import org.apache.log4j.Logger;
  16. import org.apache.wicket.AttributeModifier;
  17. import org.apache.wicket.ajax.AjaxRequestTarget;
  18. import org.apache.wicket.ajax.markup.html.form.AjaxButton;
  19. import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder;
  20. import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
  21. import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
  22. import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
  23. import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
  24. import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigationToolbar;
  25. import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
  26. import org.apache.wicket.markup.html.WebMarkupContainer;
  27. import org.apache.wicket.markup.html.basic.Label;
  28. import org.apache.wicket.markup.html.form.CheckGroup;
  29. import org.apache.wicket.markup.html.form.CheckGroupSelector;
  30. import org.apache.wicket.markup.html.form.Form;
  31. import org.apache.wicket.markup.html.form.TextField;
  32. import org.apache.wicket.markup.html.panel.FeedbackPanel;
  33. import org.apache.wicket.markup.repeater.Item;
  34. import org.apache.wicket.markup.repeater.OddEvenItem;
  35. import org.apache.wicket.model.IModel;
  36. import org.apache.wicket.model.LoadableDetachableModel;
  37. import org.apache.wicket.model.PropertyModel;
  38. import org.apache.wicket.model.ResourceModel;
  39. import org.apache.wicket.spring.injection.annot.SpringBean;
  40.  
  41. /**
  42.  *
  43.  * @author sfeher
  44.  */
  45. public class DdcPDepsEditForm extends Form {
  46.  
  47.     @SpringBean(name = "DdcCustomBo")
  48.     private DdcCustomBo customBo;
  49.     static final Logger logger = Logger.getLogger(DdcPDepsEditForm.class);
  50.     WebMarkupContainer container;
  51.     Map reltypemap = customBo.getFparamMap(3);
  52.     String search;
  53.     private transient DdcPObjects filterObject = new DdcPObjects();
  54.     List<DdcPObjects> selected = new ArrayList();
  55.     LoadableDetachableModel model;
  56.     DependenciesPanel deppanel;
  57.  
  58.     public List<DdcPObjects> getSelected() {
  59.         return selected;
  60.     }
  61.  
  62.     public void setSelected(List<DdcPObjects> selected) {
  63.         this.selected = selected;
  64.     }
  65.     DataTable table;
  66.     CheckGroup group;
  67.  
  68.     public String getSearch() {
  69.         return search;
  70.     }
  71.  
  72.     public void setSearch(String search) {
  73.         this.search = search;
  74.     }
  75.  
  76.     public DdcPDepsEditForm(String id, final IModel model, WebMarkupContainer c) {
  77.         super(id);
  78.         this.model = new LoadableDetachableModel() {
  79.             @Override
  80.             protected Object load() {
  81.                 return model.getObject();
  82.             }
  83.         };
  84.         this.container = c;
  85.         Populate();
  86.     }
  87.  
  88.     private void Populate() {
  89.         deppanel = new DependenciesPanel("dependencies", model, container);
  90.         setOutputMarkupId(true);
  91.         add(deppanel);
  92.  
  93.         add(new FeedbackPanel("feedback"));
  94.         Label pidlabel = new Label("searchboxtitle", new ResourceModel("deptable.name"));
  95.         add(pidlabel);
  96.         TextField searchbox = new TextField("search", new PropertyModel(this, "search"));
  97.         AjaxButton submit = new AjaxButton("submit") {
  98.             @Override
  99.             protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
  100.                 ShowResults(search);
  101.                 target.add(container);
  102.             }
  103.  
  104.             @Override
  105.             protected void onError(AjaxRequestTarget target, Form<?> form) {
  106.                 super.onError();
  107.                 target.add(container);
  108.             }
  109.         };
  110.         submit.add(new Label("searchlabel", new ResourceModel("deptable.search")));
  111.         add(submit);
  112.         add(searchbox);
  113.         initResultsTable(); // init
  114.  
  115.     }
  116.  
  117.     private void ShowResults(String search) {
  118.         filterObject.setPName(search);
  119.         group.add(table);
  120.         if (table.getItemCount() != 0) {
  121.             table.setVisible(true);
  122.         } else {
  123.             table.setVisible(false);
  124.         }
  125.  
  126.     }
  127.  
  128.     private void PersistSelectedItems() {
  129.         group.getDefaultModelObjectAsString();
  130.         Iterator i = selected.iterator();
  131.         while (i.hasNext()) {
  132.             DdcPObjects o = (DdcPObjects) i.next();
  133.             DdcPDeps item = new DdcPDeps();
  134.             item.setCrd(now());
  135.             DdcPDepsPK pk = new DdcPDepsPK();
  136.             pk.setPId1(((DdcPObjects) model.getObject()).getPId());
  137.             pk.setPId2(o.getPId());
  138.             item.setDdcPDepsPK(pk);
  139.             item.setPRelType("P");
  140.             item.setCru(DDCWebSession.getSession().getUser().getLoginName());
  141.             customBo.getDaoSession().beginTransaction();
  142.             customBo.saveOrUpdate(item);
  143.             customBo.getDaoSession().getTransaction().commit();
  144.         }
  145.     }
  146.  
  147.     private void initResultsTable() {
  148.         group = new CheckGroup<DdcPObjects>("group", selected);
  149.  
  150.         group.add(new CheckGroupSelector("groupselector"));
  151.  
  152.         List<IColumn<DdcPObjects, ?>> columns = new ArrayList<IColumn<DdcPObjects, ?>>();
  153.         columns.add(new AbstractColumn(new ResourceModel("checkbox")) {
  154.             @Override
  155.             public void populateItem(Item item, String string, IModel imodel) {
  156.                 item.add(new CheckBoxPanel(string, imodel, group));
  157.             }
  158.         });
  159.         columns.add(new PropertyColumn<DdcPObjects, Object>(new ResourceModel("pobjectstable.pid"), "pId", "pId"));
  160.         columns.add(new PropertyColumn<DdcPObjects, Object>(new ResourceModel("pobjectstable.pname"), "pName", "pName"));
  161.         columns.add(new PropertyColumn<DdcPObjects, Object>(new ResourceModel("pobjectstable.pdesc"), "pDesc", "pDesc"));
  162.  
  163.         DdcPObjectsDataProvider dataprovider = new DdcPObjectsDataProvider(customBo, filterObject, (DdcPObjects) model.getObject());
  164.  
  165.         table = new DataTable("resultstable", columns, dataprovider, 15) {
  166.             @Override
  167.             protected Item newRowItem(String id, int index, IModel model) {
  168.                 return new OddEvenItem(id, index, model);
  169.             }
  170.         };
  171.         dataprovider.setSort("pName", SortOrder.ASCENDING);
  172.         table.addTopToolbar(new HeadersToolbar(table, dataprovider));
  173.         NavigationToolbar tb = new NavigationToolbar(table);
  174.         tb.add(new AttributeModifier("class", "navbar"));
  175.         table.addBottomToolbar(tb);
  176.         table.setVisible(false);
  177.         table.setOutputMarkupPlaceholderTag(true);
  178.         group.add(table);
  179.         AjaxButton addselecteditems = new AjaxButton("addselected") {
  180.             @Override
  181.             protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
  182.                 super.onSubmit(target, form);
  183.                 filterObject = new DdcPObjects();
  184.                 PersistSelectedItems();
  185.                 table.setVisible(false);
  186.                 search = null;
  187.                 target.add(container);
  188.                 target.add(deppanel);
  189.             }
  190.         };
  191.         add(addselecteditems);
  192.         add(group);
  193.     }
  194.  
  195.     private static Timestamp now() {
  196.         java.util.Date date = new java.util.Date();
  197.         return new Timestamp(date.getTime());
  198.     }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment