public void updateFolderAllowed(String path) { UIFormSelectBox sltWorkspace = getChildById(UIDriveInputSet.FIELD_WORKSPACE); String strWorkspace = sltWorkspace.getSelectedValues()[0]; SessionProvider sessionProvider = WCMCoreUtils.getSystemSessionProvider(); try { Session session = sessionProvider.getSession( strWorkspace, getApplicationComponent(RepositoryService.class).getCurrentRepository()); Node rootNode = (Node) session.getItem(path); List<SelectItemOption<String>> foldertypeOptions = new ArrayList<SelectItemOption<String>>(); RequestContext context = RequestContext.getCurrentInstance(); ResourceBundle res = context.getApplicationResourceBundle(); for (String foldertype : setFoldertypes) { if (isChildNodePrimaryTypeAllowed(rootNode, foldertype)) { try { foldertypeOptions.add( new SelectItemOption<String>( res.getString(getId() + ".label." + foldertype.replace(":", "_")), foldertype)); } catch (MissingResourceException mre) { foldertypeOptions.add(new SelectItemOption<String>(foldertype, foldertype)); } } } Collections.sort(foldertypeOptions, new ItemOptionNameComparator()); getUIFormSelectBox(FIELD_ALLOW_CREATE_FOLDERS).setOptions(foldertypeOptions); } catch (Exception e) { if (LOG.isErrorEnabled()) { LOG.error("Unexpected problem occurs while updating", e); } } }
public void update(DriveData drive) throws Exception { String[] wsNames = getApplicationComponent(RepositoryService.class).getCurrentRepository().getWorkspaceNames(); List<SelectItemOption<String>> workspace = new ArrayList<SelectItemOption<String>>(); List<SelectItemOption<String>> foldertypeOptions = new ArrayList<SelectItemOption<String>>(); for (String wsName : wsNames) { workspace.add(new SelectItemOption<String>(wsName, wsName)); } RequestContext context = RequestContext.getCurrentInstance(); ResourceBundle res = context.getApplicationResourceBundle(); for (String foldertype : setFoldertypes) { try { foldertypeOptions.add( new SelectItemOption<String>( res.getString(getId() + ".label." + foldertype.replace(":", "_")), foldertype)); } catch (MissingResourceException mre) { foldertypeOptions.add(new SelectItemOption<String>(foldertype, foldertype)); } } getUIFormSelectBox(FIELD_WORKSPACE).setOptions(workspace); Collections.sort(foldertypeOptions, new ItemOptionNameComparator()); getUIFormSelectBox(FIELD_ALLOW_CREATE_FOLDERS).setOptions(foldertypeOptions); getUIFormSelectBox(FIELD_ALLOW_CREATE_FOLDERS).setMultiple(true); if (drive != null) { // Begin of update UIDriveForm uiDriveForm = getAncestorOfType(UIDriveForm.class); String selectedWorkspace = drive.getWorkspace(); String wsInitRootNodeType = uiDriveForm.getWorkspaceEntries(selectedWorkspace); // End of update invokeGetBindingField(drive); // Set value for multi-value select box String foldertypes = drive.getAllowCreateFolders(); String selectedFolderTypes[]; if (foldertypes.contains(",")) { selectedFolderTypes = foldertypes.split(","); } else { selectedFolderTypes = new String[] {foldertypes}; } List<SelectItemOption<String>> folderOptions = new ArrayList<SelectItemOption<String>>(); if (wsInitRootNodeType != null && wsInitRootNodeType.equals(Utils.NT_FOLDER)) { folderOptions.add( new SelectItemOption<String>(UIDriveInputSet.FIELD_FOLDER_ONLY, Utils.NT_FOLDER)); } else { folderOptions.addAll(foldertypeOptions); } Collections.sort(folderOptions, new ItemOptionNameComparator()); getUIFormSelectBox(FIELD_ALLOW_CREATE_FOLDERS).setOptions(folderOptions); getUIFormSelectBox(FIELD_ALLOW_CREATE_FOLDERS).setSelectedValues(selectedFolderTypes); getUIStringInput(FIELD_NAME).setDisabled(true); return; } getUIStringInput(FIELD_NAME).setDisabled(false); reset(); getUICheckBoxInput(FIELD_VIEWPREFERENCESDOC).setChecked(false); getUICheckBoxInput(FIELD_VIEWNONDOC).setChecked(false); getUICheckBoxInput(FIELD_VIEWSIDEBAR).setChecked(false); getUICheckBoxInput(SHOW_HIDDEN_NODE).setChecked(false); }
/** * Get resource bundle from PortalApplication resource bundle * * @param key * @return * @throws MissingResourceException */ public static String getResourceBundle(String key) throws MissingResourceException { RequestContext context = Util.getPortalRequestContext(); ResourceBundle res = context.getApplicationResourceBundle(); return res.getString(key); }