private void setSelectedModel(final IModel<Node> model) { selectedModel = model; onSelect(isValidSelection(model)); if (settings.isLastVisitedEnabled() && model != null) { lastModelVisited = model; } }
public final void onClose() { if (settings.isLastVisitedEnabled()) { saveLastModelVisited(); } renderer.unbind(); renderer = null; context.unregisterService(selectionModelObserver, IObserver.class.getName()); selectionModelObserver = null; selectionModelReference = null; context.unregisterService(folderModelObserver, IObserver.class.getName()); folderModelReference = null; folderModelObserver = null; control.stop(); control = null; }
public NodePickerController(final IPluginContext context, final NodePickerControllerSettings settings) { this.context = context; this.settings = settings; if (settings.isLastVisitedEnabled()) { lastModelVisited = getLastVisitedFromPreferences(); } if (settings.hasBaseUUID()) { final String baseUUID = settings.getBaseUUID(); try { final Node baseNode = UserSession.get().getJcrSession().getNodeByIdentifier(baseUUID); baseModel = new JcrNodeModel(baseNode); } catch (final RepositoryException e) { log.error("Could not create base model from UUID[" + baseUUID + "]", e); } } }
/** * 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 **/ public void initSelection() { final IModel<Node> initialModel = getInitialModel(); if (isValidSelection(initialModel)) { selectionModelReference.setModel(initialModel); return; } if (settings.isLastVisitedEnabled() && lastModelVisited != null) { selectionModelReference.setModel(lastModelVisited); return; } final IModel<Node> defaultModel = getBaseModel(); if (defaultModel != null) { selectionModelReference.setModel(defaultModel); return; } setSelectedModel(selectionModelReference.getModel()); }