cmsroleeditlist.java

来自「找了很久才找到到源代码」· Java 代码 · 共 436 行 · 第 1/2 页

JAVA
436
字号
                    throw new CmsRuntimeException(Messages.get().container(
                        Messages.ERR_DEACTIVATE_ROLE_2,
                        roleName,
                        user.getName()), e);
                }
            } else {
                throwListUnsupportedActionException();
            }
            listSave();
        } catch (CmsException e) {
            // should never happen
        }
    }

    /**
     * @see org.opencms.workplace.tools.accounts.A_CmsRolesList#getIconPath(CmsListItem)
     */
    public String getIconPath(CmsListItem item) {

        try {
            CmsRole role = CmsRole.valueOf(getCms().readGroup((String)item.get(LIST_COLUMN_GROUP_NAME)));
            if (OpenCms.getRoleManager().hasRole(
                getCms(),
                getCms().readUser(new CmsUUID(getParamUserid())).getName(),
                role)) {
                return PATH_BUTTONS + "role.png";
            }
        } catch (Exception e) {
            // ignore
        }
        return PATH_BUTTONS + "role_inactive.png";
    }

    /**
     * Returns the User id parameter value.<p>
     *
     * @return the User id parameter value
     */
    public String getParamUserid() {

        return m_paramUserid;
    }

    /**
     * Sets the User id parameter value.<p>
     * 
     * @param userid the userid to set
     */
    public void setParamUserid(String userid) {

        m_paramUserid = userid;
    }

    /**
     * @see org.opencms.workplace.list.A_CmsListDialog#defaultActionHtmlStart()
     */
    protected String defaultActionHtmlStart() {

        return getList().listJs() + dialogContentStart(getParamTitle());
    }

    /**
     * @see org.opencms.workplace.tools.accounts.A_CmsRolesList#getRoles()
     */
    protected List getRoles() throws CmsException {

        return OpenCms.getRoleManager().getRolesOfUser(
            getCms(),
            getCms().getRequestContext().currentUser().getName(),
            getParamOufqn(),
            false,
            false,
            true);
    }

    /**
     * @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
     */
    protected void setColumns(CmsListMetadata metadata) {

        super.setColumns(metadata);

        // create column for activation/deactivation
        CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE);
        actCol.setName(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_COLS_ACTIVATE_0));
        actCol.setHelpText(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_COLS_ACTIVATE_HELP_0));
        actCol.setWidth("20");
        actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
        actCol.setListItemComparator(new CmsListItemActionIconComparator());

        // activate action
        CmsListDirectAction actAction = new CmsListDirectAction(LIST_ACTION_ACTIVATE) {

            /**
             * @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
             */
            public boolean isVisible() {

                if (getItem() != null) {
                    String roleName = getItem().getId();
                    try {
                        CmsRole role = CmsRole.valueOf(getCms().readGroup(roleName));
                        if (OpenCms.getRoleManager().hasRole(
                            getCms(),
                            getCms().readUser(new CmsUUID(((CmsRoleEditList)getWp()).getParamUserid())).getName(),
                            role)) {
                            return false;
                        }
                        return true;
                    } catch (CmsException e) {
                        return false;
                    }
                }
                return super.isVisible();
            }
        };
        actAction.setName(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_ACTION_ACTIVATE_NAME_0));
        actAction.setHelpText(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_ACTION_ACTIVATE_HELP_0));
        actAction.setIconPath(ICON_INACTIVE);
        actCol.addDirectAction(actAction);

        // deactivate action
        CmsListDirectAction deactAction = new CmsListDirectAction(LIST_ACTION_DEACTIVATE) {

            /**
             * @see org.opencms.workplace.tools.A_CmsHtmlIconButton#isVisible()
             */
            public boolean isVisible() {

                if (getItem() != null) {
                    String roleName = getItem().getId();
                    try {
                        CmsRole role = CmsRole.valueOf(getCms().readGroup(roleName));
                        if (OpenCms.getRoleManager().hasRole(
                            getCms(),
                            getCms().readUser(new CmsUUID(((CmsRoleEditList)getWp()).getParamUserid())).getName(),
                            role)) {
                            return true;
                        }
                        return false;
                    } catch (CmsException e) {
                        return false;
                    }
                }
                return super.isVisible();
            }
        };
        deactAction.setName(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_ACTION_DEACTIVATE_NAME_0));
        deactAction.setHelpText(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_ACTION_DEACTIVATE_HELP_0));
        deactAction.setIconPath(ICON_ACTIVE);
        actCol.addDirectAction(deactAction);

        // add it to the list definition
        metadata.addColumn(actCol, 1);
    }

    /**
     * @see org.opencms.workplace.list.A_CmsListDialog#setIndependentActions(org.opencms.workplace.list.CmsListMetadata)
     */
    protected void setIndependentActions(CmsListMetadata metadata) {

        // add description details
        CmsListItemDetails descriptionDetails = new CmsListItemDetails(LIST_DETAIL_DESCRIPTION);
        descriptionDetails.setAtColumn(LIST_COLUMN_NAME);
        descriptionDetails.setVisible(true);
        descriptionDetails.setShowActionName(Messages.get().container(
            Messages.GUI_ROLEEDIT_DETAIL_SHOW_DESCRIPTION_NAME_0));
        descriptionDetails.setShowActionHelpText(Messages.get().container(
            Messages.GUI_ROLEEDIT_DETAIL_SHOW_DESCRIPTION_HELP_0));
        descriptionDetails.setHideActionName(Messages.get().container(
            Messages.GUI_ROLEEDIT_DETAIL_HIDE_DESCRIPTION_NAME_0));
        descriptionDetails.setHideActionHelpText(Messages.get().container(
            Messages.GUI_ROLEEDIT_DETAIL_HIDE_DESCRIPTION_HELP_0));
        descriptionDetails.setName(Messages.get().container(Messages.GUI_ROLEEDIT_DETAIL_DESCRIPTION_NAME_0));
        descriptionDetails.setFormatter(new I_CmsListFormatter() {

            /**
             * @see org.opencms.workplace.list.I_CmsListFormatter#format(java.lang.Object, java.util.Locale)
             */
            public String format(Object data, Locale locale) {

                StringBuffer html = new StringBuffer(512);
                html.append("<table border='0' cellspacing='0' cellpadding='0'>\n");
                html.append("\t<tr>\n");
                html.append("\t\t<td style='white-space:normal;' >\n");
                html.append("\t\t\t");
                html.append(data == null ? "" : data);
                html.append("\n");
                html.append("\t\t</td>\n");
                html.append("\t</tr>\n");
                html.append("</table>\n");
                return html.toString();
            }
        });
        metadata.addItemDetails(descriptionDetails);
    }

    /**
     * @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
     */
    protected void setMultiActions(CmsListMetadata metadata) {

        // add the activate role multi action
        CmsListMultiAction activateRole = new CmsListMultiAction(LIST_MACTION_ACTIVATE);
        activateRole.setName(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_MACTION_ACTIVATE_NAME_0));
        activateRole.setHelpText(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_MACTION_ACTIVATE_HELP_0));
        activateRole.setIconPath(ICON_MULTI_ACTIVATE);
        metadata.addMultiAction(activateRole);

        // add the deactivate role multi action
        CmsListMultiAction deactivateRole = new CmsListMultiAction(LIST_MACTION_DEACTIVATE);
        deactivateRole.setName(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_MACTION_DEACTIVATE_NAME_0));
        deactivateRole.setHelpText(Messages.get().container(Messages.GUI_ROLEEDIT_LIST_MACTION_DEACTIVATE_HELP_0));
        deactivateRole.setIconPath(ICON_MULTI_DEACTIVATE);
        metadata.addMultiAction(deactivateRole);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?