List of usage examples for org.apache.wicket.ajax.form OnChangeAjaxBehavior OnChangeAjaxBehavior
public OnChangeAjaxBehavior()
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); }