List of usage examples for org.apache.wicket.markup.html.list ListView setReuseItems
public ListView<T> setReuseItems(boolean reuseItems)
From source file:jp.gihyo.wicket.page.simple.MyTimeline.java
License:Apache License
private void constructPage() { final TweetForm form = new TweetForm("tweetForm"); add(form);//from www . j av a2 s . c om feedback = new FeedbackPanel("feedback"); feedback.setOutputMarkupId(true); add(feedback); /* * ^CCpIModel?B * ??[hf?[^NGXg?EX|X?ETCNLbV?A * LoadableDetachableModelNXgp?B */ IModel<List<Status>> statusModel = new LoadableDetachableModel<List<Status>>() { @Override protected List<Status> load() { try { Twitter twitter = AppSession.get().getTwitterSession(); return twitter.getFriendsTimeline(new Paging(1, ITEMS_PER_PAGE)); } catch (TwitterException ex) { MyTimeline.this.error(getString("canNotRetrieveFriendTimeline")); return Collections.emptyList(); } } }; /* * ^CCXg */ ListView<Status> timeline = new ListView<Status>("statusView", statusModel) { @Override protected void populateItem(final ListItem<Status> item) { final Status status = item.getModelObject(); String userUrl = "http://twitter.com/" + status.getUser().getScreenName(); ExternalLink imageLink = new ExternalLink("imageLink", userUrl); byte[] byteArray = {};/* f?[^?? */ UrlResourceStream stream = new UrlResourceStream(status.getUser().getProfileImageURL()); try { stream.getInputStream().read(byteArray); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ResourceStreamNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } Image userImage = new Image("userImage", new ByteArrayResource("image/jpeg", byteArray)); imageLink.add(userImage); item.add(imageLink); ExternalLink screenNameLink = new ExternalLink("screenName", userUrl, status.getUser().getScreenName()); item.add(screenNameLink); Label content = new Label("tweetContent", status.getText()); item.add(content); ExternalLink tweetLink = new ExternalLink("tweetLink", userUrl + "/status/" + status.getId(), null); item.add(tweetLink); Label time = new Label("tweetTime", new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(status.getCreatedAt())); tweetLink.add(time); Label clientName = new Label("clientName", status.getSource()); item.add(clientName.setEscapeModelStrings(false)); /* * CNx?BIModel?f?A?fav/unfav * \?B */ final Label favName = new Label("favName", new AbstractReadOnlyModel<String>() { @Override public String getObject() { return status.isFavorited() ? "unfav" : "fav"; } }); /* * CN?BNbN?C?E??s?B */ Link<Void> favLink = new Link<Void>("favLink") { @Override public void onClick() { try { Twitter twitterSession = AppSession.get().getTwitterSession(); if (status.isFavorited()) { twitterSession.destroyFavorite(status.getId()); info(getString("favorateRemoved")); } else { twitterSession.createFavorite(status.getId()); info(getString("favorateRegistered")); } } catch (TwitterException ex) { String message = getString("catNotCreateFavorite") + ": " + ex.getStatusCode(); error(message); LOGGER.error(message, ex); } } }; item.add(favLink); favLink.add(favName); /* * vCpN?B * ?u@screenName?v?B */ item.add(new Link<Void>("replyLink") { @Override public void onClick() { String targetScreenName = status.getUser().getScreenName(); form.insertText("@" + targetScreenName + " "); } }); } }; //ListView\e?s????BreuseItemsv?peB??A //y?[W\?Ay?[WTu~bg?AXgeIuWFNg\??B //twitterey?[We?X??AXg????AXge? //Xe?[^Xu?A??dv?B timeline.setReuseItems(true); add(timeline); }
From source file:main.java.info.jtrac.wicket.CustomFieldsFormPanel.java
License:Apache License
private void addComponents(final BoundCompoundPropertyModel model, List<Field> fields) { ListView listView = new ListView("fields", fields) { protected void populateItem(ListItem listItem) { final Field field = (Field) listItem.getModelObject(); listItem.add(new Label("label", field.getLabel())); listItem.add(new Label("star", field.isOptional() ? " " : "*").setEscapeModelStrings(false)); if (field.getName().getType() < 4) { // drop down list Fragment f = new Fragment("field", "dropDown"); final Map<String, String> options = field.getOptions(); List<String> keys = new ArrayList(options.keySet()); // bound value DropDownChoice choice = new DropDownChoice("field", keys, new IChoiceRenderer() { public Object getDisplayValue(Object o) { return options.get(o); };//from w ww .j av a2 s . c om public String getIdValue(Object o, int i) { return o.toString(); }; }); choice.setNullValid(true); choice.setLabel(new Model(field.getLabel())); if (!field.isOptional()) { choice.setRequired(true); } WebMarkupContainer border = new WebMarkupContainer("border"); f.add(border); border.add(new ErrorHighlighter(choice)); border.add(model.bind(choice, field.getName().getText())); listItem.add(f); } else if (field.getName().getType() == 6) { // date picker YuiCalendar calendar = new YuiCalendar("field", new PropertyModel(model, field.getName().getText()), !field.isOptional()); listItem.add(calendar); calendar.setLabel(new Model(field.getLabel())); } else { Fragment f = new Fragment("field", "textField"); TextField textField = new TextField("field"); if (field.getName().getType() == 4) { textField.setType(Double.class); } textField.add(new ErrorHighlighter()); if (!field.isOptional()) { textField.setRequired(true); } textField.setLabel(new Model(field.getLabel())); f.add(model.bind(textField, field.getName().getText())); listItem.add(f); } } }; listView.setReuseItems(true); add(listView); }
From source file:name.martingeisse.wicket.autoform.AutoformPanel.java
License:Open Source License
/** * /*from w w w . j ava 2s . c om*/ */ private void createComponents() { // create the form component final Form<?> form = new Form<Void>("form") { @Override protected void onSubmit() { AutoformPanel.this.onSuccessfulSubmit(); } }; add(form); // create the property repeater final ListView<IAutoformPropertyDescriptor> rows = new ListView<IAutoformPropertyDescriptor>("rows", beanDescriptor.getPropertyDescriptors()) { /* (non-Javadoc) * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem) */ @Override protected void populateItem(final ListItem<IAutoformPropertyDescriptor> item) { final IAutoformPropertyDescriptor propertyDescriptor = item.getModelObject(); item.add(new Label("keyLabel", propertyDescriptor.getDisplayName())); item.add(propertyComponentFactory.createPropertyComponent("valueComponent", propertyDescriptor, createValidators(propertyDescriptor), new ValidationErrorAcceptor(item))); } }; rows.setReuseItems(true); form.add(rows); }
From source file:nl.knaw.dans.dccd.web.datapanels.ObjectTypeSelectionPanel.java
License:Apache License
public ObjectTypeSelectionPanel(String id, IModel<?> model) { super(id, model); EntityAttribute attr = (EntityAttribute) this.getDefaultModelObject(); // assume object is a ControlledVoc final ControlledVoc cvoc = (ControlledVoc) attr.getEntryObject(); // TESTING/*from w w w . j a v a2s . co m*/ //String labelStr = ""; //if (cvoc != null && cvoc.isSetValue()) // labelStr = cvoc.getValue(); //Label label = new Label("label", "Initial term: " + labelStr); //add(label); // Build multilingual selectable table // first just a table... ListView MultiLingualTridasTerms terms = DccdVocabularyService.getService() .getMultiLingualTridasTerms("object.type"); final int descriptionIndex = terms.getDescriptionIndex(); final int MAX_LANG = 4; // Note: fixed in html // iterate the lines List<List<String>> termLines = terms.getTermLines(); ListView<List<String>> termlist = new ListView<List<String>>("termlist", termLines) { private static final long serialVersionUID = -3651087863165431582L; protected void populateItem(ListItem item) { List<String> line = (List<String>) item.getModel().getObject(); // fixed to columns max. for (int i = 0; i < MAX_LANG; i++) { if (line.size() < (i + 1)) { item.add(new Label("term_" + i, ""));//empty } else { // TODO make selectable... //item.add(new Label("term_"+i, line.get(i))); final String termStr = line.get(i); // Note: could use AjaxFallbackLink, but without Ajax DCCD is almost unusable... AjaxLink link = new AjaxLink("linkterm_" + i) { private static final long serialVersionUID = -1L; @Override public void onClick(AjaxRequestTarget target) { selectedTerm = termStr; logger.debug("selected term: " + selectedTerm); // update cvoc.setValue(selectedTerm); onSelectionChanged(target); } }; item.add(link); link.add(new Label("term_" + i, termStr)); } } // description if (descriptionIndex >= MAX_LANG) { item.add(new Label("term_description", line.get(descriptionIndex))); } else { item.add(new Label("term_description", ""));// empty } } }; add(termlist); termlist.setReuseItems(true); // speedup, the list is not changing during a session! // Add headers for the columns for (int i = 0; i < MAX_LANG; i++) { String languageCode = terms.getLanguageCode(i); if (languageCode.isEmpty()) add(new Label("title_" + i, ""));//empty else add(new Label("title_" + i, languageCode.toUpperCase())); // TODO get display string for this code } // TODO could make this into a sortable pagable GridView.... }
From source file:ontopoly.components.FieldsEditor.java
License:Apache License
private ListView<FieldDefinitionModel> createListView(final List<FieldDefinitionModel> fieldDefinitionModels) { ListView<FieldDefinitionModel> listView = new ListView<FieldDefinitionModel>("addFields", fieldDefinitionModels) {// ww w . j av a2 s . c om public void populateItem(final ListItem<FieldDefinitionModel> item) { FieldDefinitionModel fieldDefinitionModel = item.getModelObject(); //item.setRenderBodyOnly(true); Component component = new FieldsEditorAddPanel("field", topicTypeModel, fieldDefinitionModel) { @Override protected void onAddField(TopicTypeModel topicTypeModel, FieldDefinitionModel fieldDefinitionModel, AjaxRequestTarget target) { // add field to topic type topicTypeModel.getTopicType().addField(fieldDefinitionModel.getFieldDefinition()); // remove field definition from available list fieldDefinitionModels.remove(fieldDefinitionModel); @SuppressWarnings("rawtypes") ListView pListView = (ListView) item.getParent(); pListView.removeAll(); onUpdate(target); } }; //component.setRenderBodyOnly(true); item.add(component); } }; listView.setOutputMarkupId(true); listView.setReuseItems(true); return listView; }
From source file:org.devproof.portal.core.module.mount.panel.MountInputPanel.java
License:Apache License
private ListView<MountPoint> createMountUrlListView() { ListView<MountPoint> listView = newMountUrlListView(); listView.setOutputMarkupId(true);/* w ww . ja va2s . c o m*/ listView.setReuseItems(true); return listView; }
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);//from w w w .j a v a 2 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); }
From source file:org.geoserver.gwc.web.layer.GeoServerTileLayerEditor.java
License:Open Source License
/** * @param id/*from ww w . jav a 2s. 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.web.data.resource.CoverageResourceConfigurationPanel.java
License:Open Source License
public CoverageResourceConfigurationPanel(final String panelId, final IModel model) { super(panelId, model); final CoverageInfo coverage = (CoverageInfo) getResourceInfo(); final Map<String, Serializable> parameters = coverage.getParameters(); List<String> keys = new ArrayList<String>(parameters.keySet()); Collections.sort(keys);/*from w ww .j a va 2 s. co m*/ final IModel paramsModel = new PropertyModel(model, "parameters"); ListView paramsList = new ListView("parameters", keys) { @Override protected void populateItem(ListItem item) { Component inputComponent = getInputComponent("parameterPanel", paramsModel, item.getDefaultModelObjectAsString()); item.add(inputComponent); } }; WebMarkupContainer coverageViewContainer = new WebMarkupContainer("editCoverageViewContainer"); add(coverageViewContainer); final CoverageView coverageView = coverage.getMetadata().get(CoverageView.COVERAGE_VIEW, CoverageView.class); coverageViewContainer.add(new Link("editCoverageView") { @Override public void onClick() { CoverageInfo coverageInfo = (CoverageInfo) model.getObject(); try { CoverageStoreInfo store = coverageInfo.getStore(); WorkspaceInfo workspace = store.getWorkspace(); setResponsePage(new CoverageViewEditPage(workspace.getName(), store.getName(), coverageInfo.getName(), coverageInfo, ((ResourceConfigurationPage) this.getPage()))); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Failure opening the Virtual Coverage edit page", e); error(e.toString()); } } }); coverageViewContainer.setVisible(coverageView != null); // needed for form components not to loose state paramsList.setReuseItems(true); add(paramsList); if (keys.size() == 0) setVisible(false); }
From source file:org.geoserver.web.data.store.DefaultDataStoreEditPanel.java
License:Open Source License
/** * Creates a new parameters panel with a list of input fields matching the {@link Param}s for * the factory related to the {@code DataStoreInfo} that's the model of the provided {@code * Form}.//from www .j av a2 s . c o m * * @param componentId * the id for this component instance * @param storeEditForm * the form being build by the calling class, whose model is the * {@link DataStoreInfo} being edited */ public DefaultDataStoreEditPanel(final String componentId, final Form storeEditForm) { super(componentId, storeEditForm); final IModel model = storeEditForm.getModel(); final DataStoreInfo info = (DataStoreInfo) model.getObject(); final Catalog catalog = getCatalog(); final ResourcePool resourcePool = catalog.getResourcePool(); DataAccessFactory dsFactory; try { dsFactory = resourcePool.getDataStoreFactory(info); } catch (IOException e) { throw new RuntimeException(e); } final Map<String, ParamInfo> paramsMetadata = new LinkedHashMap<String, ParamInfo>(); { final boolean isNew = null == info.getId(); final Param[] dsParams = dsFactory.getParametersInfo(); for (Param p : dsParams) { ParamInfo paramInfo = new ParamInfo(p); // hide the repository params, the resource pool will inject it transparently if (!Repository.class.equals(paramInfo.getBinding())) { paramsMetadata.put(p.key, paramInfo); if (isNew && !p.isDeprecated()) { applyParamDefault(paramInfo, info); } } } } final List<String> keys = new ArrayList<String>(paramsMetadata.keySet()); final IModel paramsModel = new PropertyModel(model, "connectionParameters"); ListView paramsList = new ListView("parameters", keys) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem item) { String paramName = item.getDefaultModelObjectAsString(); ParamInfo paramMetadata = paramsMetadata.get(paramName); Component inputComponent; inputComponent = getInputComponent("parameterPanel", paramsModel, paramMetadata); String description = paramMetadata.getTitle(); if (description != null) { inputComponent.add(new SimpleAttributeModifier("title", description)); } item.add(inputComponent); } }; // needed for form components not to loose state paramsList.setReuseItems(true); add(paramsList); }