Example usage for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink

List of usage examples for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink

Introduction

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

Prototype

public AjaxLink(final String id) 

Source Link

Document

Construct.

Usage

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.MetadataForm.java

License:Apache License

public MetadataForm(String id, IModel<Section> model, final int experimentId) {
    super(id);//  ww w  . ja v a 2s  .c  om

    this.model = new CompoundPropertyModel<Section>(model);
    setDefaultModel(this.model);
    setOutputMarkupId(true);

    wizardModel = new WizardModel();
    if (model.getObject() != null) {
        for (Section section : model.getObject().getSections()) {
            wizardModel.add(new MetadataWizardStep(new Model<Section>(section)));
        }
    } else {
        wizardModel.add(new WizardStep());
    }

    wizard = new Wizard("wizard", wizardModel, true) {

        private static final long serialVersionUID = 1L;

        @Override
        public void onFinish() {
            Section data = MetadataForm.this.model.getObject();
            Experiment experiment = expFacade.getExperimentForDetail(experimentId);
            experiment.getElasticExperiment().setMetadata(data);
            expFacade.update(experiment);
            setResponsePage(ExperimentsDetailPage.class,
                    PageParametersUtils.getDefaultPageParameters(experimentId));
        }

        @Override
        public void onCancel() {
            throw new RestartResponseAtInterceptPageException(MetadataForm.this.getPage().getPageClass(),
                    MetadataForm.this.getPage().getPageParameters());
        }

    };
    wizard.setOutputMarkupId(true);

    add(wizard.setVisible(model.getObject() != null));

    int personId = EEGDataBaseSession.get().getLoggedUser().getPersonId();
    List<Template> templatesByPerson = templateFacade.getTemplatesByPerson(personId);
    ChoiceRenderer<Template> templateChoiceRenderer = new ChoiceRenderer<Template>("name", "templateId");
    AjaxDropDownChoice<Template> templateSelection = new AjaxDropDownChoice<Template>("template-choice",
            new Model<Template>(), templatesByPerson, templateChoiceRenderer) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSelectionChangeAjaxified(AjaxRequestTarget target, Template template) {

            try {
                Reader reader = new Reader();
                Section section = reader
                        .load(new ByteInputStream(template.getTemplate(), template.getTemplate().length));
                section.setName(template.getName());
                MetadataForm.this.model.setObject(section);

                wizardModel = new WizardModel();
                for (Section subsection : section.getSections()) {
                    wizardModel.add(new MetadataWizardStep(new Model<Section>(subsection)));
                }

                Wizard wiz = new Wizard("wizard", wizardModel, true) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onFinish() {
                        Section data = MetadataForm.this.model.getObject();
                        Experiment experiment = expFacade.getExperimentForDetail(experimentId);
                        experiment.getElasticExperiment().setMetadata(data);
                        expFacade.update(experiment);
                        setResponsePage(ExperimentsDetailPage.class,
                                PageParametersUtils.getDefaultPageParameters(experimentId));
                    }

                    @Override
                    public void onCancel() {
                        throw new RestartResponseAtInterceptPageException(
                                MetadataForm.this.getPage().getPageClass(),
                                MetadataForm.this.getPage().getPageParameters());
                    }

                };

                wizard = (Wizard) wizard.replaceWith(wiz);
            } catch (Exception e) {
                log.error(e.getMessage(), e);
                error(ResourceUtils.getString("text.template.error.load"));
            }

            target.add(MetadataForm.this);
        }

    };

    add(templateSelection);

    AjaxLink<Void> saveAsTemplate = new AjaxLink<Void>("saveAsTemplate") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {

            Section section = MetadataForm.this.model.getObject();
            String templateName = section.getName() != null ? section.getName() + "-savedFromWizard"
                    : "Template-savedFromWizard";
            Date now = new Date();
            templateName += "-"
                    + DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(now);

            Writer writer = new Writer(section, true, true);
            ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

            if (writer.write(byteStream)) {

                Template template = new Template();
                byte[] templateXML = byteStream.toByteArray();

                template.setTemplate(templateXML);
                template.setName(templateName);
                template.setPersonByPersonId(EEGDataBaseSession.get().getLoggedUser());
                templateFacade.create(template);

                setResponsePage(ListTemplatePage.class);
            } else {
                error(ResourceUtils.getString("text.template.error.save"));
            }
        }
    };

    add(saveAsTemplate);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.template.PropertyMultiValuePanel.java

License:Apache License

public PropertyMultiValuePanel(String id, final IModel<Property> model) {
    super(id, new CompoundPropertyModel<Property>(model));
    setOutputMarkupId(true);//from   ww w  . j a v  a2 s  .c o m
    property = model.getObject();
    valueSuffix = property.valueCount() + 1;

    PropertyListView<Value> values = new PropertyListView<Value>("values") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Value> item) {

            int index = item.getIndex();
            item.add(new AjaxEditableLabel<Serializable>("content", new PropertyValueModel(property, index)) {

                private static final long serialVersionUID = 1L;

                @Override
                protected String defaultNullLabel() {
                    return "...";
                }
            });
            item.add(new AjaxLink<Void>("removeValueLink") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    int index = item.getIndex();
                    property.removeValue(index);
                    target.add(PropertyMultiValuePanel.this);
                }

                @Override
                protected void onConfigure() {
                    super.onConfigure();
                    setVisible(property.valueCount() > 1);
                }
            });
        }
    };
    values.setReuseItems(true);

    add(values);

    AjaxLink<Void> addLink = new AjaxLink<Void>("addButton") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            property.addValue(ResourceUtils.getString("text.template.empty.propertyValue") + valueSuffix++);
            target.add(PropertyMultiValuePanel.this);
        }
    };

    add(addLink);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.template.TemplateForm.java

License:Apache License

private void setupControlComponents(final List<Section> sections, final TemplateTreeViewModel viewModel,
        Form<Section> form) {/*from w ww  .  ja v  a 2s .  c  om*/

    AjaxLink<Void> hideDefinition = new AjaxLink<Void>("hideDefinition") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            viewModel.setDefinitionVisible(!viewModel.isDefinitionVisible());
            target.add(TemplateForm.this);
        }
    };

    form.add(hideDefinition);

    AjaxButton saveTemplate = new AjaxButton("save-template", ResourceUtils.getModel("button.template.save")) {

        private static final long serialVersionUID = 1L;

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

            Section section = TemplateForm.this.model.getObject();
            if (section.getName() == null || section.getName().isEmpty()) {
                error(ResourceUtils.getString("text.template.error.templateName"));
            } else {

                String templateName = section.getName();
                Writer writer = new Writer(section, true, true);
                ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

                if (writer.write(byteStream)) {

                    Template template = new Template();
                    byte[] templateXML = byteStream.toByteArray();

                    if (templateId == 0) {
                        // create new
                        template.setTemplate(templateXML);
                        template.setName(templateName);
                        template.setPersonByPersonId(EEGDataBaseSession.get().getLoggedUser());
                        templateFacade.create(template);
                    } else {
                        // update existing
                        Template updated = templateFacade.read(templateId);
                        updated.setName(templateName);
                        updated.setTemplate(templateXML);

                        templateFacade.update(updated);
                    }
                    setResponsePage(ListTemplatePage.class);
                } else {
                    error(ResourceUtils.getString("text.template.error.save"));
                }
            }

            target.add(TemplateForm.this);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(TemplateForm.this);
        }
    };

    form.add(saveTemplate);

    AjaxLink<Void> viewTemplateFormButton = new AjaxLink<Void>("viewTemplateFormButton") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            window.show(target);
        }
    };

    form.add(viewTemplateFormButton);

    AjaxButton saveTemplateAsSystem = new AjaxButton("save-template-system",
            ResourceUtils.getModel("button.template.save.system")) {

        private static final long serialVersionUID = 1L;

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

            Section section = TemplateForm.this.model.getObject();
            if (section.getName() == null || section.getName().isEmpty()) {
                error(ResourceUtils.getString("text.template.error.templateName"));
            } else {

                String templateName = section.getName();
                Writer writer = new Writer(section, true, true);
                ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

                if (writer.write(byteStream)) {

                    Template template = new Template();
                    byte[] templateXML = byteStream.toByteArray();

                    template.setTemplate(templateXML);
                    template.setName(templateName);
                    template.setPersonByPersonId(null);
                    templateFacade.createSystemTemplate(template);

                    setResponsePage(ListTemplatePage.class);
                } else {
                    error(ResourceUtils.getString("text.template.error.save"));
                }
            }

            target.add(TemplateForm.this);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(TemplateForm.this);
        }
    };

    boolean isAdmin = EEGDataBaseSession.get().hasRole(UserRole.ROLE_ADMIN.name());
    form.add(saveTemplateAsSystem.setVisibilityAllowed(isAdmin));

    AjaxButton saveTemplateAsNew = new AjaxButton("save-template-new",
            ResourceUtils.getModel("button.template.save.new")) {

        private static final long serialVersionUID = 1L;

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

            Section section = TemplateForm.this.model.getObject();
            if (section.getName() == null || section.getName().isEmpty()) {
                error(ResourceUtils.getString("text.template.error.templateName"));
            } else {

                String templateName = section.getName();
                Writer writer = new Writer(section, true, true);
                ByteArrayOutputStream byteStream = new ByteArrayOutputStream();

                if (writer.write(byteStream)) {

                    Template template = new Template();
                    byte[] templateXML = byteStream.toByteArray();

                    template.setTemplate(templateXML);
                    template.setName(templateName);
                    template.setPersonByPersonId(EEGDataBaseSession.get().getLoggedUser());
                    templateFacade.create(template);

                    setResponsePage(ListTemplatePage.class);
                } else {
                    error(ResourceUtils.getString("text.template.error.save"));
                }
            }

            target.add(TemplateForm.this);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(TemplateForm.this);
        }
    };

    form.add(saveTemplateAsNew);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.template.TemplatePropertyPanel.java

License:Apache License

private void setupComponents(final IModel<Property> model) {

    add(new AjaxEditableLabel<String>("name") {

        private static final long serialVersionUID = 1L;

        @Override//from w w  w . j ava  2s  .  com
        protected String defaultNullLabel() {
            return ResourceUtils.getString("text.template.empty.propertyName");
        }

    });
    add(new PropertyMultiValuePanel("value", model));
    add(new AjaxEditableMultiLineLabel<String>("definition", new PropertyModel(model, "definition") {

        private static final long serialVersionUID = 1L;

        // TODO remove this if java odml lib will be upgraded, bug fix with definition setter.

        @Override
        public void setObject(Object object) {
            super.setObject(object == null ? "" : object);
        }

    }) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onConfigure() {
            super.onConfigure();
            setVisible(TemplatePropertyPanel.this.viewModel.isDefinitionVisible());
        }

        @Override
        protected String defaultNullLabel() {
            return ResourceUtils.getString("text.template.empty.property.definition");
        }
    });

    add(new AjaxLink<Void>("remove-property") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            Property property = (Property) TemplatePropertyPanel.this.getDefaultModelObject();
            property.getParent().removeProperty(property.getName());

            target.add(container);
        }

    });

    add(new AjaxCheckBox("required", new PropertyModel<Boolean>(model.getObject(), "guiHelper.required")) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            target.add(this);
        }
    }.setOutputMarkupId(true));
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.experiments.metadata.template.TemplateSectionPanel.java

License:Apache License

private void setupHeadAndControlComponents(final IModel<Section> model, final List<Section> choices) {
    // head + control
    final boolean notRootSection = model.getObject().getParent() != null;

    head.add(new AjaxEditableLabel<String>("name") {

        private static final long serialVersionUID = 1L;

        @Override//from   www .  ja  v a2  s  .c om
        protected String defaultNullLabel() {

            if (notRootSection) {
                return ResourceUtils.getString("text.template.empty.sectionName");
            } else {
                return ResourceUtils.getString("text.template.empty.templateName");
            }
        }
    });

    String key;
    if (notRootSection) {
        key = "label.template.section";
    } else {
        key = "label.template.templateName";
    }

    head.add(new Label("sectionNameLabel", ResourceUtils.getString(key)));

    head.add(new AjaxEditableMultiLineLabel<String>("definition") {

        private static final long serialVersionUID = 1L;

        @Override
        protected String defaultNullLabel() {
            return ResourceUtils.getString("text.template.empty.section.definition");
        }

        @Override
        protected void onConfigure() {
            super.onConfigure();
            setVisible(viewModel.isDefinitionVisible());
        }
    }.setVisibilityAllowed(notRootSection));

    final DropDownChoice<Section> sectionList = new DropDownChoice<Section>("addSubsectionList",
            new Model<Section>(), choices, new ChoiceRenderer<Section>("name"));
    sectionList.setOutputMarkupId(true);
    head.add(sectionList);
    sectionList.add(new AjaxFormComponentUpdatingBehavior("onChange") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            Section section = sectionList.getModelObject();
            try {
                section = section.copy();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            TemplateSectionPanel.this.model.getObject().add(section);
            sectionList.setModelObject(null);
            target.add(mainContainer);
        }

    });

    head.add(new AjaxLink<Void>("removeSection") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {

            Section section = TemplateSectionPanel.this.model.getObject();

            section.getParent().removeSection(section);
            target.add(mainContainer);
        }

    }.setVisibilityAllowed(notRootSection));

    head.add(new AjaxLink<Void>("showhideSectionContent") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {

            content.setVisible(!content.isVisible());
            target.add(content);
        }

    });

    head.add(new AjaxLink<Void>("addProperty") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {

            try {
                Property property = new Property(
                        ResourceUtils.getString("text.template.empty.propertyName") + propertySuffix++,
                        ResourceUtils.getString("text.template.empty.propertyValue"));
                TemplateSectionPanel.this.model.getObject().add(property);
            } catch (Exception e) {
                e.printStackTrace();
            }
            target.add(mainContainer);
        }

    }.setVisibilityAllowed(notRootSection));
}

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// ww  w. j  a  va  2s. co  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  ww  .  j av a2 s  .  c o  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);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.lists.ListArtifactDefinitionsPage.java

License:Apache License

private void setupComponents() {

    setPageTitle(ResourceUtils.getModel("pageTitle.artifactList"));
    add(new ButtonPageMenu("leftMenu", ListsLeftPageMenu.values()));

    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupPlaceholderTag(true);

    final ListModelWithResearchGroupCriteria<Artifact> model = new ListModelWithResearchGroupCriteria<Artifact>() {

        private static final long serialVersionUID = 1L;

        @Override//from  w  ww  .ja va2 s  .  c  o  m
        protected List<Artifact> loadList(ResearchGroup group) {
            if (group == null)
                return Collections.EMPTY_LIST;
            else {
                return facade.getRecordsByGroup(group.getResearchGroupId());
            }
        }
    };

    List<ResearchGroup> groups;
    final boolean isAdmin = security.isAdmin();
    final boolean isExperimenter = security.userIsExperimenter();
    if (isAdmin)
        groups = researchGroupFacade.getAllRecords();
    else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

    PropertyListView<Artifact> artifacts = new PropertyListView<Artifact>("artifacts", model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Artifact> item) {
            item.add(new Label("artifactId"));
            item.add(new Label("compensation"));
            item.add(new Label("rejectCondition"));

            PageParameters parameters = PageParametersUtils
                    .getDefaultPageParameters(item.getModelObject().getArtifactId())
                    .add(PageParametersUtils.GROUP_PARAM,
                            model.getCriteriaModel().getObject().getResearchGroupId());

            item.add(new BookmarkablePageLink<Void>("edit", ArtifactFormPage.class, parameters));
            item.add(new AjaxLink<Void>("delete") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int id = item.getModelObject().getArtifactId();
                    ResearchGroup group = model.getCriteriaModel().getObject();

                    if (facade.canDelete(id)) {
                        if (group != null) {
                            facade.deleteGroupRel(item.getModelObject(),
                                    researchGroupFacade.getResearchGroupById(group.getResearchGroupId()));
                            facade.delete(item.getModelObject());
                            setResponsePage(ListArtifactDefinitionsPage.class);
                        }
                    } else {
                        getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                    }

                    target.add(getFeedback());
                }

                @Override
                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);

                    AjaxCallListener ajaxCallListener = new AjaxCallListener();
                    ajaxCallListener.onPrecondition("return confirm('Are you sure you want to delete item?');");
                    attributes.getAjaxCallListeners().add(ajaxCallListener);
                }

            }.setVisibilityAllowed(isAdmin || isExperimenter));

        }
    };
    container.add(artifacts);

    AjaxLink<Void> link = new AjaxLink<Void>("addArtifactLink") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            int researchGroupId = (model.getCriteriaModel().getObject() == null) ? CoreConstants.DEFAULT_ITEM_ID
                    : model.getCriteriaModel().getObject().getResearchGroupId();
            setResponsePage(ArtifactFormPage.class,
                    PageParametersUtils.getPageParameters(PageParametersUtils.GROUP_PARAM, researchGroupId));
        }
    };
    link.setVisibilityAllowed(isAdmin || isExperimenter);

    add(new ResearchGroupSelectForm("form", model.getCriteriaModel(), new ListModel<ResearchGroup>(groups),
            container, isAdmin));
    add(link, container);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.lists.ListExperimentOptParamPage.java

License:Apache License

private void setupComponents() {

    setPageTitle(ResourceUtils.getModel("pageTitle.experimentOptionalParameterList"));
    add(new ButtonPageMenu("leftMenu", ListsLeftPageMenu.values()));

    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupPlaceholderTag(true);

    final ListModelWithResearchGroupCriteria<ExperimentOptParamDef> model = new ListModelWithResearchGroupCriteria<ExperimentOptParamDef>() {

        private static final long serialVersionUID = 1L;

        @Override//  w ww. ja  v a 2 s.c o m
        protected List<ExperimentOptParamDef> loadList(ResearchGroup group) {
            if (group == null || group.getResearchGroupId() == CoreConstants.DEFAULT_ITEM_ID)
                return facade.getDefaultRecords();
            else {
                return facade.getRecordsByGroup(group.getResearchGroupId());
            }
        }
    };

    List<ResearchGroup> groups;
    final boolean isAdmin = security.isAdmin();
    final boolean isExperimenter = security.userIsExperimenter();
    if (isAdmin) {
        ResearchGroup defaultGroup = new ResearchGroup(CoreConstants.DEFAULT_ITEM_ID,
                EEGDataBaseSession.get().getLoggedUser(),
                ResourceUtils.getString("label.defaultExperimentOptParamDef"), "-");
        groups = researchGroupFacade.getAllRecords();
        groups.add(0, defaultGroup);
    } else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

    PropertyListView<ExperimentOptParamDef> params = new PropertyListView<ExperimentOptParamDef>("params",
            model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<ExperimentOptParamDef> item) {
            item.add(new Label("experimentOptParamDefId"));
            item.add(new Label("paramName"));
            item.add(new Label("paramDataType"));

            PageParameters parameters = PageParametersUtils
                    .getDefaultPageParameters(item.getModelObject().getExperimentOptParamDefId())
                    .add(PageParametersUtils.GROUP_PARAM,
                            (model.getCriteriaModel().getObject() == null) ? CoreConstants.DEFAULT_ITEM_ID
                                    : model.getCriteriaModel().getObject().getResearchGroupId());

            item.add(new BookmarkablePageLink<Void>("edit", ExperimentOptParamFormPage.class, parameters));
            item.add(new AjaxLink<Void>("delete") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int id = item.getModelObject().getExperimentOptParamDefId();
                    ResearchGroup group = model.getCriteriaModel().getObject();

                    if (facade.canDelete(id)) {
                        if (group != null) {
                            int groupId = group.getResearchGroupId();

                            if (groupId == CoreConstants.DEFAULT_ITEM_ID) { // delete default weather if it's from default group
                                if (!facade.hasGroupRel(id)) { // delete only if it doesn't have group relationship
                                    facade.delete(item.getModelObject());
                                    setResponsePage(ListExperimentOptParamPage.class);
                                } else {
                                    getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                                }
                            } else {
                                ExperimentOptParamDefGroupRel h = facade.getGroupRel(id, groupId);
                                if (!facade.isDefault(id)) { // delete only non default weather
                                    facade.delete(item.getModelObject());
                                }
                                facade.deleteGroupRel(h);
                                setResponsePage(ListExperimentOptParamPage.class);
                            }
                        }

                    } else {
                        getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                    }

                    target.add(getFeedback());
                }

                @Override
                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);

                    AjaxCallListener ajaxCallListener = new AjaxCallListener();
                    ajaxCallListener.onPrecondition("return confirm('Are you sure you want to delete item?');");
                    attributes.getAjaxCallListeners().add(ajaxCallListener);
                }

            }.setVisibilityAllowed(isAdmin || isExperimenter));

        }
    };
    container.add(params);

    AjaxLink<Void> link = new AjaxLink<Void>("addParamLink") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            int researchGroupId = (model.getCriteriaModel().getObject() == null) ? CoreConstants.DEFAULT_ITEM_ID
                    : model.getCriteriaModel().getObject().getResearchGroupId();
            setResponsePage(ExperimentOptParamFormPage.class,
                    PageParametersUtils.getPageParameters(PageParametersUtils.GROUP_PARAM, researchGroupId));
        }
    };
    link.setVisibilityAllowed(isAdmin || isExperimenter);

    add(new ResearchGroupSelectForm("form", model.getCriteriaModel(), new ListModel<ResearchGroup>(groups),
            container, isAdmin));
    add(link, container);
}

From source file:cz.zcu.kiv.eegdatabase.wui.ui.lists.ListFileMetadataPage.java

License:Apache License

private void setupComponents() {

    setPageTitle(ResourceUtils.getModel("pageTitle.fileMetadataDefinitionsList"));
    add(new ButtonPageMenu("leftMenu", ListsLeftPageMenu.values()));

    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupPlaceholderTag(true);

    final ListModelWithResearchGroupCriteria<FileMetadataParamDef> model = new ListModelWithResearchGroupCriteria<FileMetadataParamDef>() {

        private static final long serialVersionUID = 1L;

        @Override//from   ww w  .j  a  v a  2s.  co m
        protected List<FileMetadataParamDef> loadList(ResearchGroup group) {
            if (group == null || group.getResearchGroupId() == CoreConstants.DEFAULT_ITEM_ID)
                return facade.getDefaultRecords();
            else {
                return facade.getRecordsByGroup(group.getResearchGroupId());
            }
        }
    };

    List<ResearchGroup> groups;
    final boolean isAdmin = security.isAdmin();
    final boolean isExperimenter = security.userIsExperimenter();
    if (isAdmin) {
        ResearchGroup defaultGroup = new ResearchGroup(CoreConstants.DEFAULT_ITEM_ID,
                EEGDataBaseSession.get().getLoggedUser(),
                ResourceUtils.getString("label.defaultFileMetadataParamDef"), "-");
        groups = researchGroupFacade.getAllRecords();
        groups.add(0, defaultGroup);
    } else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

    PropertyListView<FileMetadataParamDef> params = new PropertyListView<FileMetadataParamDef>("params",
            model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<FileMetadataParamDef> item) {
            item.add(new Label("fileMetadataParamDefId"));
            item.add(new Label("paramName"));
            item.add(new Label("paramDataType"));

            PageParameters parameters = PageParametersUtils
                    .getDefaultPageParameters(item.getModelObject().getFileMetadataParamDefId())
                    .add(PageParametersUtils.GROUP_PARAM,
                            (model.getCriteriaModel().getObject() == null) ? CoreConstants.DEFAULT_ITEM_ID
                                    : model.getCriteriaModel().getObject().getResearchGroupId());

            item.add(new BookmarkablePageLink<Void>("edit", FileMetadataFormPage.class, parameters));
            item.add(new AjaxLink<Void>("delete") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int id = item.getModelObject().getFileMetadataParamDefId();
                    ResearchGroup group = model.getCriteriaModel().getObject();

                    if (facade.canDelete(id)) {
                        if (group != null) {
                            int groupId = group.getResearchGroupId();

                            if (groupId == CoreConstants.DEFAULT_ITEM_ID) { // delete default weather if it's from default group
                                if (!facade.hasGroupRel(id)) { // delete only if it doesn't have group relationship
                                    facade.delete(item.getModelObject());
                                    setResponsePage(ListFileMetadataPage.class);
                                } else {
                                    getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                                }
                            } else {
                                FileMetadataParamDefGroupRel h = facade.getGroupRel(id, groupId);
                                if (!facade.isDefault(id)) { // delete only non default weather
                                    facade.delete(item.getModelObject());
                                }
                                facade.deleteGroupRel(h);
                                setResponsePage(ListFileMetadataPage.class);
                            }
                        }

                    } else {
                        getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                    }

                    target.add(getFeedback());
                }

                @Override
                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);

                    AjaxCallListener ajaxCallListener = new AjaxCallListener();
                    ajaxCallListener.onPrecondition("return confirm('Are you sure you want to delete item?');");
                    attributes.getAjaxCallListeners().add(ajaxCallListener);
                }

            }.setVisibilityAllowed(isAdmin || isExperimenter));

        }
    };
    container.add(params);

    AjaxLink<Void> link = new AjaxLink<Void>("addMetadataLink") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            int researchGroupId = (model.getCriteriaModel().getObject() == null) ? CoreConstants.DEFAULT_ITEM_ID
                    : model.getCriteriaModel().getObject().getResearchGroupId();
            setResponsePage(FileMetadataFormPage.class,
                    PageParametersUtils.getPageParameters(PageParametersUtils.GROUP_PARAM, researchGroupId));
        }
    };
    link.setVisibilityAllowed(isAdmin || isExperimenter);

    add(new ResearchGroupSelectForm("form", model.getCriteriaModel(), new ListModel<ResearchGroup>(groups),
            container, isAdmin));
    add(link, container);

}