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

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

Introduction

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

Prototype

public final Component setVisibilityAllowed(boolean allowed) 

Source Link

Document

Sets whether or not this component is allowed to be visible.

Usage

From source file:com.gitblit.wicket.panels.SshKeysPanel.java

License:Apache License

@Override
protected void onInitialize() {
    super.onInitialize();

    setOutputMarkupId(true);/*from  w  ww .jav a2 s  .com*/

    final List<SshKey> keys = new ArrayList<SshKey>(app().keys().getKeys(user.username));
    final ListDataProvider<SshKey> dp = new ListDataProvider<SshKey>(keys);
    final DataView<SshKey> keysView = new DataView<SshKey>("keys", dp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<SshKey> item) {
            final SshKey key = item.getModelObject();
            item.add(new Label("comment", key.getComment()));
            item.add(new Label("fingerprint", key.getFingerprint()));
            item.add(new Label("permission", key.getPermission().toString()));
            item.add(new Label("algorithm", key.getAlgorithm()));

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

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    if (app().keys().removeKey(user.username, key)) {
                        // reset the keys list
                        keys.clear();
                        keys.addAll(app().keys().getKeys(user.username));

                        // update the panel
                        target.add(SshKeysPanel.this);
                    }
                }
            };
            if (!canWriteKeys) {
                delete.setVisibilityAllowed(false);
            }
            item.add(delete);
        }
    };
    add(keysView);

    Form<Void> addKeyForm = new Form<Void>("addKeyForm");

    final IModel<String> keyData = Model.of("");
    addKeyForm.add(new TextAreaOption("addKeyData", getString("gb.key"), null, "span5", keyData));

    final IModel<AccessPermission> keyPermission = Model.of(AccessPermission.PUSH);
    addKeyForm.add(new ChoiceOption<AccessPermission>("addKeyPermission", getString("gb.permission"),
            getString("gb.sshKeyPermissionDescription"), keyPermission,
            Arrays.asList(AccessPermission.SSHPERMISSIONS)));

    final IModel<String> keyComment = Model.of("");
    addKeyForm.add(new TextOption("addKeyComment", getString("gb.comment"),
            getString("gb.sshKeyCommentDescription"), "span5", keyComment));

    addKeyForm.add(new AjaxButton("addKeyButton") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {

            UserModel user = GitBlitWebSession.get().getUser();
            String data = keyData.getObject();
            if (StringUtils.isEmpty(data)) {
                // do not submit empty key
                return;
            }

            SshKey key = new SshKey(data);
            try {
                key.getPublicKey();
            } catch (Exception e) {
                // failed to parse the key
                return;
            }

            AccessPermission permission = keyPermission.getObject();
            key.setPermission(permission);

            String comment = keyComment.getObject();
            if (!StringUtils.isEmpty(comment)) {
                key.setComment(comment);
            }

            if (app().keys().addKey(user.username, key)) {
                // reset add key fields
                keyData.setObject("");
                keyPermission.setObject(AccessPermission.PUSH);
                keyComment.setObject("");

                // reset the keys list
                keys.clear();
                keys.addAll(app().keys().getKeys(user.username));

                // update the panel
                target.add(SshKeysPanel.this);
            }
        }
    });

    if (!canWriteKeys) {
        addKeyForm.setVisibilityAllowed(false);
    }

    add(addKeyForm);
}

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 . j  a v  a  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 www  .  ja  v a2  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);
}

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 w  w .ja  v a2s  .  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//  www. j a  va2  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// ww  w . j  a va  2 s .c  o 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);

}

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

License:Apache License

private void setupComponents() {

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

    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);//from  w ww. j a  v  a2  s  .  co m
    container.setOutputMarkupPlaceholderTag(true);

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

        private static final long serialVersionUID = 1L;

        @Override
        protected List<Hardware> 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.defaultHardware"),
                "-");
        groups = researchGroupFacade.getAllRecords();
        groups.add(0, defaultGroup);
    } else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

    PropertyListView<Hardware> hardware = new PropertyListView<Hardware>("hardware", model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Hardware> item) {
            item.add(new Label("hardwareId"));
            item.add(new Label("title"));
            item.add(new Label("type"));
            item.add(new Label("description"));

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

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

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    target.add(getFeedback());
                    int id = item.getModelObject().getHardwareId();
                    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());
                                    //getFeedback().info(ResourceUtils.getString("text.itemWasDeletedFromDatabase"));
                                    setResponsePage(ListHardwareDefinitionsPage.class);
                                } else {
                                    getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                                }
                            } else {
                                HardwareGroupRel h = facade.getGroupRel(id, groupId);
                                facade.deleteGroupRel(h);
                                if (!facade.isDefault(id)) { // delete only non default weather
                                    facade.delete(item.getModelObject());
                                }
                                setResponsePage(ListHardwareDefinitionsPage.class);
                            }
                        }

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

                }

                @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(hardware);

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

        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(HardwareFormPage.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.ListPersonOptParamPage.java

License:Apache License

private void setupComponents() {

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

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

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

        private static final long serialVersionUID = 1L;

        @Override//from  w ww. j  a v a  2  s.  co  m
        protected List<PersonOptParamDef> 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.defaultPersonOptParamDef"), "-");
        groups = researchGroupFacade.getAllRecords();
        groups.add(0, defaultGroup);
    } else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

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

        private static final long serialVersionUID = 1L;

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

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

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

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int id = item.getModelObject().getPersonOptParamDefId();
                    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(ListPersonOptParamPage.class);
                                } else {
                                    getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                                }
                            } else {
                                PersonOptParamDefGroupRel h = facade.getGroupRel(id, groupId);
                                if (!facade.isDefault(id)) { // delete only non default weather
                                    facade.delete(item.getModelObject());
                                }
                                facade.deleteGroupRel(h);
                                setResponsePage(ListPersonOptParamPage.class);
                            }
                        }

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

                    target.add(container);
                    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(PersonOptParamFormPage.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.ListSoftwareDefinitionsPage.java

License:Apache License

private void setupComponents() {

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

    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);/*from www.  j a v  a  2  s  . c o m*/
    container.setOutputMarkupPlaceholderTag(true);

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

        private static final long serialVersionUID = 1L;

        @Override
        protected List<Software> 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.defaultSoftware"),
                "-");
        groups = researchGroupFacade.getAllRecords();
        groups.add(0, defaultGroup);
    } else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

    PropertyListView<Software> software = new PropertyListView<Software>("software", model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Software> item) {
            item.add(new Label("softwareId"));
            item.add(new Label("title"));
            item.add(new Label("description"));

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

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

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    target.add(getFeedback());
                    int id = item.getModelObject().getSoftwareId();
                    ResearchGroup group = model.getCriteriaModel().getObject();

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

                            if (groupId == CoreConstants.DEFAULT_ITEM_ID) { // delete default item if it's from default group
                                if (!facade.hasGroupRel(id)) { // delete only if it doesn't have group relationship
                                    facade.delete(item.getModelObject());
                                    //getFeedback().info(ResourceUtils.getString("text.itemWasDeletedFromDatabase"));
                                    setResponsePage(ListSoftwareDefinitionsPage.class);
                                } else {
                                    getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                                }
                            } else {

                                if (!facade.isDefault(id)) { // delete only non default weather
                                    facade.delete(item.getModelObject());
                                }
                                setResponsePage(ListSoftwareDefinitionsPage.class);
                            }
                        }

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

                }

                @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(software);

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

        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(SoftwareFormPage.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.ListWeatherDefinitiosPage.java

License:Apache License

private void setupComponents() {

    setPageTitle(ResourceUtils.getModel("pageTitle.weatherDefinitionsList"));

    add(new ButtonPageMenu("leftMenu", ListsLeftPageMenu.values()));

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

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

        private static final long serialVersionUID = 1L;

        @Override/*  w  w  w.j  a  va 2  s  .  co  m*/
        protected List<Weather> 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.defaultWeather"), "-");
        groups = researchGroupFacade.getAllRecords();
        groups.add(0, defaultGroup);
    } else
        groups = researchGroupFacade.getResearchGroupsWhereMember(EEGDataBaseSession.get().getLoggedUser());

    PropertyListView<Weather> weathers = new PropertyListView<Weather>("weathers", model) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<Weather> item) {
            item.add(new Label("weatherId"));
            item.add(new Label("title"));
            item.add(new Label("description"));

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

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

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {

                    int id = item.getModelObject().getWeatherId();
                    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(ListWeatherDefinitiosPage.class);
                                } else {
                                    getFeedback().error(ResourceUtils.getString("text.itemInUse"));
                                }
                            } else {
                                WeatherGroupRel h = facade.getGroupRel(id, groupId);
                                if (!facade.isDefault(id)) { // delete only non default weather
                                    facade.delete(item.getModelObject());
                                }
                                facade.deleteGroupRel(h);
                                setResponsePage(ListWeatherDefinitiosPage.class);
                            }
                        }

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

                    target.add(container);
                    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(weathers);

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

        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(WeatherFormPage.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);

}