Example usage for org.apache.wicket.ajax.form OnChangeAjaxBehavior OnChangeAjaxBehavior

List of usage examples for org.apache.wicket.ajax.form OnChangeAjaxBehavior OnChangeAjaxBehavior

Introduction

In this page you can find the example usage for org.apache.wicket.ajax.form OnChangeAjaxBehavior OnChangeAjaxBehavior.

Prototype

public OnChangeAjaxBehavior() 

Source Link

Document

Constructor.

Usage

From source file:org.apache.openmeetings.web.admin.groups.GroupUsersPanel.java

License:Apache License

public GroupUsersPanel(String id, long groupId) {
    super(id);//w w w .  j  av a  2 s.c  o  m
    this.groupId = groupId;
    setOutputMarkupId(true);

    SearchableDataView<GroupUser> dataView = new SearchableDataView<GroupUser>("userList",
            new GroupUserDataProvider()) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<GroupUser> item) {
            final GroupUser grpUser = item.getModelObject();
            item.add(new CheckBox("isModerator").add(new OnChangeAjaxBehavior() {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onUpdate(AjaxRequestTarget target) {
                    if (grpUser.getId() != null) {
                        update(grpUser);
                    }
                }
            }));
            User u = grpUser.getUser();
            Label label = new Label("label", u == null ? "" : GroupForm.formatUser(u));
            if (grpUser.getId() == null) {
                label.add(AttributeAppender.append("class", "newItem"));
            }
            item.add(label);
            item.add(new ConfirmableAjaxBorder("deleteUserBtn", getString("80"), getString("833")) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                    if (grpUser.getId() == null) {
                        users2add.remove(grpUser);
                    } else {
                        UserDao uDao = getBean(UserDao.class);
                        User u = uDao.get(grpUser.getUser().getId());
                        u.getGroupUsers().remove(grpUser);
                        uDao.update(u, WebSession.getUserId());
                    }
                    target.add(GroupUsersPanel.this);
                }
            });
        }
    };
    add(dataView).setOutputMarkupId(true);
    add(new PagedEntityListPanel("navigator", dataView) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            target.add(GroupUsersPanel.this);
        }
    });
}

From source file:org.apache.openmeetings.web.admin.labels.LangForm.java

License:Apache License

/**
 * Render Main//from   ww w .j  a  v a  2  s .  c o  m
 * 
 * @param id
 * @param listContainer
 * @param language
 * @param langPanel
 */
public LangForm(String id, final WebMarkupContainer listContainer, final LangPanel langPanel) {
    super(id);
    setOutputMarkupId(true);

    languages = new DropDownChoice<Map.Entry<Long, Locale>>("language",
            new PropertyModel<Map.Entry<Long, Locale>>(langPanel, "language"), getLanguages(),
            new ChoiceRenderer<Map.Entry<Long, Locale>>() {
                private static final long serialVersionUID = 1L;

                @Override
                public Object getDisplayValue(Map.Entry<Long, Locale> object) {
                    return object.getValue().getDisplayName();
                }

                @Override
                public String getIdValue(Map.Entry<Long, Locale> object, int index) {
                    return "" + object.getKey();
                }
            });

    languages.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            target.add(listContainer);
        }
    });
    add(languages);
    // attach an ajax validation behavior to all form component's keydown
    // event and throttle it down to once per second
    add(new AjaxFormValidatingBehavior("keydown", Duration.ONE_SECOND));
}

From source file:org.apache.openmeetings.web.admin.users.UserForm.java

License:Apache License

/**
 * Add the fields to the form//from   w w w. j av a2  s .com
 */
private void addFormFields() {
    ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
    login.setLabel(Model.of(Application.getString(132)));
    add(login.add(minimumLength(getMinLoginLength(cfgDao))));

    add(generalForm = new GeneralUserForm("general", getModel(), true));

    add(new DropDownChoice<Type>("type", Arrays.asList(Type.values())).add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            updateDomain(target);
        }
    }));
    update(null);
    add(domain.add(domainId).setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true));
    add(new Label("ownerId"));
    add(forDatePattern("inserted", WEB_DATE_PATTERN));
    add(forDatePattern("updated", WEB_DATE_PATTERN));

    add(new CheckBox("forceTimeZoneCheck"));

    add(new Select2MultiChoice<Right>("rights", null, new ChoiceProvider<Right>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String getDisplayValue(Right choice) {
            return choice.name();
        }

        @Override
        public String getIdValue(Right choice) {
            return choice.name();
        }

        @Override
        public void query(String term, int page, Response<Right> response) {
            for (Right r : Right.values()) {
                if (Strings.isEmpty(term) || r.name().contains(term)) {
                    response.add(r);
                }
            }
        }

        @Override
        public Collection<Right> toChoices(Collection<String> ids) {
            Collection<Right> rights = new ArrayList<>(ids.size());
            for (String id : ids) {
                rights.add(Right.valueOf(id));
            }
            return rights;
        }
    }));
    add(new ComunityUserForm("comunity", getModel()));
}

From source file:org.apache.openmeetings.web.room.sidebar.UploadDialog.java

License:Apache License

public UploadDialog(String id, RoomPanel room, RoomFilePanel roomFiles) {
    super(id, "");
    this.roomFiles = roomFiles;
    this.room = room;
    add(form = new Form<>("form"));
    toWb.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override//from  w  w w  . ja  v a  2s.  c om
        protected void onUpdate(AjaxRequestTarget target) {
            target.add(cleanBlock.setVisible(toWb.getModelObject()));
        }
    });
    form.add(feedback.setOutputMarkupId(true), toWb.setOutputMarkupId(true), cleanBlock
            .add(cleanWb.setOutputMarkupId(true)).setVisible(false).setOutputMarkupPlaceholderTag(true))
            .setOutputMarkupId(true);

    form.setMultiPart(true);
    form.setMaxSize(Bytes.bytes(getMaxUploadSize()));
    // Model is necessary here to avoid writing image to the User object
    form.add(uploadField = new FileUploadField("file", new IModel<List<FileUpload>>() {
        private static final long serialVersionUID = 1L;

        @Override
        public void setObject(List<FileUpload> object) {
            //no-op
        }

        @Override
        public List<FileUpload> getObject() {
            return new ArrayList<>();
        }
    }));
    Form<String> nameForm = new Form<>("name-form");
    fileName = new HiddenField<>("name", Model.of(""));
    fileName.add(new AjaxFormSubmitBehavior(nameForm, "change") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            if (!Strings.isEmpty(getComponent().getDefaultModelObjectAsString())) {
                upload.setEnabled(true, target);
            }
        }
    }).setOutputMarkupId(true);
    form.add(new UploadProgressBar("progress", form, uploadField));
    add(nameForm.add(fileName.setOutputMarkupId(true)));
    add(BootstrapFileUploadBehavior.INSTANCE);
}

From source file:org.apache.openmeetings.web.user.profile.MessagesContactsPanel.java

License:Apache License

public MessagesContactsPanel(String id) {
    super(id);/*  ww w  .  j av  a 2  s.c  o m*/
    NOT_MOVE_FOLDER.setId(MOVE_CHOOSE);
    NOT_MOVE_FOLDER.setFolderName(Application.getString(1243));
    foldersModel.setObject(getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE));
    updateMoveModel();

    final AddFolderDialog addFolder = new AddFolderDialog("addFolder") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            super.onSubmit(target);
            PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class);
            fDao.addPrivateMessageFolder(getModelObject(), getUserId());
            foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE));
            updateMoveModel();
            target.add(folders, moveDropDown);
        }
    };
    add(addFolder);
    add(new JQueryBehavior(".email.new", "button"));
    folders.add(inbox.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            selectFolder(inbox, INBOX_FOLDER_ID, target);
        }
    }));
    folders.add(sent.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            selectFolder(sent, SENT_FOLDER_ID, target);
        }
    }));
    folders.add(trash.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            selectFolder(trash, TRASH_FOLDER_ID, target);
        }
    }));
    folders.add(new WebMarkupContainer("newdir").add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            addFolder.open(target);
        }
    }).add(new JQueryBehavior(".email.newdir", "button")));
    add(folders.add(new ListView<PrivateMessageFolder>("folder", foldersModel) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<PrivateMessageFolder> item) {
            item.add(new Label("name", item.getModelObject().getFolderName()));
            item.add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    attributes.setEventPropagation(EventPropagation.STOP_IMMEDIATE);
                }

                @Override
                protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                    PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class);
                    fDao.delete(item.getModelObject(), getUserId());
                    foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE));
                    updateMoveModel();
                    target.add(folders, moveDropDown);
                }
            });
            item.add(new AjaxEventBehavior("click") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    selectFolder(item, item.getModelObject().getId(), target);
                }
            });
            setFolderClass(item);
        }
    }).setOutputMarkupId(true));

    SearchableDataProvider<PrivateMessage> sdp = new SearchableDataProvider<PrivateMessage>(
            PrivateMessageDao.class) {
        private static final long serialVersionUID = 1L;

        @Override
        protected PrivateMessageDao getDao() {
            return (PrivateMessageDao) super.getDao();
        }

        @Override
        public Iterator<? extends PrivateMessage> iterator(long first, long count) {
            allMessages.clear();
            readMessages.clear();
            unreadMessages.clear();
            String sort = getSort() == null ? "" : "m." + getSort().getProperty();
            boolean isAsc = getSort() == null ? true : getSort().isAscending();
            return getDao().get(getUserId(), selectedFolderModel.getObject(), search, sort, isAsc, (int) first,
                    (int) count).iterator();
        }

        @Override
        public long size() {
            return getDao().count(getUserId(), selectedFolderModel.getObject(), search);
        }
    };
    final SearchableDataView<PrivateMessage> dv = new SearchableDataView<PrivateMessage>("messages", sdp) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<PrivateMessage> item) {
            PrivateMessage m = item.getModelObject();
            final Long id = m.getId();
            allMessages.add(id);
            if (m.getIsRead()) {
                readMessages.add(id);
            } else {
                unreadMessages.add(id);
            }
            item.add(new Label("id", id));
            item.add(new Label("from", getDisplayName(m.getFrom())));
            item.add(new Label("subject", m.getSubject()));
            item.add(new Label("send", getDateFormat().format(m.getInserted())));
            item.add(new AjaxEventBehavior("click") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    long selected = id;
                    if (selectedMessages.contains(id)) {
                        selectedMessages.remove(id);
                        selected = selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next();
                    } else {
                        selectedMessages.add(id);
                    }
                    selectMessage(selected, target);
                    target.add(container);
                }
            });
            StringBuilder cssClass = new StringBuilder(m.getIsRead() ? "" : "unread");
            if (selectedMessages.contains(id)) {
                if (cssClass.length() > 0) {
                    cssClass.append(" ");
                }
                cssClass.append("ui-state-active");
            }
            item.add(AttributeModifier.replace("class", cssClass.toString()));
        }
    };
    PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dv) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            emptySelection(target);
            target.add(container);
        }
    };
    dataContainer = new DataViewContainer<PrivateMessage>(container, dv, navigator);
    dataContainer.addLink(new OmOrderByBorder<PrivateMessage>("orderById", "id", dataContainer))
            .addLink(new OmOrderByBorder<PrivateMessage>("orderByFrom", "from.lastname", dataContainer))
            .addLink(new OmOrderByBorder<PrivateMessage>("orderBySubject", "subject", dataContainer))
            .addLink(new OmOrderByBorder<PrivateMessage>("orderBySend", "inserted", dataContainer));
    add(dataContainer.getLinks());
    add(navigator);

    add(unread.setOutputMarkupId(true));

    add(buttons.setOutputMarkupId(true));
    buttons.add(toInboxBtn.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            getBean(PrivateMessageDao.class).moveMailsToFolder(selectedMessages, INBOX_FOLDER_ID);
            selectFolder(selectedFolder, selectedFolderModel.getObject(), target);
        }
    }));
    buttons.add(deleteBtn.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            if (TRASH_FOLDER_ID.equals(selectedFolderModel.getObject())) {
                getBean(PrivateMessageDao.class).delete(selectedMessages);
            } else {
                getBean(PrivateMessageDao.class).moveMailsToFolder(selectedMessages, TRASH_FOLDER_ID);
            }
            emptySelection(target);
            target.add(container);
        }
    }));
    buttons.add(readBtn.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            getBean(PrivateMessageDao.class).updateReadStatus(selectedMessages, true);
            emptySelection(target);
            target.add(container, unread);
        }
    }));
    buttons.add(unreadBtn.add(new AjaxEventBehavior("click") {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onEvent(AjaxRequestTarget target) {
            getBean(PrivateMessageDao.class).updateReadStatus(selectedMessages, false);
            emptySelection(target);
            target.add(container);
        }
    }));
    buttons.add(selectDropDown.setOutputMarkupId(true).add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            switch (selectDropDown.getModelObject()) {
            case SELECT_CHOOSE:
                break;
            case SELECT_ALL:
                selectedMessages.clear();
                selectedMessages.addAll(allMessages);
                break;
            case SELECT_NONE:
                selectedMessages.clear();
                break;
            case SELECT_UNREAD:
                selectedMessages.clear();
                selectedMessages.addAll(unreadMessages);
                break;
            case SELECT_READ:
                selectedMessages.clear();
                selectedMessages.addAll(readMessages);
                break;
            }
            target.add(container);
        }
    }));
    buttons.add(moveDropDown.setOutputMarkupId(true).add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            Long folderId = moveDropDown.getModelObject().getId();
            if (!MOVE_CHOOSE.equals(folderId)) {
                getBean(PrivateMessageDao.class).moveMailsToFolder(selectedMessages, folderId);
            }
            selectFolder(selectedFolder, selectedFolderModel.getObject(), target);
        }
    }));

    selectMessage(-1, null);
    add(container.add(dv).setOutputMarkupId(true));
    //TODO add valid autoupdate add(new AjaxSelfUpdatingTimerBehavior(seconds(15)));
    add(selectedMessage.add(roomContainer.setVisible(false)).setOutputMarkupId(true));

    IDataProvider<UserContact> dp = new IDataProvider<UserContact>() {
        private static final long serialVersionUID = 1L;

        @Override
        public void detach() {
        }

        @Override
        public Iterator<? extends UserContact> iterator(long first, long count) {
            return getBean(UserContactDao.class).get(getUserId(), (int) first, (int) count).iterator();
        }

        @Override
        public long size() {
            return getBean(UserContactDao.class).count(getUserId());
        }

        @Override
        public IModel<UserContact> model(UserContact object) {
            return Model.of(object);
        }
    };
    final DataView<UserContact> dw = new DataView<UserContact>("users", dp) {
        private static final long serialVersionUID = 1L;

        private String getName(UserContact uc) {
            return uc.getOwner().getFirstname() + " " + uc.getOwner().getLastname(); //FIXME salutation
        }

        @Override
        protected void populateItem(Item<UserContact> item) {
            UserContact uc = item.getModelObject();
            final Long contactId = uc.getId();
            final Long userId = uc.getOwner().getId();
            if (uc.isPending()) {
                item.add(AttributeModifier.append("class", "unread"));
            }
            item.add(new Label("name", getName(uc)));
            item.add(new WebMarkupContainer("accept").add(new AjaxEventBehavior("click") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    ContactsHelper.acceptUserContact(contactId);
                    updateContacts(target);
                }
            }).setVisible(uc.isPending()));
            item.add(new WebMarkupContainer("decline").add(new AjaxEventBehavior("click") {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    getBean(UserContactDao.class).delete(contactId);
                    updateContacts(target);
                }
            }).setVisible(uc.isPending()));
            item.add(new WebMarkupContainer("view")
                    .add(AttributeAppender.append("onclick", String.format("showUserInfo(%s);", userId))));
            item.add(new WebMarkupContainer("message")
                    .add(AttributeAppender.append("onclick", String.format("privateMessage(%s);", userId)))
                    .setVisible(!uc.isPending()));
            item.add(new ConfirmableAjaxBorder("delete", getString("80"), getString("833")) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    attributes.setEventPropagation(EventPropagation.STOP_IMMEDIATE);
                }

                @Override
                protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
                    getBean(UserContactDao.class).delete(contactId);
                    updateContacts(target);
                }
            }.setVisible(!uc.isPending()));
        }
    };
    updateContacts(null);
    add(contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update

    //hack to add FixedHeaderTable after Tabs.
    add(new AbstractDefaultAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void respond(AjaxRequestTarget target) {
            selectFolder(inbox, INBOX_FOLDER_ID, target);
            selectMessage(-1, target);
        }

        @Override
        public void renderHead(Component component, IHeaderResponse response) {
            super.renderHead(component, response);
            response.render(OnDomReadyHeaderItem.forScript(getCallbackScript()));
        }
    });
}

From source file:org.cyclop.web.panels.queryeditor.editor.EditorPanel.java

License:Apache License

private void initEditor() {
    editor = new TextArea<>("queryEditor", editorModel);
    editor.setEscapeModelStrings(false);
    add(editor);/* w  w  w .  j a v a  2s. co m*/
    editor.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {

            Component cmp = getComponent();
            String editorValue = cmp.getDefaultModelObjectAsString();

            ContextCqlCompletion cqlCompletion;
            if (StringUtils.isEmpty(editorValue)) {
                cqlCompletion = completionService.findInitialCompletion();
            } else {
                RequestCycle requestCycle = RequestCycle.get();
                int index = requestCycle.getRequest().getRequestParameters().getParameterValue("cursorPos")
                        .toInt();
                CqlQuery cqlQuery = new CqlQuery(CqlQueryType.UNKNOWN, editorValue);
                cqlCompletion = completionService.findCompletion(cqlQuery, index);
            }
            if (cqlCompletion.cqlCompletion.isEmpty() || cqlCompletion.equals(currentCompletion)) {
                return;
            }

            fireCompletionChanged(cqlCompletion);
            String suggestsScript = generateReplaceSuggestsJs(editorMarkupIdJq,
                    cqlCompletion.cqlCompletion.fullCompletion);
            target.appendJavaScript(suggestsScript);

            for (CompletionChangeListener list : completionChangeListeners) {
                Component refresh = list.getReferencesForRefresh();
                if (refresh == null) {
                    continue;
                }
                target.add(refresh);
            }
        }

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
            attributes.getDynamicExtraParameters()
                    .add("return {'cursorPos' : getCaretPosition(" + editorMarkupIdJs + ")}");
            super.updateAjaxAttributes(attributes);
        }
    });
}

From source file:org.geoserver.backuprestore.web.ResourceFilePanel.java

License:Open Source License

public ResourceFilePanel(String id) {
    super(id);//from  ww w.  j  a v a2  s.  co m

    add(dialog = new GeoServerDialog("dialog"));

    Form form = new Form("form", new CompoundPropertyModel(this));
    add(form);

    fileField = new TextField("file");
    fileField.setRequired(true);
    fileField.setOutputMarkupId(true);
    fileField.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(final AjaxRequestTarget target) {
            // Access the updated model value:
            final String valueAsString = ((TextField<String>) getComponent()).getModelObject();

            // use what the user currently typed
            File file = null;
            if (!valueAsString.trim().equals("")) {
                file = new File(valueAsString);
                if (!file.exists())
                    file = null;
            }
        }
    });

    form.add(fileField);
    form.add(chooserButton(form));
}

From source file:org.geoserver.geofence.web.GeofenceAdminRulePage.java

License:Open Source License

public GeofenceAdminRulePage(final ShortAdminRule rule, final GeofenceAdminRulesModel rules) {

    final Form<ShortAdminRule> form = new Form<>("form", new CompoundPropertyModel<ShortAdminRule>(rule));
    add(form);/*from  w w  w  .j a va2  s .com*/

    form.add(new TextField<Integer>("priority").setRequired(true));

    form.add(roleChoice = new DropDownChoice<>("roleName", getRoleNames()));
    roleChoice.add(new OnChangeAjaxBehavior() {

        private static final long serialVersionUID = -8846522500239968004L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            userChoice.setChoices(getUserNames(roleChoice.getConvertedInput()));
            form.getModelObject().setUserName(null);
            userChoice.modelChanged();
            target.add(userChoice);
        }
    });
    roleChoice.setNullValid(true);

    form.add(userChoice = new DropDownChoice<>("userName", getUserNames(rule.getRoleName())));
    userChoice.setOutputMarkupId(true);
    userChoice.setNullValid(true);

    form.add(workspaceChoice = new DropDownChoice<>("workspace", getWorkspaceNames()));
    workspaceChoice.setNullValid(true);

    form.add(grantTypeChoice = new DropDownChoice<>("access", Arrays.asList(AdminGrantType.values()),
            new AdminGrantTypeRenderer()));
    grantTypeChoice.setRequired(true);

    form.add(new SubmitLink("save") {

        private static final long serialVersionUID = -6524151967046867889L;

        @Override
        public void onSubmit() {
            ShortAdminRule rule = (ShortAdminRule) getForm().getModelObject();
            try {
                rules.save(rule);
                doReturn(GeofenceServerAdminPage.class);
            } catch (DuplicateKeyException e) {
                error(new ResourceModel("GeofenceRulePage.duplicate").getObject());
            } catch (Exception exception) {
                error(exception);
            }
        }
    });
    form.add(new BookmarkablePageLink<ShortAdminRule>("cancel", GeofenceServerPage.class));
}

From source file:org.geoserver.geofence.web.GeofenceRulePage.java

License:Open Source License

public GeofenceRulePage(final ShortRule rule, final GeofenceRulesModel rules) {
    // build the form
    final Form<ShortRule> form = new Form<ShortRule>("form", new CompoundPropertyModel<ShortRule>(rule));
    add(form);//from w  ww .  j ava2  s.  c  o  m

    form.add(new TextField<Integer>("priority").setRequired(true));

    form.add(roleChoice = new DropDownChoice<String>("roleName", getRoleNames()));
    roleChoice.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = -2880886409750911044L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            userChoice.setChoices(getUserNames(roleChoice.getConvertedInput()));
            ((ShortRule) form.getModelObject()).setUserName(null);
            userChoice.modelChanged();
            target.addComponent(userChoice);
        }
    });
    roleChoice.setNullValid(true);

    form.add(userChoice = new DropDownChoice<String>("userName", getUserNames(rule.getRoleName())));
    userChoice.setOutputMarkupId(true);
    userChoice.setNullValid(true);

    form.add(serviceChoice = new DropDownChoice<String>("service", getServiceNames()));
    serviceChoice.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = -5925784823433092831L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            requestChoice.setChoices(getOperationNames(serviceChoice.getConvertedInput()));
            ((ShortRule) form.getModelObject()).setRequest(null);
            requestChoice.modelChanged();
            target.addComponent(requestChoice);
        }
    });
    serviceChoice.setNullValid(true);

    form.add(requestChoice = new DropDownChoice<String>("request", getOperationNames(rule.getService()),
            new CaseConversionRenderer()));
    requestChoice.setOutputMarkupId(true);
    requestChoice.setNullValid(true);

    form.add(workspaceChoice = new DropDownChoice<String>("workspace", getWorkspaceNames()));
    workspaceChoice.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 732177308220189475L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            layerChoice.setChoices(getLayerNames(workspaceChoice.getConvertedInput()));
            ((ShortRule) form.getModelObject()).setLayer(null);
            layerChoice.modelChanged();
            target.addComponent(layerChoice);
        }
    });
    workspaceChoice.setNullValid(true);

    form.add(layerChoice = new DropDownChoice<String>("layer", getLayerNames(rule.getWorkspace())));
    layerChoice.setOutputMarkupId(true);
    layerChoice.setNullValid(true);

    form.add(grantTypeChoice = new DropDownChoice<GrantType>("access", Arrays.asList(GrantType.values()),
            new GrantTypeRenderer()));
    grantTypeChoice.setRequired(true);

    // build the submit/cancel
    form.add(new SubmitLink("save") {
        private static final long serialVersionUID = 3735176778941168701L;

        @Override
        public void onSubmit() {
            ShortRule rule = (ShortRule) getForm().getModelObject();
            try {
                rules.save(rule);
                doReturn(GeofenceServerPage.class);
            } catch (DuplicateKeyException e) {
                error(new ResourceModel("GeofenceRulePage.duplicate").getObject());
            } catch (Exception e) {
                error(e);
            }
        }
    });
    form.add(new BookmarkablePageLink<ShortRule>("cancel", GeofenceServerPage.class));
}

From source file:org.geoserver.gwc.web.CachingOptionsPanel.java

License:Open Source License

public CachingOptionsPanel(final String id, final IModel<GWCConfig> gwcConfigModel) {

    super(id, gwcConfigModel);

    final IModel<Boolean> autoCacheLayersModel;
    autoCacheLayersModel = new PropertyModel<Boolean>(gwcConfigModel, "cacheLayersByDefault");
    final CheckBox autoCacheLayers = new CheckBox("cacheLayersByDefault", autoCacheLayersModel);
    add(autoCacheLayers);// w ww .j av  a2 s .  c om

    final WebMarkupContainer container = new WebMarkupContainer("container");
    container.setOutputMarkupId(true);
    add(container);

    final WebMarkupContainer configs = new WebMarkupContainer("configs");
    configs.setOutputMarkupId(true);
    configs.setVisible(autoCacheLayersModel.getObject().booleanValue());
    container.add(configs);

    autoCacheLayers.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            final boolean visibleConfigs = autoCacheLayers.getModelObject().booleanValue();
            configs.setVisible(visibleConfigs);
            target.addComponent(container);
        }
    });

    IModel<String> lockProviderModel = new PropertyModel<String>(gwcConfigModel, "lockProviderName");
    ApplicationContext applicationContext = GeoServerApplication.get().getApplicationContext();
    String[] lockProviders = applicationContext.getBeanNamesForType(LockProvider.class);
    List<String> lockProviderChoices = new ArrayList<String>(Arrays.asList(lockProviders));
    Collections.sort(lockProviderChoices); // make sure we get a stable listing order
    DropDownChoice<String> lockProviderChoice = new DropDownChoice<String>("lockProvider", lockProviderModel,
            lockProviderChoices, new LocalizedChoiceRenderer(this));
    configs.add(lockProviderChoice);

    IModel<Boolean> nonDefaultStylesModel;
    nonDefaultStylesModel = new PropertyModel<Boolean>(gwcConfigModel, "cacheNonDefaultStyles");
    CheckBox cacheNonDefaultStyles = new CheckBox("cacheNonDefaultStyles", nonDefaultStylesModel);
    configs.add(cacheNonDefaultStyles);

    List<Integer> metaTilingChoices = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
            18, 19, 20);
    IModel<Integer> metaTilingXModel = new PropertyModel<Integer>(gwcConfigModel, "metaTilingX");
    DropDownChoice<Integer> metaTilingX = new DropDownChoice<Integer>("metaTilingX", metaTilingXModel,
            metaTilingChoices);
    metaTilingX.setRequired(true);
    configs.add(metaTilingX);

    IModel<Integer> metaTilingYModel = new PropertyModel<Integer>(gwcConfigModel, "metaTilingY");
    DropDownChoice<Integer> metaTilingY = new DropDownChoice<Integer>("metaTilingY", metaTilingYModel,
            metaTilingChoices);
    metaTilingY.setRequired(true);
    configs.add(metaTilingY);

    IModel<Integer> gutterModel = new PropertyModel<Integer>(gwcConfigModel, "gutter");
    List<Integer> gutterChoices = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 50, 100);
    DropDownChoice<Integer> gutterChoice = new DropDownChoice<Integer>("gutter", gutterModel, gutterChoices);
    configs.add(gutterChoice);

    {
        List<String> formats;
        formats = new ArrayList<>(GWC.getAdvertisedCachedFormats(PublishedType.VECTOR));
        IModel<List<String>> vectorFormatsModel = new PropertyModel<List<String>>(gwcConfigModel,
                "defaultVectorCacheFormats");
        vectorFormatsGroup = new CheckGroup<String>("vectorFormatsGroup", vectorFormatsModel);
        configs.add(vectorFormatsGroup);
        ListView<String> formatsList = new ListView<String>("vectorFromats", formats) {
            private static final long serialVersionUID = 1L;

            @Override
            protected void populateItem(ListItem<String> item) {
                item.add(new Check<String>("vectorFormatsOption", item.getModel()));
                item.add(new Label("name", item.getModel()));
            }
        };
        formatsList.setReuseItems(true);// otherwise it looses state on invalid form submits
        vectorFormatsGroup.add(formatsList);
    }

    {
        List<String> formats;
        formats = new ArrayList<>(GWC.getAdvertisedCachedFormats(PublishedType.RASTER));
        IModel<List<String>> rasterFormatsModel = new PropertyModel<List<String>>(gwcConfigModel,
                "defaultCoverageCacheFormats");
        rasterFormatsGroup = new CheckGroup<String>("rasterFormatsGroup", rasterFormatsModel);
        configs.add(rasterFormatsGroup);
        ListView<String> formatsList = new ListView<String>("rasterFromats", formats) {
            private static final long serialVersionUID = 1L;

            @Override
            protected void populateItem(ListItem<String> item) {
                item.add(new Check<String>("rasterFormatsOption", item.getModel()));
                item.add(new Label("name", item.getModel()));
            }
        };
        formatsList.setReuseItems(true);// otherwise it looses state on invalid form submits
        rasterFormatsGroup.add(formatsList);
    }
    {
        List<String> formats;
        formats = new ArrayList<>(GWC.getAdvertisedCachedFormats(PublishedType.GROUP));
        IModel<List<String>> otherFormatsModel = new PropertyModel<List<String>>(gwcConfigModel,
                "defaultOtherCacheFormats");
        otherFormatsGroup = new CheckGroup<String>("otherFormatsGroup", otherFormatsModel);
        configs.add(otherFormatsGroup);
        ListView<String> formatsList = new ListView<String>("otherFromats", formats) {
            private static final long serialVersionUID = 1L;

            @Override
            protected void populateItem(ListItem<String> item) {
                item.add(new Check<String>("otherFormatsOption", item.getModel()));
                item.add(new Label("name", item.getModel()));
            }
        };
        formatsList.setReuseItems(true);// otherwise it looses state on invalid form submits
        otherFormatsGroup.add(formatsList);
    }

    // Add a new Panel for configuring In Memory caching
    InMemoryBlobStorePanel storePanel = new InMemoryBlobStorePanel("blobstores", gwcConfigModel);
    configs.add(storePanel.setOutputMarkupId(true));

    IModel<Set<String>> cachedGridsetsModel = new PropertyModel<Set<String>>(gwcConfigModel,
            "defaultCachingGridSetIds");
    DefaultGridsetsEditor cachedGridsets = new DefaultGridsetsEditor("cachedGridsets", cachedGridsetsModel);
    configs.add(cachedGridsets);

    cachedGridsets.add(new IValidator<Set<String>>() {

        private static final long serialVersionUID = 1L;

        @Override
        public void validate(IValidatable<Set<String>> validatable) {
            boolean validate = autoCacheLayersModel.getObject().booleanValue();
            if (validate && validatable.getValue().isEmpty()) {
                ValidationError error = new ValidationError();
                error.setMessage(new ResourceModel("CachingOptionsPanel.validation.emptyGridsets").getObject());
                validatable.error(error);
            }
        }
    });

    class FormatsValidator implements IValidator<Collection<String>> {
        private static final long serialVersionUID = 1L;

        @Override
        public void validate(IValidatable<Collection<String>> validatable) {
            boolean validate = autoCacheLayersModel.getObject().booleanValue();
            Collection<String> value = validatable.getValue();
            if (validate && value.isEmpty()) {
                ValidationError error = new ValidationError();
                error.setMessage(
                        new ResourceModel("CachingOptionsPanel.validation.emptyCacheFormatList").getObject());
                validatable.error(error);
            }
        }
    }
    ;
    FormatsValidator validator = new FormatsValidator();
    vectorFormatsGroup.add(validator);
    rasterFormatsGroup.add(validator);
    otherFormatsGroup.add(validator);
}