Example usage for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel

List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel

Introduction

In this page you can find the example usage for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel.

Prototype

AbstractReadOnlyModel

Source Link

Usage

From source file:nl.knaw.dans.dccd.web.search.DccdSearchResultPanel.java

License:Apache License

public IModel<String> getResultMessageModel() {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = -3354392109873495635L;

        @Override/*from w  ww.j a  v  a2 s . com*/
        public String getObject() {
            final SearchRequest request = getSearchRequest();
            final SearchResult<?> result = getSearchResult();

            String queryString = request.getQuery().getQueryString();
            if (!StringUtils.isBlank(queryString)) {
                if (result.getTotalHits() == 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1, DccdSearchResultPanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, DccdSearchResultPanel.this, null,
                            new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) })
                                    .getObject();
                } else if (result.getTotalHits() > 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE, DccdSearchResultPanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS, DccdSearchResultPanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                }
            } else {
                if (result.getTotalHits() == 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, DccdSearchResultPanel.this, null)
                            .getObject();
                } else if (result.getTotalHits() > 1
                        && pageBrowsePanel.getCurrentPage() == pageBrowsePanel.getLastPage()) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, DccdSearchResultPanel.this,
                            null, new Object[] { result.getTotalHits() }).getObject();
                } else if (result.getTotalHits() > 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, DccdSearchResultPanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits() }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS_NIENTE, DccdSearchResultPanel.this, null)
                            .getObject();
                }
            }
        }
    };
}

From source file:nl.knaw.dans.dccd.web.search.LocationSearchResultPanel.java

License:Apache License

public IModel<String> getResultMessageModel() {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = -3354392109873495635L;

        @Override/* w  w w .ja  v a  2 s  .c o m*/
        public String getObject() {
            final SearchRequest request = getSearchRequest();
            final SearchResult<?> result = getSearchResult();

            String queryString = request.getQuery().getQueryString();
            if (!StringUtils.isBlank(queryString)) {
                if (result.getTotalHits() == 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1, LocationSearchResultPanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, LocationSearchResultPanel.this, null,
                            new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) })
                                    .getObject();
                } else if (result.getTotalHits() > 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE, LocationSearchResultPanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS, LocationSearchResultPanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                }
            } else {
                if (result.getTotalHits() == 1) {
                    // One hit
                    return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, LocationSearchResultPanel.this,
                            null).getObject();
                } else if (result.getTotalHits() <= request.getLimit()) {
                    // All hits are shown
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE,
                            LocationSearchResultPanel.this, null, new Object[] { result.getTotalHits() })
                                    .getObject();

                } else if (result.getTotalHits() > 1) {
                    // Not all hits are shown
                    return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, LocationSearchResultPanel.this,
                            null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits() }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS_NIENTE, LocationSearchResultPanel.this, null)
                            .getObject();
                }
            }
        }
    };
}

From source file:nl.knaw.dans.dccd.web.search.pages.AdvSearchPage.java

License:Apache License

public void onAdvancedSearch(final AdvSearchData searchData) {
    final List<Field<?>> fields = searchData.getFields(false);

    if (fields.size() == 0 && StringUtils.isBlank(searchData.query)) {
        //warningMessage(DccdResources.PLEASE_ENTER_A_SEARCH_VALUE);
        return;/*from   w  w  w  .ja v  a 2s  .  c  om*/
    }

    LOGGER.debug("Search request for advanced search: " + searchData.query);

    if (!StringUtils.isBlank(searchData.query)) {
        getSearchModel()
                .addCriterium(new TextSearchCriterium(searchData.query, new AbstractReadOnlyModel<String>() {
                    private static final long serialVersionUID = 1114909631810523718L;

                    public String getObject() {
                        return CriteriumLabel.createFilterText(
                                AdvSearchPage.this.getString(DccdResources.ADVSEARCH_ANYFIELD_CRITERIUM_PREFIX),
                                searchData.query);
                    }
                }));
    }

    if (fields.size() > 0) {
        getSearchModel().addCriterium(new MultiFilterCriterium(fields, new AbstractReadOnlyModel<String>() {
            private static final long serialVersionUID = 6378460988292127479L;

            @Override
            public String getObject() {
                String prefix = "";
                String fieldStr = "";

                if (fields.size() > 1) {
                    prefix = AdvSearchPage.this.getString(DccdResources.ADVSEARCH_CRITERIUM_PREFIX);

                    Iterator<Field<?>> fieldIt = fields.iterator();
                    while (fieldIt.hasNext()) {
                        Field<?> field = fieldIt.next();
                        fieldStr += field.getValue().toString();
                        if (fieldIt.hasNext())
                            fieldStr += ", ";
                    }
                } else if (fields.size() > 0) {
                    Field<?> field = fields.get(0);

                    FieldNameResourceTranslator translator = new FieldNameResourceTranslator();
                    IModel<String> translation = translator.getTranslation(field.getName(), getLocale(), false);
                    prefix = translation.getObject();

                    fieldStr = field.getValue().toString();
                }
                return CriteriumLabel.createFilterText(prefix, fieldStr);
            }
        }));
    }

    setResponsePage(AbstractSearchResultPage.instantiate(resultPage, getSearchModel()));
}

From source file:nl.knaw.dans.dccd.web.search.pages.MyProjectsSearchResultPage.java

License:Apache License

@Override
protected IModel<String> getSearchCriteriumText(final String searchText) {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 3254972701101566016L;

        @Override//from w w  w  .  j a va 2s  .c  o  m
        public String getObject() {
            return CriteriumLabel.createFilterText(getString("myprojects.searchbreadcrumbtext"), searchText);
        }
    };
}

From source file:nl.knaw.dans.dccd.web.search.pages.PublicSearchResultPage.java

License:Apache License

@Override
protected IModel<String> getSearchCriteriumText(final String searchText) {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 3254972701101566016L;

        @Override// ww w. j  a v  a 2 s .c o  m
        public String getObject() {
            return CriteriumLabel.createFilterText(getString("publicsearch.searchbreadcrumbtext"), searchText);
        }
    };
}

From source file:nl.knaw.dans.dccd.web.search.pages.SearchResultExplorePage.java

License:Apache License

protected IModel<String> getSearchCriteriumText(final String searchText) {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 3254972701101566016L;

        @Override/*from  ww w  .j  av a2  s.  com*/
        public String getObject() {
            return CriteriumLabel.createFilterText(getString("publicsearch.searchbreadcrumbtext"), searchText);
        }
    };
}

From source file:nl.knaw.dans.dccd.web.search.PeriodSearchResultPanel.java

License:Apache License

public IModel<String> getResultMessageModel() {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = -3354392109873495635L;

        @Override//from   w w  w. j  av a2 s . c  o m
        public String getObject() {
            final SearchRequest request = getSearchRequest();
            final SearchResult<?> result = getSearchResult();

            String queryString = request.getQuery().getQueryString();
            if (!StringUtils.isBlank(queryString)) {
                if (result.getTotalHits() == 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1, PeriodSearchResultPanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, PeriodSearchResultPanel.this, null,
                            new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) })
                                    .getObject();
                } else if (result.getTotalHits() > 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE, PeriodSearchResultPanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS, PeriodSearchResultPanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                }
            } else {
                if (result.getTotalHits() == 1) {
                    // One hit
                    return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, PeriodSearchResultPanel.this,
                            null).getObject();
                } else if (result.getTotalHits() <= request.getLimit()) {
                    // All hits are shown
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, PeriodSearchResultPanel.this,
                            null, new Object[] { result.getTotalHits() }).getObject();

                } else if (result.getTotalHits() > 1) {
                    // Not all hits are shown
                    return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, PeriodSearchResultPanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits() }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS_NIENTE, PeriodSearchResultPanel.this, null)
                            .getObject();
                }
            }
        }
    };
}

From source file:nl.knaw.dans.dccd.web.search.SearchResultMessagePanel.java

License:Apache License

public IModel<String> getResultMessageModel() {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = -3354392109873495635L;

        @Override/*from  www  .  ja  v  a 2  s. com*/
        public String getObject() {
            final SearchRequest request = getSearchRequest();
            final SearchResult<?> result = getSearchResult();

            String queryString = request.getQuery().getQueryString();
            if (!StringUtils.isBlank(queryString)) {
                if (result.getTotalHits() == 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1, SearchResultMessagePanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                } else if (result.getTotalHits() > 1 && result.getTotalHits() <= request.getLimit()) {
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE, SearchResultMessagePanel.this, null,
                            new Object[] { result.getTotalHits(), Strings.escapeMarkup(queryString) })
                                    .getObject();
                } else if (result.getTotalHits() > 1) {
                    return new StringResourceModel(RI_RESULTMESSAGE, SearchResultMessagePanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits(), Strings.escapeMarkup(queryString) }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS, SearchResultMessagePanel.this, null,
                            new Object[] { Strings.escapeMarkup(queryString) }).getObject();
                }
            } else {
                if (result.getTotalHits() == 1) {
                    // One hit
                    return new StringResourceModel(RI_RESULTMESSAGE_1_NIENTE, SearchResultMessagePanel.this,
                            null).getObject();
                } else if (result.getTotalHits() <= request.getLimit()) {
                    // All hits are shown
                    return new StringResourceModel(RI_RESULTMESSAGE_1PAGE_NIENTE, SearchResultMessagePanel.this,
                            null, new Object[] { result.getTotalHits() }).getObject();

                } else if (result.getTotalHits() > 1) {
                    // Not all hits are shown
                    return new StringResourceModel(RI_RESULTMESSAGE_NIENTE, SearchResultMessagePanel.this, null,
                            new Object[] { request.getOffset() + 1,
                                    Math.min(request.getOffset() + request.getLimit(), result.getTotalHits()),
                                    result.getTotalHits() }).getObject();
                } else {
                    return new StringResourceModel(RI_NO_RESULTS_NIENTE, SearchResultMessagePanel.this, null)
                            .getObject();
                }
            }
        }
    };
}

From source file:nl.knaw.dans.dccd.web.upload.UploadFilesPage.java

License:Apache License

private void initPage() {
    redirectIfNotLoggedIn();//from  ww w  .  j av a  2s  .  c o  m

    logger.debug("Upload page constructor: " + Session.get().getId() + ", " + getId());

    // just to be sure we have a clean CombinedUpload
    reset();

    // Specify type of upload, so it can use this information when generating the status
    getCombinedUpload().setUploadType(uploadType);

    // get the system temp folder
    tempDir = System.getProperty("java.io.tmpdir");
    logger.info("using temp dir for upload: " + tempDir);

    Form form = new Form("form") {
        private static final long serialVersionUID = -941132362346269544L;

        @Override
        protected void onSubmit() {
            // empty
        }
    };
    add(form);

    // same configuration for both uploads
    EasyUploadConfig uploadConfig = new EasyUploadConfig(tempDir);
    uploadConfig.setAutoRemoveMessages(true);
    //uploadConfig.setAutoRemoveFiles(true);

    //--- Tridas
    // TODO put it in a Panel
    //
    // TRiDaS upload
    uploadTridas = new EasyUpload("tridas_upload_panel", uploadConfig) {
        private static final long serialVersionUID = 3910788086153129740L;

        @Override
        public void onReceivedFiles(Map<String, String> clientParams, String basePath, List<File> files) {
            // add to the original files
            getCombinedUpload().addOriginalFiles(files);

            // Always delete the temporary files
            FileUtil.deleteDirectory(new File(basePath));
            logger.info("Temp File(s) deleted");
            logger.debug("Tridas files upload done!");
        }
    };
    uploadTridas.registerPostProcess(TridasXMLUploadProcess.class);
    add(uploadTridas);

    tridasCombinedUploadHintsModel = new Model("");
    tridasCombinedUploadHintslabel = new Label("tridas_combined_upload_hints", tridasCombinedUploadHintsModel);
    tridasCombinedUploadHintslabel.setEscapeModelStrings(false);
    add(tridasCombinedUploadHintslabel);

    tridasCombinedUploadWarningsModel = new Model("");
    tridasCombinedUploadWarningslabel = new Label("tridas_combined_upload_warnings",
            tridasCombinedUploadWarningsModel);
    tridasCombinedUploadWarningslabel.setEscapeModelStrings(false);
    add(tridasCombinedUploadWarningslabel);

    tridasFilesUploadedMessageModel = new Model("");
    tridasFilesUploadedMessageLabel = new Label("tridas_files_uploaded_message",
            tridasFilesUploadedMessageModel);
    tridasFilesUploadedMessageLabel.setEscapeModelStrings(false);
    add(tridasFilesUploadedMessageLabel);

    // --- Tree ring data
    // TODO put it in a Panel
    //
    // upload external measurement values
    // Note: The GUI design says "Values" and the code will use "TreeRingData")
    uploadTreeRingData = new EasyUpload("measurements_upload_panel", uploadConfig) {
        private static final long serialVersionUID = 6954709169671339342L;

        @Override
        public void onReceivedFiles(Map<String, String> clientParams, String basePath, List<File> files) {
            // add to the original files
            getCombinedUpload().addOriginalFiles(files);

            // Always delete the temporary files
            FileUtil.deleteDirectory(new File(basePath));
            logger.info("Temp File(s) deleted");
            logger.debug("Value files upload done!");
        }
    };
    // Unzip (when needed) first
    uploadTreeRingData.registerPostProcess(UnzipPostProcess.class);
    uploadTreeRingData.registerPostProcess(TreeRingDataUploadProcess.class);
    add(uploadTreeRingData);

    treeRingDataCombinedUploadWarningsModel = new Model("");
    treeRingDataCombinedUploadWarningsLabel = new Label("values_combined_upload_warnings",
            treeRingDataCombinedUploadWarningsModel);
    treeRingDataCombinedUploadWarningsLabel.setEscapeModelStrings(false);
    add(treeRingDataCombinedUploadWarningsLabel);

    treeRingDataCombinedUploadErrorsModel = new Model("");
    treeRingDataCombinedUploadErrorsLabel = new Label("values_combined_upload_errors",
            treeRingDataCombinedUploadErrorsModel);
    treeRingDataCombinedUploadErrorsLabel.setEscapeModelStrings(false);
    add(treeRingDataCombinedUploadErrorsLabel);

    treeRingDataFilesUploadedMessageModel = new Model("");
    treeRingDataFilesUploadedMessageLabel = new Label("value_files_uploaded_message",
            treeRingDataFilesUploadedMessageModel);
    treeRingDataFilesUploadedMessageLabel.setEscapeModelStrings(false);
    add(treeRingDataFilesUploadedMessageLabel);

    //--- Associated files   
    add(new AssociatedFilesUploadSectionPanel("associated_files_upload_section_panel"));

    //---      

    // TODO: should construct a selection box for the fileformats
    // based on the possible formats from the Status (A POJO) instead
    // of having it hardcoded in the html, as it is now!
    // The actual selection should then be set in the onBeforeRender.
    final CombinedUploadStatus status = getStatus();

    // Start with the most important languages
    List<Locale> topLocales = LanguageProvider.getLocalesForAllOfficialEULanguages();
    // then the complete list (excluding the top ones!)
    List<Locale> allLocales = LanguageProvider.getLocalesForAllLanguagesExcluding(topLocales);
    List<Locale> locales = new ArrayList<Locale>();
    locales.addAll(topLocales);
    // How do we get a separator between the top and the rest?
    // we  make Locale that display's a separator and handle that bogus selection
    locales.add(new Locale("---"));
    // Note: you now need to filter out this selection on he client, JavaScript code
    locales.addAll(allLocales);
    // Note: we could make a class like LocaleDropDown,
    // but one that follows the curent Locale for the display values etc.
    DropDownChoice tridasLanguageSelection = new DropDownChoice("tridas_language",
            new PropertyModel(status, "tridasLanguage"), locales,
            new ChoiceRenderer("displayName", "language"));
    add(tridasLanguageSelection);

    List<TreeRingDataFileTypeSelection> list = status.getTreeRingDataFileTypeSelection().getSelectionList();
    // use the ChoiceRenderer
    // then the ajax get request also uses a 'readable' name instead of an index in the list
    ChoiceRenderer choiceRenderer = new ChoiceRenderer<TreeRingDataFileTypeSelection>("selection", "selection");
    fileTypeSelection = new DropDownChoice("measurements_filetype",
            new PropertyModel(status, "treeRingDataFileTypeSelection"), list, choiceRenderer);
    add(fileTypeSelection);

    // add javascript libraries
    add(HeaderContributor.forJavaScript(new ResourceReference(EasyUpload.class, "js/lib/json2.js")));
    add(HeaderContributor.forJavaScript(new ResourceReference(EasyUpload.class, "js/lib/jquery-1.3.2.min.js")));
    // for getting at the upload event handlers
    add(HeaderContributor.forJavaScript(new ResourceReference(EasyUpload.class, "js/EasyUpload.js")));

    // for the combined upload
    add(HeaderContributor.forJavaScript(new ResourceReference(UploadFilesPage.class, "CombinedUpload.js")));
    IModel variablesModel = new AbstractReadOnlyModel() {
        private static final long serialVersionUID = -7833455309187754952L;

        public Map<String, CharSequence> getObject() {
            Map<String, CharSequence> variables = new HashMap<String, CharSequence>(1);
            ResourceReference uploadStatusRef = new ResourceReference(
                    CombinedUploadStatusCommand.RESOURCE_NAME);
            variables.put("combinedUploadStatusRequestURL", getPage().urlFor(uploadStatusRef));
            return variables;
        }
    };
    add(TextTemplateHeaderContributor.forJavaScript(UploadFilesPage.class, "CombinedUploadConfig.js",
            variablesModel));

    uploadHintsModel = new Model("");
    uploadHintsLabel = new Label("upload_hints", uploadHintsModel);
    uploadHintsLabel.setEscapeModelStrings(false);
    add(uploadHintsLabel);

    // Actions (Buttons)
    /*
    backButton = new SubmitLink("back_button")
    {
     private static final long serialVersionUID = -8981750027400450695L;
     final String backMessage = "Do you really want to go back to the start of the upload procedure? " + 
    "This will discard the files you uploaded.";   
            
     @Override
     public void onSubmit()
     {
    // logger.debug("Back onSubmit is called");
    back();
     }
            
     @Override
     protected void onComponentTag(ComponentTag tag) {
    super.onComponentTag(tag);
    String onclick = tag.getAttributes().getString("onclick");
    // Note when there is uploaded data to be discarded, we have readyToCancel==true
    final String jsString = 
       "if(g_combinedUploadStatus.readyToCancel){" + 
        "if(!confirm('" + backMessage + "')) return false;" +
        "else g_canBrowseaway=true;" +
        "}else g_canBrowseaway=true;";               
    onclick = jsString  + onclick;
    tag.getAttributes().put("onclick", onclick);
     }
    };
    form.add(backButton);
    */

    //cancelButton = new Button("combined_cancel_button", new ResourceModel("combined_cancel_button"))
    cancelButton = new SubmitLink("combined_cancel_button") {
        private static final long serialVersionUID = 2646137560758648463L;
        final String cancelMessage = "Do you really want to restart this step of the the upload procedure? "
                + "This will discard the files you uploaded.";

        @Override
        public void onSubmit() {
            logger.debug("Cancel onSubmit is called");
            cancel();
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);
            String onclick = tag.getAttributes().getString("onclick");
            final String jsString = "if(g_combinedUploadStatus.readyToCancel){" + "if(!confirm('"
                    + cancelMessage + "')) return false;" + "else g_canBrowseaway=true;"
                    + "}else g_canBrowseaway=true;";
            onclick = jsString + onclick;
            tag.getAttributes().put("onclick", onclick);
        }
    };
    cancelButton.setOutputMarkupId(false);
    form.add(cancelButton);

    //finish_and_upload_button
    finishAndUploadButton = new SubmitLink("finish_and_upload_button") {
        private static final long serialVersionUID = -5706070001789062239L;

        @Override
        public void onSubmit() {
            //logger.debug("finishAndUploadButton onSubmit is called");
            // don't browse away but reset and be ready to upload again!            
            finish();
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);
            String onclick = tag.getAttributes().getString("onclick");
            // disable the link when not ready to finish
            onclick = "if(g_combinedUploadStatus.readyToFinish)g_canBrowseaway=true;else return false; "
                    + onclick;
            tag.getAttributes().put("onclick", onclick);
        }
    };
    finishAndUploadButton.setOutputMarkupId(false);
    form.add(finishAndUploadButton);

    finishButton = new SubmitLink("finish_button") {
        private static final long serialVersionUID = -5706070001789062239L;

        @Override
        public void onSubmit() {
            // logger.debug("Finish onSubmit is called");
            finish();

            // Redirect to the projects view page...
            //setResponsePage(new ProjectsResultPage());
            // My Projects 
            // TODO go to the project
            // get Projects from CombinedUpload and then if there is only one, go to the view page?
            //setResponsePage(new MyProjectsPage());
            setResponsePage(new MyProjectsSearchResultPage());
        }

        @Override
        protected void onComponentTag(ComponentTag tag) {
            super.onComponentTag(tag);
            String onclick = tag.getAttributes().getString("onclick");
            // disable the link when not ready to finish
            onclick = "if(g_combinedUploadStatus.readyToFinish)g_canBrowseaway=true;else return false; "
                    + onclick;
            tag.getAttributes().put("onclick", onclick);
        }
    };
    finishButton.setOutputMarkupId(false);
    form.add(finishButton);

    // Note: browsing/navigating away while there is uploaded data
    // is handled by a JavaScript window.onbeforeunload handler
}

From source file:ontopoly.components.ConfirmDeletePanel.java

License:Apache License

public ConfirmDeletePanel(String id, final Component refreshComponent) {
    super(id);/*from  w w w .  j  ava2s .  co m*/

    add(new Label("topic", new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            Topic topic = topicModel.getTopic();
            return topic == null ? null : topic.getName();
        }
    }));
    add(new Label("dependent", new AbstractReadOnlyModel<Integer>() {
        @Override
        public Integer getObject() {
            Topic topic = topicModel.getTopic();
            int size = topic == null ? 0 : topic.getDependentObjects().size();
            return new Integer(size);
        }
    }));

    Button yesButton = new Button("yesButton", new ResourceModel("button.yes"));
    yesButton.add(new AjaxFormComponentUpdatingBehavior("onclick") {
        @Override
        public void onUpdate(AjaxRequestTarget target) {
            onDeleteTopic(target);
            target.addComponent(refreshComponent);
        }
    });
    add(yesButton);

    Button noButton = new Button("noButton", new ResourceModel("button.no"));
    noButton.add(new AjaxFormComponentUpdatingBehavior("onclick") {
        @Override
        public void onUpdate(AjaxRequestTarget target) {
            setTopic(null);
            target.addComponent(refreshComponent);
        }
    });
    add(noButton);
}