List of usage examples for org.apache.wicket.ajax.attributes AjaxCallListener onPrecondition
public AjaxCallListener onPrecondition(final CharSequence precondition)
From source file:com.axway.ats.testexplorer.pages.model.ColumnsDialog.java
License:Apache License
@SuppressWarnings({ "rawtypes" }) public ColumnsDialog(String id, final DataGrid grid, List<TableColumn> columnDefinitions) { super(id);/*from ww w. ja v a 2 s . co m*/ setOutputMarkupId(true); this.dbColumnDefinitions = columnDefinitions; DataView<TableColumn> table = new DataView<TableColumn>("headers", new ListDataProvider<TableColumn>(dbColumnDefinitions), 100) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<TableColumn> item) { final TableColumn column = item.getModelObject(); item.add(new CheckBox("visible", new PropertyModel<Boolean>(column, "visible"))); item.add(new Label("columnName", new PropertyModel<String>(column, "columnName"))); item.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { TableColumn tableColumn = (TableColumn) this.getComponent().getDefaultModelObject(); tableColumn.setVisible(!tableColumn.isVisible()); if (tableColumn.isVisible()) { item.add(AttributeModifier.replace("class", "selected")); } else { item.add(AttributeModifier.replace("class", "notSelected")); } grid.getColumnState().setColumnVisibility(tableColumn.getColumnId(), tableColumn.isVisible()); target.add(grid); target.add(this.getComponent()); open(target); } }); item.setOutputMarkupId(true); if (column.isVisible()) { item.add(AttributeModifier.replace("class", "selected")); } else { item.add(AttributeModifier.replace("class", "notSelected")); } } }; add(table); final Form<Void> columnDefinitionsForm = new Form<Void>("columnDefinitionsForm"); add(columnDefinitionsForm); AjaxSubmitLink saveButton = new AjaxSubmitLink("saveButton", columnDefinitionsForm) { private static final long serialVersionUID = 1L; @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("getTableColumnDefinitions(); "); attributes.getAjaxCallListeners().add(ajaxCallListener); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { String columnDefinitionsString = form.getRequest().getPostParameters() .getParameterValue("columnDefinitions").toString(); List<TableColumn> jsColDefinitions = asList(columnDefinitionsString); orderTableColumns(dbColumnDefinitions, jsColDefinitions); try { saveColumnDefinitionsToDb(jsColDefinitions); modifyDBColumnDefinitionList(jsColDefinitions); } catch (DatabaseAccessException dae) { throw new RuntimeException("Unable to save table Column definitions in db: " + ((TestExplorerSession) Session.get()).getDbName(), dae); } catch (SQLException sqle) { throw new RuntimeException("Unable to save table Column definitions in db: " + ((TestExplorerSession) Session.get()).getDbName(), sqle); } close(target); } }; add(AttributeModifier.append("class", "runsTableColDialogDivWrapper")); columnDefinitionsForm.add(saveButton); add(new Behavior() { private static final long serialVersionUID = 1L; @Override public void renderHead(Component component, IHeaderResponse response) { if (autoAddToHeader()) { String script = "jQuery.fn.center=function(){" + "this.css(\"position\",\"absolute\");" + "this.css(\"top\",(jQuery(window).height()-this.height())/2+jQuery(window).scrollTop()+\"px\");" + "this.css(\"left\",(jQuery(window).width()-this.width())/2+jQuery(window).scrollLeft()+\"px\");" + "return this};"; String css = "#settingsoverlay,.settingsoverlay,#settingsoverlay_high," + ".settingsoverlay_high{filter:Alpha(Opacity=40);" + "-moz-opacity:.4;opacity:.4;background-color:#444;display:none;position:absolute;" + "left:0;top:0;width:100%;height:100%;text-align:center;z-index:5000;}" + "#settingsoverlay_high,.settingsoverlay_high{z-index:6000;}" + "#settingsoverlaycontent,#settingsoverlaycontent_high{display:none;z-index:5500;" + "text-align:center;}.settingsoverlaycontent," + ".settingsoverlaycontent_high{display:none;z-index:5500;text-align:left;}" + "#settingsoverlaycontent_high,.settingsoverlaycontent_high{z-index:6500;}" + "#settingsoverlaycontent .modalborder," + "#settingsoverlaycontent_high .modalborder{padding:15px;width:300px;" + "border:1px solid #444;background-color:white;" + "-webkit-box-shadow:0 0 10px rgba(0,0,0,0.8);-moz-box-shadow:0 0 10px rgba(0,0,0,0.8);" + "box-shadow:0 0 10px rgba(0,0,0,0.8);" + "filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=5,OffY=5,Color='gray');" + "-ms-filter:\"progid:DXImageTransform.Microsoft.dropshadow(OffX=5,OffY=5,Color='gray')\";}"; response.render(JavaScriptHeaderItem.forScript(script, null)); response.render(CssHeaderItem.forCSS(css, null)); if (isSupportIE6()) { response.render(JavaScriptHeaderItem .forReference(new PackageResourceReference(getClass(), "jquery.bgiframe.js"))); } } response.render(OnDomReadyHeaderItem.forScript(getJS())); } private String getJS() { StringBuilder sb = new StringBuilder(); sb.append("if (jQuery('#").append(getDivId()) .append("').length == 0) { jQuery(document.body).append('") .append(getDiv().replace("'", "\\'")).append("'); }"); return sb.toString(); } private String getDivId() { return getMarkupId() + "_ovl"; } private String getDiv() { if (isClickBkgToClose()) { return ("<div id=\"" + getDivId() + "\" class=\"settingsoverlayCD\" onclick=\"" + getCloseString() + "\"></div>"); } else { return ("<div id=\"" + getDivId() + "\" class=\"settingsoverlayCD\"></div>"); } } }); }
From source file:com.axway.ats.testexplorer.pages.model.PagingToolbar.java
License:Apache License
private void addColumnsDialog(final List<TableColumn> dbColumnDefinitions) { final MainDataGrid grid = getDataGrid(); Form<Object> form = new Form<Object>("columnsForm"); add(form);/*from w w w .j a v a 2s .co m*/ final ColumnsDialog dialog = new ColumnsDialog("modal", grid, dbColumnDefinitions); dialog.setClickBkgToClose(true); form.add(dialog); AjaxButton openChColumnsDialogButton = new AjaxButton("chColsButton", new Model<String>("Change columns")) { private static final long serialVersionUID = 1L; @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("getTableColumnDefinitions(); "); attributes.getAjaxCallListeners().add(ajaxCallListener); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // get column definitions from the JavaScript String columnDefinitionString = form.getRequest().getPostParameters() .getParameterValue("columnDefinitions").toString(); // as List List<TableColumn> jsColumnDefinitions = dialog.asList(columnDefinitionString); for (TableColumn colDefinition : dbColumnDefinitions) { if (jsColumnDefinitions.contains(colDefinition)) { // add column id jsColumnDefinitions.get(jsColumnDefinitions.indexOf(colDefinition)) .setColumnId(colDefinition.getColumnId()); } } //update column indexes according to the JavaScript result ColumnsState cs = grid.getColumnState(); int index; if (cs.getEntry("check") != null) { index = 1; } else { index = 0; } for (TableColumn col : jsColumnDefinitions) { cs.setColumnIndex(col.getColumnId(), index++); cs.setColumnWidth(col.getColumnId(), col.getInitialWidth()); } grid.setColumnState(cs); //reload grid target.add(grid); //open column selection dialog dialog.open(target); } }; form.add(openChColumnsDialogButton); }
From source file:com.axway.ats.testexplorer.pages.model.PagingToolbar.java
License:Apache License
private void addToolbarButtons(int supportedOperations) { final MainDataGrid grid = getDataGrid(); final IDataSource<?> dataSource = grid.getDataSource(); buttonsForm = new Form<Object>("toolbarButtonsForm"); buttonsForm.setOutputMarkupId(true); add(buttonsForm);//from w ww . j ava 2s.c o m defaultMode = new WebMarkupContainer("defaultMode"); defaultMode.setVisible((supportedOperations & MainDataGrid.OPERATION_EDIT) > 0); editMode = new WebMarkupContainer("editMode"); editMode.setVisible(false); buttonsForm.add(defaultMode); buttonsForm.add(editMode); // add DELETE button for DEFAULT mode AjaxButton deleteButton = new AjaxButton("deleteButton") { private static final long serialVersionUID = 1L; // Add user confirmation dialog on the delete event @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); int selectedItems = grid.getSelectedItems().size(); if (selectedItems > 0) { ajaxCallListener.onPrecondition("return confirm('" + "Are you sure you want to delete the selected " + "item(s)?" + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); } } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // collect the objects to delete List<Object> objectsToDelete = new ArrayList<Object>(); for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { objectsToDelete.add(model.getObject()); } // delete deleteObjects(objectsToDelete); // the selected items were deleted, unselect them grid.resetSelectedItems(); target.add(grid); } }; deleteButton.setVisible((supportedOperations & MainDataGrid.OPERATION_DELETE) > 0); defaultMode.add(deleteButton); // add EDIT button for DEFAULT mode AjaxButton editButton = new AjaxButton("editButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { if (grid.getSelectedItems().size() > 0) { for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { grid.setItemEdit(model, true); } grid.switchToEditMode(); target.add(grid); } } }; editButton.setVisible((supportedOperations & MainDataGrid.OPERATION_EDIT) > 0); defaultMode.add(editButton); //add MESSAGE button for run and suite AjaxButton messageButton = new AjaxButton("messageButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { PageParameters parameters = new PageParameters(); // pass database name parameters.add("dbname", ((TestExplorerSession) Session.get()).getDbName()); String id = null; if (dataSource instanceof ScenariosDataSource) { id = ((ScenariosDataSource) dataSource).getSuiteId(); parameters.add("suiteId", id); setResponsePage(SuiteMessagePage.class, parameters); } else if (dataSource instanceof SuitesDataSource) { id = ((SuitesDataSource) dataSource).getRunId(); parameters.add("runId", id); setResponsePage(RunMessagePage.class, parameters); } } }; if (dataSource instanceof ScenariosDataSource) { messageButton.add(new Label("button_label", "Suite messages")); } else if (dataSource instanceof SuitesDataSource) { messageButton.add(new Label("button_label", "Run messages")); } messageButton.setVisible((supportedOperations & MainDataGrid.OPERATION_GET_LOG) > 0); defaultMode.add(messageButton); // add ADD TO COMPARE BASKET button for DEFAULT mode AjaxButton addToCompareButton = new AjaxButton("addToCompareButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { ((TestExplorerSession) Session.get()).getCompareContainer().addObject(model.getObject(), ((BasePage) getPage()).getCurrentPath()); } target.add(((BasePage) getPage()).getItemsCountLabel()); // unselect the items grid.resetSelectedItems(); target.add(grid); target.appendJavaScript( "$(\".arrowUpIndicator\").stop(true,true).removeAttr('style').show().effect(\"shake\",{times:2},300).fadeOut('slow');"); } }; addToCompareButton.setVisible((supportedOperations & MainDataGrid.OPERATION_ADD_TO_COMPARE) > 0); defaultMode.add(addToCompareButton); // add CREATE REPORT button for DEFAULT mode AjaxButton createReportButton = new AjaxButton("createReportButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { TestExplorerSession session = (TestExplorerSession) Session.get(); Collection<IModel<?>> selectedItems = grid.getSelectedItems(); if (selectedItems.isEmpty()) { error("Please select a test to create a report for"); return; } boolean workingWithScenarios = selectedItems.iterator().next().getObject() instanceof Scenario; String testcaseId = null; if (workingWithScenarios) { // get the ID of the first selected scenario int firstSuiteId = Integer.MAX_VALUE; String firstScenarioName = ""; for (IModel<?> model : selectedItems) { Object obj = model.getObject(); int thisSuiteId = Integer.parseInt(((Scenario) obj).suiteId); if (thisSuiteId < firstSuiteId) { firstSuiteId = thisSuiteId; firstScenarioName = ((Scenario) obj).name; } } try { // get the ID of the first testcase List<Testcase> testcases = session.getDbReadConnection().getTestcases(0, 1, "where suiteId=" + firstSuiteId, "testcaseId", true, ((TestExplorerSession) Session.get()).getTimeOffset()); if (testcases.size() < 1) { error("Could not find testcase(s) for scenario with name '" + firstScenarioName + "'and suite id " + firstSuiteId + "."); return; } testcaseId = testcases.get(0).testcaseId; } catch (DatabaseAccessException e) { error("Could not fetch testcase(s) for scenario with name '" + firstScenarioName + "'and suite id " + firstSuiteId + "."); return; } } else { testcaseId = ((Testcase) selectedItems.iterator().next().getObject()).testcaseId; } PageParameters parameters = new PageParameters(); parameters.add("testcaseId", testcaseId); setResponsePage(SelectTestcaseReportPage.class, parameters); } }; createReportButton.setVisible((supportedOperations & MainDataGrid.OPERATION_CREATE_REPORT) > 0); defaultMode.add(createReportButton); // add APPLY button for EDIT mode AjaxButton applyButton = new AjaxButton("applyButton", grid.getForm()) { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { boolean hasError = false; for (IModel<?> model : (Collection<IModel<?>>) grid.getSelectedItems()) { if (updateObject(model.getObject())) { grid.setItemEdit(model, false); } else { hasError = true; } } if (!hasError) { grid.switchToDefaultMode(); } grid.resetSelectedItems(); target.add(grid); } }; applyButton.setVisible((supportedOperations & MainDataGrid.OPERATION_EDIT) > 0); editMode.add(applyButton); // add CANCEL button for DEFAULT mode AjaxButton cancelButton = new AjaxButton("cancelButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { grid.setItemEdit(model, false); } grid.switchToDefaultMode(); grid.resetSelectedItems(); target.add(grid); } }; cancelButton.setVisible((supportedOperations & MainDataGrid.OPERATION_EDIT) > 0); cancelButton.setDefaultFormProcessing(false); editMode.add(cancelButton); // add STATUS CHANGE buttons for DEFAULT mode AjaxButton statusChangePassButton = new AjaxButton("statusChangePassButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // collect the objects to change state to PASS List<Object> objectsToPass = new ArrayList<Object>(); for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { objectsToPass.add(model.getObject()); } changeTestcaseStatus(objectsToPass, 1); // unselect the selected items grid.resetSelectedItems(); target.add(grid); } }; statusChangePassButton.setVisible((supportedOperations & MainDataGrid.OPERATION_STATUS_CHANGE) > 0); defaultMode.add(statusChangePassButton); AjaxButton statusChangeFailButton = new AjaxButton("statusChangeFailButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // collect the objects to change state to FAIL List<Object> objectsToFail = new ArrayList<Object>(); for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { objectsToFail.add(model.getObject()); } changeTestcaseStatus(objectsToFail, 0); // unselect the selected items grid.resetSelectedItems(); target.add(grid); } }; statusChangeFailButton.setVisible((supportedOperations & MainDataGrid.OPERATION_STATUS_CHANGE) > 0); defaultMode.add(statusChangeFailButton); AjaxButton statusChangeSkipButton = new AjaxButton("statusChangeSkipButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { // collect the objects to change state to SKIP List<Object> objectsToSkip = new ArrayList<Object>(); for (IModel<?> model : (Collection<IModel>) grid.getSelectedItems()) { objectsToSkip.add(model.getObject()); } changeTestcaseStatus(objectsToSkip, 2); // unselect the selected items grid.resetSelectedItems(); target.add(grid); } }; statusChangeSkipButton.setVisible((supportedOperations & MainDataGrid.OPERATION_STATUS_CHANGE) > 0); defaultMode.add(statusChangeSkipButton); }
From source file:com.romeikat.datamessie.core.base.ui.component.AjaxConfirmationLink.java
License:Open Source License
@Override protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); final AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("return confirm('" + text + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); }
From source file:com.wicketinaction.HandlebarsButton.java
License:Apache License
@Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); // let Wicket.Ajax/jQuery know that the result is JSON so it will parse it for you attributes.setDataType("json"); // tell Wicket.Ajax to not try to process the Ajax response because it is not the normal <ajax-response> attributes.setWicketAjaxResponse(false); // register the onSuccess listener that will execute Handlebars logic AjaxCallListener listener = new AjaxCallListener() { @Override/*from w ww .j a va 2 s . c o m*/ public CharSequence getSuccessHandler(Component component) { // returns an instance of JsonFunction, so Wicket will render it as is return onSuccessFunction; } }; // the following handlers are not JsonFunction and they will be wrapped in JsonFunction by Wicket and the // appropriate parameters will be passed. // For the 'before' handler it looks like: function(attrs, jqXHR, settings){Wicket.Log.info('[Wicket Ajax 6 demo]: executing a before handler');} listener.onBefore("Wicket.Log.info('[Wicket Ajax 6 demo]: executing a before handler');"); // For the 'complete' handler it looks like: function(attrs, jqXHR, textStatus){Wicket.Log.info('[Wicket Ajax 6 demo]: executing a complete handler');} listener.onComplete( "Wicket.Log.info('[Wicket Ajax 6 demo]: executing a complete handler. Status: ' + textStatus);"); // change the return to 'false' and the Ajax call wont be executed at all. listener.onPrecondition("return true;"); attributes.getAjaxCallListeners().add(listener); }
From source file:cz.zcu.kiv.eegdatabase.wui.components.form.AjaxWizardButton.java
License:Apache License
@Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("return confirm('" + message + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); }
From source file:cz.zcu.kiv.eegdatabase.wui.components.form.input.AjaxConfirmLink.java
License:Apache License
@Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("return confirm('" + confirmMessage + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.ExperimentsDetailPage.java
License:Apache License
private void setupComponents(final int experimentId) { setPageTitle(ResourceUtils.getModel("pageTitle.experimentDetail")); add(new ButtonPageMenu("leftMenu", ExperimentsPageLeftMenu.values())); final Experiment experiment = facade.getExperimentForDetail(experimentId); add(new Label("experimentId", experiment.getExperimentId() + "")); add(new Label("privateExperiment", experiment.isPrivateExperiment() + "")); add(new Label("scenario.title", experiment.getScenario().getTitle())); add(new TimestampLabel("startTime", experiment.getStartTime(), StringUtils.DATE_TIME_FORMAT_PATTER)); add(new TimestampLabel("endTime", experiment.getEndTime(), StringUtils.DATE_TIME_FORMAT_PATTER)); Person personBySubjectPersonId = experiment.getPersonBySubjectPersonId(); add(new TimestampLabel("dateOfBirth", personBySubjectPersonId != null ? personBySubjectPersonId.getDateOfBirth() : null, StringUtils.DATE_TIME_FORMAT_PATTER_ONLY_YEAR)); add(new EnumLabel<Gender>("gender", (personBySubjectPersonId != null ? Gender.getGenderByShortcut(personBySubjectPersonId.getGender()) : null)));// ww w . ja v a 2 s . co m BookmarkablePageLink<Void> personLink = new BookmarkablePageLink<Void>("personLink", PersonDetailPage.class, PageParametersUtils.getDefaultPageParameters( personBySubjectPersonId != null ? personBySubjectPersonId.getPersonId() : -1)); personLink.setVisibilityAllowed(personBySubjectPersonId != null && security.userCanViewPersonDetails(personBySubjectPersonId.getPersonId())); add(personLink); BookmarkablePageLink<Void> scenarioLink = new BookmarkablePageLink<Void>("scenarioLink", ScenarioDetailPage.class, PageParametersUtils.getDefaultPageParameters(experiment.getScenario().getScenarioId())); add(scenarioLink); boolean coexperiment = security.userIsOwnerOrCoexperimenter(experimentId) || security.isAdmin(); BookmarkablePageLink<Void> addFileLink = new BookmarkablePageLink<Void>("addFileLink", AddDataFilePage.class, PageParametersUtils.getDefaultPageParameters(experimentId)); BookmarkablePageLink<Void> editExpLink = new BookmarkablePageLink<Void>("editExpLink", ExperimentFormPage.class, PageParametersUtils.getDefaultPageParameters(experimentId)); BookmarkablePageLink<Void> metadataLink = new BookmarkablePageLink<Void>("metadataLink", MetadataFormPage.class, PageParametersUtils.getDefaultPageParameters(experimentId)); ExperimentBuyDownloadLinkPanel downloadExpLink = new ExperimentBuyDownloadLinkPanel("downloadExpLink", experiment, new Model<ExperimentLicence>()); downloadExpLink.setVisibilityAllowed(experiment.getExperimentPackageConnections().isEmpty()); // TODO add license choice to allow the "Add to cart" link, then delete the following line downloadExpLink.setVisible(EEGDataBaseSession.get().isExperimentPurchased(experiment.getExperimentId())); add(addFileLink.setVisibilityAllowed(coexperiment), editExpLink.setVisibilityAllowed(coexperiment), metadataLink.setVisibilityAllowed(coexperiment), downloadExpLink); /* XXX #66 Java Heap Space Exception : working with big data file in memory. final ExperimentSignalViewCanvasPanel experimentViewPanel = new ExperimentSignalViewCanvasPanel("view", experiment); */ //Removing experimenters section PropertyModel<List<Section>> model = new PropertyModel<List<Section>>( experiment.getElasticExperiment().getMetadata(), "sections"); List<Section> list = model.getObject(); Section toRemove = null; if (list != null) { for (Section s : list) { if (s.getName().equals("Experimentators")) { toRemove = s; break; } } list.remove(toRemove); } // PropertyListView<Section> metadata = new PropertyListView<Section>("sections", new PropertyModel<List<Section>>(experiment.getElasticExperiment().getMetadata(), "sections")) { PropertyListView<Section> metadata = new PropertyListView<Section>("sections", new ListModel<Section>(list)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<Section> item) { item.add(new ViewMetadataSectionPanel("section", item.getModel())); } }; metadata.setVisible(metadata.getViewSize() > 0); add(metadata); PropertyListView<ExperimentLicence> licenseList = new PropertyListView<ExperimentLicence>("licenseList", new ListModel<ExperimentLicence>( new ArrayList<ExperimentLicence>(experiment.getExperimentLicences()))) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<ExperimentLicence> item) { item.add(new Label("license.title")); item.add(new Label("price")); item.add(new Label("license.licenseType")); //item.add(new Label("license.attachmentFileName")); item.add(new ViewLinkPanel("detail", LicenseDetailPage.class, "license.licenseId", item.getModel(), ResourceUtils.getModel("link.detail"))); item.add(new AjaxLink<Void>("deleteLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { experimentLicenseFacade.remove(experiment, item.getModelObject().getLicense()); setResponsePage(ExperimentsDetailPage.class, PageParametersUtils.getDefaultPageParameters(experimentId)); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener .onPrecondition("return confirm('" + ResourceUtils.getString("text.delete.license", item.getModelObject().getLicense().getTitle()) + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); } @Override public boolean isVisible() { boolean isOwner = experiment.getPersonByOwnerId().getPersonId() == EEGDataBaseSession.get() .getLoggedUser().getPersonId(); boolean isAdmin = security.isAdmin(); boolean isGroupAdmin = security .userIsAdminInGroup(experiment.getResearchGroup().getResearchGroupId()); return isAdmin || isOwner || isGroupAdmin; } }); } }; add(licenseList); PropertyListView<DataFile> files = new PropertyListView<DataFile>("files", new ListModel<DataFile>(new ArrayList<DataFile>(experiment.getDataFiles()))) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<DataFile> item) { item.add(new Label("filename")); item.add(new Label("description")); item.add(new ViewLinkPanel("detail", DataFileDetailPage.class, "dataFileId", item.getModel(), ResourceUtils.getModel("link.detail"))); item.add(new AjaxLink<Void>("deleteLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { fileFacade.delete(item.getModelObject()); setResponsePage(ExperimentsDetailPage.class, PageParametersUtils.getDefaultPageParameters(experimentId)); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("return confirm('" + ResourceUtils .getString("text.delete.datafile", item.getModelObject().getFilename()) + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); } @Override public boolean isVisible() { boolean isOwner = experiment.getPersonByOwnerId().getPersonId() == EEGDataBaseSession.get() .getLoggedUser().getPersonId(); boolean isAdmin = security.isAdmin(); boolean isGroupAdmin = security .userIsAdminInGroup(experiment.getResearchGroup().getResearchGroupId()); return isAdmin || isOwner || isGroupAdmin; } }); } }; add(files); final WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); container.setOutputMarkupPlaceholderTag(true); container.setVisibilityAllowed(true); /* XXX #66 Java Heap Space Exception : working with big data file in memory. container.add(experimentViewPanel); */ add(container); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.groups.ListOfMembersGroupPage.java
License:Apache License
private void setupComponents(final int groupId) { add(new Label("title", facade.getResearchGroupTitle(groupId))); final WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupPlaceholderTag(true); LoadableDetachableModel<List<Map<String, Object>>> listModel = new LoadableDetachableModel<List<Map<String, Object>>>() { private static final long serialVersionUID = 1L; @Override//from ww w . ja va2 s.c o m protected List<Map<String, Object>> load() { return facade.getListOfGroupMembers(groupId); } }; final boolean isUserGroupAdmin = securityFacade.userIsAdminInGroup(groupId); PropertyListView<Map<String, Object>> members = new PropertyListView<Map<String, Object>>("members", listModel) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<Map<String, Object>> item) { final Map<String, Object> person = item.getModelObject(); boolean enabled = true; final int personId = (Integer) person.get("personId"); final ResearchGroupMembershipId id = new ResearchGroupMembershipId(personId, groupId); item.add(new Label("givenname", (String) person.get("givenname"))); item.add(new Label("surname", (String) person.get("surname"))); item.add(new Label("username", (String) (person.get("username") != null ? person.get("username") : "---"))); GroupRole role = GroupRole.valueOf((String) person.get("authority")); item.add(new EnumLabel<GroupRole>("authority", role)); final DropDownChoice<GroupRole> roles = new DropDownChoice<GroupRole>("roles", new Model<GroupRole>(role), Arrays.asList(GroupRole.values()), new EnumChoiceRenderer<GroupRole>()); roles.add(new AjaxFormComponentUpdatingBehavior("onChange") { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { GroupRole groupRole = roles.getModelObject(); ResearchGroupMembership membership = facade.readMemberhip(id); membership.setAuthority(groupRole.name()); facade.updateMemberhip(membership); setResponsePage(getPage()); } }); roles.setVisibilityAllowed(isUserGroupAdmin); Person owner = personFacade.getPerson((String) person.get("username")); List<ResearchGroup> groups = facade.getResearchGroupsWhereOwner(owner); for (ResearchGroup group : groups) { if (group.getResearchGroupId() == groupId) { enabled = false; } } item.setEnabled(enabled); item.add(roles); AjaxLink<Void> removeLink = (new AjaxLink<Void>("removeFromGroupLink") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { ResearchGroupMembership membership = facade.readMemberhip(id); facade.deleteMemberhip(membership); setResponsePage(getPage()); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("return confirm('" + ResourceUtils.getString("link.confirm.sureToRemoveUserFromGroup") + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); } }); removeLink.setVisibilityAllowed(isUserGroupAdmin); removeLink.setVisible(enabled); item.add(removeLink); } }; container.add(members); BookmarkablePageLink<Void> backToDetailLink = new BookmarkablePageLink<Void>("backLink", ResearchGroupsDetailPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); BookmarkablePageLink<Void> addMemberLink = new BookmarkablePageLink<Void>("addMemberLink", AddMemberToGroupPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); BookmarkablePageLink<Void> transferOwnershipLink = new BookmarkablePageLink<Void>("transferOwnershipLink", TransferOwnershipPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); addMemberLink.setVisibilityAllowed(isUserGroupAdmin); transferOwnershipLink.setVisibilityAllowed(isLoggedPersonOwner); add(container, backToDetailLink, addMemberLink, transferOwnershipLink); }
From source file:cz.zcu.kiv.eegdatabase.wui.ui.groups.ResearchGroupsDetailPage.java
License:Apache License
public ResearchGroupsDetailPage(PageParameters parameters) { setPageTitle(ResourceUtils.getModel("pageTitle.researchGroupDetail")); add(new ButtonPageMenu("leftMenu", prepareLeftMenu())); StringValue value = parseParameters(parameters); int groupId = value.toInt(); final ResearchGroup group = researchGroupFacade.getResearchGroupById(groupId); add(new Label("title", group.getTitle())); add(new Label("description", group.getDescription())); AjaxLink<Void> requestMembership = new AjaxLink<Void>("request") { private static final long serialVersionUID = 1L; @Override//from w w w .ja v a 2 s.co m public void onClick(AjaxRequestTarget target) { try { GroupPermissionRequest request = new GroupPermissionRequest(); request.setPerson(EEGDataBaseSession.get().getLoggedUser()); request.setResearchGroup(group); request.setRequestedPermission(Util.GROUP_EXPERIMENTER); researchGroupFacade.createPermissionRequest(request); info("Request was send."); setVisibilityAllowed(false); target.add(this); } catch (MailException e) { error("Request was not send."); } target.add(getFeedback()); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { super.updateAjaxAttributes(attributes); AjaxCallListener ajaxCallListener = new AjaxCallListener(); ajaxCallListener.onPrecondition("return confirm('" + ResourceUtils.getString( "text.confirmSendingMembershipRequest", new Model<ResearchGroup>(group)) + "');"); attributes.getAjaxCallListeners().add(ajaxCallListener); } }; requestMembership.setVisibilityAllowed(!securityFacade.userIsMemberInGroup(groupId)); BookmarkablePageLink<Void> listOfMembers = new BookmarkablePageLink<Void>("listOfMembers", ListOfMembersGroupPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); BookmarkablePageLink<Void> addMember = new BookmarkablePageLink<Void>("addMember", AddMemberToGroupPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); BookmarkablePageLink<Void> editGroup = new BookmarkablePageLink<Void>("editGroup", ResearchGroupFormPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); BookmarkablePageLink<Void> listOfPlans = new BookmarkablePageLink<Void>("listGroupMembershipPlans", ListOfMembershipPlansGroupPage.class, PageParametersUtils.getDefaultPageParameters(groupId)); boolean userIsAdminInGroup = securityFacade.userIsAdminInGroup(groupId); listOfMembers.setVisibilityAllowed(securityFacade.userIsExperimenterInGroup(groupId)); addMember.setVisibilityAllowed(userIsAdminInGroup); editGroup.setVisibilityAllowed(userIsAdminInGroup); add(requestMembership, listOfMembers, addMember, editGroup, listOfPlans); }