Class NodePickerController

  • All Implemented Interfaces:
    Serializable, org.apache.wicket.model.IDetachable, org.apache.wicket.util.io.IClusterable

    public abstract class NodePickerController
    extends Object
    implements org.apache.wicket.model.IDetachable
    See Also:
    Serialized Form
    • Method Detail

      • create

        public org.apache.wicket.Component create​(String id)
      • setSelectedFolder

        public void setSelectedFolder​(org.apache.wicket.model.IModel<Node> model)
      • onFolderSelected

        protected void onFolderSelected​(org.apache.wicket.model.IModel<Node> model)
      • initSelection

        public void initSelection()
        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 is set and if so select it and return. If not, see if a default model is set, if so, select it and return. If not, fallback to the model currently in the selectionModelReference. TODO: We should try and see if the last-visited model is visible in the browser, if not, go on to default model
      • getBaseModel

        protected org.apache.wicket.model.IModel<Node> getBaseModel()
        A hook that allows subclasses to specify a default location.
        Returns:
        An model used as default initial selection
      • getSelectedModel

        public org.apache.wicket.model.IModel<Node> getSelectedModel()
      • getInitialModel

        protected abstract org.apache.wicket.model.IModel<Node> getInitialModel()
        Return the initially selected model
        Returns:
        The model that is initially selected
      • onSelect

        protected void onSelect​(boolean isValid)
        This method is called when a new model is selected.
        Parameters:
        isValid - If the model is considered a valid selection model, value will be true, otherwise false.
      • isValidSelection

        protected boolean isValidSelection​(org.apache.wicket.model.IModel<Node> targetModel)
        This method determines the validity of the selected node in context of this dialog. Null values are always considered invalid. Validity is based on whether the nodetype is allowed and if the node is linkable.
        Parameters:
        targetModel - The model providing the node to be validated.
        Returns:
        If the provided node is a valid dialog selection.
      • isLinkable

        protected boolean isLinkable​(Node node)
                              throws RepositoryException
        Determine if the provided node is of nodeType["mix:referenceable"] and if it's not a hippo:document below a hippo:handle.
        Parameters:
        node - Node to test for linkability
        Returns:
        If this node is linkable
        Throws:
        RepositoryException - Something went wrong in the repository
      • isValidNodeType

        protected boolean isValidNodeType​(Node node)
                                   throws RepositoryException

        Determine if the node type of the provided node is valid. In case a handle is passed, it will use the nested hippo-document node, or, if none found (in case of a delete), return false.

        By default, only documents are considered valid. To use more fine-grained validation, like for example, only allow document types "foo" & "bar", or allow folders as well, a list of allowedNodeTypes can be set during construction of the dialog.

        Parameters:
        node - The node to be validated. If it is of nodeType["hippo:handle"], the first childNode with the same name will be used instead.
        Returns:
        If the node type is considered valid.
        Throws:
        RepositoryException - Something went wrong in the repository
      • onClose

        public final void onClose()
      • detach

        public void detach()
        Specified by:
        detach in interface org.apache.wicket.model.IDetachable
      • getLastVisitedFromPreferences

        protected org.apache.wicket.model.IModel<Node> getLastVisitedFromPreferences()
        Check the IPreferencesStore for a last visited location (a node path) and if found, return it in a new JcrNodeModel, otherwise return null.
        Returns:
        A new JcrNodeModel pointing to the last visited location (a node path) or null
      • getFolderModel

        public org.apache.wicket.model.IModel<Node> getFolderModel()
        Helper method to retrieve the current folder model
        Returns:
        The folder model
      • getRootPath

        public String getRootPath()
      • getRootPaths

        public String[] getRootPaths()
      • isStrictRootPath

        public boolean isStrictRootPath()