Changed language como for listbox with mold select.
FEA: ItEr75S07UserSettings
This commit is contained in:
parent
cbf91d069d
commit
4257197149
4 changed files with 31 additions and 55 deletions
|
|
@ -20,7 +20,6 @@ package org.navalplanner.web.users;
|
|||
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.users.entities.Language;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
|
||||
/**
|
||||
* Model for UI operations related to user settings
|
||||
|
|
@ -34,12 +33,8 @@ public interface ISettingsModel {
|
|||
|
||||
Language getApplicationLanguage();
|
||||
|
||||
User findByLoginUser(String login);
|
||||
|
||||
void initEdit(User user);
|
||||
void initEditLoggedUser();
|
||||
|
||||
void confirmSave() throws ValidationException;
|
||||
|
||||
User getUser();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,16 +25,13 @@ import org.apache.commons.logging.Log;
|
|||
import org.apache.commons.logging.LogFactory;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.users.entities.Language;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
import org.navalplanner.web.common.ConfigurationController;
|
||||
import org.navalplanner.web.common.IMessagesForUser;
|
||||
import org.navalplanner.web.common.Level;
|
||||
import org.navalplanner.web.common.MessagesForUser;
|
||||
import org.navalplanner.web.security.SecurityUtils;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||
import org.zkoss.zul.Combobox;
|
||||
import org.zkoss.zul.Comboitem;
|
||||
import org.zkoss.zul.ListitemRenderer;
|
||||
|
||||
/**
|
||||
* Controller for user settings
|
||||
|
|
@ -51,45 +48,33 @@ public class SettingsController extends GenericForwardComposer {
|
|||
|
||||
private Component messagesContainer;
|
||||
|
||||
private Combobox applicationLanguage;
|
||||
|
||||
private ISettingsModel settingsModel;
|
||||
|
||||
public static ListitemRenderer languagesRenderer = new ListitemRenderer() {
|
||||
@Override
|
||||
public void render(org.zkoss.zul.Listitem item, Object data)
|
||||
throws Exception {
|
||||
Language language = (Language) data;
|
||||
item.setLabel(language.getDisplayName());
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception {
|
||||
super.doAfterCompose(comp);
|
||||
comp.setVariable("settingsController", this, true);
|
||||
messages = new MessagesForUser(messagesContainer);
|
||||
|
||||
User user = settingsModel.findByLoginUser(SecurityUtils
|
||||
.getSessionUserLoginName());
|
||||
|
||||
settingsModel.initEdit(user);
|
||||
|
||||
appendAllLanguages(applicationLanguage);
|
||||
|
||||
applicationLanguage.setSelectedIndex(settingsModel.getUser()
|
||||
.getApplicationLanguage().ordinal());
|
||||
settingsModel.initEditLoggedUser();
|
||||
}
|
||||
|
||||
private void appendAllLanguages(Combobox combo) {
|
||||
for (Language language : getLanguageNames()) {
|
||||
Comboitem item = combo.appendItem(_(language.getDisplayName()));
|
||||
item.setValue(language);
|
||||
}
|
||||
}
|
||||
|
||||
public Language[] getLanguageNames() {
|
||||
public Language[] getLanguages() {
|
||||
return Language.values();
|
||||
}
|
||||
|
||||
public boolean save() {
|
||||
try {
|
||||
settingsModel.setApplicationLanguage(getSelectedLanguage());
|
||||
settingsModel.confirmSave();
|
||||
messages.showMessage(Level.INFO, _("Settings saved"));
|
||||
applicationLanguage.setSelectedItem(applicationLanguage
|
||||
.getSelectedItem());
|
||||
return true;
|
||||
} catch (ValidationException e) {
|
||||
messages.showInvalidValues(e);
|
||||
|
|
@ -97,16 +82,16 @@ public class SettingsController extends GenericForwardComposer {
|
|||
return false;
|
||||
}
|
||||
|
||||
private Language getSelectedLanguage() {
|
||||
Comboitem selectedItem = applicationLanguage.getSelectedItem();
|
||||
if (selectedItem != null) {
|
||||
return (Language) selectedItem.getValue();
|
||||
}
|
||||
return null;
|
||||
public void setSelectedLanguage(Language language) {
|
||||
settingsModel.setApplicationLanguage(language);
|
||||
}
|
||||
|
||||
private User getUser()
|
||||
{
|
||||
return settingsModel.getUser();
|
||||
public Language getSelectedLanguage() {
|
||||
return settingsModel.getApplicationLanguage();
|
||||
}
|
||||
|
||||
public static ListitemRenderer getLanguagesRenderer() {
|
||||
return languagesRenderer;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
package org.navalplanner.web.users;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.users.daos.IUserDAO;
|
||||
|
|
@ -27,6 +26,7 @@ import org.navalplanner.business.users.entities.Profile;
|
|||
import org.navalplanner.business.users.entities.User;
|
||||
import org.navalplanner.business.users.entities.UserRole;
|
||||
import org.navalplanner.web.common.concurrentdetection.OnConcurrentModification;
|
||||
import org.navalplanner.web.security.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
|
|
@ -59,9 +59,7 @@ public class SettingsModel implements ISettingsModel {
|
|||
this.user.setApplicationLanguage(applicationLanguage);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public User findByLoginUser(String login) {
|
||||
private User findByLoginUser(String login) {
|
||||
try {
|
||||
return user = userDAO.findByLoginName(login);
|
||||
} catch (InstanceNotFoundException e) {
|
||||
|
|
@ -71,8 +69,8 @@ public class SettingsModel implements ISettingsModel {
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void initEdit(User user) {
|
||||
Validate.notNull(user);
|
||||
public void initEditLoggedUser() {
|
||||
User user = findByLoginUser(SecurityUtils.getSessionUserLoginName());
|
||||
this.user = getFromDB(user);
|
||||
}
|
||||
|
||||
|
|
@ -107,9 +105,4 @@ public class SettingsModel implements ISettingsModel {
|
|||
userDAO.save(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public User getUser() {
|
||||
return this.user;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,11 @@
|
|||
<groupbox style="margin-top: 5px" closable="false">
|
||||
<hbox>
|
||||
<label value="${i18n:_('Select language:')}" />
|
||||
<combobox id="applicationLanguage">
|
||||
</combobox>
|
||||
<listbox id="applicationLanguage"
|
||||
model="@{settingsController.languages}"
|
||||
itemRenderer="@{settingsController.languagesRenderer}"
|
||||
selectedItem="@{settingsController.selectedLanguage}"
|
||||
mold="select" />
|
||||
</hbox>
|
||||
|
||||
<hbox>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue