Index: api/src/main/java/org/hippoecm/frontend/plugins/standards/list/AbstractListingPlugin.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- api/src/main/java/org/hippoecm/frontend/plugins/standards/list/AbstractListingPlugin.java (revision 34607) +++ api/src/main/java/org/hippoecm/frontend/plugins/standards/list/AbstractListingPlugin.java (revision ) @@ -15,6 +15,10 @@ */ package org.hippoecm.frontend.plugins.standards.list; +import java.util.Iterator; + +import javax.jcr.Node; + import org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortState; import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider; import org.apache.wicket.markup.html.panel.EmptyPanel; @@ -34,9 +38,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.jcr.Node; -import java.util.Iterator; - /** * Base class for displaying a list of nodes. This class will take care of observing the * provider, instantiating the datatable. Subclasses must provide a table definition and a @@ -107,6 +108,11 @@ } }, IObserver.class.getName()); + + IModel documentmodel = documentReference.getModel(); + if(documentmodel != null) { + updateSelection(documentmodel); + } } } Index: xinha-integration/src/main/java/org/hippoecm/frontend/plugins/xinha/dialog/AbstractXinhaDialog.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- xinha-integration/src/main/java/org/hippoecm/frontend/plugins/xinha/dialog/AbstractXinhaDialog.java (revision 34607) +++ xinha-integration/src/main/java/org/hippoecm/frontend/plugins/xinha/dialog/AbstractXinhaDialog.java (revision ) @@ -83,13 +83,7 @@ AjaxRequestTarget target = AjaxRequestTarget.get(); if (target != null) { - String script; - if (cancelled) { - script = getCancelScript(); - } else { - script = getCloseScript(); - } - target.getHeaderResponse().renderOnDomReadyJavascript(script); + target.getHeaderResponse().renderOnDomReadyJavascript(cancelled ? getCancelScript() : getCloseScript()); } onCloseDialog(); } Index: xinha-integration/src/main/java/org/hippoecm/frontend/plugins/xinha/dialog/AbstractBrowserDialog.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- xinha-integration/src/main/java/org/hippoecm/frontend/plugins/xinha/dialog/AbstractBrowserDialog.java (revision 34607) +++ xinha-integration/src/main/java/org/hippoecm/frontend/plugins/xinha/dialog/AbstractBrowserDialog.java (revision ) @@ -48,7 +48,7 @@ this.context = context; this.config = config; - + controller = new NodePickerController(context, NodePickerControllerSettings.fromPluginConfig(config)) { @Override @@ -58,11 +58,13 @@ @Override protected void onSelect(boolean isValid) { - if(isValid) { - IModel selectedModel = getSelectedModel(); + IModel selectedModel = getSelectedModel(); + if(isValid && selectedModel != null) { getModelObject().setLinkTarget(selectedModel); onModelSelected(selectedModel); checkState(); + } else { + setOkEnabled(false); } } }; @@ -71,7 +73,6 @@ } protected void onModelSelected(IModel model) { - } protected IModel getFolderModel() { Index: api/src/main/java/org/hippoecm/frontend/plugins/standards/picker/NodePickerController.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- api/src/main/java/org/hippoecm/frontend/plugins/standards/picker/NodePickerController.java (revision 34607) +++ api/src/main/java/org/hippoecm/frontend/plugins/standards/picker/NodePickerController.java (revision ) @@ -15,6 +15,11 @@ */ package org.hippoecm.frontend.plugins.standards.picker; +import java.util.Iterator; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + import org.apache.wicket.Component; import org.apache.wicket.Session; import org.apache.wicket.model.IDetachable; @@ -35,10 +40,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.jcr.Node; -import javax.jcr.RepositoryException; -import java.util.Iterator; - public abstract class NodePickerController implements IDetachable { private static final long serialVersionUID = 1L; @@ -73,13 +74,14 @@ lastModelVisited = getLastVisitedFromPreferences(); } if(settings.hasBaseUUID()) { - javax.jcr.Session session = ((UserSession)Session.get()).getJcrSession(); + String baseUUID = settings.getBaseUUID(); try { - baseModel = new JcrNodeModel(session.getNodeByUUID(settings.getBaseUUID())); + Node baseNode = UserSession.get().getJcrSession().getNodeByIdentifier(baseUUID); + baseModel = new JcrNodeModel(baseNode); } catch (RepositoryException e) { - log.error("Could not create base model from UUID[" + settings.getBaseUUID() + "]", e); + log.error("Could not create base model from UUID[" + baseUUID + "]", e); } - } + } } public Component create(final String id) { @@ -119,7 +121,7 @@ } public void onEvent(Iterator events) { - setSelectedModel(folderModelReference.getModel()); + onFolderSelected(folderModelReference.getModel()); } }, IObserver.class.getName()); } @@ -131,6 +133,11 @@ return renderer.getComponent(); } + protected void onFolderSelected(final IModel model) { + selectionModelReference.setModel(model); + setSelectedModel(model); + } + /** * Try to determine which model should be used as initial selection. First, retrieve the model that represents the * actual selected node and see if it is valid. If so, select it and return, if not, see if a last visited model @@ -170,12 +177,9 @@ } private void setSelectedModel(IModel model) { - if (isValidSelection(model)) { - selectedModel = model; + selectedModel = model; - onSelect(true); - } else { - onSelect(false); - } + + onSelect(isValidSelection(model)); if (settings.isLastVisitedEnabled() && model != null) { lastModelVisited = model;