From 36ae7a1476e01ad78fa520f47f37ea7970e50935 Mon Sep 17 00:00:00 2001 From: jensp Date: Mon, 27 Oct 2014 18:55:26 +0000 Subject: [PATCH] Added a tab with system informations to Admin center which displays: - Informations about CCM (Application name, version) - All Java System Properties - The current XML configuration/XML classes in use git-svn-id: https://svn.libreccm.org/ccm/trunk@2923 8810af33-2d31-482b-a856-94f89814c4df --- .../arsdigita/ui/admin/AdminConstants.java | 522 ++++++++---------- .../ui/admin/AdminResources.properties | 10 + .../ui/admin/AdminResources_de.properties | 10 + .../ui/admin/AdminResources_en.properties | 10 + .../ui/admin/AdminResources_fr.properties | 10 + .../com/arsdigita/ui/admin/AdminServlet.java | 3 + .../ui/admin/SystemInformationTab.java | 288 ++++++++++ ...ApplicationInstancePropertySheetModel.java | 2 +- 8 files changed, 572 insertions(+), 283 deletions(-) create mode 100644 ccm-core/src/com/arsdigita/ui/admin/SystemInformationTab.java diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java b/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java index c2d4649d9..7535bed00 100755 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java @@ -28,419 +28,377 @@ import com.arsdigita.globalization.GlobalizedMessage; * @author David Dao * @version $Revision: #8 $ $Date: 2004/08/16 $ */ - interface AdminConstants { - /** The XML namespace used by admin components. */ + /** + * The XML namespace used by admin components. + */ String ADMIN_XML_NS = "http://www.arsdigita.com/admin-ui/1.0"; - /** Globalization resource for admin ui. */ + /** + * Globalization resource for admin ui. + */ String BUNDLE_NAME = "com.arsdigita.ui.admin.AdminResources"; - /** * Navigational dimension bar labels. */ - // Label MY_WORKSPACE_LABEL = new Label // (new GlobalizedMessage("ui.admin.nav.workspace", // BUNDLE_NAME)); // Label LOG_OUT_LABEL = new Label // (new GlobalizedMessage("ui.admin.nav.logout", // BUNDLE_NAME)); + /** + * Administration page title + */ + Label PAGE_TITLE_LABEL = new Label(new GlobalizedMessage("ui.admin.dispatcher.title", + BUNDLE_NAME)); - /** Administration page title */ - Label PAGE_TITLE_LABEL = new Label - (new GlobalizedMessage("ui.admin.dispatcher.title", - BUNDLE_NAME)); + /** + * Administration main tab names. + */ + Label USER_TAB_TITLE = new Label(new GlobalizedMessage("ui.admin.tab.user", + BUNDLE_NAME)); - /** Administration main tab names. */ - Label USER_TAB_TITLE = new Label - (new GlobalizedMessage("ui.admin.tab.user", - BUNDLE_NAME)); + Label GROUP_TAB_TITLE = new Label(new GlobalizedMessage("ui.admin.tab.group", + BUNDLE_NAME)); - Label GROUP_TAB_TITLE = new Label - (new GlobalizedMessage("ui.admin.tab.group", - BUNDLE_NAME)); + Label APPLICATIONS_TAB_TITLE = new Label(new GlobalizedMessage("ui.admin.tab.applications", + BUNDLE_NAME)); - Label APPLICATIONS_TAB_TITLE = new Label - (new GlobalizedMessage("ui.admin.tab.applications", - BUNDLE_NAME)); + Label SYSINFO_TAB_TITLE = new Label(new GlobalizedMessage("ui.admin.tab.sysinfo.title", BUNDLE_NAME)); - Label INFO_TAB_TITLE = new Label(new GlobalizedMessage("ui.admin.tab.info.title", BUNDLE_NAME)); - - GlobalizedMessage USER_NAVBAR_TITLE = - new GlobalizedMessage("ui.admin.tab.user.navbartitle", - BUNDLE_NAME); + GlobalizedMessage USER_NAVBAR_TITLE = new GlobalizedMessage("ui.admin.tab.user.navbartitle", + BUNDLE_NAME); - /** Tabbed pane indices */ - int USER_TAB_INDEX = 2; + /** + * Tabbed pane indices + */ + int USER_TAB_INDEX = 2; int GROUP_TAB_INDEX = 3; /** * User tab name */ + Label USER_TAB_SUMMARY = new Label(new GlobalizedMessage("ui.admin.tab.user.summary", + BUNDLE_NAME)); + Label USER_TAB_BROWSE = new Label(new GlobalizedMessage("ui.admin.tab.user.browse", + BUNDLE_NAME)); + Label USER_TAB_SEARCH = new Label(new GlobalizedMessage("ui.admin.tab.user.search", + BUNDLE_NAME)); + Label USER_TAB_CREATE_USER = new Label(new GlobalizedMessage("ui.admin.tab.user.createuser", + BUNDLE_NAME)); - Label USER_TAB_SUMMARY = new Label - (new GlobalizedMessage("ui.admin.tab.user.summary", - BUNDLE_NAME)); - Label USER_TAB_BROWSE = new Label - (new GlobalizedMessage("ui.admin.tab.user.browse", - BUNDLE_NAME)); - Label USER_TAB_SEARCH = new Label - (new GlobalizedMessage("ui.admin.tab.user.search", - BUNDLE_NAME)); - Label USER_TAB_CREATE_USER = new Label - (new GlobalizedMessage("ui.admin.tab.user.createuser", - BUNDLE_NAME)); - - int USER_TAB_SUMMARY_INDEX = 0; - int USER_TAB_BROWSE_INDEX = 1; - int USER_TAB_SEARCH_INDEX = 2; + int USER_TAB_SUMMARY_INDEX = 0; + int USER_TAB_BROWSE_INDEX = 1; + int USER_TAB_SEARCH_INDEX = 2; int USER_TAB_CREATE_USER_INDEX = 3; /** * Global state parameters. */ + BigDecimalParameter GROUP_ID_PARAM = new BigDecimalParameter("group_id"); - BigDecimalParameter GROUP_ID_PARAM = - new BigDecimalParameter("group_id"); + BigDecimalParameter APPLICATIONS_ID_PARAM = new BigDecimalParameter("application_id"); - BigDecimalParameter APPLICATIONS_ID_PARAM = - new BigDecimalParameter("application_id"); - - BigDecimalParameter USER_ID_PARAM = - new BigDecimalParameter("user_id"); + BigDecimalParameter USER_ID_PARAM = new BigDecimalParameter("user_id"); /** * User summary panel. */ + Label SUMMARY_PANEL_HEADER = new Label( + new GlobalizedMessage("ui.admin.user.summarypanel.header", BUNDLE_NAME)); - Label SUMMARY_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.summarypanel.header", BUNDLE_NAME)); + Label CREATE_USER_LABEL = new Label(new GlobalizedMessage( + "ui.admin.user.summarypanel.createUser", BUNDLE_NAME)); - Label CREATE_USER_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.summarypanel.createUser", BUNDLE_NAME)); - - Label TOTAL_USERS_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.summarypanel.totalusers", BUNDLE_NAME)); + Label TOTAL_USERS_LABEL = new Label(new GlobalizedMessage( + "ui.admin.user.summarypanel.totalusers", BUNDLE_NAME)); /** * User browse panel. */ + Label BROWSE_USER_PANEL_HEADER = new Label(new GlobalizedMessage( + "ui.admin.user.browsepanel.header", + BUNDLE_NAME)); + Label USER_INFO_LABEL = new Label(new GlobalizedMessage("ui.admin.user.userinfo.header", + BUNDLE_NAME)); - Label BROWSE_USER_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.browsepanel.header", - BUNDLE_NAME)); + Label USER_EDIT_PANEL_HEADER = new Label(new GlobalizedMessage("ui.admin.user.useredit.header", + BUNDLE_NAME)); - Label USER_INFO_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.userinfo.header", - BUNDLE_NAME)); + Label USER_GROUP_PANEL_HEADER = new Label(new GlobalizedMessage( + "ui.admin.user.groupmembership.header", + BUNDLE_NAME)); - Label USER_EDIT_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.useredit.header", - BUNDLE_NAME)); + Label USER_DELETE_FAILED_PANEL_HEADER = new Label(new GlobalizedMessage( + "ui.admin.user.action.delete.failed.header", + BUNDLE_NAME)); - Label USER_GROUP_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.groupmembership.header", - BUNDLE_NAME)); + Label USER_PASSWORD_PANEL_HEADER = new Label(new GlobalizedMessage( + "ui.admin.user.password.header", + BUNDLE_NAME)); - Label USER_DELETE_FAILED_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.action.delete.failed.header", - BUNDLE_NAME)); + Label USER_ACTION_PANEL_HEADER = new Label(new GlobalizedMessage("ui.admin.user.action.header", + BUNDLE_NAME)); - Label USER_PASSWORD_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.password.header", - BUNDLE_NAME)); + Label USER_ACTION_CONTINUE = new Label(new GlobalizedMessage("ui.admin.user.action.continue", + BUNDLE_NAME)); - Label USER_ACTION_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.action.header", - BUNDLE_NAME)); + Label USER_DELETE_LABEL = new Label(new GlobalizedMessage("ui.admin.user.delete.label", + BUNDLE_NAME)); - Label USER_ACTION_CONTINUE = new Label - (new GlobalizedMessage("ui.admin.user.action.continue", - BUNDLE_NAME)); + Label USER_BAN_LABEL = new Label(new GlobalizedMessage("ui.admin.user.ban.label", + BUNDLE_NAME)); - Label USER_DELETE_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.delete.label", - BUNDLE_NAME)); + Label USER_UNBAN_LABEL = new Label(new GlobalizedMessage("ui.admin.user.unban.label", + BUNDLE_NAME)); - Label USER_BAN_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.ban.label", - BUNDLE_NAME)); + GlobalizedMessage USER_DELETE_CONFIRMATION = new GlobalizedMessage( + "ui.admin.user.delete.confirm", BUNDLE_NAME); - Label USER_UNBAN_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.unban.label", - BUNDLE_NAME)); + GlobalizedMessage USER_BAN_CONFIRMATION = new GlobalizedMessage("ui.admin.user.ban.confirm", + BUNDLE_NAME); + GlobalizedMessage USER_UNBAN_CONFIRMATION = new GlobalizedMessage("ui.admin.user.unban.confirm", + BUNDLE_NAME); - GlobalizedMessage USER_DELETE_CONFIRMATION = - new GlobalizedMessage("ui.admin.user.delete.confirm", BUNDLE_NAME); + GlobalizedMessage USER_DELETE_FAILED_MSG = new GlobalizedMessage( + "ui.admin.user.delete.failed.label", BUNDLE_NAME); - GlobalizedMessage USER_BAN_CONFIRMATION = - new GlobalizedMessage("ui.admin.user.ban.confirm", BUNDLE_NAME); + Label USER_TAB_EXTREME_ACTION_LABEL = new Label(new GlobalizedMessage( + "ui.admin.user.browsepanel.extremeaction", + BUNDLE_NAME)); - GlobalizedMessage USER_UNBAN_CONFIRMATION = - new GlobalizedMessage("ui.admin.user.unban.confirm", BUNDLE_NAME); + Label UPDATE_USER_PASSWORD_LABEL = new Label(new GlobalizedMessage( + "ui.admin.user.browsepanel.updatePassword", + BUNDLE_NAME)); - - GlobalizedMessage USER_DELETE_FAILED_MSG = - new GlobalizedMessage("ui.admin.user.delete.failed.label", BUNDLE_NAME); - - Label USER_TAB_EXTREME_ACTION_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.browsepanel.extremeaction", - BUNDLE_NAME)); - - Label UPDATE_USER_PASSWORD_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.browsepanel.updatePassword", - BUNDLE_NAME)); - - Label BECOME_USER_LABEL = new Label - (new GlobalizedMessage("ui.admin.user.browsepanel.becomeUser", - BUNDLE_NAME)); + Label BECOME_USER_LABEL = new Label( + new GlobalizedMessage("ui.admin.user.browsepanel.becomeUser", + BUNDLE_NAME)); /** * Create new user panel. */ - - Label CREATE_USER_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.createpanel.header", - BUNDLE_NAME)); + Label CREATE_USER_PANEL_HEADER = new Label(new GlobalizedMessage( + "ui.admin.user.createpanel.header", + BUNDLE_NAME)); /** * User search panel. */ + Label SEARCH_PANEL_HEADER = new Label(new GlobalizedMessage("ui.admin.user.search.header", + BUNDLE_NAME)); - Label SEARCH_PANEL_HEADER = new Label - (new GlobalizedMessage("ui.admin.user.search.header", - BUNDLE_NAME)); + Label PASSWORD_FORM_LABEL_PASSWORD = new Label(new GlobalizedMessage( + "ui.admin.user.userpasswordform.passwordlabel", + BUNDLE_NAME)); - Label PASSWORD_FORM_LABEL_PASSWORD = new Label - (new GlobalizedMessage("ui.admin.user.userpasswordform.passwordlabel", - BUNDLE_NAME)); + Label PASSWORD_FORM_LABEL_CONFIRMATION_PASSWORD = new Label(new GlobalizedMessage( + "ui.admin.user.userpasswordform.confirmpasswordlabel", + BUNDLE_NAME)); - Label PASSWORD_FORM_LABEL_CONFIRMATION_PASSWORD = new Label - (new GlobalizedMessage("ui.admin.user.userpasswordform.confirmpasswordlabel", - BUNDLE_NAME)); - - Label PASSWORD_FORM_LABEL_QUESTION = new Label - (new GlobalizedMessage("ui.admin.user.userpasswordform.question", - BUNDLE_NAME), false); - - Label PASSWORD_FORM_LABEL_ANSWER = new Label - (new GlobalizedMessage("ui.admin.user.userpasswordform.answer", - BUNDLE_NAME), false); - - GlobalizedMessage PASSWORD_FORM_SUBMIT = - new GlobalizedMessage("ui.admin.user.userpasswordform.submit", - BUNDLE_NAME); + Label PASSWORD_FORM_LABEL_QUESTION = new Label(new GlobalizedMessage( + "ui.admin.user.userpasswordform.question", + BUNDLE_NAME), false); + Label PASSWORD_FORM_LABEL_ANSWER = new Label(new GlobalizedMessage( + "ui.admin.user.userpasswordform.answer", + BUNDLE_NAME), false); + GlobalizedMessage PASSWORD_FORM_SUBMIT = new GlobalizedMessage( + "ui.admin.user.userpasswordform.submit", + BUNDLE_NAME); /** * Constants for user add/edit form. */ - String USER_FORM_ADD = "user-add-form"; String USER_FORM_EDIT = "user-edit-form"; - String USER_FORM_INPUT_FIRST_NAME="firstname"; - String USER_FORM_INPUT_LAST_NAME="lastname"; - String USER_FORM_INPUT_PASSWORD="password"; - String USER_FORM_INPUT_PASSWORD_CONFIRMATION="password_confirmation"; - String USER_FORM_INPUT_QUESTION="question"; - String USER_FORM_INPUT_ANSWER="answer"; - String USER_FORM_INPUT_PRIMARY_EMAIL="email"; - String USER_FORM_INPUT_ADDITIONAL_EMAIL="additional_email"; - String USER_FORM_INPUT_SCREEN_NAME="screenname"; - String USER_FORM_INPUT_SSO="sso_login"; - String USER_FORM_INPUT_URL="url"; - String USER_FORM_INPUT_URL_DEFAULT="http://"; + String USER_FORM_INPUT_FIRST_NAME = "firstname"; + String USER_FORM_INPUT_LAST_NAME = "lastname"; + String USER_FORM_INPUT_PASSWORD = "password"; + String USER_FORM_INPUT_PASSWORD_CONFIRMATION = "password_confirmation"; + String USER_FORM_INPUT_QUESTION = "question"; + String USER_FORM_INPUT_ANSWER = "answer"; + String USER_FORM_INPUT_PRIMARY_EMAIL = "email"; + String USER_FORM_INPUT_ADDITIONAL_EMAIL = "additional_email"; + String USER_FORM_INPUT_SCREEN_NAME = "screenname"; + String USER_FORM_INPUT_SSO = "sso_login"; + String USER_FORM_INPUT_URL = "url"; + String USER_FORM_INPUT_URL_DEFAULT = "http://"; - Label USER_FORM_LABEL_FIRST_NAME = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.firstname", - BUNDLE_NAME)); + Label USER_FORM_LABEL_FIRST_NAME = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.firstname", + BUNDLE_NAME)); - Label USER_FORM_LABEL_LAST_NAME = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.lastname", - BUNDLE_NAME)); + Label USER_FORM_LABEL_LAST_NAME = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.lastname", + BUNDLE_NAME)); - Label USER_FORM_LABEL_PASSWORD = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.password", - BUNDLE_NAME)); + Label USER_FORM_LABEL_PASSWORD = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.password", + BUNDLE_NAME)); - Label USER_FORM_LABEL_PASSWORD_CONFIRMATION = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.confirmation", - BUNDLE_NAME)); + Label USER_FORM_LABEL_PASSWORD_CONFIRMATION = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.confirmation", + BUNDLE_NAME)); - Label USER_FORM_LABEL_QUESTION = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.question", - BUNDLE_NAME)); + Label USER_FORM_LABEL_QUESTION = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.question", + BUNDLE_NAME)); - Label USER_FORM_LABEL_ANSWER = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.answer", - BUNDLE_NAME)); + Label USER_FORM_LABEL_ANSWER = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.answer", + BUNDLE_NAME)); - Label USER_FORM_LABEL_PRIMARY_EMAIL = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.primaryemail", - BUNDLE_NAME)); + Label USER_FORM_LABEL_PRIMARY_EMAIL = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.primaryemail", + BUNDLE_NAME)); - Label USER_FORM_LABEL_ADDITIONAL_EMAIL = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.additionalemail", - BUNDLE_NAME)); + Label USER_FORM_LABEL_ADDITIONAL_EMAIL = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.additionalemail", + BUNDLE_NAME)); - Label USER_FORM_LABEL_ADDITIONAL_EMAIL_LIST = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.additionalemaillist", - BUNDLE_NAME)); + Label USER_FORM_LABEL_ADDITIONAL_EMAIL_LIST = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.additionalemaillist", + BUNDLE_NAME)); - Label USER_FORM_LABEL_SCREEN_NAME = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.screenname", - BUNDLE_NAME)); + Label USER_FORM_LABEL_SCREEN_NAME = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.screenname", + BUNDLE_NAME)); - Label USER_FORM_LABEL_SSO = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.ssologinname", - BUNDLE_NAME)); + Label USER_FORM_LABEL_SSO = new Label(new GlobalizedMessage( + "ui.admin.user.addeditform.ssologinname", + BUNDLE_NAME)); - Label USER_FORM_LABEL_URL = new Label - (new GlobalizedMessage("ui.admin.user.addeditform.url", - BUNDLE_NAME)); + Label USER_FORM_LABEL_URL = new Label(new GlobalizedMessage("ui.admin.user.addeditform.url", + BUNDLE_NAME)); Label USER_FORM_DELETE_ADDITIONAL_EMAIL = new Label( - new GlobalizedMessage("ui.admin.user.addeditform.deleteemail", - BUNDLE_NAME)); + new GlobalizedMessage("ui.admin.user.addeditform.deleteemail", + BUNDLE_NAME)); - GlobalizedMessage USER_FORM_SUBMIT = - new GlobalizedMessage("ui.admin.user.addeditform.submit", - BUNDLE_NAME); + GlobalizedMessage USER_FORM_SUBMIT = new GlobalizedMessage("ui.admin.user.addeditform.submit", + BUNDLE_NAME); - GlobalizedMessage USER_FORM_ERROR_SCREEN_NAME_NOT_UNIQUE = - new GlobalizedMessage("ui.admin.user.addeditform.error.screenname.notunique", - BUNDLE_NAME); + GlobalizedMessage USER_FORM_ERROR_SCREEN_NAME_NOT_UNIQUE = new GlobalizedMessage( + "ui.admin.user.addeditform.error.screenname.notunique", + BUNDLE_NAME); - GlobalizedMessage USER_FORM_ERROR_PRIMARY_EMAIL_NOT_UNIQUE = - new GlobalizedMessage("ui.admin.user.addeditform.error.primaryemail.notunique", - BUNDLE_NAME); + GlobalizedMessage USER_FORM_ERROR_PRIMARY_EMAIL_NOT_UNIQUE = new GlobalizedMessage( + "ui.admin.user.addeditform.error.primaryemail.notunique", + BUNDLE_NAME); - GlobalizedMessage USER_FORM_ERROR_PASSWORD_NOT_MATCH = - new GlobalizedMessage("ui.admin.user.addeditform.error.password.notmatch", - BUNDLE_NAME); + GlobalizedMessage USER_FORM_ERROR_PASSWORD_NOT_MATCH = new GlobalizedMessage( + "ui.admin.user.addeditform.error.password.notmatch", + BUNDLE_NAME); - GlobalizedMessage USER_FORM_ERROR_ANSWER_NULL = - new GlobalizedMessage("ui.admin.user.addeditform.error.answer.null", - BUNDLE_NAME); - - GlobalizedMessage USER_FORM_ERROR_ANSWER_WHITESPACE = - new GlobalizedMessage("ui.admin.user.addeditform.error.answer.whitespace", - BUNDLE_NAME); + GlobalizedMessage USER_FORM_ERROR_ANSWER_NULL = new GlobalizedMessage( + "ui.admin.user.addeditform.error.answer.null", + BUNDLE_NAME); + GlobalizedMessage USER_FORM_ERROR_ANSWER_WHITESPACE = new GlobalizedMessage( + "ui.admin.user.addeditform.error.answer.whitespace", + BUNDLE_NAME); /** * Constants for group add/edit form. */ - - String GROUP_FORM_ADD = "group-add-form"; - String GROUP_FORM_EDIT = "group-edit-form"; - String GROUP_FORM_INPUT_NAME = "name"; + String GROUP_FORM_ADD = "group-add-form"; + String GROUP_FORM_EDIT = "group-edit-form"; + String GROUP_FORM_INPUT_NAME = "name"; String GROUP_FORM_INPUT_PRIMARY_EMAIL = "email"; - Label GROUP_FORM_LABEL_NAME = new Label - (new GlobalizedMessage("ui.admin.groups.addeditform.namelabel", - BUNDLE_NAME)); + Label GROUP_FORM_LABEL_NAME = new Label(new GlobalizedMessage( + "ui.admin.groups.addeditform.namelabel", + BUNDLE_NAME)); - Label GROUP_FORM_LABEL_PRIMARY_EMAIL = new Label - (new GlobalizedMessage("ui.admin.groups.addeditform.primaryemaillabel", - BUNDLE_NAME)); + Label GROUP_FORM_LABEL_PRIMARY_EMAIL = new Label(new GlobalizedMessage( + "ui.admin.groups.addeditform.primaryemaillabel", + BUNDLE_NAME)); - GlobalizedMessage GROUP_FORM_SUBMIT = new GlobalizedMessage - ("ui.admin.groups.addeditform.submit", BUNDLE_NAME); + GlobalizedMessage GROUP_FORM_SUBMIT + = new GlobalizedMessage("ui.admin.groups.addeditform.submit", BUNDLE_NAME); /** * Constants for group administration tab. */ - Label GROUP_ACTION_CONTINUE = new Label - (new GlobalizedMessage("ui.admin.groups.actioncontinue", - BUNDLE_NAME)); + Label GROUP_ACTION_CONTINUE = new Label(new GlobalizedMessage("ui.admin.groups.actioncontinue", + BUNDLE_NAME)); - GlobalizedMessage GROUP_DELETE_FAILED_MSG = - new GlobalizedMessage("ui.admin.groups.groupdeletefailed", - BUNDLE_NAME); + GlobalizedMessage GROUP_DELETE_FAILED_MSG = new GlobalizedMessage( + "ui.admin.groups.groupdeletefailed", + BUNDLE_NAME); - Label GROUP_INFORMATION_HEADER= new Label - (new GlobalizedMessage("ui.admin.groups.groupinformation", - BUNDLE_NAME)); + Label GROUP_INFORMATION_HEADER = new Label(new GlobalizedMessage( + "ui.admin.groups.groupinformation", + BUNDLE_NAME)); - Label SUBGROUP_HEADER = new Label - (new GlobalizedMessage("ui.admin.groups.subgroups", - BUNDLE_NAME)); + Label SUBGROUP_HEADER = new Label(new GlobalizedMessage("ui.admin.groups.subgroups", + BUNDLE_NAME)); - Label GROUP_EDIT_HEADER = new Label - (new GlobalizedMessage("ui.admin.groups.groupedit", - BUNDLE_NAME)); - Label ADD_SUBGROUP_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.add", - BUNDLE_NAME)); + Label GROUP_EDIT_HEADER = new Label(new GlobalizedMessage("ui.admin.groups.groupedit", + BUNDLE_NAME)); + Label ADD_SUBGROUP_LABEL = new Label(new GlobalizedMessage("ui.admin.groups.add", + BUNDLE_NAME)); - Label SUBMEMBER_HEADER = new Label - (new GlobalizedMessage("ui.admin.groups.submembers", - BUNDLE_NAME)); + Label SUBMEMBER_HEADER = new Label(new GlobalizedMessage("ui.admin.groups.submembers", + BUNDLE_NAME)); - Label DELETE_GROUP_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.delete", - BUNDLE_NAME)); + Label DELETE_GROUP_LABEL = new Label(new GlobalizedMessage("ui.admin.groups.delete", + BUNDLE_NAME)); - Label GROUP_EXTREME_ACTIONS_HEADER = new Label - (new GlobalizedMessage("ui.admin.groups.extremeaction", - BUNDLE_NAME)); + Label GROUP_EXTREME_ACTIONS_HEADER = new Label(new GlobalizedMessage( + "ui.admin.groups.extremeaction", + BUNDLE_NAME)); - Label GROUP_DELETE_FAILED_HEADER = new Label - (new GlobalizedMessage("ui.admin.groups.deletefailed", - BUNDLE_NAME)); + Label GROUP_DELETE_FAILED_HEADER = new Label(new GlobalizedMessage( + "ui.admin.groups.deletefailed", + BUNDLE_NAME)); - Label ADD_GROUP_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.addgrouplabel", - BUNDLE_NAME)); - Label EDIT_GROUP_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.edit", - BUNDLE_NAME)); + Label ADD_GROUP_LABEL = new Label(new GlobalizedMessage("ui.admin.groups.addgrouplabel", + BUNDLE_NAME)); + Label EDIT_GROUP_LABEL = new Label(new GlobalizedMessage("ui.admin.groups.edit", + BUNDLE_NAME)); - Label SUBGROUP_COUNT_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.subgroupcountlabel", - BUNDLE_NAME)); - String GROUP_DELETE_CONFIRMATION = - "Are you sure you want to delete this group?"; + Label SUBGROUP_COUNT_LABEL = new Label(new GlobalizedMessage( + "ui.admin.groups.subgroupcountlabel", + BUNDLE_NAME)); + String GROUP_DELETE_CONFIRMATION = "Are you sure you want to delete this group?"; - Label ADD_SUBMEMBER_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.addsubmemberlabel", - BUNDLE_NAME)); + Label ADD_SUBMEMBER_LABEL = new Label(new GlobalizedMessage("ui.admin.groups.addsubmemberlabel", + BUNDLE_NAME)); - Label REMOVE_SUBMEMBER_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.removesubmemberlabel", - BUNDLE_NAME)); - Label ADD_EXISTING_GROUP_TO_SUBGROUPS_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.addExisting", - BUNDLE_NAME)); + Label REMOVE_SUBMEMBER_LABEL = new Label(new GlobalizedMessage( + "ui.admin.groups.removesubmemberlabel", + BUNDLE_NAME)); + Label ADD_EXISTING_GROUP_TO_SUBGROUPS_LABEL = new Label(new GlobalizedMessage( + "ui.admin.groups.addExisting", + BUNDLE_NAME)); - Label REMOVE_SUBGROUP_LABEL = new Label - (new GlobalizedMessage("ui.admin.groups.removeExisting", - BUNDLE_NAME)); + Label REMOVE_SUBGROUP_LABEL = new Label(new GlobalizedMessage("ui.admin.groups.removeExisting", + BUNDLE_NAME)); - Label GROUP_SEARCH_LABEL = new Label(new GlobalizedMessage - ("ui.admin.groups.search", BUNDLE_NAME)); + Label GROUP_SEARCH_LABEL = new Label( + new GlobalizedMessage("ui.admin.groups.search", BUNDLE_NAME)); - GlobalizedMessage SEARCH_BUTTON = new GlobalizedMessage - ("ui.admin.groups.button.search", BUNDLE_NAME); + GlobalizedMessage SEARCH_BUTTON = new GlobalizedMessage("ui.admin.groups.button.search", + BUNDLE_NAME); - Label GROUP_NO_RESULTS = new Label(new GlobalizedMessage - ("ui.admin.groups.searchForm.noResults", BUNDLE_NAME)); + Label GROUP_NO_RESULTS = new Label(new GlobalizedMessage("ui.admin.groups.searchForm.noResults", + BUNDLE_NAME)); - Label FOUND_GROUPS_TITLE = new Label(new GlobalizedMessage - ("ui.admin.groups.found.title",BUNDLE_NAME)); + Label FOUND_GROUPS_TITLE = new Label(new GlobalizedMessage("ui.admin.groups.found.title", + BUNDLE_NAME)); - Label PICK_GROUPS = new Label(new GlobalizedMessage - ("ui.admin.groups.select.explanation", BUNDLE_NAME)); + Label PICK_GROUPS = new Label(new GlobalizedMessage("ui.admin.groups.select.explanation", + BUNDLE_NAME)); - GlobalizedMessage SAVE_BUTTON = new GlobalizedMessage - ("ui.admin.save", BUNDLE_NAME); + GlobalizedMessage SAVE_BUTTON = new GlobalizedMessage("ui.admin.save", BUNDLE_NAME); String SEARCH_QUERY = "query"; diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminResources.properties b/ccm-core/src/com/arsdigita/ui/admin/AdminResources.properties index c04670af6..6b4a99668 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminResources.properties +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminResources.properties @@ -138,3 +138,13 @@ ui.admin.groups.name=Name: ui.admin.applications.placeholder=There is no administration panel for instances of this application type yet. ui.admin.cancel=Cancel ui.admin.cancel_msg=Submission cancelled +ui.admin.tab.sysinfo.title=System information +ui.admin.sysinfo.appinfo=About +ui.admin.sysinfo.java_system_properties=Java system properties +ui.admin.sysinfo.xml_transformer_factory=XML Transformer Factory +ui.admin.sysinfo.xml_transformer=XML Transformer +ui.admin.sysinfo.xml_document_builder_factory=XML Document Builder Factory +ui.admin.sysinfo.xml_document_builder=XML Document Builder +ui.admin.sysinfo.sax_parser_factory=SAX Parser Factory +ui.admin.sysinfo.sax_parser=SAX Parser +ui.admin.sysinfo.xml_config=XML config diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminResources_de.properties b/ccm-core/src/com/arsdigita/ui/admin/AdminResources_de.properties index 6e85a9e71..a74702992 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminResources_de.properties +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminResources_de.properties @@ -138,3 +138,13 @@ ui.admin.groups.name=Name: ui.admin.applications.placeholder=F\u00fcr Applikationen dieses Typs gibt es noch keine Verwaltungsoberfl\u00e4che. ui.admin.cancel=Abbrechen ui.admin.cancel_msg=Bearbeitung abgebrochen +ui.admin.tab.sysinfo.title=Systeminformationen +ui.admin.sysinfo.appinfo=\u00dcber +ui.admin.sysinfo.java_system_properties=Java System Properties +ui.admin.sysinfo.xml_transformer_factory=XML Transformer Factory +ui.admin.sysinfo.xml_transformer=XML Transformer +ui.admin.sysinfo.xml_document_builder_factory=XML Document Builder Factory +ui.admin.sysinfo.xml_document_builder=XML Document Builder +ui.admin.sysinfo.sax_parser_factory=SAX Parser Factory +ui.admin.sysinfo.sax_parser=SAX Parser +ui.admin.sysinfo.xml_config=XML Konfiguration diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminResources_en.properties b/ccm-core/src/com/arsdigita/ui/admin/AdminResources_en.properties index 0439feb5f..3a7abcb1a 100755 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminResources_en.properties +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminResources_en.properties @@ -138,3 +138,13 @@ ui.admin.groups.name= ui.admin.applications.placeholder= ui.admin.cancel=Cancel ui.admin.cancel_msg=Submission cancelled +ui.admin.tab.sysinfo.title= +ui.admin.sysinfo.appinfo= +ui.admin.sysinfo.java_system_properties= +ui.admin.sysinfo.xml_transformer_factory= +ui.admin.sysinfo.xml_transformer= +ui.admin.sysinfo.xml_document_builder_factory= +ui.admin.sysinfo.xml_document_builder= +ui.admin.sysinfo.sax_parser_factory= +ui.admin.sysinfo.sax_parser= +ui.admin.sysinfo.xml_config= diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminResources_fr.properties b/ccm-core/src/com/arsdigita/ui/admin/AdminResources_fr.properties index c2bd53332..d219f65da 100755 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminResources_fr.properties +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminResources_fr.properties @@ -124,3 +124,13 @@ ui.admin.groups.name= ui.admin.applications.placeholder= ui.admin.cancel=Cancel ui.admin.cancel_msg=Submission cancelled +ui.admin.tab.sysinfo.title= +ui.admin.sysinfo.appinfo= +ui.admin.sysinfo.java_system_properties= +ui.admin.sysinfo.xml_transformer_factory= +ui.admin.sysinfo.xml_transformer= +ui.admin.sysinfo.xml_document_builder_factory= +ui.admin.sysinfo.xml_document_builder= +ui.admin.sysinfo.sax_parser_factory= +ui.admin.sysinfo.sax_parser= +ui.admin.sysinfo.xml_config= diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java b/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java index 43212359a..fc412e830 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java @@ -189,6 +189,9 @@ public class AdminServlet extends BaseApplicationServlet implements AdminConstan // browsePane.setTabbedPane(tabbedPane); // browsePane.setGroupAdministrationTab(groupAdminTab); + //Add System information tab + tabbedPane.addTab(SYSINFO_TAB_TITLE, new SystemInformationTab()); + page.add(tabbedPane); page.lock(); diff --git a/ccm-core/src/com/arsdigita/ui/admin/SystemInformationTab.java b/ccm-core/src/com/arsdigita/ui/admin/SystemInformationTab.java new file mode 100644 index 000000000..4ff0f5ad6 --- /dev/null +++ b/ccm-core/src/com/arsdigita/ui/admin/SystemInformationTab.java @@ -0,0 +1,288 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */package com.arsdigita.ui.admin; + +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.PropertySheet; +import com.arsdigita.bebop.PropertySheetModel; +import com.arsdigita.bebop.PropertySheetModelBuilder; +import com.arsdigita.bebop.SegmentedPanel; +import com.arsdigita.globalization.GlobalizedMessage; +import com.arsdigita.toolbox.ui.LayoutPanel; +import com.arsdigita.util.LockableImpl; +import com.arsdigita.util.SystemInformation; +import java.util.Enumeration; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParserFactory; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerFactory; +import org.xml.sax.SAXException; + +/** + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class SystemInformationTab extends LayoutPanel implements AdminConstants { + + public SystemInformationTab() { + super(); + + final SegmentedPanel panel = new SegmentedPanel(); + + panel.addSegment(new Label(GlobalizationUtil.globalize("ui.admin.sysinfo.appinfo")), + new PropertySheet(new CCMSysInfoPropertySheetModelBuilder())); + + panel.addSegment(new Label(GlobalizationUtil.globalize( + "ui.admin.sysinfo.java_system_properties")), + new PropertySheet(new JavaSystemPropertiesSheetModelBuilder())); + + panel.addSegment(new Label(GlobalizationUtil.globalize("ui.admin.sysinfo.xml_config")), + new PropertySheet(new XMLConfigSheetModelBuilder())); + + setRight(panel); + } + + private class CCMSysInfoPropertySheetModelBuilder + extends LockableImpl + implements PropertySheetModelBuilder { + + public CCMSysInfoPropertySheetModelBuilder() { + super(); + } + + @Override + public PropertySheetModel makeModel(final PropertySheet sheet, final PageState state) { + return new CCMSysInfoPropertySheetModel(); + } + + } + + private class CCMSysInfoPropertySheetModel implements PropertySheetModel { + + private final SystemInformation sysInfo; + private final Iterator> sysInfoIterator; + private Map.Entry currentProperty; + + public CCMSysInfoPropertySheetModel() { + sysInfo = SystemInformation.getInstance(); + sysInfoIterator = sysInfo.iterator(); + } + + @Override + public boolean nextRow() { + final boolean result = sysInfoIterator.hasNext(); + if (result) { + currentProperty = sysInfoIterator.next(); + } + return result; + + } + + @Override + public String getLabel() { + if (currentProperty == null) { + return null; + } else { + return currentProperty.getKey(); + } + } + + @Override + public GlobalizedMessage getGlobalizedLabel() { + return GlobalizationUtil.globalize(currentProperty.getKey()); + } + + @Override + public String getValue() { + return currentProperty.getValue(); + } + + } + + private class JavaSystemPropertiesSheetModelBuilder + extends LockableImpl + implements PropertySheetModelBuilder { + + public JavaSystemPropertiesSheetModelBuilder() { + super(); + } + + @Override + public PropertySheetModel makeModel(final PropertySheet sheet, final PageState state) { + return new JavaSystemPropertiesSheetModel(); + } + + } + + private class JavaSystemPropertiesSheetModel implements PropertySheetModel { + + private final Properties systemProperties; + private final Enumeration enumeration; + private Object currentElement; + + public JavaSystemPropertiesSheetModel() { + systemProperties = System.getProperties(); + enumeration = systemProperties.propertyNames(); + } + + @Override + public boolean nextRow() { + final boolean result = enumeration.hasMoreElements(); + if (result) { + currentElement = enumeration.nextElement(); + } + return result; + } + + @Override + public String getLabel() { + return currentElement.toString(); + } + + @Override + public GlobalizedMessage getGlobalizedLabel() { + return GlobalizationUtil.globalize(currentElement.toString()); + } + + @Override + public String getValue() { + return systemProperties.getProperty(currentElement.toString()); + } + + } + + private class XMLConfigSheetModelBuilder + extends LockableImpl + implements PropertySheetModelBuilder { + + public XMLConfigSheetModelBuilder() { + super(); + } + + @Override + public PropertySheetModel makeModel(final PropertySheet sheet, final PageState state) { + return new XMLConfigSheetModel(); + } + + } + + private class XMLConfigSheetModel implements PropertySheetModel { + + private static final int TRANSFORMER_FACTORY_INDEX = 0; + private static final int TRANSFORMER_INDEX = 1; + private static final int DOCUMENT_BUILDER_FACTORY_INDEX = 2; + private static final int DOCUMENT_BUILDER_INDEX = 3; + private static final int SAX_PARSER_FACTORY_INDEX = 4; + private static final int SAX_PARSER_INDEX = 5; + private int currentIndex = -1; + + public XMLConfigSheetModel() { + //Nothing + } + + @Override + public boolean nextRow() { + currentIndex++; + return currentIndex <= SAX_PARSER_INDEX; + } + + @Override + public String getLabel() { + switch (currentIndex) { + case TRANSFORMER_FACTORY_INDEX: + return "XML Transformer Factory"; + case TRANSFORMER_INDEX: + return "XML Transformer"; + case DOCUMENT_BUILDER_FACTORY_INDEX: + return "XML Document Builder Factory"; + case DOCUMENT_BUILDER_INDEX: + return "XML Document Builder"; + case SAX_PARSER_FACTORY_INDEX: + return "SAX Parser Factory"; + case SAX_PARSER_INDEX: + return "SAX Parser"; + default: + return ""; + } + } + + @Override + public GlobalizedMessage getGlobalizedLabel() { + switch (currentIndex) { + case TRANSFORMER_FACTORY_INDEX: + return GlobalizationUtil.globalize("ui.admin.sysinfo.xml_transformer_factory"); + case TRANSFORMER_INDEX: + return GlobalizationUtil.globalize("ui.admin.sysinfo.xml_transformer"); + case DOCUMENT_BUILDER_FACTORY_INDEX: + return GlobalizationUtil.globalize( + "ui.admin.sysinfo.xml_document_builder_factory"); + case DOCUMENT_BUILDER_INDEX: + return GlobalizationUtil.globalize("ui.admin.sysinfo.xml_document_builder"); + case SAX_PARSER_FACTORY_INDEX: + return GlobalizationUtil.globalize("ui.admin.sysinfo.sax_parser_factory"); + case SAX_PARSER_INDEX: + return GlobalizationUtil.globalize("ui.admin.sysinfo.sax_parser"); + default: + return GlobalizationUtil.globalize("unknown"); + } + } + + @Override + public String getValue() { + switch (currentIndex) { + case TRANSFORMER_FACTORY_INDEX: + return TransformerFactory.newInstance().getClass().getName(); + case TRANSFORMER_INDEX: + try { + return TransformerFactory.newInstance().newTransformer().getClass().getName(); + } catch(TransformerConfigurationException ex) { + return "???"; + } + case DOCUMENT_BUILDER_FACTORY_INDEX: + return DocumentBuilderFactory.newInstance().getClass().getName(); + case DOCUMENT_BUILDER_INDEX: + try{ + return DocumentBuilderFactory.newInstance().newDocumentBuilder().getClass() + .getName(); + } catch(ParserConfigurationException ex) { + return "???"; + } + case SAX_PARSER_FACTORY_INDEX: + return SAXParserFactory.newInstance().getClass().getName(); + case SAX_PARSER_INDEX: + try { + return SAXParserFactory.newInstance().newSAXParser().getClass().getName(); + } catch(ParserConfigurationException ex) { + return "???"; + } catch(SAXException ex) { + return "???"; + } + default: + return ""; + } + } + + } + +} diff --git a/ccm-core/src/com/arsdigita/ui/admin/applications/ApplicationInstancePropertySheetModel.java b/ccm-core/src/com/arsdigita/ui/admin/applications/ApplicationInstancePropertySheetModel.java index 9c5eb17e5..e7dd9e126 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/applications/ApplicationInstancePropertySheetModel.java +++ b/ccm-core/src/com/arsdigita/ui/admin/applications/ApplicationInstancePropertySheetModel.java @@ -48,7 +48,7 @@ public class ApplicationInstancePropertySheetModel implements PropertySheetModel @Override public boolean nextRow() { currentIndex++; - return currentIndex < INST_DESC; + return currentIndex <= INST_DESC; } @Override