/* (c) 2015 - 2016 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.web.admin;
import org.apache.wicket.Component;
import org.apache.wicket.extensions.markup.html.form.palette.Palette;
import org.apache.wicket.extensions.markup.html.form.palette.theme.DefaultTheme;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.ResourceModel;
import org.geoserver.config.JAIEXTInfo;
import org.geoserver.config.JAIInfo;
import org.geoserver.web.wicket.LiveCollectionModel;
import org.geoserver.web.wicket.ParamResourceModel;
public class JAIEXTPanel extends Panel {
private static final long serialVersionUID = -4274061927074052166L;
public JAIEXTPanel(String id, IModel<JAIInfo> model) {
super(id, model);
PropertyModel<JAIEXTInfo> jaiextModel = new PropertyModel<JAIEXTInfo>(model, "JAIEXTInfo");
@SuppressWarnings({ "rawtypes", "unchecked" })
Palette jaiextSelector = new Palette<String>("jaiextOps",
LiveCollectionModel.set(new PropertyModel(jaiextModel, "JAIOperations")),
LiveCollectionModel.set(new PropertyModel(jaiextModel, "JAIEXTOperations")),
new JAChoiceRenderer(), 7, false) {
private static final long serialVersionUID = -4665147378650094510L;
/**
* Override otherwise the header is not i18n'ized
*/
@Override
public Component newSelectedHeader(final String componentId) {
return new Label(componentId, new ResourceModel("JAIEXTPanel.selectedHeader"));
}
/**
* Override otherwise the header is not i18n'ized
*/
@Override
public Component newAvailableHeader(final String componentId) {
return new Label(componentId, new ResourceModel("JAIEXTPanel.availableHeader"));
}
};
jaiextSelector.add(new DefaultTheme());
add(jaiextSelector);
}
static class JAChoiceRenderer extends ChoiceRenderer<String> {
private static final long serialVersionUID = -1978519626641784908L;
private static final String ALGEBRIC = "algebric";
private static final String OPERATION_CONST = "operationConst";
private static final String STATS = "Stats";
@Override
public Object getDisplayValue(String object) {
if(object.equalsIgnoreCase(STATS)){
return new ParamResourceModel("JAIEXTPanel." + STATS, null, "").getString();
} else if(object.equalsIgnoreCase(OPERATION_CONST)){
return new ParamResourceModel("JAIEXTPanel." + OPERATION_CONST, null, "").getString();
}else if(object.equalsIgnoreCase(ALGEBRIC)){
return new ParamResourceModel("JAIEXTPanel." + ALGEBRIC, null, "").getString();
}else {
return object;
}
}
@Override
public String getIdValue(String object, int index) {
return object;
}
}
}