Example usage for org.apache.wicket.markup.html.form ListMultipleChoice ListMultipleChoice

List of usage examples for org.apache.wicket.markup.html.form ListMultipleChoice ListMultipleChoice

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form ListMultipleChoice ListMultipleChoice.

Prototype

public ListMultipleChoice(String id, IModel<? extends List<? extends T>> choices,
        IChoiceRenderer<? super T> renderer) 

Source Link

Usage

From source file:at.ac.tuwien.ifs.tita.ui.evaluation.timecontroller.MultipleProjectsView.java

License:Apache License

@SuppressWarnings("unchecked")
public MultipleProjectsView() {
    // add form to page
    form = new Form<Object>("multipleProjectsForm");
    form.setOutputMarkupId(true);/* w  w  w .  j a  v a2 s  .  c o  m*/
    add(form);

    // load projects from db
    projectList = new ListMultipleChoice("projectSelection", new PropertyModel(this, "selectedProjects"),
            new LoadableDetachableModel() {
                @Override
                protected Object load() {
                    return new ArrayList<String>();
                }
            });
    projectList.setOutputMarkupId(true);

    // load users from db
    tcList = new ListMultipleChoice("timeConsumerSelection", new PropertyModel(this, "selectedUsers"),
            new LoadableDetachableModel() {
                @Override
                protected Object load() {
                    return new ArrayList<String>();
                }
            });
    tcList.setOutputMarkupId(true);

    loadTiTAProjects();
    form.add(tcList);
    form.add(projectList);

    // set select options
    selectedTimespan = new SelectOption("overall", "Overall");
    ChoiceRenderer<SelectOption> choiceRenderer = new ChoiceRenderer<SelectOption>("value", "key");
    SelectOption[] options = new SelectOption[] { new SelectOption("day", "Daily"),
            new SelectOption("month", "Monthly"), new SelectOption("overall", "Overall") };

    ddTimeSpan = new DropDownChoice<SelectOption>("timeSpanSelection",
            new PropertyModel<SelectOption>(this, "selectedTimespan"), Arrays.asList(options), choiceRenderer);

    ddTimeSpan.setOutputMarkupId(true);
    form.add(ddTimeSpan);

    // add pdf button
    final Button btnShowAsPDF = new Button("btnShowPDF") {
        @Override
        public void onSubmit() {
            try {
                loadReport();
                ResourceStreamRequestTarget rsrtarget = new ResourceStreamRequestTarget(
                        pdfResource.getResourceStream());
                rsrtarget.setFileName(pdfResource.getFilename());
                RequestCycle.get().setRequestTarget(rsrtarget);
            } catch (JRException e) {
                // TODO: GUI Exception Handling
                log.error(e.getMessage());
            } catch (PersistenceException e) {
                // TODO: GUI Exception Handling
                log.error(e.getMessage());
            }
        }

        @Override
        public boolean isEnabled() {
            return mpem.getRowCount() == 0 ? false : true;
        }
    };

    form.add(btnShowAsPDF);

    // add ajax buttons
    form.add(new AjaxButton("btnShowEfforts", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            loadMultipleProjectEvaluation();
            target.addComponent(table);
            target.addComponent(btnShowAsPDF);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    form.add(new AjaxButton("btnResetLists", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            projectList.getModel().setObject(new ArrayList<String>());
            tcList.getModel().setObject(new ArrayList<String>());
            ddTimeSpan.getModel().setObject(new SelectOption("overall", "Overall"));
            mpem.setColumnNames(new String[] {});
            mpem.reload(new ArrayList<UserProjectEffort>());
            target.addComponent(table);
            target.addComponent(projectList);
            target.addComponent(tcList);
            target.addComponent(ddTimeSpan);
            target.addComponent(btnShowAsPDF);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    form.add(new AjaxButton("btnLoadUsers", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            loadTiTAUsers();
            target.addComponent(tcList);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    form.add(new AjaxButton("btnRefreshProjects", form) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
            loadTiTAProjects();
            target.addComponent(projectList);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form1) {
        }
    });

    mpem = new TableModelMultipleProjectsEvaluation(new ArrayList<UserProjectEffort>(), new String[] {});

    table = new Table("evaluationTable", mpem);
    table.setRowsPerPage(EffortUtils.ROWS_PER_PAGE);
    table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    table.setWidths(new String[] { "100", "100", "100", "100", "100", "100" });

    form.add(table.getRowsAjaxPagingNavigator("rowsPaging"));
    form.add(table);
}

From source file:com.axway.ats.testexplorer.pages.runsByTypeDashboard.home.Filter.java

License:Apache License

public Filter() {

    super("filter");

    TestExplorerSession session = (TestExplorerSession) Session.get();

    try {/*from www.jav  a2s .c  o  m*/

        productNames = (ArrayList<String>) session.getDbReadConnection().getAllProductNames("WHERE 1=1");

        selectedProductName = null;

        searchByProduct = new DropDownChoice<String>("search_by_product",
                new PropertyModel<String>(this, "selectedProductName"), productNames);

        searchByProduct.setNullValid(false);

        searchByProduct.setEscapeModelStrings(false);
        searchByProduct.setOutputMarkupId(true);

        searchByProduct.add(new OnChangeAjaxBehavior() {

            private static final long serialVersionUID = 1L;

            @Override
            protected void onUpdate(AjaxRequestTarget target) {

                TestExplorerSession session = (TestExplorerSession) Session.get();
                try {

                    versionNames = session.getDbReadConnection()
                            .getAllVersionNames("WHERE productName = '" + selectedProductName + "'");

                    selectedVersionNames = new ArrayList<String>(versionNames);

                    searchByVersion.getModel().setObject(selectedVersionNames);

                    searchByVersion.setChoices(versionNames);

                    target.add(searchByVersion);

                } catch (DatabaseAccessException e) {
                    error("Unable to get version names");
                    LOG.error(e);
                }

            }

        });

    } catch (DatabaseAccessException e) {
        error(e.getMessage());
        LOG.error(e);
    }

    versionNames = new ArrayList<String>(1);
    selectedVersionNames = new ArrayList<String>(1);

    searchByVersion = new ListMultipleChoice<String>("search_by_version",
            new ListModel<String>(selectedVersionNames), versionNames);

    searchByVersion.setEscapeModelStrings(false);
    searchByVersion.setOutputMarkupId(true);

    add(searchByProduct);
    add(searchByVersion);

    AjaxButton searchButton = new AjaxButton("submit") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

            List<String[]> productAndVersionNames = new ArrayList<String[]>(1);

            for (String versionName : selectedVersionNames) {
                productAndVersionNames.add(new String[] { selectedProductName, versionName });
            }

            TestExplorerSession session = (TestExplorerSession) Session.get();

            try {
                new DashboardHomeUtils().callJavaScript(target, new DashboardHomeUtils().initJsonData(
                        productAndVersionNames, session.getDbReadConnection().getAllBuildTypes("AND 1=1")));
            } catch (DatabaseAccessException e) {
                error("Unable to get runs data");
                LOG.error("Unable to get runs data", e);
            }

        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {

            super.onError(target, form);
        }

    };
    add(searchButton);
    // search button is the button to trigger when user hit the enter key
    this.setDefaultButton(searchButton);

    add(new AjaxButton("clear") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

            selectedProductName = null;

            selectedVersionNames = new ArrayList<String>(1);
            versionNames = new ArrayList<String>(1);

            searchByProduct.setModelObject(selectedProductName);

            searchByVersion.setModelObject(selectedVersionNames);
            searchByVersion.setChoices(new ListModel<String>(versionNames));

            target.add(searchByProduct);
            target.add(searchByVersion);

            target.appendJavaScript(";$('#container').empty();");

        }

    });

}

From source file:com.axway.ats.testexplorer.pages.testcasesByGroups.TestcasesByGroupFilter.java

License:Apache License

private ListMultipleChoice<String> createSearchByVersionComponent() {

    versionNames = new ArrayList<String>(1);
    selectedVersionNames = new ArrayList<String>(1);

    searchByVersion = new ListMultipleChoice<String>("search_by_version",
            new ListModel<String>(selectedVersionNames), versionNames);
    searchByVersion.setEscapeModelStrings(false);
    searchByVersion.setOutputMarkupId(true);
    searchByVersion.add(new OnChangeAjaxBehavior() {

        private static final long serialVersionUID = 1L;

        @Override/*from ww  w.ja v  a2 s  .c  o  m*/
        protected void onUpdate(AjaxRequestTarget target) {

            TestExplorerSession session = (TestExplorerSession) Session.get();
            try {

                groupNames = session.getDbReadConnection().getAllGroupNames(selectedProductName,
                        selectedVersionNames);

                selectedGroupNames = new ArrayList<String>(groupNames);
                searchByAllGroups.setChoices(groupNames);
                searchByAllGroups.getModel().setObject(selectedGroupNames);
                target.add(searchByAllGroups);
            } catch (DatabaseAccessException e) {
                error("Unable to get group names");
            }
        }
    });

    return searchByVersion;
}

From source file:com.axway.ats.testexplorer.pages.testcasesByGroups.TestcasesByGroupFilter.java

License:Apache License

private ListMultipleChoice<String> createSearchByAllGroupsComponent() {

    groupNames = new ArrayList<String>(1);
    selectedGroupNames = new ArrayList<String>(1);

    searchByAllGroups = new ListMultipleChoice<String>("search_by_all_groups",
            new ListModel<String>(selectedGroupNames), groupNames);

    searchByAllGroups.setEscapeModelStrings(false);
    searchByAllGroups.setOutputMarkupId(true);
    searchByAllGroups.add(new OnChangeAjaxBehavior() {

        private static final long serialVersionUID = 1L;

        @Override/*from  w  w w .  j ava2 s.c  o  m*/
        protected void onUpdate(AjaxRequestTarget target) {

            TestExplorerSession session = (TestExplorerSession) Session.get();
            try {

                groupNames = session.getDbReadConnection().getAllGroupNames(selectedProductName,
                        selectedVersionNames);

                //selectedGroupNames = new ArrayList<String>( groupNames );
                searchByAllGroups.setChoices(groupNames);
                searchByAllGroups.getModel().setObject(selectedGroupNames);
                target.add(searchByAllGroups);
            } catch (DatabaseAccessException e) {
                error("Unable to get group names");
            }

            searchByGroupContains.setModelObject(null);
            target.add(searchByGroupContains);
        }
    });

    return searchByAllGroups;
}

From source file:com.evolveum.midpoint.web.component.input.ListMultipleChoicePanel.java

License:Apache License

public ListMultipleChoicePanel(String id, IModel<List<T>> model, IModel<List<T>> choices) {
    super(id);/*from w  ww.  j  a va2  s.  c om*/
    ListMultipleChoice<T> multiple = new ListMultipleChoice<T>("input", model, choices);
    add(multiple);
}

From source file:com.googlecode.wicketwebbeans.fields.MultiSelectEnumField.java

License:Apache License

/**
 * Construct a new MultiSelectEnumField.
 *
 * @param id the Wicket id for the editor.
 * @param model the model./* ww  w . ja  v a  2 s.c  o  m*/
 * @param metaData the meta data for the property.
 * @param viewOnly true if the component should be view-only.
 */
public MultiSelectEnumField(String id, IModel model, ElementMetaData metaData, boolean viewOnly) {
    super(id, model, metaData, viewOnly);

    final Class elementType = metaData.getElementType(null);
    if (elementType == null) {
        throw new RuntimeException("Cannot find elementType for property " + metaData.getPropertyName());
    }

    Object[] enumValues = elementType.getEnumConstants();

    ListMultipleChoice multChoice = new ListMultipleChoice("component", model, Arrays.asList(enumValues));
    multChoice.setEnabled(!viewOnly);

    add(multChoice);
}

From source file:com.norconex.jefmon.settings.panels.JobLocationsPanel.java

License:Apache License

private ListMultipleChoice<File> buildLocationsSelect(String markupId) {
    final ListMultipleChoice<File> lc = new ListMultipleChoice<File>(markupId, new ListModel<File>(),
            locations) {//from   w  w  w . java 2  s. com
        private static final long serialVersionUID = 7754249758151817399L;

        @Override
        protected CharSequence getDefaultChoice(String selected) {
            return "";
        }

        @Override
        protected void appendOptionHtml(AppendingStringBuffer buffer, File file, int index, String selected) {
            super.appendOptionHtml(buffer, file, index, selected);
            if (file == null) {
                return;
            }
            String icon = "nx-file-icon";
            if (file.isDirectory()) {
                icon = "nx-folder-icon";
            }
            buffer.insert(buffer.lastIndexOf("\">") + 1, " class=\"" + icon + "\"");
        }
    };
    lc.setMaxRows(7);
    lc.setOutputMarkupId(true);
    lc.add(new AjaxFormComponentUpdatingBehavior("onchange") {
        private static final long serialVersionUID = -6508661554028761884L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            adjustButtonVisibility(target);
        }
    });

    return lc;
}

From source file:com.tysanclan.site.projectewok.pages.member.MessageListPage.java

License:Open Source License

private Form<Conversation> createNewMessageForm(String id) {
    final TextField<String> titleField = new TextField<String>("title", new Model<String>(""));
    titleField.setRequired(true);//from w w w .  j  a  va 2 s .  co m

    List<User> users = userService.getMembers();
    Collections.sort(users, new User.CaseInsensitiveUserComparator());

    final ListMultipleChoice<User> userSelect = new ListMultipleChoice<User>("userselect",
            new IModel<Collection<User>>() {
                private static final long serialVersionUID = 1L;

                private IModel<List<User>> wrapped = null;

                @Override
                public Collection<User> getObject() {
                    if (wrapped == null) {
                        List<User> start = new LinkedList<User>();
                        if (firstSelect.getObject() != null) {
                            start.add(firstSelect.getObject());
                        }

                        wrapped = ModelMaker.wrap(start);
                    }

                    return wrapped.getObject();
                }

                @Override
                public void setObject(Collection<User> object) {

                    List<User> userList = new LinkedList<User>();
                    userList.addAll(object);
                    wrapped = ModelMaker.wrap(userList);
                }

                @Override
                public void detach() {
                    if (wrapped != null) {
                        wrapped.detach();
                    }

                }

            }, ModelMaker.wrap(users));

    final TextArea<String> editor = new BBCodeTextArea("messagecontent", "");
    editor.setRequired(true);

    Form<Conversation> newMessageForm = new Form<Conversation>(id) {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private MessageService _messageService;

        @Override
        protected void onSubmit() {

            List<User> selectedUsers = new LinkedList<User>();
            selectedUsers.addAll(userSelect.getModelObject());

            _messageService.createConversation(getUser(), selectedUsers, titleField.getModel().getObject(),
                    editor.getModel().getObject());

            setResponsePage(new MessageListPage());

        }

    };

    newMessageForm.add(userSelect);

    newMessageForm.add(titleField);

    editor.setOutputMarkupId(true);
    editor.setMarkupId("editor");
    newMessageForm.add(editor);

    return newMessageForm;
}

From source file:de.tudarmstadt.ukp.clarin.webanno.automation.project.ProjectTrainingDocumentsPanel.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
public ProjectTrainingDocumentsPanel(String id, IModel<Project> aProjectModel,
        final IModel<TabSepDocModel> aTabsDocModel, IModel<AnnotationFeature> afeatureModel) {
    super(id);// ww  w  .  java2s. c o m
    this.selectedProjectModel = aProjectModel;
    feature = afeatureModel.getObject();
    try {
        if (aTabsDocModel.getObject().isTabSep()) {
            readableFormats = new ArrayList<String>(Arrays.asList(new String[] { WebAnnoConst.TAB_SEP }));
            selectedFormat = WebAnnoConst.TAB_SEP;
        } else {
            readableFormats = new ArrayList<String>(repository.getReadableFormatLabels());
            selectedFormat = readableFormats.get(0);
        }
    } catch (IOException e) {
        error("Properties file not found or key not int the properties file " + ":"
                + ExceptionUtils.getRootCauseMessage(e));
    } catch (ClassNotFoundException e) {
        error("The Class name in the properties is not found " + ":" + ExceptionUtils.getRootCauseMessage(e));
    }
    add(fileUpload = new FileUploadField("content", new Model()));

    add(readableFormatsChoice = new DropDownChoice<String>("readableFormats", new Model(selectedFormat),
            readableFormats) {

        private static final long serialVersionUID = 2476274669926250023L;

        @Override
        public boolean isEnabled() {
            return !aTabsDocModel.getObject().isTabSep();
        }
    });

    add(new Button("import", new ResourceModel("label")) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            uploadedFiles = fileUpload.getFileUploads();
            Project project = selectedProjectModel.getObject();
            if (isEmpty(uploadedFiles)) {
                error("No document is selected to upload, please select a document first");
                return;
            }
            if (project.getId() == 0) {
                error("Project not yet created, please save project Details!");
                return;
            }

            for (FileUpload documentToUpload : uploadedFiles) {
                String fileName = documentToUpload.getClientFileName();

                if (repository.existsSourceDocument(project, fileName)) {
                    error("Document " + fileName + " already uploaded ! Delete "
                            + "the document if you want to upload again");
                    continue;
                }

                try {
                    File uploadFile = documentToUpload.writeToTempFile();

                    String username = SecurityContextHolder.getContext().getAuthentication().getName();
                    User user = userRepository.get(username);

                    SourceDocument document = new SourceDocument();
                    document.setName(fileName);
                    document.setProject(project);

                    document.setTrainingDocument(true);
                    // Since new training document is added, all
                    // non-tarining document should be
                    // re-annotated
                    for (SourceDocument sd : repository.listSourceDocuments(project)) {
                        if (!sd.isTrainingDocument()) {
                            sd.setProcessed(false);
                        }
                    }

                    for (SourceDocument sd : automationService.listTabSepDocuments(project)) {
                        if (!sd.isTrainingDocument()) {
                            sd.setProcessed(false);
                        }
                    }
                    // If this document is tab-sep and used as a feature itself, no need to add
                    // a feature to the document
                    if (aTabsDocModel.getObject().isTraining() || !aTabsDocModel.getObject().isTabSep()) {
                        document.setFeature(feature);
                    }
                    if (aTabsDocModel.getObject().isTabSep()) {
                        document.setFormat(selectedFormat);
                    } else {
                        String reader = repository.getReadableFormatId(readableFormatsChoice.getModelObject());
                        document.setFormat(reader);
                    }
                    repository.createSourceDocument(document, user);
                    repository.uploadSourceDocument(uploadFile, document);
                    info("File [" + fileName + "] has been imported successfully!");
                } catch (ClassNotFoundException e) {
                    error(e.getMessage());
                } catch (IOException e) {
                    error("Error uploading document " + e.getMessage());
                } catch (UIMAException e) {
                    error("Error uploading document " + ExceptionUtils.getRootCauseMessage(e));
                }
            }

        }
    });

    add(new ListMultipleChoice<String>("documents", new Model(selectedDocuments), documents) {
        private static final long serialVersionUID = 1L;

        {
            setChoices(new LoadableDetachableModel<List<String>>() {
                private static final long serialVersionUID = 1L;

                @Override
                protected List<String> load() {
                    Project project = selectedProjectModel.getObject();
                    documents.clear();
                    if (project.getId() != 0) {
                        if (aTabsDocModel.getObject().isTabSep()) {
                            for (SourceDocument document : automationService.listTabSepDocuments(project)) {
                                // This is tab-sep training document to the target layer
                                if (aTabsDocModel.getObject().isTraining() && document.getFeature() != null) {
                                    documents.add(document.getName());
                                }
                                // this is tab-sep training document used as a feature
                                else if (!aTabsDocModel.getObject().isTraining()
                                        && document.getFeature() == null) {
                                    documents.add(document.getName());
                                }

                            }

                        } else {
                            for (SourceDocument document : repository.listSourceDocuments(project)) {
                                if (document.getFeature() != null && document.getFeature().equals(feature)) {
                                    documents.add(document.getName());
                                }
                            }
                        }
                    }
                    return documents;
                }
            });
        }
    });

    add(new Button("remove", new ResourceModel("label")) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            Project project = selectedProjectModel.getObject();
            boolean isTrain = false;
            for (String document : selectedDocuments) {
                try {
                    String username = SecurityContextHolder.getContext().getAuthentication().getName();
                    User user = userRepository.get(username);
                    SourceDocument srDoc = repository.getSourceDocument(project, document);
                    if (srDoc.isTrainingDocument()) {
                        isTrain = true;
                    }
                    repository.removeSourceDocument(srDoc);
                } catch (IOException e) {
                    error("Error while removing a document document " + ExceptionUtils.getRootCauseMessage(e));
                }
                documents.remove(document);
            }
            // If the deleted document is training document, re-training an automation should be possible again
            if (isTrain) {
                List<SourceDocument> docs = repository.listSourceDocuments(project);
                docs.addAll(automationService.listTabSepDocuments(project));
                for (SourceDocument srDoc : docs) {
                    srDoc.setProcessed(false);
                }
            }
        }
    });
}

From source file:de.tudarmstadt.ukp.clarin.webanno.project.page.AnnotationGuideLinePanel.java

License:Apache License

@SuppressWarnings({ "unchecked", "rawtypes" })
public AnnotationGuideLinePanel(String id, IModel<Project> aProjectModel) {
    super(id);//  w  w  w .j a v  a2  s  . c  o  m
    this.selectedProjectModel = aProjectModel;
    add(fileUpload = new FileUploadField("content", new Model()));

    add(new Button("importGuideline", new ResourceModel("label")) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            uploadedFiles = fileUpload.getFileUploads();
            Project project = selectedProjectModel.getObject();

            if (project.getId() == 0) {
                error("Project not yet created, please save project Details!");
                return;
            }
            if (isEmpty(uploadedFiles)) {
                error("No document is selected to upload, please select a document first");
                return;
            }

            for (FileUpload guidelineFile : uploadedFiles) {

                try {
                    File tempFile = guidelineFile.writeToTempFile();
                    String fileName = guidelineFile.getClientFileName();
                    String username = SecurityContextHolder.getContext().getAuthentication().getName();
                    projectRepository.createGuideline(project, tempFile, fileName, username);
                } catch (IOException e) {
                    error("Unable to write guideline file " + ExceptionUtils.getRootCauseMessage(e));
                }
            }

        }
    });

    add(new ListMultipleChoice<String>("documents", new Model(selectedDocuments), documents) {
        private static final long serialVersionUID = 1L;

        {
            setChoices(new LoadableDetachableModel<List<String>>() {
                private static final long serialVersionUID = 1L;

                @Override
                protected List<String> load() {
                    Project project = selectedProjectModel.getObject();
                    documents.clear();
                    if (project.getId() != 0) {
                        documents.addAll(projectRepository.listGuidelines(project));
                    }
                    return documents;
                }
            });
        }
    });

    Button removeGuidelineButton = new Button("remove", new ResourceModel("label")) {

        private static final long serialVersionUID = -5021618538109114902L;

        @Override
        public void onSubmit() {
            Project project = selectedProjectModel.getObject();
            for (String document : selectedDocuments) {
                try {
                    String username = SecurityContextHolder.getContext().getAuthentication().getName();
                    projectRepository.removeGuideline(project, document, username);
                } catch (IOException e) {
                    error("Error while removing a document document " + ExceptionUtils.getRootCauseMessage(e));
                }
                documents.remove(document);
            }
        }
    };

    // Add check to prevent accidental delete operation
    removeGuidelineButton.add(new AttributeModifier("onclick",
            "if(!confirm('Do you really want to delete this Guideline document?')) return false;"));

    add(removeGuidelineButton);

    //        add(new Button("remove", new ResourceModel("label"))
    //        {
    //            private static final long serialVersionUID = 1L;
    //
    //            @Override
    //            public void onSubmit()
    //            {
    //                Project project = selectedProjectModel.getObject();
    //                for (String document : selectedDocuments) {
    //                    try {
    //                        String username = SecurityContextHolder.getContext().getAuthentication()
    //                                .getName();
    //                        projectRepository.removeGuideline(project, document, username);
    //                    }
    //                    catch (IOException e) {
    //                        error("Error while removing a document document "
    //                                + ExceptionUtils.getRootCauseMessage(e));
    //                    }
    //                    documents.remove(document);
    //                }
    //            }
    //        });
}