Alexander Wels has uploaded a new change for review. Change subject: userportal,webadmin: Customized parameterized messages ......................................................................
userportal,webadmin: Customized parameterized messages - Implemented DynamicMessages to facilitate the use of parameterized messages in branding packages. - Renamed DynamicConstants to DynamicMessages. - Added {0} to version about. Change-Id: Iad253128d6bb48b0be93bb580803101b7e85bcea Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=816173 Signed-off-by: Alexander Wels <aw...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java D frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicConstants.java A frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicMessages.java D frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicConstants.java A frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicMessages.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/login/view/LoginPopupView.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.ui.xml M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/HeaderView.ui.xml M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java D frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicConstants.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicMessages.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/login/view/LoginPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/HeaderPresenterWidget.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/HeaderView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java M packaging/branding/ovirt.brand/ovirt_messages.properties 21 files changed, 312 insertions(+), 186 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/15838/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java index ef8fed2..85d3630 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java @@ -12,7 +12,7 @@ import org.ovirt.engine.ui.common.system.ErrorPopupManagerImpl; import org.ovirt.engine.ui.common.system.LockInteractionManager; import org.ovirt.engine.ui.common.uicommon.ClientAgentType; -import org.ovirt.engine.ui.common.utils.DynamicConstants; +import org.ovirt.engine.ui.common.utils.DynamicMessages; import org.ovirt.engine.ui.uicommonweb.ErrorPopupManager; import com.google.gwt.event.shared.EventBus; @@ -47,12 +47,12 @@ Class<? extends CommonApplicationMessages> messages, Class<? extends CommonApplicationResources> resources, Class<? extends CommonApplicationTemplates> templates, - Class<? extends DynamicConstants> dynamicConstants) { + Class<? extends DynamicMessages> dynamicConstants) { bind(CommonApplicationConstants.class).to(constants).in(Singleton.class); bind(CommonApplicationMessages.class).to(messages).in(Singleton.class); bind(CommonApplicationResources.class).to(resources).in(Singleton.class); bind(CommonApplicationTemplates.class).to(templates).in(Singleton.class); - bind(DynamicConstants.class).to(dynamicConstants).in(Singleton.class); + bind(DynamicMessages.class).to(dynamicConstants).in(Singleton.class); } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicConstants.java deleted file mode 100644 index 96d6512..0000000 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicConstants.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.ovirt.engine.ui.common.utils; - -import java.util.HashMap; -import java.util.Map; -import java.util.MissingResourceException; - -import com.google.gwt.i18n.client.Dictionary; - -/** - * Contains dynamic constants available to the application. - * <p> - * This class defines all supported constant keys as well as corresponding value accessor methods. Subclasses should - * register sensible fallback values for supported constant keys. - */ -public class DynamicConstants { - - public enum DynamicConstantKey { - - APPLICATION_TITLE("application_title"), //$NON-NLS-1$ - VERSION_ABOUT("version_about"), //$NON-NLS-1$ - LOGIN_HEADER_LABEL("login_header_label"), //$NON-NLS-1$ - MAIN_HEADER_LABEL("main_header_label"), //$NON-NLS-1$ - COPY_RIGHT_NOTICE("copy_right_notice"), //$NON-NLS-1$ - DOC("doc"); //$NON-NLS-1$ - - private final String value; - - DynamicConstantKey(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - } - - /** - * The name under which the dictionary will appear in the host page. - */ - private static final String MESSAGES_DICTIONARY_NAME = "messages"; //$NON-NLS-1$ - - private Dictionary dictionary; - - private final Map<DynamicConstantKey, String> fallbackValues = - new HashMap<DynamicConstants.DynamicConstantKey, String>(); - - public DynamicConstants() { - try { - dictionary = Dictionary.getDictionary(MESSAGES_DICTIONARY_NAME); - } catch (MissingResourceException mre) { - // Do nothing, the dictionary doesn't exist. - } - } - - protected void addFallback(DynamicConstantKey key, String value) { - fallbackValues.put(key, value); - } - - protected String getString(DynamicConstantKey key) { - String fallback = fallbackValues.get(key); - if (fallback == null) { - // Use empty string for missing fallback value. - fallback = ""; //$NON-NLS-1$ - } - - String result = fallback; - - try { - if (dictionary != null) { - result = dictionary.get(key.getValue()); - } - } catch (MissingResourceException mre) { - // Do nothing, the key doesn't exist. - } - - return result; - } - - public final String applicationTitle() { - return getString(DynamicConstantKey.APPLICATION_TITLE); - } - - public final String ovirtVersionAbout() { - return getString(DynamicConstantKey.VERSION_ABOUT); - } - - public final String loginHeaderLabel() { - return getString(DynamicConstantKey.LOGIN_HEADER_LABEL); - } - - public final String mainHeaderLabel() { - return getString(DynamicConstantKey.MAIN_HEADER_LABEL); - } - - public final String copyRightNotice() { - return getString(DynamicConstantKey.COPY_RIGHT_NOTICE); - } - - public final String engineWebAdminDoc() { - return getString(DynamicConstantKey.DOC); - } - -} diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicMessages.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicMessages.java new file mode 100644 index 0000000..cbe991b --- /dev/null +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/DynamicMessages.java @@ -0,0 +1,227 @@ +package org.ovirt.engine.ui.common.utils; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.Set; + +import com.google.gwt.i18n.client.Dictionary; +import com.google.gwt.regexp.shared.MatchResult; +import com.google.gwt.regexp.shared.RegExp; + +/** + * Contains dynamic constants available to the application. + * <p> + * This class defines all supported constant keys as well as corresponding value accessor methods. Subclasses should + * register sensible fallback values for supported constant keys. + */ +public class DynamicMessages { + + /** + * This class defines the keys used to look up the messages from the {@code Dictionary}. + */ + public enum DynamicMessageKey { + + APPLICATION_TITLE("application_title"), //$NON-NLS-1$ + VERSION_ABOUT("version_about"), //$NON-NLS-1$ + LOGIN_HEADER_LABEL("login_header_label"), //$NON-NLS-1$ + MAIN_HEADER_LABEL("main_header_label"), //$NON-NLS-1$ + COPY_RIGHT_NOTICE("copy_right_notice"), //$NON-NLS-1$ + DOC("doc"); //$NON-NLS-1$ + + private final String value; + + DynamicMessageKey(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + } + + /** + * The name under which the dictionary will appear in the host page. + */ + private static final String MESSAGES_DICTIONARY_NAME = "messages"; //$NON-NLS-1$ + + /** + * The pattern to use to locate place holders. + */ + private static final RegExp PLACE_HOLDER_PATTERN = RegExp.compile("\\{(\\d+)\\}", "g"); //$NON-NLS-1$ //$NON-NLS-2$ + + /** + * The {@code Dictionary} that contains the messages from the host page. + */ + Dictionary dictionary; + + /** + * The {@code Map} containing the fallback values in case the message is not found in the dictionary. + */ + private final Map<DynamicMessageKey, String> fallbackValues = + new HashMap<DynamicMessages.DynamicMessageKey, String>(); + + /** + * Default constructor. + */ + public DynamicMessages() { + this(Dictionary.getDictionary(MESSAGES_DICTIONARY_NAME)); + } + + DynamicMessages(final Dictionary dictionary) { + this.dictionary = dictionary; + } + /** + * Add the fall back for a particular key to the fall back map. + * @param key The key for the fall back. + * @param value The fall back message. + */ + protected void addFallback(final DynamicMessageKey key, final String value) { + fallbackValues.put(key, value); + } + + /** + * Get the string based on the key. If the {@code Dictionary} doesn't contain the value associated with the + * key, then return the fall back value. + * @param key The key + * @return The message, either from the {@code Dictionary} or the fall back value. + */ + protected String getString(final DynamicMessageKey key) { + String fallback = fallbackValues.get(key); + if (fallback == null) { + // Use empty string for missing fallback value. + fallback = ""; //$NON-NLS-1$ + } + + String result = fallback; + + try { + if (dictionary != null) { + result = dictionary.get(key.getValue()); + } + } catch (MissingResourceException mre) { + // Do nothing, the key doesn't exist. + } + + return result; + } + + /** + * Format the message associated with the key using the passed in parameters. + * + * The body format must conform to the following standard: + * <ol> + * <li>The place holders must follow the following format regex \{\d\} for instance {0}</li> + * <li>The place holder sequence must start at 0 and be continuous so {0}, {1}, {2} is valid but {0}, {2} + * is not</li> + * <li>One can have the same place holder more than once, so {0}, {0} valid</li> + * <li>The order is not important, so {2},{0},{1} is valid</li> + * </ol> + * One can pass more parameters than place holders in the message body, any extra parameters will simply be + * ignored. + * @param key The key to use to lookup the message body. + * @param args 0 or more arguments to replace in the message body. + * @return The formatted string. + * throws IllegalArgumentException if the message body does not conform to the above standard, or if there are + * less arguments than place holders in the body. + */ + protected String formatString(final DynamicMessageKey key, final String ...args) { + String message = getString(key); + if (args != null) { + List<Integer> placeHolderList = getPlaceHolderList(message); + if (placeHolderList.size() > args.length) { + throw new IllegalArgumentException("Number of place holders does " //$NON-NLS-1$ + + "not match number of arguments"); //$NON-NLS-1$ + } + for (int i = 0; i < args.length; i++) { + message = message.replaceAll("\\{" + i + "\\}", args[i]); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + return message; + } + + /** + * Parse a message body and return a list of integers, one for each place holder number in the body. For instance + * if the message is 'One {0} over the {1} nest {0}' then the list will be [0,1]. Duplicates are turned into a + * single element in the resulting list. + * @param message The message body to parse. + * @return A list of integers matching the numbers of the place holders. + */ + protected List<Integer> getPlaceHolderList(final String message) { + MatchResult matcher; + Set<Integer> matchedPlaceHolders = new HashSet<Integer>(); + for (matcher = PLACE_HOLDER_PATTERN.exec(message); matcher != null; + matcher = PLACE_HOLDER_PATTERN.exec(message)) { + matchedPlaceHolders.add(Integer.valueOf(matcher.getGroup(1))); + } + List<Integer> result = new ArrayList<Integer>(matchedPlaceHolders); + Collections.sort(result); + for (int i = 0; i < result.size(); i++) { + if (i != result.get(i)) { + throw new IllegalArgumentException("Invalid index of place holder found"); //$NON-NLS-1$ + } + } + return result; + } + + /** + * Get the application title using the {@code Dictionary} in the host page. With a fall back to the standard + * GWT Constant. + * @return The application title string. + */ + public final String applicationTitle() { + return getString(DynamicMessageKey.APPLICATION_TITLE); + } + + /** + * Get the application version message using the {@code Dictionary} in the host page. With a fall back to + * the standard GWT Message. + * @param version The version string to use to replace the place holder in the message. + * @return The version about message + */ + public final String ovirtVersionAbout(final String version) { + return formatString(DynamicMessageKey.VERSION_ABOUT, version); + } + + /** + * Get the login header label using the {@code Dictionary} in the host page. With a fall back to the standard + * GWT Constant. + * @return The login header label. + */ + public final String loginHeaderLabel() { + return getString(DynamicMessageKey.LOGIN_HEADER_LABEL); + } + + /** + * Get the main header label using the {@code Dictionary} in the host page. With a fall back to the standard + * GWT Constant. + * @return The main header label. + */ + public final String mainHeaderLabel() { + return getString(DynamicMessageKey.MAIN_HEADER_LABEL); + } + + /** + * Get the copy right notice using the {@code Dictionary} in the host page. With a fall back to the standard + * GWT Constant. + * @return The copy right notice string. + */ + public final String copyRightNotice() { + return getString(DynamicMessageKey.COPY_RIGHT_NOTICE); + } + + /** + * Get the web admin doc message using the {@code Dictionary} in the host page. With a fall back to the standard + * GWT Constant. + * @return The web admin documentation message. + */ + public final String engineWebAdminDoc() { + return getString(DynamicMessageKey.DOC); + } + +} diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicConstants.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicConstants.java deleted file mode 100644 index e8c5ff7..0000000 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicConstants.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.ovirt.engine.ui.userportal; - -import org.ovirt.engine.ui.common.utils.DynamicConstants; - -import com.google.gwt.core.client.GWT; - -public class ApplicationDynamicConstants extends DynamicConstants { - - private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class); - - public ApplicationDynamicConstants() { - super(); - addFallback(DynamicConstantKey.APPLICATION_TITLE, constants.applicationTitle()); - addFallback(DynamicConstantKey.VERSION_ABOUT, constants.ovirtVersionAbout()); - addFallback(DynamicConstantKey.LOGIN_HEADER_LABEL, constants.loginHeaderLabel()); - addFallback(DynamicConstantKey.MAIN_HEADER_LABEL, constants.mainHeaderLabel()); - addFallback(DynamicConstantKey.COPY_RIGHT_NOTICE, constants.copyRightNotice()); - } - -} diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicMessages.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicMessages.java new file mode 100644 index 0000000..063b33c --- /dev/null +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/ApplicationDynamicMessages.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.ui.userportal; + +import org.ovirt.engine.ui.common.utils.DynamicMessages; + +import com.google.gwt.core.client.GWT; + +public class ApplicationDynamicMessages extends DynamicMessages { + + private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class); + + public ApplicationDynamicMessages() { + super(); + addFallback(DynamicMessageKey.APPLICATION_TITLE, constants.applicationTitle()); + addFallback(DynamicMessageKey.VERSION_ABOUT, constants.ovirtVersionAbout()); + addFallback(DynamicMessageKey.LOGIN_HEADER_LABEL, constants.loginHeaderLabel()); + addFallback(DynamicMessageKey.MAIN_HEADER_LABEL, constants.mainHeaderLabel()); + addFallback(DynamicMessageKey.COPY_RIGHT_NOTICE, constants.copyRightNotice()); + } + +} diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java index 71582cce..a801278 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/gin/SystemModule.java @@ -4,7 +4,7 @@ import org.ovirt.engine.ui.common.section.DefaultLoginSectionPlace; import org.ovirt.engine.ui.common.section.DefaultMainSectionPlace; import org.ovirt.engine.ui.userportal.ApplicationConstants; -import org.ovirt.engine.ui.userportal.ApplicationDynamicConstants; +import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; import org.ovirt.engine.ui.userportal.ApplicationMessages; import org.ovirt.engine.ui.userportal.ApplicationResources; import org.ovirt.engine.ui.userportal.ApplicationResourcesWithLookup; @@ -45,7 +45,7 @@ .to(ApplicationPlaces.DEFAULT_MAIN_SECTION_EXTENDED_PLACE); bindResourceConfiguration(ApplicationConstants.class, ApplicationMessages.class, - ApplicationResources.class, ApplicationTemplates.class, ApplicationDynamicConstants.class); + ApplicationResources.class, ApplicationTemplates.class, ApplicationDynamicMessages.class); bind(ApplicationResourcesWithLookup.class).in(Singleton.class); } diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/login/view/LoginPopupView.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/login/view/LoginPopupView.java index 31e7600..7406d34 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/login/view/LoginPopupView.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/login/view/LoginPopupView.java @@ -15,7 +15,7 @@ import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor; import org.ovirt.engine.ui.uicommonweb.models.userportal.UserPortalLoginModel; import org.ovirt.engine.ui.userportal.ApplicationConstants; -import org.ovirt.engine.ui.userportal.ApplicationDynamicConstants; +import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; import org.ovirt.engine.ui.userportal.ApplicationMessages; import org.ovirt.engine.ui.userportal.ApplicationResources; import org.ovirt.engine.ui.userportal.section.login.presenter.LoginPopupPresenterWidget; @@ -101,7 +101,7 @@ ApplicationResources resources, ApplicationConstants constants, ApplicationMessages messages, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicConstants) { super(eventBus, resources, clientAgentType); // We need this code because resetAndFocus is called when userNameEditor is Disabled @@ -130,7 +130,7 @@ } void localize(ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicConstants) { headerLabel.setText(dynamicConstants.loginHeaderLabel()); userNameLabel.setText(constants.loginFormUserNameLabel()); passwordLabel.setText(constants.loginFormPasswordLabel()); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.java index 6b27600..d5fd75d 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.java @@ -5,7 +5,7 @@ import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogButton; import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; import org.ovirt.engine.ui.userportal.ApplicationConstants; -import org.ovirt.engine.ui.userportal.ApplicationDynamicConstants; +import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; import org.ovirt.engine.ui.userportal.ApplicationResources; import org.ovirt.engine.ui.userportal.section.main.presenter.AboutPopupPresenterWidget; @@ -24,6 +24,8 @@ ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); } + private final ApplicationDynamicMessages messages; + @UiField Label titleLabel; @@ -39,22 +41,23 @@ @Inject public AboutPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicMessages) { super(eventBus, resources); initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); - localize(constants, dynamicConstants); + messages = dynamicMessages; + localize(constants, dynamicMessages); } void localize(ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicMessages) { titleLabel.setText(constants.aboutPopupCaption()); closeButton.setText(constants.closeButtonLabel()); - copyrightNotice.setText(dynamicConstants.copyRightNotice()); + copyrightNotice.setText(dynamicMessages.copyRightNotice()); } @Override public void setVersion(String text) { - versionLabel.setText(text); + versionLabel.setText(messages.ovirtVersionAbout(text)); } @Override diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.ui.xml b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.ui.xml index cc01338..3014214 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.ui.xml +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/AboutPopupView.ui.xml @@ -3,7 +3,7 @@ <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"> - <ui:with field='dynamicConstants' type='org.ovirt.engine.ui.userportal.ApplicationDynamicConstants' /> + <ui:with field='dynamicConstants' type='org.ovirt.engine.ui.userportal.ApplicationDynamicMessages' /> <ui:style> .content { @@ -24,7 +24,6 @@ <g:HorizontalPanel horizontalAlignment="ALIGN_CENTER" width="100%"> <g:HTMLPanel> <div> - <g:InlineLabel text="{dynamicConstants.ovirtVersionAbout}"/> <g:InlineLabel ui:field="versionLabel" /> </div> <div> diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/HeaderView.ui.xml b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/HeaderView.ui.xml index eec964c..ea76e0b 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/HeaderView.ui.xml +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/HeaderView.ui.xml @@ -3,7 +3,7 @@ <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"> <ui:with field='constants' type='org.ovirt.engine.ui.userportal.ApplicationConstants' /> -<ui:with field='dynamicConstants' type='org.ovirt.engine.ui.userportal.ApplicationDynamicConstants' /> +<ui:with field='dynamicConstants' type='org.ovirt.engine.ui.userportal.ApplicationDynamicMessages' /> <ui:style> @external obrand_wrapper; diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java index f040cc4..9edf472 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/system/ApplicationInit.java @@ -15,7 +15,7 @@ import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; -import org.ovirt.engine.ui.userportal.ApplicationDynamicConstants; +import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages; import org.ovirt.engine.ui.userportal.auth.CurrentUserRole; import org.ovirt.engine.ui.userportal.uicommon.model.UserPortalModelInitEvent; import org.ovirt.engine.ui.userportal.utils.ConnectAutomaticallyManager; @@ -40,7 +40,7 @@ LockInteractionManager lockInteractionManager, ConnectAutomaticallyManager connectAutomaticallyManager, CurrentUserRole userRole, - ApplicationDynamicConstants constants, + ApplicationDynamicMessages constants, ClientAgentType clientAgentType) { super(typeResolver, frontendEventsHandler, frontendFailureEventListener, user, eventBus, loginModelProvider, lockInteractionManager); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicConstants.java deleted file mode 100644 index b2b0295..0000000 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicConstants.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ovirt.engine.ui.webadmin; - -import org.ovirt.engine.ui.common.utils.DynamicConstants; - -import com.google.gwt.core.client.GWT; - -public class ApplicationDynamicConstants extends DynamicConstants { - - private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class); - - public ApplicationDynamicConstants() { - super(); - addFallback(DynamicConstantKey.APPLICATION_TITLE, constants.applicationTitle()); - addFallback(DynamicConstantKey.VERSION_ABOUT, constants.ovirtVersionAbout()); - addFallback(DynamicConstantKey.LOGIN_HEADER_LABEL, constants.loginHeaderLabel()); - addFallback(DynamicConstantKey.MAIN_HEADER_LABEL, constants.mainHeaderLabel()); - addFallback(DynamicConstantKey.COPY_RIGHT_NOTICE, constants.copyRightNotice()); - addFallback(DynamicConstantKey.DOC, constants.engineWebAdminDoc()); - } - -} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicMessages.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicMessages.java new file mode 100644 index 0000000..7fbd445 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationDynamicMessages.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.ui.webadmin; + +import org.ovirt.engine.ui.common.utils.DynamicMessages; + +import com.google.gwt.core.client.GWT; + +public class ApplicationDynamicMessages extends DynamicMessages { + + private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class); + + public ApplicationDynamicMessages() { + super(); + addFallback(DynamicMessageKey.APPLICATION_TITLE, constants.applicationTitle()); + addFallback(DynamicMessageKey.VERSION_ABOUT, constants.ovirtVersionAbout()); + addFallback(DynamicMessageKey.LOGIN_HEADER_LABEL, constants.loginHeaderLabel()); + addFallback(DynamicMessageKey.MAIN_HEADER_LABEL, constants.mainHeaderLabel()); + addFallback(DynamicMessageKey.COPY_RIGHT_NOTICE, constants.copyRightNotice()); + addFallback(DynamicMessageKey.DOC, constants.engineWebAdminDoc()); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java index 1f87d7d..a5d890a 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/SystemModule.java @@ -4,7 +4,7 @@ import org.ovirt.engine.ui.common.section.DefaultLoginSectionPlace; import org.ovirt.engine.ui.common.section.DefaultMainSectionPlace; import org.ovirt.engine.ui.webadmin.ApplicationConstants; -import org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants; +import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.ApplicationMessages; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.ApplicationTemplates; @@ -43,7 +43,7 @@ .to(ApplicationPlaces.DEFAULT_MAIN_SECTION_PLACE); bindResourceConfiguration(ApplicationConstants.class, ApplicationMessages.class, - ApplicationResources.class, ApplicationTemplates.class, ApplicationDynamicConstants.class); + ApplicationResources.class, ApplicationTemplates.class, ApplicationDynamicMessages.class); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/login/view/LoginPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/login/view/LoginPopupView.java index 3b79a3f..5165a73 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/login/view/LoginPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/login/view/LoginPopupView.java @@ -13,7 +13,7 @@ import org.ovirt.engine.ui.common.widget.editor.ListModelListBoxEditor; import org.ovirt.engine.ui.uicommonweb.models.LoginModel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; -import org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants; +import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.section.login.presenter.LoginPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.system.InternalConfiguration; @@ -97,7 +97,7 @@ ClientAgentType clientAgentType, ApplicationResources resources, ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants, + ApplicationDynamicMessages dynamicConstants, InternalConfiguration intConf) { super(eventBus, resources, clientAgentType); @@ -131,7 +131,7 @@ } private void localize(ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicConstants) { headerLabel.setText(dynamicConstants.loginHeaderLabel()); userNameLabel.setText(constants.loginFormUserNameLabel()); passwordLabel.setText(constants.loginFormPasswordLabel()); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/HeaderPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/HeaderPresenterWidget.java index 5e01157..4d2cd46 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/HeaderPresenterWidget.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/HeaderPresenterWidget.java @@ -3,7 +3,7 @@ import org.ovirt.engine.ui.common.auth.CurrentUser; import org.ovirt.engine.ui.common.presenter.main.AbstractHeaderPresenterWidget; import org.ovirt.engine.ui.common.widget.tab.AbstractHeadlessTabPanel.TabWidgetHandler; -import org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants; +import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure.ConfigurePopupPresenterWidget; import org.ovirt.engine.ui.webadmin.uicommon.WebAdminConfigurator; @@ -39,7 +39,7 @@ SearchPanelPresenterWidget searchPanel, AboutPopupPresenterWidget aboutPopup, ConfigurePopupPresenterWidget configurePopup, - ApplicationDynamicConstants constants) { + ApplicationDynamicMessages constants) { super(eventBus, view, user, WebAdminConfigurator.DOCUMENTATION_GUIDE_PATH, constants.engineWebAdminDoc()); this.searchPanel = searchPanel; diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.java index f5a0b7b..fbc25d6 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.java @@ -5,7 +5,7 @@ import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogButton; import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; import org.ovirt.engine.ui.webadmin.ApplicationConstants; -import org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants; +import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.section.main.presenter.AboutPopupPresenterWidget; @@ -24,6 +24,8 @@ ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); } + private final ApplicationDynamicMessages messages; + @UiField Label titleLabel; @@ -39,22 +41,22 @@ @Inject public AboutPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicMessages) { super(eventBus, resources); initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); - localize(constants, dynamicConstants); + messages = dynamicMessages; + localize(constants, dynamicMessages); } void localize(ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { - titleLabel.setText(constants.aboutPopupCaption()); + ApplicationDynamicMessages dynamicMessages) { closeButton.setText(constants.closeButtonLabel()); - copyrightNotice.setText(dynamicConstants.copyRightNotice()); + copyrightNotice.setText(dynamicMessages.copyRightNotice()); } @Override public void setVersion(String text) { - versionLabel.setText(text); + versionLabel.setText(messages.ovirtVersionAbout(text)); } @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.ui.xml index d6ce251..7b9e109 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/AboutPopupView.ui.xml @@ -3,7 +3,7 @@ <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"> - <ui:with field='dynamicConstants' type='org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants' /> + <ui:with field='dynamicConstants' type='org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages' /> <ui:style> .content { @@ -24,7 +24,6 @@ <g:HorizontalPanel horizontalAlignment="ALIGN_CENTER" width="100%"> <g:HTMLPanel> <div> - <g:InlineLabel text="{dynamicConstants.ovirtVersionAbout}"/> <g:InlineLabel ui:field="versionLabel" /> </div> <div> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/HeaderView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/HeaderView.java index 14ef057..959c630 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/HeaderView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/HeaderView.java @@ -4,7 +4,7 @@ import org.ovirt.engine.ui.common.idhandler.WithElementId; import org.ovirt.engine.ui.common.view.AbstractSingleSlotView; import org.ovirt.engine.ui.webadmin.ApplicationConstants; -import org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants; +import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.section.main.presenter.HeaderPresenterWidget; import com.google.gwt.core.client.GWT; @@ -71,7 +71,7 @@ @Inject public HeaderView(ApplicationConstants constants, - ApplicationDynamicConstants dynamicConstants) { + ApplicationDynamicMessages dynamicConstants) { this.configureLink = new Anchor(constants.configureLinkLabel()); this.logoutLink = new Anchor(constants.logoutLinkLabel()); this.aboutLink = new Anchor(constants.aboutLinkLabel()); @@ -85,7 +85,7 @@ localize(dynamicConstants); } - private void localize(ApplicationDynamicConstants constants) { + private void localize(ApplicationDynamicMessages constants) { headerLabel.setText(constants.mainHeaderLabel()); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java index c36d051..44c4ea2 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/system/ApplicationInit.java @@ -18,7 +18,7 @@ import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; -import org.ovirt.engine.ui.webadmin.ApplicationDynamicConstants; +import org.ovirt.engine.ui.webadmin.ApplicationDynamicMessages; import org.ovirt.engine.ui.webadmin.plugin.restapi.RestApiSessionManager; import org.ovirt.engine.ui.webadmin.uimode.UiModeData; @@ -40,7 +40,7 @@ CurrentUser user, EventBus eventBus, Provider<LoginModel> loginModelProvider, LockInteractionManager lockInteractionManager, - ApplicationDynamicConstants constants, + ApplicationDynamicMessages constants, RestApiSessionManager restApiSessionManager) { super(typeResolver, frontendEventsHandler, frontendFailureEventListener, user, eventBus, loginModelProvider, lockInteractionManager); diff --git a/packaging/branding/ovirt.brand/ovirt_messages.properties b/packaging/branding/ovirt.brand/ovirt_messages.properties index 0d111f6..b163b25 100644 --- a/packaging/branding/ovirt.brand/ovirt_messages.properties +++ b/packaging/branding/ovirt.brand/ovirt_messages.properties @@ -8,7 +8,7 @@ # The copy right notice. obrand.common.copy_right_notice= # The text above the version in the about box. -obrand.common.version_about=oVirt Engine Version: +obrand.common.version_about=oVirt Engine Version: {0} # User portal specific messages that can be over written. -- To view, visit http://gerrit.ovirt.org/15838 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iad253128d6bb48b0be93bb580803101b7e85bcea Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alexander Wels <aw...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches