workspace.setNullValid(true);
workspace.setOutputMarkupId(true);
workspace.setRequired(true);
form.add(workspace);
workspace.add(new OnChangeAjaxBehavior() {
private static final long serialVersionUID = -5613056077847641106L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.addComponent(store);
target.addComponent(resourceAndLayer);
}
});
IModel<List<Tuple>> storesModel = new LoadableDetachableModel<List<Tuple>>() {
private static final long serialVersionUID = 1L;
@Override
protected List<Tuple> load() {
Catalog catalog = GeoServerApplication.get().getCatalog();
Tuple ws = workspace.getModelObject();
if (ws == null) {
return Lists.newArrayList();
}
Filter filter = Predicates.equal("workspace.id", ws.id);
int limit = 100;
CloseableIterator<StoreInfo> iter = catalog.list(StoreInfo.class, filter, null,
limit, null);
List<Tuple> stores;
try {
stores = Lists.newArrayList(Iterators.transform(iter,
new Function<StoreInfo, Tuple>() {
@Override
public Tuple apply(StoreInfo input) {
return new Tuple(input.getId(), input.getName());
}
}));
} finally {
iter.close();
}
Collections.sort(stores);
return stores;
}
};
store = new DropDownChoice<Tuple>("store", new Model<Tuple>(), storesModel,
new TupleChoiceRenderer());
store.setNullValid(true);
store.setOutputMarkupId(true);
store.add(new OnChangeAjaxBehavior() {
private static final long serialVersionUID = -5333344688588590014L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.addComponent(resourceAndLayer);