Guest User

Untitled

a guest
Jul 1st, 2013
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. table = new AjaxFallbackDefaultDataTable<BuildableComponentDto, String>("components", getColumns(), getModel(),
  2.         100) {
  3.     @Override
  4.     protected Item<BuildableComponentDto> newRowItem(String id, int index, IModel<BuildableComponentDto> model) {
  5.         Item<BuildableComponentDto> components = new Item<BuildableComponentDto>(id, index, model) {
  6.             @Override
  7.             public void onEvent(IEvent<?> event) {
  8.                 super.onEvent(event);
  9.                 if (event.getPayload() instanceof ComponentChangedEvent) {
  10.                     ComponentChangedEvent payload = (ComponentChangedEvent) event.getPayload();
  11.                     BuildableComponentDto buildableComponentDto = payload.getBuildableComponentDto();
  12.                     if (buildableComponentDto.getId().equals(getModelObject().getId())) {
  13.                         setModelObject(payload.getBuildableComponentDto());
  14.                         payload.getTarget().add(this);
  15.                         event.stop();
  16.                     }
  17.                 } else if (event.getPayload() instanceof ComponentDeletedEvent) {
  18.                     ComponentDeletedEvent payload = (ComponentDeletedEvent) event.getPayload();
  19.                     BuildableComponentDto buildableComponentDto = payload.getBuildableComponentDto();
  20.                     AjaxRequestTarget target = payload.getTarget();
  21.                     if (buildableComponentDto.getId().equals(getModelObject().getId())) {
  22.                         this.setVisible(false);
  23.                         target.add(this);
  24.                         event.stop();
  25.                     }
  26.                 }
  27.             }
  28.         };
  29.         components.setMarkupId(ROW_ID_PREFIX + model.getObject().getId());
  30.         components.setOutputMarkupId(true);
  31.         return components;
  32.     }
  33. };
  34.  
  35. public void addItem(AjaxRequestTarget target, BuildableComponentDto buildableComponentDto) {
  36.     try {
  37.         RefreshingView datagrid = (RefreshingView) ReflectUtils.getInstance().getFieldValue(
  38.                 table, "datagrid");
  39.         Method method = RefreshingView.class.getDeclaredMethod("newItemFactory");
  40.         method.setAccessible(true);
  41.         IItemFactory factory = (IItemFactory) method.invoke(datagrid);
  42.         Item item = factory.newItem(buildableComponentDto.getId(), new Model(buildableComponentDto));
  43.         datagrid.add(item);
  44.         target.prependJavaScript(String.format(
  45.                 "var item=document.createElement('%s');item.id='%s';"
  46.                         + "Wicket.$('%s').getElementsByTagName(\"tbody\")[0].appendChild(item);", "tr", item.getMarkupId(),
  47.                 table.getMarkupId()));
  48.         target.add(item);
  49.     } catch (Exception e) {
  50.         throw new RuntimeException(e);
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment