Example usage for org.apache.wicket.extensions.markup.html.repeater.data.table HeaderlessColumn HeaderlessColumn

List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.table HeaderlessColumn HeaderlessColumn

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.repeater.data.table HeaderlessColumn HeaderlessColumn.

Prototype

public HeaderlessColumn() 

Source Link

Document

Construct.

Usage

From source file:com.doculibre.constellio.wicket.panels.admin.collection.CollectionListPanel.java

License:Open Source License

@Override
protected List<IColumn> getDataColumns() {
    List<IColumn> dataColumns = super.getDataColumns();

    IColumn descriptionColumn = new PropertyColumn(new StringResourceModel("description", this, null),
            "description") {
        @Override/* ww w.ja  va2  s .co  m*/
        protected IModel createLabelModel(final IModel embeddedModel) {
            return new LoadableDetachableModel() {
                @Override
                protected Object load() {
                    RecordCollection collection = (RecordCollection) embeddedModel.getObject();
                    return collection.getDescription(getLocale());
                }
            };
        }

    };
    dataColumns.add(descriptionColumn);
    // Move up
    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            RecordCollectionServices collectionServices = ConstellioSpringUtils
                                    .getRecordCollectionServices();
                            RecordCollection collection = (RecordCollection) rowModel.getObject();
                            List<RecordCollection> collections = collectionServices.list();
                            int index = collections.indexOf(collection);
                            // Cannot move higher!
                            if (index > 0) {
                                RecordCollection previousCollection = collections.get(index - 1);
                                Integer previousPosition = previousCollection.getPosition();
                                Integer currentPosition = collection.getPosition();
                                collection.setPosition(previousPosition);
                                previousCollection.setPosition(currentPosition);

                                EntityManager entityManager = ConstellioPersistenceContext
                                        .getCurrentEntityManager();
                                if (!entityManager.getTransaction().isActive()) {
                                    entityManager.getTransaction().begin();
                                }
                                collectionServices.makePersistent(collection, false);
                                collectionServices.makePersistent(previousCollection, false);
                                entityManager.getTransaction().commit();
                                entityManager.clear();

                                target.addComponent(findParent(CollectionListPanel.class));
                            }
                        }
                    };
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/up.png"));
                }
            });
        }
    });

    // Move down
    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            RecordCollectionServices collectionServices = ConstellioSpringUtils
                                    .getRecordCollectionServices();
                            RecordCollection collection = (RecordCollection) rowModel.getObject();
                            List<RecordCollection> collections = collectionServices.list();
                            int index = collections.indexOf(collection);
                            // Cannot move lower!
                            if (index < collections.size() - 1) {
                                RecordCollection nextCollection = collections.get(index + 1);
                                Integer nextPosition = nextCollection.getPosition();
                                Integer currentPosition = collection.getPosition();
                                collection.setPosition(nextPosition);
                                nextCollection.setPosition(currentPosition);

                                EntityManager entityManager = ConstellioPersistenceContext
                                        .getCurrentEntityManager();
                                if (!entityManager.getTransaction().isActive()) {
                                    entityManager.getTransaction().begin();
                                }
                                collectionServices.makePersistent(collection, false);
                                collectionServices.makePersistent(nextCollection, false);
                                entityManager.getTransaction().commit();
                                entityManager.clear();

                                target.addComponent(findParent(CollectionListPanel.class));
                            }
                        }
                    };
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/down.png"));
                }
            });
        }
    });

    IColumn searchColumn = new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new LinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    RecordCollection collection = (RecordCollection) rowModel.getObject();
                    SimpleSearch simpleSearch = new SimpleSearch();
                    simpleSearch.setCollectionName(collection.getName());
                    PageFactoryPlugin pageFactoryPlugin = PluginFactory.getPlugin(PageFactoryPlugin.class);
                    return new BookmarkablePageLink(id, pageFactoryPlugin.getSearchFormPage(),
                            SearchFormPage.getParameters(simpleSearch));
                }

                @Override
                protected IModel getLabelModel() {
                    return new StringResourceModel("search", null);
                }
            });
        }
    };
    dataColumns.add(searchColumn);
    return dataColumns;
}

From source file:com.doculibre.constellio.wicket.panels.admin.connector.ConnectorListPanel.java

License:Open Source License

@Override
protected List<IColumn> getDataColumns() {
    List<IColumn> dataColumns = super.getDataColumns();
    dataColumns.add(0, new HeaderlessColumn() {
        @Override//from  w w  w.  j  av  a2 s.  co m
        public void populateItem(Item cellItem, String componentId, IModel rowModel) {
            ConnectorInstance connectorInstance = (ConnectorInstance) rowModel.getObject();
            final ReloadableEntityModel<ConnectorInstance> connectorInstanceModel = new ReloadableEntityModel<ConnectorInstance>(
                    connectorInstance);
            cellItem.add(new ImgHolder(componentId) {
                @Override
                protected Image newImg(String id) {
                    ConnectorInstance connectorInstance = connectorInstanceModel.getObject();
                    ConnectorType connectorType = connectorInstance.getConnectorType();
                    ResourceReference imageResourceReference = new ResourceReference(
                            "connectorType_" + connectorType.getId()) {
                        @Override
                        protected Resource newResource() {
                            ConnectorInstance connectorInstance = (ConnectorInstance) connectorInstanceModel
                                    .getObject();
                            ConnectorType connectorType = connectorInstance.getConnectorType();
                            Resource imageResource;
                            byte[] iconBytes = connectorType.getIconFileContent();
                            // Convert resource path to absolute path relative to base package
                            if (iconBytes != null) {
                                imageResource = new ByteArrayResource("image", iconBytes);
                            } else {
                                imageResource = PackageResource.get(ConnectorListPanel.class,
                                        "default_icon.gif");
                            }
                            return imageResource;
                        }
                    };
                    return new NonCachingImage(id, imageResourceReference);
                }

                @Override
                public void detachModels() {
                    connectorInstanceModel.detach();
                    super.detachModels();
                }
            });
        }
    });
    return dataColumns;
}

From source file:com.doculibre.constellio.wicket.panels.admin.crud.CRUDPanel.java

License:Open Source License

protected IColumn getEditLinkColumn() {
    return new HeaderlessColumn() {
        @Override/*  w ww. j ava  2s.  c  o m*/
        public void populateItem(Item cellItem, String componentId, final IModel rowItemModel) {
            Item rowItem = (Item) cellItem.findParent(Item.class);
            final int rowIndex = getFirstRowItemAbsoluteIndex() + rowItem.getIndex();
            cellItem.add(new ModalImgLinkHolder(componentId) {
                @Override
                public WebMarkupContainer newLink(String id) {
                    if (isUseModalsAddEdit()) {
                        return new AjaxLink(id) {
                            @Override
                            public void onClick(AjaxRequestTarget target) {
                                ModalWindow editModal = getModalWindow();
                                editModal.setInitialHeight(MODAL_HEIGHT);
                                editModal.setInitialWidth(MODAL_WIDTH);
                                String editMsg = getLocalizer().getString("edit", CRUDPanel.this);
                                editModal.setTitle(editMsg);

                                WebMarkupContainer editContent = createEditContent(editModal.getContentId(),
                                        rowItemModel, rowIndex);
                                editModal.setContent(editContent);
                                editModal.show(target);
                            }

                            @Override
                            public boolean isVisible() {
                                return super.isVisible() && isEditLink(rowItemModel, rowIndex);
                            }
                        };
                    } else {
                        return new Link(id) {
                            @Override
                            public void onClick() {
                                WebMarkupContainer editContent = createEditContent(CRUDPanel.this.getId(),
                                        rowItemModel, rowIndex);
                                CRUDPanel.this.replaceWith(editContent);
                            }

                            @Override
                            public boolean isVisible() {
                                return super.isVisible() && isEditLink(rowItemModel, rowIndex);
                            }
                        };
                    }
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/ico_crayon.png"));
                }
            });
        }

        @Override
        public String getCssClass() {
            return "aligncenter width50px";
        }
    };
}

From source file:com.doculibre.constellio.wicket.panels.admin.crud.CRUDPanel.java

License:Open Source License

protected IColumn getDeleteLinkColumn() {
    return new HeaderlessColumn() {
        @Override//from  w ww.  j av a2s. co  m
        public void populateItem(Item cellItem, String componentId, final IModel rowItemModel) {
            Item rowItem = (Item) cellItem.findParent(Item.class);
            final int rowIndex = getFirstRowItemAbsoluteIndex() + rowItem.getIndex();
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                public WebMarkupContainer newLink(String id) {
                    return createDeleteLink(id, rowItemModel, rowIndex);
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/ico_poubelle.png"));
                }
            });
        }

        @Override
        public String getCssClass() {
            return "aligncenter width50px";
        }
    };
}

From source file:com.doculibre.constellio.wicket.panels.admin.crud.SingleColumnCRUDPanel.java

License:Open Source License

@Override
protected List<IColumn> getDataColumns() {
    List<IColumn> dataColumns = new ArrayList<IColumn>();
    IColumn detailsColumn = new HeaderlessColumn() {
        @Override/*from  w w w . j a  v  a2  s.  c o m*/
        public void populateItem(Item cellItem, String componentId, final IModel rowItemModel) {
            Item rowItem = (Item) cellItem.findParent(Item.class);
            final int rowIndex = getFirstRowItemAbsoluteIndex() + rowItem.getIndex();
            cellItem.add(new ModalLinkHolder(componentId) {
                @Override
                public WebMarkupContainer newLink(String id) {
                    AbstractLink link;
                    if (isUseModalsDetails()) {
                        link = new AjaxLink(id) {
                            @Override
                            public void onClick(AjaxRequestTarget target) {
                                ModalWindow detailsModal = getModalWindow();
                                detailsModal.setInitialHeight(MODAL_HEIGHT);
                                detailsModal.setInitialWidth(MODAL_WIDTH);
                                detailsModal.setTitle(getLabelModel());
                                onClickDetailsLink(rowItemModel, target, detailsModal, rowIndex);
                            }
                        };
                    } else {
                        link = new Link(id) {
                            @Override
                            public void onClick() {
                                onClickDetailsLink(rowItemModel, null, null, rowIndex);
                            }
                        };
                    }
                    link.setEnabled(isDetailsLink(rowItemModel, rowIndex));
                    return link;
                }

                @Override
                protected Component newLabel(String id, IModel labelModel) {
                    return createDetailsLabelComponent(id, rowItemModel, rowIndex);
                }
            });
        }

        @Override
        public Component getHeader(String componentId) {
            Component header = createDetailsColumnHeader(componentId);
            if (header == null) {
                header = super.getHeader(componentId);
            }
            return header;
        }
    };
    dataColumns.add(detailsColumn);
    return dataColumns;
}

From source file:com.doculibre.constellio.wicket.panels.admin.facets.FacetListPanel.java

License:Open Source License

@Override
protected List<IColumn> getDataColumns() {
    List<IColumn> dataColumns = super.getDataColumns();

    dataColumns.add(new HeaderlessColumn() {
        @Override// www  .jav a 2 s  . c  om
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ModalLinkHolder(componentId,
                    new StringResourceModel("labelledValues", FacetListPanel.this, null)) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            ModalWindow labelledValuesModal = getModalWindow();
                            CollectionFacet facet = (CollectionFacet) rowModel.getObject();
                            EditFacetLabelledValuesPanel editLabelledValuesModal = new EditFacetLabelledValuesPanel(
                                    labelledValuesModal.getContentId(), facet);
                            labelledValuesModal.setContent(editLabelledValuesModal);
                            labelledValuesModal.show(target);
                        }

                        @Override
                        public boolean isVisible() {
                            CollectionFacet facet = (CollectionFacet) rowModel.getObject();
                            return facet.isFieldFacet();
                        }
                    };
                }
            });
        }
    });

    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ModalLinkHolder(componentId,
                    new StringResourceModel("queries", FacetListPanel.this, null)) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            ModalWindow queriesModal = getModalWindow();
                            CollectionFacet facet = (CollectionFacet) rowModel.getObject();
                            EditFacetLabelledValuesPanel editQueriesPanel = new EditFacetLabelledValuesPanel(
                                    queriesModal.getContentId(), facet);
                            queriesModal.setContent(editQueriesPanel);
                            queriesModal.show(target);
                        }

                        @Override
                        public boolean isVisible() {
                            CollectionFacet facet = (CollectionFacet) rowModel.getObject();
                            return facet.isQueryFacet();
                        }
                    };
                }
            });
        }
    });

    // Move up
    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            FacetServices facetServices = ConstellioSpringUtils.getFacetServices();
                            CollectionFacet facet = (CollectionFacet) rowModel.getObject();
                            RecordCollection collection = facet.getRecordCollection();

                            List<CollectionFacet> collectionFacets = collection.getCollectionFacets();
                            int index = collectionFacets.indexOf(facet);
                            // Cannot move higher!
                            if (index > 0) {
                                CollectionFacet previousFacet = collectionFacets.set(index - 1, facet);
                                collectionFacets.set(index, previousFacet);
                                EntityManager entityManager = ConstellioPersistenceContext
                                        .getCurrentEntityManager();
                                if (!entityManager.getTransaction().isActive()) {
                                    entityManager.getTransaction().begin();
                                }
                                facetServices.makePersistent(facet);
                                facetServices.makePersistent(previousFacet);
                                entityManager.getTransaction().commit();
                                entityManager.clear();

                                target.addComponent(findParent(AdminCollectionPanel.class));
                            }
                        }
                    };
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/up.png"));
                }
            });
        }
    });

    // Move down
    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            FacetServices facetServices = ConstellioSpringUtils.getFacetServices();
                            CollectionFacet facet = (CollectionFacet) rowModel.getObject();
                            RecordCollection collection = facet.getRecordCollection();

                            List<CollectionFacet> collectionFacets = collection.getCollectionFacets();
                            int index = collectionFacets.indexOf(facet);
                            // Cannot move lower!
                            if (index < collectionFacets.size() - 1) {
                                CollectionFacet previousFacet = collectionFacets.set(index + 1, facet);
                                collectionFacets.set(index, previousFacet);
                                EntityManager entityManager = ConstellioPersistenceContext
                                        .getCurrentEntityManager();
                                if (!entityManager.getTransaction().isActive()) {
                                    entityManager.getTransaction().begin();
                                }
                                facetServices.makePersistent(facet);
                                facetServices.makePersistent(previousFacet);
                                entityManager.getTransaction().commit();
                                entityManager.clear();

                                target.addComponent(findParent(AdminCollectionPanel.class));
                            }
                        }
                    };
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/down.png"));
                }
            });
        }
    });

    return dataColumns;
}

From source file:com.doculibre.constellio.wicket.panels.admin.indexField.IndexFieldListPanel.java

License:Open Source License

@Override
protected List<IColumn> getDataColumns() {
    List<IColumn> dataColumns = new ArrayList<IColumn>();

    AjaxOnUpdateHandler updateIndexFieldHandler = new AjaxOnUpdateHandler() {
        @Override/*from   w ww  .j a  v  a 2s.  co m*/
        public void onUpdate(ReloadableEntityModel<IndexField> entityModel, AjaxRequestTarget target) {
            updateIndexField(entityModel.getObject(), target);
        }
    };

    dataColumns.add(getAjaxEditableLabelColumn("name"));
    dataColumns.add(getAjaxCheckboxColumn("indexed", updateIndexFieldHandler));
    dataColumns.add(getAjaxCheckboxColumn("multiValued", updateIndexFieldHandler));

    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ModalLinkHolder(componentId,
                    new StringResourceModel("labelledValues", IndexFieldListPanel.this, null)) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            ModalWindow labelledValuesModal = getModalWindow();
                            IndexField indexField = (IndexField) rowModel.getObject();
                            EditIndexFieldLabelledValuesPanel editLabelledValuesModal = new EditIndexFieldLabelledValuesPanel(
                                    labelledValuesModal.getContentId(), indexField);
                            labelledValuesModal.setContent(editLabelledValuesModal);
                            labelledValuesModal.show(target);
                        }
                    };
                }
            });
        }
    });

    return dataColumns;
}

From source file:com.doculibre.constellio.wicket.panels.admin.searchResultField.SearchResultFieldListPanel.java

License:Open Source License

@Override
protected List<IColumn> getDataColumns() {
    List<IColumn> dataColumns = super.getDataColumns();

    // Move up/* w ww.  ja v a  2s  .com*/
    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            SearchResultFieldServices searchResultFieldServices = ConstellioSpringUtils
                                    .getSearchResultFieldServices();
                            SearchResultField searchResultField = (SearchResultField) rowModel.getObject();
                            RecordCollection collection = searchResultField.getRecordCollection();

                            List<SearchResultField> searchResultFields = collection.getSearchResultFields();
                            int index = searchResultFields.indexOf(searchResultField);
                            // Cannot move higher!
                            if (index > 0) {
                                SearchResultField previousSearchResultField = searchResultFields.set(index - 1,
                                        searchResultField);
                                searchResultFields.set(index, previousSearchResultField);
                                EntityManager entityManager = ConstellioPersistenceContext
                                        .getCurrentEntityManager();
                                if (!entityManager.getTransaction().isActive()) {
                                    entityManager.getTransaction().begin();
                                }
                                searchResultFieldServices.makePersistent(searchResultField);
                                searchResultFieldServices.makePersistent(previousSearchResultField);
                                entityManager.getTransaction().commit();
                                entityManager.clear();

                                target.addComponent(findParent(AdminSearchResultFieldsPanel.class));
                            }
                        }
                    };
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/up.png"));
                }
            });
        }
    });

    // Move down
    dataColumns.add(new HeaderlessColumn() {
        @Override
        public void populateItem(Item cellItem, String componentId, final IModel rowModel) {
            cellItem.add(new ImgLinkHolder(componentId) {
                @Override
                protected WebMarkupContainer newLink(String id) {
                    return new AjaxLink(id) {
                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            SearchResultFieldServices searchResultFieldServices = ConstellioSpringUtils
                                    .getSearchResultFieldServices();
                            SearchResultField searchResultField = (SearchResultField) rowModel.getObject();
                            RecordCollection collection = searchResultField.getRecordCollection();

                            List<SearchResultField> searchResultFields = collection.getSearchResultFields();
                            int index = searchResultFields.indexOf(searchResultField);
                            // Cannot move lower!
                            if (index < searchResultFields.size() - 1) {
                                SearchResultField previousSearchResultField = searchResultFields.set(index + 1,
                                        searchResultField);
                                searchResultFields.set(index, previousSearchResultField);
                                EntityManager entityManager = ConstellioPersistenceContext
                                        .getCurrentEntityManager();
                                if (!entityManager.getTransaction().isActive()) {
                                    entityManager.getTransaction().begin();
                                }
                                searchResultFieldServices.makePersistent(searchResultField);
                                searchResultFieldServices.makePersistent(previousSearchResultField);
                                entityManager.getTransaction().commit();
                                entityManager.clear();

                                target.addComponent(findParent(AdminSearchResultFieldsPanel.class));
                            }
                        }
                    };
                }

                @Override
                protected Component newImg(String id) {
                    return new NonCachingImage(id,
                            new ResourceReference(BaseConstellioPage.class, "images/down.png"));
                }
            });
        }
    });

    return dataColumns;
}

From source file:de.elatexam.editor.pages.subtaskdefs.SubtaskdefTable.java

License:Open Source License

/**
 * Render subtaskdef selection table, without links to edit and delete but with selection checkboxes.
 *
 * @param id/*  w  w  w . ja  v  a 2s  .c o  m*/
 * @param clazz
 * @param doSubtaskdefSelection
 */
public SubtaskdefTable(String id, Class<T> clazz, final TaskSelectionPanel taskSelectionPanel) {
    super(id);

    CriteriaFilterAndSort builder = new CriteriaFilterAndSort(new SubTaskDef() {
    }, "xmlid", true, false);

    final FilterForm<T> form = new FilterForm<T>("form", builder);
    form.setOutputMarkupId(true);

    add(form);

    final List<IColumn<T>> columns = new ArrayList<IColumn<T>>();

    columns.add(new PropertyColumn<T>(new Model<String>("ID"), "xmlid", "xmlid") {
        @Override
        protected IModel<?> createLabelModel(IModel<T> rowModel) {
            return new PropertyModel<String>(rowModel, "xmlid");
        }
    });
    columns.add(new LabeledTextFilteredPropertyColumn<T>(Model.of("Aufgabenstellung"), Model.of("enthlt:"),
            "problem", "problem") {
        @Override
        protected IModel<?> createLabelModel(IModel<T> rowModel) {
            return new EllipsisModel((IModel<String>) super.createLabelModel(rowModel), 90);
        }
    });

    if (taskSelectionPanel == null) {
        columns.add(new PropertyColumn<T>(new Model<String>("Typ"), "class.simpleName") {
            @Override
            protected IModel<String> createLabelModel(final IModel<T> rowModel) {
                if (rowModel.getObject() == null)
                    return Model.of("???");
                else
                    return new ResourceModel(rowModel.getObject().getClass().getSimpleName() + ".short");
            }
        });
        // edit links
        columns.add(new HeaderlessColumn<T>() {
            public void populateItem(final Item<ICellPopulator<T>> cellItem, final String componentId,
                    final IModel<T> rowModel) {
                cellItem.add(new TaskActionsPanel<T>(componentId, rowModel));
            }
        });
    } else {
        columns.add(new HeaderlessColumn<T>() {
            @Override
            public void populateItem(Item<ICellPopulator<T>> cellItem, String componentId, IModel<T> rowModel) {
                cellItem.add(new AddSubtaskdefPanel<T>(componentId, rowModel, taskSelectionPanel));
            }
        });
    }
    // XXX ugly hack, need to create own data access layer
    final PrivateSubtasksDataProvider provider = new PrivateSubtasksDataProvider((Class<SubTaskDef>) clazz,
            builder, builder);
    provider.setWrapWithPropertyModel(false);

    final AjaxFallbackDefaultDataTable<T> table = new AjaxFallbackDefaultDataTable<T>("datatable", columns,
            (ISortableDataProvider<T>) provider, 10);

    table.addTopToolbar(new FilterToolbar(table, form, builder));
    form.add(table);
}

From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.simplified.SimplifiedQuestionSharedCategoriesPanel.java

License:Open Source License

/**
 * Constructor for a shared categories question.
 * @param id//www  . j  a  v  a2  s  . c  o m
 * @param questionModel
 */
@SuppressWarnings("serial")
public SimplifiedQuestionSharedCategoriesPanel(String id, IModel<Question> questionModel,
        IDataProvider<Question> questionsProvider) {
    super(id, questionModel);
    setOutputMarkupId(true);

    // seams like ugly but we need a form component to run the answer count validator
    add(new AnswerValidatorField("hidden", getQuestionModel()));

    List<IColumn> columns = new ArrayList<IColumn>();

    // first column: labels of question's children
    columns.add(new HeaderlessColumn() {

        public void populateItem(Item cellItem, String componentId, IModel rowModel) {
            Question question = (Question) rowModel.getObject();
            cellItem.add(new Label(componentId, new QuestionnaireStringResourceModel(question, "label"))
                    .setEscapeModelStrings(false));
            cellItem.add(new AttributeAppender("class", new Model<String>("obiba-label"), " "));
        }

    });

    // following columns: the question's categories
    QuestionCategoriesProvider provider = new QuestionCategoriesProvider(getQuestionModel());
    for (IModel questionCategoryModel : provider.getDataList()) {
        columns.add(new AbstractQuestionCategoryColumn(questionCategoryModel) {

            @Override
            public void populateItem(Item cellItem, String componentId, IModel rowModel, int index) {
                // if category has an open answer, show only the open box
                // show a link for check marking
                QuestionCategory questionCategory = (QuestionCategory) cellItem.getModel().getObject();
                if (questionCategory.getOpenAnswerDefinition() != null) {
                    cellItem.add(new QuestionCategoryOpenAnswerDefinitionPanel(componentId, rowModel,
                            cellItem.getModel(), new Model<String>("&nbsp;"), null));
                } else {
                    cellItem.add(new QuestionCategoryLink(componentId, rowModel, cellItem.getModel(),
                            new Model<String>("&nbsp;"), null));
                }
            }

        });
    }

    add(new AbstractQuestionArray("array", getDefaultModel(), columns, questionsProvider) {

        @Override
        public Component getRowsContent(String id, List<IColumn> columns, IDataProvider rows) {
            return new QuestionChildRows(id, columns, rows);
        }

    });

    add(new AjaxImageLink("clearAll", new QuestionnaireStringResourceModel(
            activeQuestionnaireAdministrationService.getQuestionnaire(), "clearAll")) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            for (Question child : getQuestion().getQuestions()) {
                activeQuestionnaireAdministrationService.deleteAnswers(child);
            }
            updateSelections(target);
        }

    });

}