📄 propertiesaction.java
字号:
pf.setInput(mapping.getInput());
pf.setSelectedCategory(selectedCategory);
rebuildItems(parentCategory, pf, request, session.getUser());
// Load the propert items
return mapping.findForward("display");
}
public ActionForward configureProfiles(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward("configureProfiles");
}
public ActionForward changeSelectedCategory(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
if (log.isDebugEnabled())
log.debug("Storing properties");
DefaultPropertiesForm f = (DefaultPropertiesForm) form;
f.storeItems();
User user = isSetupMode() ? null : CoreServlet.getServlet().getLogonController().getUser((HttpServletRequest) request);
f.setSelectedCategory(f.getNewSelectedCategory());
f.setNewSelectedCategory(-1);
rebuildItems(f.getParentCategory(), f, request, user);
return mapping.findForward("display");
}
public ActionForward cancel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
DefaultPropertiesForm pf = (DefaultPropertiesForm) form;
User user = isSetupMode() ? null : CoreServlet.getServlet().getLogonController().getUser((HttpServletRequest) request);
pf.setSelectedCategory(-1);
pf.clearValues();
int newCategory = pf.popCategory();
pf.setParentCategory(newCategory);
rebuildItems(newCategory, pf, request, user);
return mapping.findForward("display");
}
public ActionForward displayCategory(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
DefaultPropertiesForm pf = (DefaultPropertiesForm) form;
User user = isSetupMode() ? null : CoreServlet.getServlet().getLogonController().getUser((HttpServletRequest) request);
pf.setSelectedCategory(-1);
pf.pushCategory(pf.getParentCategory());
pf.setParentCategory(pf.getNewSelectedCategory());
pf.setNewSelectedCategory(-1);
rebuildItems(pf.getParentCategory(), pf, request, user);
return mapping.findForward("display");
}
public ActionForward commit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
throws Exception {
if (log.isDebugEnabled())
log.debug("Commiting properties");
DefaultPropertiesForm f = (DefaultPropertiesForm) form;
f.storeItems();
ActionMessages errors = new ActionMessages();
if (!((PropertiesForm) form).getEnabled()) {
throw new Exception("You may not save a global property profile here.");
}
User user = isSetupMode() ? null : CoreServlet.getServlet().getLogonController().getUser((HttpServletRequest) request);
SessionInfo session = getSessionInfo();
PropertyProfile profile = CoreServlet.getServlet().getPropertyDatabase().getPropertyProfile(f.getSelectedPropertyProfile());
//
if (f.getProfileScope().equals(Constants.SCOPE_SETUP)) {
PolicyUtil.checkPermission(PolicyConstants.SYSTEM_CONFIGURATION_RESOURCE_TYPE,
PolicyConstants.PERM_CHANGE, request);
}
else if (f.getProfileScope().equals(Constants.SCOPE_PERSONAL)) {
ResourceUtil.checkResourceManagementRights(profile, session, PolicyConstants.PERM_CHANGE);
}
// TODO BPS - 17/02/06 - this validation should be moved to the form - im not sure why its not there
if (log.isDebugEnabled())
log.debug("Validiting input");
for (Iterator i = f.storedItems(); i.hasNext();) {
PropertyItem item = (PropertyItem) i.next();
if (item.getDefinition().getType() == PropertyDefinition.TYPE_INTEGER
|| item.getDefinition().getType() == PropertyDefinition.TYPE_TIME_IN_MS) {
try {
Integer.parseInt(item.getPropertyValue().toString());
} catch (NumberFormatException nfe) {
String mrk = item.getMessageResourcesKey();
errors.add(Globals.ERROR_KEY, new ActionMessage("error.integerRequired", getResources(request,
mrk == null ? "properties" : mrk).getMessage(item.getName() + ".name")));
}
}
}
saveErrors(request, errors);
if (errors.size() == 0) {
for (Iterator i = f.storedItems(); i.hasNext();) {
PropertyItem item = (PropertyItem) i.next();
PropertyDefinition def = item.getDefinition();
String val = null;
val = String.valueOf(item.getPropertyValue());
if (log.isDebugEnabled())
log.debug("Setting '" + def.getName() + "' to '" + val + "'");
String propertyUser = f.getProfileScope().equals(Constants.SCOPE_PERSONAL) ? user.getPrincipalName() : "";
PropertyUtil.getPropertyUtil().setProperty(f.getSelectedPropertyProfile(), propertyUser, def.getName(), val,
session);
}
CoreUtil.resetMainNavigation(request.getSession());
ActionMessages messages = new ActionMessages();
messages.add(Globals.MESSAGES_KEY, new ActionMessage("message.propertiesSaved"));
saveMessages(request, messages);
}
f.clearValues();
if (errors.size() != 0) {
ActionForward forward = new ActionForward(f.getInput(), false);
return forward;
}
if (f.getForwardTo() != null && !f.getForwardTo().equals("")) {
return new ActionForward(f.getForwardTo(), f.isRedirect());
} else {
// return mapping.findForward("display");
return cancel(mapping, form, request, response);
}
}
protected String getMethodName(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response, String parameter) throws Exception {
return request.getParameter("actionTarget");
}
protected void rebuildItems(int parentCategory, DefaultPropertiesForm pf, HttpServletRequest request, User user)
throws Exception {
List categoryDefinitions = new ArrayList();
List subCategories = new ArrayList();
PropertyDefinitionCategory category = CoreServlet.getServlet().getPropertyDatabase().getPropertyDefinitionCategory(
parentCategory);
if (category == null) {
throw new Exception("No category with ID of " + parentCategory);
}
for (Iterator i = category.categories(); i.hasNext();) {
PropertyDefinitionCategory def = (PropertyDefinitionCategory) i.next();
if (def.size() > 0) {
subCategories.add(def);
} else {
categoryDefinitions.add(def);
if (pf.getSelectedCategory() == -1) {
pf.setSelectedCategory(def.getId());
}
}
}
pf.setParentCategory(parentCategory);
pf.setSubCategories(subCategories);
List propertyItems = new ArrayList();
List propertyDefinitions = CoreServlet.getServlet().getPropertyDatabase().getPropertyDefinitions(pf.getProfileScope());
for (Iterator i = propertyDefinitions.iterator(); i.hasNext();) {
PropertyDefinition def = (PropertyDefinition) i.next();
if (!def.isHidden() && (pf.getSelectedPropertyProfile() == 0 || (pf.getSelectedPropertyProfile() > 0 && def.getVisibility() == PropertyDefinition.PROFILE))
&& def.getCategory() == pf.getSelectedCategory()) {
String propertyUser = pf.getProfileScope().equals(Constants.SCOPE_PERSONAL) ? user.getPrincipalName() : "";
String val = CoreServlet.getServlet().getPropertyDatabase().getProperty(pf.getSelectedPropertyProfile(),
propertyUser, def.getName());
propertyItems.add(pf.retrieveItem(def.getName(), new PropertyItem(this, request, def, val)));
}
}
if(propertyDefinitions.size() == 0) {
throw new Exception("No property definitions for this category.");
}
PropertyItem[] items = new PropertyItem[propertyItems.size()];
propertyItems.toArray(items);
pf.setPropertyItems(items);
pf.setCategoryDefinitions(categoryDefinitions);
}
public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
return (Constants.SCOPE_GLOBAL.equals(((DefaultPropertiesForm) form).getProfileScope()) && ((PropertiesForm) form)
.getEnabled()) ? SessionInfo.MANAGEMENT_CONSOLE_CONTEXT
: (SessionInfo.MANAGEMENT_CONSOLE_CONTEXT | SessionInfo.USER_CONSOLE_CONTEXT);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -