From f7775afe0eefd624d3260d1704628e3cd57e110c Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 27 Jun 2012 10:46:26 +0200 Subject: [PATCH] OO-280: add css class for selenium test in FormItem --- .../components/form/flexible/FormItem.java | 4 ++++ .../form/flexible/impl/FormDecoratorImpl.java | 9 ++++++++ .../form/flexible/impl/FormItemImpl.java | 9 ++++++++ .../flexible/impl/_content/form_default.html | 4 ++-- .../impl/_content/form_horizontal.html | 4 ++-- .../flexible/impl/_content/form_vertical.html | 5 +++-- .../java/org/olat/repository/SearchForm.java | 21 +++++++++++++++++-- .../org/olat/user/ChangePrefsController.java | 4 ++++ .../olat/user/PreferencesFormController.java | 6 ++++++ 9 files changed, 58 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/FormItem.java b/src/main/java/org/olat/core/gui/components/form/flexible/FormItem.java index f788b7b6070..d15150942d9 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/FormItem.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/FormItem.java @@ -173,6 +173,10 @@ public interface FormItem extends FormBaseComponentIdProvider { */ public boolean hasFocus(); + public String getElementCssClass(); + + public void setElementCssClass(String cssClass); + /** * called if this component is dispatched, e.g. was clicked (double clicked, * ...) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormDecoratorImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormDecoratorImpl.java index 6935d0e59ee..33fce71b504 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormDecoratorImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormDecoratorImpl.java @@ -31,6 +31,7 @@ import org.olat.core.gui.components.form.flexible.FormDecorator; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.SpacerElement; +import org.olat.core.util.StringHelper; /** * Description:<br> @@ -115,6 +116,14 @@ public class FormDecoratorImpl implements FormDecorator { else return (item instanceof SpacerElement); } + + public String getElementCssClass(String formItemName) { + FormItem item = getFormItem(formItemName); + if (item != null && StringHelper.containsNonWhitespace(item.getElementCssClass())) { + return " " + item.getElementCssClass(); + } + return ""; + } /** * Internal helper to get a form item for the given name diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java index e0b23e8aad8..85624bfd428 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormItemImpl.java @@ -81,6 +81,7 @@ public abstract class FormItemImpl implements FormItem, InlineElement { private boolean isInlineEditingOn; private Component inlineEditingComponent; private String i18nKey4EmptyText="inline.empty.click.for.edit"; + private String elementCssClass; /** * @@ -114,6 +115,14 @@ public abstract class FormItemImpl implements FormItem, InlineElement { return name; } + public String getElementCssClass() { + return elementCssClass; + } + + public void setElementCssClass(String elementCssClass) { + this.elementCssClass = elementCssClass; + } + @Override public boolean isInlineEditingOn() { if(!isInlineEditingElement) throw new AssertException("isInlineEditingOn called although it is not a inlineEditingElement"); diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_default.html b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_default.html index fcb0e5fd187..c8484908df8 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_default.html +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_default.html @@ -8,9 +8,9 @@ #foreach ($item in $formitemnames) #if ($f.isVisible($item)) #if($f.hasError($item)) - <div class="b_form_element_wrapper b_form_error b_clearfix"> + <div class="b_form_element_wrapper$f.getElementCssClass($item) b_form_error b_clearfix"> #else - <div class="b_form_element_wrapper b_clearfix"> + <div class="b_form_element_wrapper$f.getElementCssClass($item) b_clearfix"> #end #if ($f.hasLabel($item)) <div class="b_form_element_label"> diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_horizontal.html b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_horizontal.html index be38bc12436..ec7f775e796 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_horizontal.html +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_horizontal.html @@ -8,9 +8,9 @@ #foreach ($item in $formitemnames) #if ($f.isVisible($item)) #if($f.hasError($item)) - <div class="b_form_element_wrapper b_form_horizontal b_form_error"> + <div class="b_form_element_wrapper$f.getElementCssClass($item) b_form_horizontal b_form_error"> #else - <div class="b_form_element_wrapper b_form_horizontal"> + <div class="b_form_element_wrapper$f.getElementCssClass($item) b_form_horizontal"> #end #if ($f.hasLabel($item)) <div class="b_form_element_label b_form_horizontal"> diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_vertical.html b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_vertical.html index f332feb8824..8b9fb8f7422 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_vertical.html +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/_content/form_vertical.html @@ -7,10 +7,11 @@ #foreach ($item in $formitemnames) #if ($f.isVisible($item)) +$f.getElementCssClass($item) #if($f.hasError($item)) - <div class="b_form_element_wrapper b_form_vertical b_form_error b_clearfix"> + <div class="b_form_element_wrapper$f.getElementCssClass($item) b_form_vertical b_form_error b_clearfix"> #else - <div class="b_form_element_wrapper b_form_vertical b_clearfix"> + <div class="b_form_element_wrapper$f.getElementCssClass($item) b_form_vertical$f.getElementCssClass($item) b_clearfix"> #end #if ($f.hasLabel($item)) <div class="b_form_element_label b_form_vertical"> diff --git a/src/main/java/org/olat/repository/SearchForm.java b/src/main/java/org/olat/repository/SearchForm.java index 645841579cc..9cd40272c21 100644 --- a/src/main/java/org/olat/repository/SearchForm.java +++ b/src/main/java/org/olat/repository/SearchForm.java @@ -225,25 +225,33 @@ public class SearchForm extends FormBasicController{ setFormTitle("search.generic"); displayName = uifactory.addTextElement("cif_displayname", "cif.displayname", 255, "", formLayout); + displayName.setElementCssClass("o_sel_repo_search_displayname"); displayName.setFocus(true); author = uifactory.addTextElement("cif_author", "cif.author", 255, "", formLayout); + author.setElementCssClass("o_sel_repo_search_author"); if (limitUsername != null) { author.setValue(limitUsername); author.setEnabled(false); } description = uifactory.addTextElement("cif_description", "cif.description", 255, "", formLayout); + description.setElementCssClass("o_sel_repo_search_description"); id = uifactory.addTextElement("cif_id", "cif.id", 12, "", formLayout); + id.setElementCssClass("o_sel_repo_search_id"); id.setVisible(isAdmin); id.setRegexMatchCheck("\\d*", "search.id.format"); typesSelection = uifactory.addCheckboxesVertical("search.limit.type", formLayout, new String[]{"xx"}, new String[]{""}, new String[]{null}, 1); typesSelection.addActionListener(listener, FormEvent.ONCLICK); + typesSelection.setElementCssClass("o_sel_repo_search_type_limit"); + + String[] typeKeys = getResources().toArray(new String[0]); + String[] typeCssClasess = getCssResources(getResources()); + types = uifactory.addCheckboxesVertical("cif_types", "cif.type", formLayout, typeKeys, getTranslatedResources(getResources()), typeCssClasess, 1); + types.setElementCssClass("o_sel_repo_search_types"); - types = uifactory.addCheckboxesVertical("cif_types", "cif.type", formLayout, getResources().toArray(new String[0]), getTranslatedResources(getResources()), null, 1); - FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); formLayout.add(buttonLayout); @@ -269,6 +277,15 @@ public class SearchForm extends FormBasicController{ return l.toArray(new String[0]); } + private String[] getCssResources(List<String> resources) { + String[] cssClasses= new String[resources.size()]; + int count = 0; + for(String key: resources){ + cssClasses[count++] = "o_sel_repo_search_" + key.toLowerCase().replace(".", "_"); + } + return cssClasses; + } + private List<String> getResources() { List<String> resources = new ArrayList<String>(); resources.add(CourseModule.getCourseTypeName()); diff --git a/src/main/java/org/olat/user/ChangePrefsController.java b/src/main/java/org/olat/user/ChangePrefsController.java index d4433cb9b4e..833ea7ac0c7 100644 --- a/src/main/java/org/olat/user/ChangePrefsController.java +++ b/src/main/java/org/olat/user/ChangePrefsController.java @@ -238,13 +238,16 @@ class SpecialPrefsForm extends FormBasicController { setFormContextHelp(this.getClass().getPackage().getName(), "home-prefs-special.html", "help.hover.home.prefs.special"); prefsElement = uifactory.addCheckboxesVertical("prefs", "title.prefs.accessibility", formLayout, keys, values, null, 1); + prefsElement.setElementCssClass("o_sel_home_settings_accessibility"); //fxdiff BAKS-7 Resume function HistoryModule historyModule = (HistoryModule)CoreSpringFactory.getBean("historyModule"); if(historyModule.isResumeEnabled()) { resumeElement = uifactory.addRadiosVertical("resume", "resume.label", formLayout, resumeKeys, resumeValues); + resumeElement.setElementCssClass("o_sel_home_settings_resume"); } if(historyModule.isBackEnabled()) { backElement = uifactory.addRadiosVertical("back-enabling", "back.label", formLayout, yesNoKeys, yesNoValues); + backElement.setElementCssClass("o_sel_home_settings_back_enabling"); } update(); @@ -323,6 +326,7 @@ class UserPrefsResetForm extends FormBasicController { values = new String[] {translate("reset.elements.guiprefs"), translate("reset.elements.sysprefs"), translate("reset.elements.resume")}; resetElements = uifactory.addCheckboxesVertical("prefs", "reset.elements", formLayout, keys, values, null, 1); + resetElements.setElementCssClass("o_sel_home_settings_reset_sysprefs"); final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator()); formLayout.add(buttonLayout); diff --git a/src/main/java/org/olat/user/PreferencesFormController.java b/src/main/java/org/olat/user/PreferencesFormController.java index 0a95d921153..a3778f25f79 100644 --- a/src/main/java/org/olat/user/PreferencesFormController.java +++ b/src/main/java/org/olat/user/PreferencesFormController.java @@ -143,6 +143,7 @@ public class PreferencesFormController extends FormBasicController { // Username StaticTextElement username = uifactory.addStaticTextElement("form.username", tobeChangedIdentity.getName(), formLayout); + username.setElementCssClass("o_sel_home_settings_username"); username.setEnabled(false); // Language @@ -151,6 +152,7 @@ public class PreferencesFormController extends FormBasicController { String[] langValues = StringHelper.getMapValuesAsStringArray(languages); ArrayHelper.sort(langKeys, langValues, false, true, false); language = uifactory.addDropdownSingleselect("form.language", formLayout, langKeys, langValues, null); + language.setElementCssClass("o_sel_home_settings_language"); String langKey = prefs.getLanguage(); // Preselect the users language if available. Maye not anymore enabled on // this server @@ -170,6 +172,7 @@ public class PreferencesFormController extends FormBasicController { translate("form.fontsize.presentation") }; fontsize = uifactory.addDropdownSingleselect("form.fontsize", formLayout, cssFontsizeKeys, cssFontsizeValues, null); + fontsize.setElementCssClass("o_sel_home_settings_fontsize"); fontsize.select(prefs.getFontsize(), true); fontsize.addActionListener(this, FormEvent.ONCHANGE); @@ -185,6 +188,7 @@ public class PreferencesFormController extends FormBasicController { intervalValues[i] = translate(i18nPrefix + intervalKeys[i]); } notificationInterval = uifactory.addDropdownSingleselect("form.notification", formLayout, intervalKeys, intervalValues, null); + notificationInterval.setElementCssClass("o_sel_home_settings_notification_interval"); notificationInterval.select(prefs.getNotificationInterval(), true); } //fxdiff VCRP-16: intern mail system @@ -193,6 +197,7 @@ public class PreferencesFormController extends FormBasicController { String userEmail = tobeChangedIdentity.getUser().getProperty(UserConstants.EMAIL, getLocale()); String[] mailInternLabels = new String[] { translate("mail." + mailIntern[0], userEmail), translate("mail." + mailIntern[1], userEmail) }; mailSystem = uifactory.addRadiosVertical("mail-system", "mail.system", formLayout, mailIntern, mailInternLabels); + mailSystem.setElementCssClass("o_sel_home_settings_mail"); String mailPrefs = prefs.getReceiveRealMail(); if(StringHelper.containsNonWhitespace(mailPrefs)) { @@ -213,6 +218,7 @@ public class PreferencesFormController extends FormBasicController { String currentCharset = UserManager.getInstance().getUserCharset(tobeChangedIdentity); String[] csKeys = StringHelper.getMapKeysAsStringArray(charsets); charset = uifactory.addDropdownSingleselect("form.charset", formLayout, csKeys, csKeys, null); + charset.setElementCssClass("o_sel_home_settings_cahrset"); charset.select(currentCharset, true); // Submit and cancel buttons -- GitLab