Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- table = new AjaxFallbackDefaultDataTable<BuildableComponentDto, String>("components", getColumns(), getModel(),
- 100) {
- @Override
- protected Item<BuildableComponentDto> newRowItem(String id, int index, IModel<BuildableComponentDto> model) {
- Item<BuildableComponentDto> components = new Item<BuildableComponentDto>(id, index, model) {
- @Override
- public void onEvent(IEvent<?> event) {
- super.onEvent(event);
- if (event.getPayload() instanceof ComponentChangedEvent) {
- ComponentChangedEvent payload = (ComponentChangedEvent) event.getPayload();
- BuildableComponentDto buildableComponentDto = payload.getBuildableComponentDto();
- if (buildableComponentDto.getId().equals(getModelObject().getId())) {
- setModelObject(payload.getBuildableComponentDto());
- payload.getTarget().add(this);
- event.stop();
- }
- } else if (event.getPayload() instanceof ComponentDeletedEvent) {
- ComponentDeletedEvent payload = (ComponentDeletedEvent) event.getPayload();
- BuildableComponentDto buildableComponentDto = payload.getBuildableComponentDto();
- AjaxRequestTarget target = payload.getTarget();
- if (buildableComponentDto.getId().equals(getModelObject().getId())) {
- this.setVisible(false);
- target.add(this);
- event.stop();
- }
- }
- }
- };
- components.setMarkupId(ROW_ID_PREFIX + model.getObject().getId());
- components.setOutputMarkupId(true);
- return components;
- }
- };
- public void addItem(AjaxRequestTarget target, BuildableComponentDto buildableComponentDto) {
- try {
- RefreshingView datagrid = (RefreshingView) ReflectUtils.getInstance().getFieldValue(
- table, "datagrid");
- Method method = RefreshingView.class.getDeclaredMethod("newItemFactory");
- method.setAccessible(true);
- IItemFactory factory = (IItemFactory) method.invoke(datagrid);
- Item item = factory.newItem(buildableComponentDto.getId(), new Model(buildableComponentDto));
- datagrid.add(item);
- target.prependJavaScript(String.format(
- "var item=document.createElement('%s');item.id='%s';"
- + "Wicket.$('%s').getElementsByTagName(\"tbody\")[0].appendChild(item);", "tr", item.getMarkupId(),
- table.getMarkupId()));
- target.add(item);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment