List of usage examples for org.apache.wicket.ajax.form OnChangeAjaxBehavior OnChangeAjaxBehavior
public OnChangeAjaxBehavior()
From source file:org.geoserver.gwc.web.layer.GeoServerTileLayerEditor.java
License:Open Source License
/** * @param id//from w w w. j av a 2 s .c om * @param layerModel * @param tileLayerModel must be a {@link GeoServerTileLayerInfoModel} */ public GeoServerTileLayerEditor(final String id, final IModel<? extends PublishedInfo> layerModel, final IModel<GeoServerTileLayerInfo> tileLayerModel) { super(id); checkArgument(tileLayerModel instanceof GeoServerTileLayerInfoModel); this.layerModel = layerModel; setModel(tileLayerModel); final GWC mediator = GWC.get(); final IModel<String> createTileLayerLabelModel; final PublishedInfo info = layerModel.getObject(); final GeoServerTileLayerInfo tileLayerInfo = tileLayerModel.getObject(); if (info instanceof LayerInfo) { createTileLayerLabelModel = new ResourceModel("createTileLayerForLayer"); ResourceInfo resource = ((LayerInfo) info).getResource(); // we need the _current_ name, regardless of it's name is being changed resource = ModificationProxy.unwrap(resource); originalLayerName = resource.getPrefixedName(); } else if (info instanceof LayerGroupInfo) { createTileLayerLabelModel = new ResourceModel("createTileLayerForLayerGroup"); // we need the _current_ name, regardless of if it's name is being changed LayerGroupInfo lgi = ModificationProxy.unwrap((LayerGroupInfo) info); originalLayerName = tileLayerName(lgi); } else { throw new IllegalArgumentException( "Provided model does not target a LayerInfo nor a LayerGroupInfo: " + info); } TileLayer tileLayer = null; if (originalLayerName != null) { try { tileLayer = mediator.getTileLayerByName(originalLayerName); } catch (IllegalArgumentException notFound) { // } } cachedLayerExistedInitially = tileLayer != null; // UI construction phase add(confirmRemovalDialog = new GeoServerDialog("confirmRemovalDialog")); confirmRemovalDialog.setInitialWidth(360); confirmRemovalDialog.setInitialHeight(180); add(new Label("createTileLayerLabel", createTileLayerLabelModel)); // Get the model and check if the Enabled parameter has been defined GeoServerTileLayerInfoModel model = ((GeoServerTileLayerInfoModel) tileLayerModel); boolean undefined = model.getEnabled() == null; boolean doCreateTileLayer; if (tileLayerInfo.getId() != null) { doCreateTileLayer = true; } else if (isNew() && mediator.getConfig().isCacheLayersByDefault()) { doCreateTileLayer = true; } else { doCreateTileLayer = false; } // Add the enabled/disabled parameter depending on the doCreateTileLayer variable if not already set if (undefined) { model.setEnabled(doCreateTileLayer); } add(createLayer = new CheckBox("createTileLayer", new Model<Boolean>(doCreateTileLayer))); createLayer.add(new AttributeModifier("title", true, new ResourceModel("createTileLayer.title"))); container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); add(container); configs = new WebMarkupContainer("configs"); configs.setOutputMarkupId(true); container.add(configs); add(enabled = new CheckBox("enabled", new PropertyModel<Boolean>(getModel(), "enabled"))); enabled.add(new AttributeModifier("title", true, new ResourceModel("enabled.title"))); configs.add(enabled); IChoiceRenderer<String> blobStoreRenderer = new IChoiceRenderer<String>() { private static final long serialVersionUID = 1L; final String defaultStore = getDefaultBlobStoreId(); @Override public String getIdValue(String object, int index) { return object; } @Override public Object getDisplayValue(String object) { String value = object; if (object.equals(defaultStore)) { value += " (*)"; } return value; } }; PropertyModel<String> blobStoreModel = new PropertyModel<String>(getModel(), "blobStoreId"); List<String> blobStoreChoices = getBlobStoreIds(); configs.add(blobStoreId = new DropDownChoice<String>("blobStoreId", blobStoreModel, blobStoreChoices, blobStoreRenderer)); blobStoreId.setNullValid(true); blobStoreId.add(new AttributeModifier("title", true, new ResourceModel("blobStoreId.title"))); add(new IValidator<GeoServerTileLayerInfo>() { private static final long serialVersionUID = 5240602030478856537L; @Override public void validate(IValidatable<GeoServerTileLayerInfo> validatable) { final Boolean createVal = createLayer.getConvertedInput(); final Boolean enabledVal = enabled.getConvertedInput(); final String blobStoreIdVal = blobStoreId.getConvertedInput(); if (createVal && enabledVal && !isBlobStoreEnabled(blobStoreIdVal)) { error(new ParamResourceModel("enabledError", GeoServerTileLayerEditor.this).getString()); } } }); // CheckBox for enabling/disabling inner caching for the layer enableInMemoryCaching = new CheckBox("inMemoryCached", new PropertyModel<Boolean>(getModel(), "inMemoryCached")); ConfigurableBlobStore store = GeoServerExtensions.bean(ConfigurableBlobStore.class); if (store != null && store.getCache() != null) { enableInMemoryCaching .setEnabled(mediator.getConfig().isInnerCachingEnabled() && !store.getCache().isImmutable()); } configs.add(enableInMemoryCaching); 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>(getModel(), "metaTilingX"); metaTilingX = new DropDownChoice<Integer>("metaTilingX", metaTilingXModel, metaTilingChoices); configs.add(metaTilingX); IModel<Integer> metaTilingYModel = new PropertyModel<Integer>(getModel(), "metaTilingY"); metaTilingY = new DropDownChoice<Integer>("metaTilingY", metaTilingYModel, metaTilingChoices); configs.add(metaTilingY); IModel<Integer> gutterModel = new PropertyModel<Integer>(getModel(), "gutter"); List<Integer> gutterChoices = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 50, 100); gutter = new DropDownChoice<Integer>("gutter", gutterModel, gutterChoices); configs.add(gutter); IModel<Set<String>> mimeFormatsModel = new PropertyModel<Set<String>>(getModel(), "mimeFormats"); cacheFormats = new CheckGroup<String>("cacheFormatsGroup", mimeFormatsModel); cacheFormats.setLabel(new ResourceModel("cacheFormats")); configs.add(cacheFormats); final List<String> formats; formats = Lists.newArrayList(GWC.get().getAdvertisedCachedFormats(info.getType())); ListView<String> cacheFormatsList = new ListView<String>("cacheFormats", formats) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<String> item) { item.add(new Check<String>("cacheFormatsOption", item.getModel())); item.add(new Label("name", item.getModel())); } }; cacheFormatsList.setReuseItems(true);// otherwise it looses state on invalid form state // submits cacheFormats.add(cacheFormatsList); IModel<Integer> expireCacheModel = new PropertyModel<Integer>(getModel(), "expireCache"); expireCache = new TextField<Integer>("expireCache", expireCacheModel); configs.add(expireCache); IModel<Integer> expireClientsModel = new PropertyModel<Integer>(getModel(), "expireClients"); expireClients = new TextField<Integer>("expireClients", expireClientsModel); configs.add(expireClients); IModel<Set<XMLGridSubset>> gridSubsetsModel; gridSubsetsModel = new PropertyModel<Set<XMLGridSubset>>(getModel(), "gridSubsets"); gridSubsets = new GridSubsetsEditor("cachedGridsets", gridSubsetsModel); configs.add(gridSubsets); IModel<Set<ParameterFilter>> parameterFilterModel; parameterFilterModel = new PropertyModel<Set<ParameterFilter>>(getModel(), "parameterFilters"); parameterFilters = new ParameterFilterEditor("parameterFilters", parameterFilterModel, layerModel); configs.add(parameterFilters); // behavior phase configs.setVisible(createLayer.getModelObject()); setValidating(createLayer.getModelObject()); createLayer.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { final boolean createTileLayer = createLayer.getModelObject().booleanValue(); if (!createTileLayer && cachedLayerExistedInitially) { confirmRemovalOfExistingTileLayer(target); } else { updateConfigsVisibility(target); } } }); }
From source file:org.geoserver.gwc.web.layer.GridSubsetsEditor.java
License:Open Source License
public GridSubsetsEditor(final String id, final IModel<Set<XMLGridSubset>> model) { super(id, model); add(validator = new GridSubsetListValidator()); // container for ajax updates final WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupId(true);/*from w ww. j ava2s . c om*/ add(container); // the link list table = new WebMarkupContainer("table"); table.setOutputMarkupId(true); container.add(table); grids = new ListView<XMLGridSubset>("gridSubsets", new ArrayList<XMLGridSubset>(model.getObject())) { private static final long serialVersionUID = 1L; @Override protected void onBeforeRender() { super.onBeforeRender(); } @Override protected void populateItem(final ListItem<XMLGridSubset> item) { // odd/even style final int index = item.getIndex(); item.add(new SimpleAttributeModifier("class", index % 2 == 0 ? "even" : "odd")); final XMLGridSubset gridSubset = item.getModelObject(); GridSetBroker gridSetBroker = GWC.get().getGridSetBroker(); String gridsetDescription = null; int gridsetLevels; boolean gridsetExists; { final GridSet gridSet = gridSetBroker.get(gridSubset.getGridSetName()); gridsetExists = gridSet != null; if (gridsetExists) { gridsetLevels = gridSet.getNumLevels(); gridsetDescription = gridSet.getDescription(); } else { gridsetLevels = gridSubset.getZoomStop() == null ? 1 : gridSubset.getZoomStop().intValue(); } } final Label gridSetLabel; final Component gridSetBounds; gridSetLabel = new Label("gridSet", new PropertyModel<String>(item.getModel(), "gridSetName")); if (!gridsetExists) { gridSetLabel.add(new AttributeModifier("style", true, new Model<String>("color:red;text-decoration:line-through;"))); getPage().warn("GridSet " + gridSubset.getGridSetName() + " does not exist"); } item.add(gridSetLabel); if (null != gridsetDescription) { gridSetLabel.add(new AttributeModifier("title", true, new Model<String>(gridsetDescription))); } final Component removeLink; final int maxZoomLevel = gridsetLevels - 1; final ArrayList<Integer> zoomLevels = new ArrayList<Integer>(maxZoomLevel + 1); for (int z = 0; z <= maxZoomLevel; z++) { zoomLevels.add(Integer.valueOf(z)); } // zoomStart has all zoom levels as choices // zoomStop choices start at zoomStart's selection // minCachedLevel start at zoomStart's selection and ends at zoomStop's selection // maxCachedLevel start at minCachedLevels' and ends at zoomStop's selection final IModel<Integer> zoomStartModel; final IModel<Integer> zoomStopModel; final IModel<Integer> minCachedLevelModel; final IModel<Integer> maxCachedLevelModel; final ZoomLevelDropDownChoice zoomStart; final ZoomLevelDropDownChoice zoomStop; final ZoomLevelDropDownChoice minCachedLevel; final ZoomLevelDropDownChoice maxCachedLevel; zoomStartModel = new PropertyModel<Integer>(item.getModel(), "zoomStart"); zoomStopModel = new PropertyModel<Integer>(item.getModel(), "zoomStop"); minCachedLevelModel = new PropertyModel<Integer>(item.getModel(), "minCachedLevel"); maxCachedLevelModel = new PropertyModel<Integer>(item.getModel(), "maxCachedLevel"); @SuppressWarnings({ "rawtypes", "unchecked" }) final IModel<List<Integer>> allLevels = new Model(zoomLevels); zoomStart = new ZoomLevelDropDownChoice("zoomStart", zoomStartModel, allLevels); zoomStart.setEnabled(gridsetExists); item.add(zoomStart); zoomStop = new ZoomLevelDropDownChoice("zoomStop", zoomStopModel, allLevels); zoomStop.setEnabled(gridsetExists); item.add(zoomStop); minCachedLevel = new ZoomLevelDropDownChoice("minCachedLevel", minCachedLevelModel, allLevels); minCachedLevel.setEnabled(gridsetExists); item.add(minCachedLevel); maxCachedLevel = new ZoomLevelDropDownChoice("maxCachedLevel", maxCachedLevelModel, allLevels); maxCachedLevel.setEnabled(gridsetExists); item.add(maxCachedLevel); for (ZoomLevelDropDownChoice dropDown : Arrays.asList(zoomStart, zoomStop, minCachedLevel, maxCachedLevel)) { dropDown.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; // cascades to zoomStop, min and max cached levels @Override protected void onUpdate(AjaxRequestTarget target) { updateValidZoomRanges(zoomStart, zoomStop, minCachedLevel, maxCachedLevel, target); } }); } updateValidZoomRanges(zoomStart, zoomStop, minCachedLevel, maxCachedLevel, null); // gridSetBounds = new EnvelopePanel("bounds"); // gridSetBounds.setCRSFieldVisible(false); // gridSetBounds.setCrsRequired(false); // gridSetBounds.setLabelsVisibility(false); // gridSetBounds.setModel(new Model<ReferencedEnvelope>(new ReferencedEnvelope())); gridSetBounds = new Label("bounds", new ResourceModel("GridSubsetsEditor.bounds.dynamic")); item.add(gridSetBounds); removeLink = new ImageAjaxLink("removeLink", GWCIconFactory.DELETE_ICON) { private static final long serialVersionUID = 1L; @Override protected void onClick(AjaxRequestTarget target) { List<XMLGridSubset> list; list = new ArrayList<XMLGridSubset>(grids.getModelObject()); final XMLGridSubset subset = (XMLGridSubset) getDefaultModelObject(); list.remove(subset); grids.setModelObject(list); List<String> choices = new ArrayList<String>(availableGridSets.getChoices()); choices.add(subset.getGridSetName()); Collections.sort(choices); availableGridSets.setChoices(choices); target.addComponent(container); target.addComponent(availableGridSets); } }; removeLink.setDefaultModel(item.getModel()); removeLink.add( new AttributeModifier("title", true, new ResourceModel("GridSubsetsEditor.removeLink"))); item.add(removeLink); } }; grids.setOutputMarkupId(true); // this is necessary to avoid loosing item contents on edit/validation checks grids.setReuseItems(true); table.add(grids); List<String> gridSetNames = new ArrayList<String>(GWC.get().getGridSetBroker().getNames()); for (XMLGridSubset gs : model.getObject()) { gridSetNames.remove(gs.getGridSetName()); } Collections.sort(gridSetNames); GeoServerAjaxFormLink addGridsubsetLink = new GeoServerAjaxFormLink("addGridSubset") { private static final long serialVersionUID = 1L; @Override protected void onClick(AjaxRequestTarget target, Form form) { availableGridSets.processInput(); final String selectedGridset = availableGridSets.getModelObject(); if (null == selectedGridset) { return; } List<String> choices = new ArrayList<String>(availableGridSets.getChoices()); choices.remove(selectedGridset); availableGridSets.setChoices(choices); availableGridSets.setEnabled(!choices.isEmpty()); XMLGridSubset newSubset = new XMLGridSubset(); newSubset.setGridSetName(selectedGridset); grids.getModelObject().add(newSubset); target.addComponent(table); target.addComponent(availableGridSets); } }; addGridsubsetLink.add(new Icon("addIcon", GWCIconFactory.ADD_ICON)); add(addGridsubsetLink); availableGridSets = new DropDownChoice<String>("availableGridsets", new Model<String>(), gridSetNames); availableGridSets.setOutputMarkupId(true); add(availableGridSets); }
From source file:org.geoserver.inspire.web.InspireAdminPanel.java
License:Open Source License
@SuppressWarnings({ "unchecked", "rawtypes" }) public InspireAdminPanel(final String id, final IModel<ServiceInfo> model) { super(id, model); MetadataMap serviceMetadata = model.getObject().getMetadata(); String metadataURL = (String) serviceMetadata.get(SERVICE_METADATA_URL.key); String mediaType = (String) serviceMetadata.get(SERVICE_METADATA_TYPE.key); String language = (String) serviceMetadata.get(LANGUAGE.key); boolean isWfs = model.getObject() instanceof WFSInfo; UniqueResourceIdentifiers ids = null; if (isWfs) {//from ww w . ja v a 2 s . c o m ids = (UniqueResourceIdentifiers) serviceMetadata.get(SPATIAL_DATASET_IDENTIFIER_TYPE.key, UniqueResourceIdentifiers.class); } if (!serviceMetadata.containsKey(CREATE_EXTENDED_CAPABILITIES.key)) { if (metadataURL == null || isWfs && (ids == null || ids.isEmpty())) { serviceMetadata.put(CREATE_EXTENDED_CAPABILITIES.key, false); } else { serviceMetadata.put(CREATE_EXTENDED_CAPABILITIES.key, true); } } PropertyModel<MetadataMap> metadata = new PropertyModel<MetadataMap>(model, "metadata"); final CheckBox createInspireExtendedCapabilities = new CheckBox("createExtendedCapabilities", new MetadataMapModel(metadata, CREATE_EXTENDED_CAPABILITIES.key, Boolean.class)); add(createInspireExtendedCapabilities); final WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); add(container); final WebMarkupContainer configs = new WebMarkupContainer("configs"); configs.setOutputMarkupId(true); configs.setVisible(createInspireExtendedCapabilities.getModelObject()); container.add(configs); createInspireExtendedCapabilities.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { configs.setVisible(createInspireExtendedCapabilities.getModelObject()); target.addComponent(container); } }); if (!model.getObject().getMetadata().containsKey(LANGUAGE.key)) { model.getObject().getMetadata().put(LANGUAGE.key, "eng"); } configs.add(new LanguageDropDownChoice("language", new MapModel(metadata, LANGUAGE.key))); TextField metadataUrlField = new TextField("metadataURL", new MapModel(metadata, SERVICE_METADATA_URL.key)); metadataUrlField.setRequired(true); FormComponentFeedbackBorder metadataURLBorder = new FormComponentFeedbackBorder("border"); metadataURLBorder.add(metadataUrlField); configs.add(metadataURLBorder); metadataUrlField.add( new AttributeModifier("title", true, new ResourceModel("InspireAdminPanel.metadataURL.title"))); final Map<String, String> mdUrlTypes = new HashMap<String, String>(); mdUrlTypes.put("application/vnd.ogc.csw.GetRecordByIdResponse_xml", "CSW GetRecordById Response"); mdUrlTypes.put("application/vnd.iso.19139+xml", "ISO 19139 ServiceMetadata record"); IModel<String> urlTypeModel = new MapModel(metadata, SERVICE_METADATA_TYPE.key); IChoiceRenderer<String> urlTypeChoiceRenderer = new IChoiceRenderer<String>() { private static final long serialVersionUID = 1L; @Override public Object getDisplayValue(final String key) { final String resourceKey = "InspireAdminPanel.metadataURLType." + key;// as found in // GeoServerApplication.properties final String defaultValue = key; final String displayValue = new ResourceModel(resourceKey, defaultValue).getObject(); return displayValue; } @Override public String getIdValue(final String key, int index) { return key; } }; List<String> urlTypeChoices = new ArrayList<String>(mdUrlTypes.keySet()); DropDownChoice<String> serviceMetadataRecordType = new DropDownChoice<String>("metadataURLType", urlTypeModel, urlTypeChoices, urlTypeChoiceRenderer); serviceMetadataRecordType.setNullValid(true); configs.add(serviceMetadataRecordType); // this is WFS specific, will appear only if the service is WFS WebMarkupContainer identifiersContainer = new WebMarkupContainer("datasetIdentifiersContainer"); identifiersContainer.setVisible(isWfs); configs.add(identifiersContainer); IModel<UniqueResourceIdentifiers> sdiModel = new MetadataMapModel(metadata, SPATIAL_DATASET_IDENTIFIER_TYPE.key, UniqueResourceIdentifiers.class); UniqueResourceIdentifiersEditor identifiersEditor = new UniqueResourceIdentifiersEditor( "spatialDatasetIdentifiers", sdiModel); identifiersContainer.add(identifiersEditor); }
From source file:org.geoserver.qos.web.QosAdminPanel.java
License:Open Source License
protected void initCommonComponents() { /** CheckBox activatedCheck */ final CheckBox activatedCheck = new CheckBox("createExtendedCapabilities", new PropertyModel<Boolean>(config, "activated")); add(activatedCheck);// w w w. j ava2 s .com final WebMarkupContainer container = new WebMarkupContainer("container"); container.setOutputMarkupId(true); add(container); configs = new WebMarkupContainer("configs"); configs.setOutputMarkupId(true); configs.setVisible(activatedCheck.getModelObject()); container.add(configs); activatedCheck.add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 1L; @Override protected void onUpdate(AjaxRequestTarget target) { configs.setVisible(activatedCheck.getModelObject()); target.add(container); } }); if (config.getWmsQosMetadata() == null) config.setWmsQosMetadata(new QosMainMetadata()); if (config.getWmsQosMetadata().getOperatingInfo() == null) config.getWmsQosMetadata().setOperatingInfo(new ArrayList<>()); final ListView<OperatingInfo> opInfoListView = new ListView<OperatingInfo>("opInfoListView", config.getWmsQosMetadata().getOperatingInfo()) { @Override protected void populateItem(ListItem<OperatingInfo> item) { OperatingInfoModalPanel opPanel = new OperatingInfoModalPanel("opinfo", item.getModel()); // onDelete opPanel.setOnDelete(x -> { config.getWmsQosMetadata().getOperatingInfo().remove(x.getModel()); x.getTarget().add(configs); }); item.add(opPanel); } }; opInfoListView.setOutputMarkupId(true); configs.add(opInfoListView); final AjaxButton addOpInfoButton = new AjaxButton("addOpInfo") { }; configs.add(addOpInfoButton); addOpInfoButton.add(new AjaxFormSubmitBehavior("click") { @Override protected void onAfterSubmit(final AjaxRequestTarget target) { config.getWmsQosMetadata().getOperatingInfo().add(new OperatingInfo()); target.add(configs); } }); // if (config.getWmsQosMetadata().getOperationAnomalyFeed() == null) { config.getWmsQosMetadata().setOperationAnomalyFeed(new ArrayList<>()); } final WebMarkupContainer anomalyDiv = new WebMarkupContainer("anomalyDiv"); anomalyDiv.setOutputMarkupId(true); configs.add(anomalyDiv); final ListView<ReferenceType> anomalyListView = new ListView<ReferenceType>("anomalyListView", config.getWmsQosMetadata().getOperationAnomalyFeed()) { @Override protected void populateItem(ListItem<ReferenceType> item) { OperationAnomalyFeedPanel anomalyPanel = new OperationAnomalyFeedPanel("anomalyPanel", item.getModel()); // onDelete anomalyPanel.setOnDelete(x -> { config.getWmsQosMetadata().getOperationAnomalyFeed().remove(x.getModel()); x.getTarget().add(anomalyDiv); }); item.add(anomalyPanel); } }; anomalyDiv.add(anomalyListView); final AjaxButton anomalyButton = new AjaxButton("addAnomaly") { }; anomalyDiv.add(anomalyButton); anomalyButton.add(new AjaxFormSubmitBehavior("click") { @Override protected void onAfterSubmit(final AjaxRequestTarget target) { config.getWmsQosMetadata().getOperationAnomalyFeed().add(new ReferenceType()); target.add(anomalyDiv); } }); // Statements if (config.getWmsQosMetadata().getStatements() == null) { config.getWmsQosMetadata().setStatements(new ArrayList<>()); } final QosStatementListPanel statPanel = new QosStatementListPanel("statemenstDiv", new ListModel<>(config.getWmsQosMetadata().getStatements())); configs.add(statPanel); initRepresentativeOperations(mainModel); }
From source file:org.geoserver.security.web.auth.PreAuthenticatedUserNameFilterPanel.java
License:Open Source License
public PreAuthenticatedUserNameFilterPanel(String id, IModel<T> model) { super(id, model); add(new HelpLink("roleSourceHelp", this).setDialog(dialog)); createRoleSourceDropDown();/*from w w w . jav a2 s. c om*/ roleSourceChoice.setNullValid(false); roleSourceChoice.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { Panel p = getRoleSourcePanel(roleSourceChoice.getModelObject()); WebMarkupContainer c = (WebMarkupContainer) get("container"); c.addOrReplace(p); target.addComponent(c); } }); WebMarkupContainer container = new WebMarkupContainer("container"); add(container.setOutputMarkupId(true)); // show correct panel for existing configuration RoleSource rs = model.getObject().getRoleSource(); addRoleSourceDropDown(container, rs); }
From source file:org.geoserver.security.web.auth.SecurityFilterChainPage.java
License:Open Source License
protected void initialize(RequestFilterChain chain, SecurityManagerConfig secMgrConfig, boolean isNew, Form<? extends RequestFilterChainWrapper> theForm, RequestFilterChainWrapper wrapper) { this.chainWrapper = wrapper; this.isNew = isNew; this.secMgrConfig = secMgrConfig; form = theForm;/*from ww w . j a va 2s .co m*/ add(form); //check for administrator, if not disable the panel and emit warning message boolean isAdmin = getSecurityManager().checkAuthenticationForAdminRole(); setEnabled(isAdmin); form.add(new Label("message", isAdmin ? new Model() : new StringResourceModel("notAdmin", this, null))); if (!isAdmin) { form.get("message").add(new AttributeAppender("class", new Model("info-link"), " ")); } setOutputMarkupId(true); form.add(new TextField<String>("name").setEnabled(isNew)); form.add(new TextField<String>("patternString")); form.add(new CheckBox("disabled")); form.add(new CheckBox("allowSessionCreation")); form.add(new CheckBox("requireSSL")); form.add(new CheckBox("matchHTTPMethod").add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { for (CheckBox cb : methodList) { cb.setEnabled(chainWrapper.isMatchHTTPMethod()); target.addComponent(cb); } } })); List<String> filterNames = new ArrayList<String>(); try { filterNames.addAll(getSecurityManager().listFilters(GeoServerRoleFilter.class)); for (GeoServerRoleFilter filter : GeoServerExtensions.extensions(GeoServerRoleFilter.class)) { filterNames.add(filter.getName()); } form.add(new DropDownChoice<String>("roleFilterName", new PropertyModel<String>(chainWrapper.getChain(), "roleFilterName"), filterNames) .setNullValid(true)); } catch (IOException e) { throw new RuntimeException(e); } form.add(methodList[0] = new CheckBox("GET")); form.add(methodList[1] = new CheckBox("POST")); form.add(methodList[2] = new CheckBox("PUT")); form.add(methodList[3] = new CheckBox("DELETE")); form.add(methodList[4] = new CheckBox("OPTIONS")); form.add(methodList[5] = new CheckBox("HEAD")); form.add(methodList[6] = new CheckBox("TRACE")); for (CheckBox cb : methodList) { cb.setOutputMarkupPlaceholderTag(true); cb.setEnabled(chain.isMatchHTTPMethod()); } form.add(dialog = new GeoServerDialog("dialog")); form.add(new HelpLink("chainConfigHelp").setDialog(dialog)); form.add(new HelpLink("chainConfigMethodHelp").setDialog(dialog)); form.add(new SubmitLink("close", form) { @Override public void onSubmit() { handleSubmit(getForm()); } }); form.add(new Link("cancel") { @Override public void onClick() { doReturn(); } }); }
From source file:org.geoserver.security.web.service.AbstractServiceAccessRulePage.java
License:Open Source License
public AbstractServiceAccessRulePage(final ServiceAccessRule rule) { // build the form Form form = new Form<Serializable>("form", new CompoundPropertyModel(rule)); add(form);//from w w w . j a v a 2s . c om form.add(new EmptyRolesValidator()); form.add(serviceChoice = new DropDownChoice<String>("service", getServiceNames())); serviceChoice.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { methodChoice.updateModel(); target.addComponent(methodChoice); } }); serviceChoice.setRequired(true); form.add(methodChoice = new DropDownChoice<String>("method", new MethodsModel(rule))); //we add on change behavior to ensure the underlying model is updated but don't actually // do anything on change... this allows us to keep state when someone adds a new role, // leaving the page, TODO: find a better way to do this //methodChoice.add(new OnChangeAjaxBehavior() { // @Override // protected void onUpdate(AjaxRequestTarget target) {} //}); methodChoice.setOutputMarkupId(true); methodChoice.setRequired(true); form.add(rolesFormComponent = new RuleRolesFormComponent("roles", new PropertyModel<Collection<String>>(rule, "roles"))); //new Model((Serializable)new ArrayList(rule.getRoles())))); // build the submit/cancel form.add(new SubmitLink("save") { @Override public void onSubmit() { onFormSubmit((ServiceAccessRule) getForm().getModelObject()); } }); form.add(new BookmarkablePageLink("cancel", ServiceAccessRulePage.class)); }
From source file:org.geoserver.security.web.usergroup.UserGroupServicePanel.java
License:Open Source License
public UserGroupServicePanel(String id, IModel<T> model) { super(id, model); add(new PasswordEncoderChoice("passwordEncoderName").add(new OnChangeAjaxBehavior() { @Override//from www. j a v a2 s .c o m protected void onUpdate(AjaxRequestTarget target) { if (recodeCheckBox.isVisible()) { recodeCheckBox.setEnabled(true); target.addComponent(recodeCheckBox); } } })); boolean canCreateStore = false; SecurityUserGroupServiceConfig config = model.getObject(); try { GeoServerUserGroupService s = (GeoServerUserGroupService) Class.forName(config.getClassName()) .newInstance(); canCreateStore = s.canCreateStore(); } catch (Exception e) { // do nothing } recodeCheckBox = new CheckBox("recodeExistingPasswords", Model.of(false)); recodeCheckBox.setOutputMarkupId(true); recodeCheckBox.setVisible(canCreateStore); recodeCheckBox.setEnabled(false); add(recodeCheckBox); add(new PasswordPolicyChoice("passwordPolicyName")); }
From source file:org.geoserver.taskmanager.web.panel.DropDownPanel.java
License:Open Source License
public DropDownPanel(String id, IModel<String> model, IModel<? extends List<? extends String>> choiceModel, IModel<String> labelModel) { super(id, model); boolean custom = choiceModel.getObject().contains(""); boolean useDropDown = !custom || choiceModel.getObject().contains(model.getObject()); add(new Label("message", labelModel)); add(new DropDownChoice<String>("dropdown", useDropDown ? model : new Model<String>(""), choiceModel)); add(new TextField<String>("custom", model).setVisible(!useDropDown)); if (custom) { setOutputMarkupId(true);//from w w w . j a v a 2 s . c o m getDropDownChoice().add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = 7823984472638368286L; @Override protected void onUpdate(AjaxRequestTarget target) { boolean useDropDown = !getDropDownChoice().getModelObject().equals(""); if (useDropDown) { model.setObject(getDropDownChoice().getModelObject()); getDropDownChoice().setModel(model); } else { getDropDownChoice().setModel(new Model<String>("")); } getTextField().setVisible(!useDropDown); target.add(DropDownPanel.this); } }); } }
From source file:org.geoserver.taskmanager.web.panel.NewTaskPanel.java
License:Open Source License
public NewTaskPanel(String id, Configuration config) { super(id);//from w w w . j av a 2 s .co m add(new FeedbackPanel("feedback").setOutputMarkupId(true)); add(new TextField<String>("name", new Model<String>()).setRequired(true)); add(new DropDownChoice<String>("type", new Model<String>(), new Model<ArrayList<String>>(new ArrayList<String>(TaskManagerBeans.get().getTaskTypes().names()))) .setRequired(true).setOutputMarkupId(true)); add(new DropDownChoice<String>("copy", new Model<String>(), new Model<ArrayList<String>>(new ArrayList<String>(config.getTasks().keySet()))) .setOutputMarkupId(true)); getCopyField().add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = -5575115165929413404L; @Override protected void onUpdate(AjaxRequestTarget target) { getTypeField().getModel() .setObject(config.getTasks().get(getCopyField().getConvertedInput()).getType()); target.add(getTypeField()); } }); getTypeField().add(new OnChangeAjaxBehavior() { private static final long serialVersionUID = -1427899086435643578L; @Override protected void onUpdate(AjaxRequestTarget target) { getCopyField().getModel().setObject(null); target.add(getCopyField()); } }); }