Skip to content

Commit

Permalink
Ported web-demo for real this time.
Browse files Browse the repository at this point in the history
  • Loading branch information
jdeolive committed Jan 19, 2016
1 parent 96811b1 commit be2d204
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 36 deletions.
Expand Up @@ -5,7 +5,6 @@
*/
package org.geoserver.web.demo;

import org.apache.wicket.PageMap;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
Expand Down Expand Up @@ -42,7 +41,10 @@ public DemoRequestResponse(final IModel model) {
// this page being in an IFrame needs to grap its own PageMap
// in order not to share it with the parent page and thus be
// marked as expired
super(PageMap.forName("demoRequestResponse"));
// JD: Couldn't find a replacement for PageMap, hopefully this is a non-issue
// now, but won't know until we get things up and running with the new version
//super(PageMap.forName("demoRequestResponse"));
super(model);

Form form = new Form("form");
add(form);
Expand Down
Expand Up @@ -19,11 +19,12 @@
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.IAjaxCallDecorator;
import org.apache.wicket.ajax.calldecorator.AjaxCallDecorator;
import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
Expand All @@ -35,7 +36,7 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.geoserver.ows.util.ResponseUtils;
import org.geoserver.platform.GeoServerExtensions;
import org.geoserver.platform.GeoServerResourceLoader;
Expand Down Expand Up @@ -96,7 +97,7 @@ public DemoRequestsPage() {

/**
* Loads the contents of the demo request file named {@code reqFileName} and located in the
* {@link #getDemoDir() demo directory}.
* demo directory.
*
* @param reqFileName
* the file name to load the contents for
Expand Down Expand Up @@ -158,9 +159,9 @@ protected void onSubmit(AjaxRequestTarget target) {
String proxyBaseUrl;
final String baseUrl;
{
WebRequest request = (WebRequest) DemoRequestsPage.this.getRequest();
ServletWebRequest request = (ServletWebRequest) DemoRequestsPage.this.getRequest();
HttpServletRequest httpServletRequest;
httpServletRequest = ((WebRequest) request).getHttpServletRequest();
httpServletRequest = request.getContainerRequest();
proxyBaseUrl = GeoServerExtensions.getProperty("PROXY_BASE_URL");
if (StringUtils.isEmpty(proxyBaseUrl)) {
GeoServer gs = getGeoServer();
Expand Down Expand Up @@ -233,7 +234,8 @@ protected void onError(AjaxRequestTarget target) {

responseWindow = new ModalWindow("responseWindow");
add(responseWindow);
responseWindow.setPageMapName("demoResponse");

//responseWindow.setPageMapName("demoResponse");
responseWindow.setCookieName("demoResponse");

responseWindow.setPageCreator(new ModalWindow.PageCreator() {
Expand All @@ -250,19 +252,18 @@ public void onSubmit(AjaxRequestTarget target, Form testWfsPostForm) {
}

@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
// we need to force EditArea to update the textarea contents (which it hides)
// before submitting the form, otherwise the contents won't be the ones the user
// edited
return new AjaxCallDecorator() {
attributes.getAjaxCallListeners().add(new AjaxCallListener() {
@Override
public CharSequence decorateScript(CharSequence script) {
return "document.getElementById('requestBody').value = document.gsEditors.requestBody.getValue();"
+ script;
public CharSequence getBeforeHandler(Component component) {
return "document.getElementById('requestBody').value = document.gsEditors.requestBody.getValue();";
}
};
});
}

});
}

Expand Down
Expand Up @@ -72,9 +72,8 @@ public MapPreviewPage() {
table = new GeoServerTablePanel<PreviewLayer>("table", provider) {

@Override
protected Component getComponentForProperty(String id,
final IModel itemModel, Property<PreviewLayer> property) {
PreviewLayer layer = (PreviewLayer) itemModel.getObject();
protected Component getComponentForProperty(String id, IModel<PreviewLayer> itemModel, Property<PreviewLayer> property) {
PreviewLayer layer = itemModel.getObject();

if (property == TYPE) {
Fragment f = new Fragment(id, "iconFragment", MapPreviewPage.this);
Expand Down
Expand Up @@ -121,12 +121,13 @@ protected List<Property<PreviewLayer>> getProperties() {
return PROPERTIES;
}

public IModel newModel(Object object) {
return new PreviewLayerModel((PreviewLayer) object);
@Override
protected IModel<PreviewLayer> newModel(PreviewLayer object) {
return new PreviewLayerModel(object);
}

@Override
public int size() {
public long size() {
try {
return cache.get(KEY_SIZE, sizeCaller);
} catch (ExecutionException e) {
Expand Down Expand Up @@ -154,7 +155,7 @@ private int fullSizeInternal() {
}

@Override
public Iterator<PreviewLayer> iterator(final int first, final int count) {
public Iterator<PreviewLayer> iterator(final long first, final long count) {
Iterator<PreviewLayer> iterator = filteredItems(first, count);
if (iterator instanceof CloseableIterator) {
// don't know how to force wicket to close the iterator, lets return
Expand All @@ -174,7 +175,7 @@ public Iterator<PreviewLayer> iterator(final int first, final int count) {
* filtering set on the page
*/
@SuppressWarnings("resource")
private Iterator<PreviewLayer> filteredItems(Integer first, Integer count) {
private Iterator<PreviewLayer> filteredItems(long first, long count) {
final Catalog catalog = getCatalog();

// global sorting
Expand All @@ -193,8 +194,8 @@ private Iterator<PreviewLayer> filteredItems(Integer first, Integer count) {
}

Filter filter = getFilter();
CloseableIterator<PublishedInfo> pi = catalog.list(PublishedInfo.class, filter, first,
count, sortOrder);
CloseableIterator<PublishedInfo> pi = catalog.list(PublishedInfo.class, filter, (int) first,
(int) count, sortOrder);

return CloseableIteratorAdapter.transform(pi, new Function<PublishedInfo, PreviewLayer>() {

Expand Down
Expand Up @@ -8,11 +8,20 @@
import java.util.Collection;
import java.util.Locale;

import org.apache.wicket.Component;
import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.head.CssUrlReferenceHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptUrlReferenceHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.IHeaderContributor;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.image.Image;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.CssPackageResource;
import org.geoserver.ows.URLMangler;
import org.geoserver.web.GeoServerBasePage;
import org.geoserver.web.crs.DynamicCrsMapResource;
import org.geoserver.web.wicket.ParamResourceModel;
Expand All @@ -25,6 +34,11 @@
import org.opengis.referencing.operation.MathTransform;
import org.opengis.util.InternationalString;

import javax.servlet.http.HttpServletRequest;

import static org.geoserver.ows.util.ResponseUtils.baseURL;
import static org.geoserver.ows.util.ResponseUtils.buildURL;

public class SRSDescriptionPage extends GeoServerBasePage implements IHeaderContributor {

private String jsSrs;
Expand All @@ -36,18 +50,29 @@ public class SRSDescriptionPage extends GeoServerBasePage implements IHeaderCont
/**
* Adds the call to the {@code initMap()} js function at the onload event of the body tag
*
* @see org.apache.wicket.markup.html.IHeaderContributor#renderHead(org.apache.wicket.markup.html.IHeaderResponse)
*/
public void renderHead(IHeaderResponse headerResponse) {
String onLoadJsCall = "initMap('" + jsSrs + "', " + jsBbox + ", " + jsMaxResolution + ")";
headerResponse.renderOnLoadJavascript(onLoadJsCall);
headerResponse.render(new OnDomReadyHeaderItem(onLoadJsCall));
}

public SRSDescriptionPage(PageParameters params) {

// this two contributions should be relative to the root of the webbapp's context path
add(HeaderContributor.forCss("openlayers/theme/default/style.css"));
add(HeaderContributor.forJavaScript("openlayers/OpenLayers.js"));
add(new Behavior() {
@Override
public void renderHead(Component component, IHeaderResponse response) {
HttpServletRequest req = ((ServletWebRequest)RequestCycle.get().getRequest()).getContainerRequest();
String baseUrl = baseURL(req);

response.render(new CssUrlReferenceHeaderItem(
buildURL(baseUrl, "openlayers/theme/default/style.css", null, URLMangler.URLType.RESOURCE),
null, null));
response.render(new JavaScriptUrlReferenceHeaderItem(
buildURL(baseUrl, "openlayers/OpenLayers.js", null, URLMangler.URLType.RESOURCE),
null, false, "UTF-8", null));
}
});

final Locale locale = getLocale();
final String code = params.get("code").toString();
Expand Down
Expand Up @@ -134,8 +134,8 @@ public void testWfsOutputFormatValueUrlEncoding() {

Label optionLabel = (Label) tester.getComponentFromLastRenderedPage("table:listContainer:items:4:itemProperties:4:component:menu:wfs:wfsFormats:3");
assertTrue(optionLabel.getDefaultModelObjectAsString().equals("GML3.2"));
for (Iterator<Behavior> itBehaviors = optionLabel.getBehaviors().iterator(); itBehaviors.hasNext();) {
Behavior b = (Behavior)(itBehaviors.next());
for (Iterator<? extends Behavior> itBehaviors = optionLabel.getBehaviors().iterator(); itBehaviors.hasNext();) {
Behavior b = itBehaviors.next();
if (b instanceof AttributeModifier) {
AttributeModifier am = (AttributeModifier)b;
String url = am.toString();
Expand All @@ -150,8 +150,8 @@ private void assertMaxFeaturesInData(DataView data, int maxFeatures) {
for (Iterator it = data.iterator(); it.hasNext(); ) {
MarkupContainer c = (MarkupContainer) it.next();
MarkupContainer list = (MarkupContainer) c.get("itemProperties:4:component:menu");
for (Iterator<Behavior> itBehaviors = list.getBehaviors().iterator(); itBehaviors.hasNext();) {
Behavior b = (Behavior)(itBehaviors.next());
for (Iterator<? extends Behavior> itBehaviors = list.getBehaviors().iterator(); itBehaviors.hasNext();) {
Behavior b = itBehaviors.next();
if (b instanceof AttributeModifier) {
AttributeModifier am = (AttributeModifier)b;
String url = am.toString();
Expand Down
Expand Up @@ -52,7 +52,7 @@ public void testInvalidPoint() {

assertEquals(ReprojectPage.class, tester.getLastRenderedPage().getClass());
assertEquals(1, tester.getMessages(FeedbackMessage.ERROR).size());
String message = ((ValidationErrorFeedback) tester.getMessages(FeedbackMessage.ERROR).get(0)).getMessage();
String message = ((ValidationErrorFeedback) tester.getMessages(FeedbackMessage.ERROR).get(0)).getMessage().toString();
String expected = new ParamResourceModel("GeometryTextArea.parseError", null).getString();
assertEquals(expected, message);
}
Expand Down Expand Up @@ -85,7 +85,7 @@ public void testInvalidGeometry() {

assertEquals(ReprojectPage.class, tester.getLastRenderedPage().getClass());
assertEquals(1, tester.getMessages(FeedbackMessage.ERROR).size());
String message = ((ValidationErrorFeedback) tester.getMessages(FeedbackMessage.ERROR).get(0)).getMessage();
String message = ((ValidationErrorFeedback) tester.getMessages(FeedbackMessage.ERROR).get(0)).getMessage().toString();
String expected = new ParamResourceModel("GeometryTextArea.parseError", null).getString();
assertEquals(expected, message);
}
Expand Down

0 comments on commit be2d204

Please sign in to comment.