From 06f3e004b65c3941e86618c0c7e4016872d20088 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 9 Jul 2012 15:16:00 +0200
Subject: [PATCH] OO-294: add css class for the button in the different
 Settings Panels

---
 .../flexible/impl/elements/FormButtonRenderer.java  |  4 ++++
 .../form/flexible/impl/elements/FormCancel.java     |  5 +++++
 .../org/olat/core/gui/components/link/Link.java     | 10 +++++++++-
 .../olat/core/gui/components/link/LinkRenderer.java |  4 ++++
 .../java/org/olat/user/ChangePrefsController.java   | 13 +++++++++----
 .../org/olat/user/PreferencesFormController.java    |  8 ++++++--
 6 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java
index 70bed0a6480..7dc44570979 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormButtonRenderer.java
@@ -35,6 +35,7 @@ import org.olat.core.gui.render.RenderingState;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.StringHelper;
 
 /**
  * Description:<br>
@@ -69,6 +70,9 @@ class FormButtonRenderer implements ComponentRenderer {
 		}
 		sb.append(FormJSHelper.getRawJSFor(fs.getRootForm(), id, fs.getAction()));
 		sb.append(" class=\"b_button ");
+		if(StringHelper.containsNonWhitespace(fs.getElementCssClass())) {
+			sb.append(fs.getElementCssClass());
+		}
 		if(!source.isEnabled()){
 			sb.append(" b_disabled ");
 		}		
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java
index 9f88c25def2..a82d05e546d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/FormCancel.java
@@ -141,6 +141,11 @@ public class FormCancel extends FormItemImpl implements Disposable, Cancel {
 		cancelLink.setCustomEnabledLinkCSS(customEnabledLinkCSS);
 	}
 
+	@Override
+	public void setElementCssClass(String elementCssClass) {
+		cancelLink.setElementCssClass(elementCssClass);
+	}
+
 	/**
 	 * @see org.olat.core.gui.components.form.flexible.elements.Cancel#setI18nKey(java.lang.String)
 	 */
diff --git a/src/main/java/org/olat/core/gui/components/link/Link.java b/src/main/java/org/olat/core/gui/components/link/Link.java
index ad293c9d6ce..ad09683dac7 100644
--- a/src/main/java/org/olat/core/gui/components/link/Link.java
+++ b/src/main/java/org/olat/core/gui/components/link/Link.java
@@ -80,6 +80,7 @@ public class Link extends Component {
 	private String customDisplayText;
 	private String customEnabledLinkCSS;
 	private String customDisabledLinkCSS;
+	private String elementCssClass;
 	private String target;
 	boolean markIt = false;
 	private Object internalAttachedObj;
@@ -338,8 +339,15 @@ public class Link extends Component {
 		}
 		setDirty(true);
 	}
-
 	
+	public String getElementCssClass() {
+		return elementCssClass;
+	}
+
+	public void setElementCssClass(String elementCssClass) {
+		this.elementCssClass = elementCssClass;
+	}
+
 	public void removeCSS(){
 		this.presentation = presentationBeforeCustomCSS;
 		setDirty(true);
diff --git a/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java b/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java
index da4a9275285..a0ad96d2d35 100644
--- a/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java
@@ -43,6 +43,7 @@ import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.logging.AssertException;
+import org.olat.core.util.StringHelper;
 
 /**
  * Description: Renders the link component depending of features and style. 
@@ -84,6 +85,9 @@ public class LinkRenderer implements ComponentRenderer {
 		if (!link.isEnabled()) {
 			cssSb.append(" b_disabled ");
 		}
+		if(StringHelper.containsNonWhitespace(link.getElementCssClass())) {
+			cssSb.append(link.getElementCssClass()).append(" ");
+		}
 		if (presentation == Link.BUTTON_XSMALL) {
 			cssSb.append("b_button b_xsmall");
 		} else if (presentation == Link.BUTTON_SMALL) {
diff --git a/src/main/java/org/olat/user/ChangePrefsController.java b/src/main/java/org/olat/user/ChangePrefsController.java
index 833ea7ac0c7..e200dd649f0 100644
--- a/src/main/java/org/olat/user/ChangePrefsController.java
+++ b/src/main/java/org/olat/user/ChangePrefsController.java
@@ -36,17 +36,19 @@ import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElem
 import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
+import org.olat.core.gui.components.form.flexible.impl.elements.FormCancel;
+import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit;
 import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.id.Identity;
-import org.olat.core.util.UserSession;
 import org.olat.core.id.User;
 import org.olat.core.id.context.HistoryManager;
 import org.olat.core.id.context.HistoryModule;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.UserSession;
 import org.olat.core.util.prefs.Preferences;
 import org.olat.core.util.prefs.PreferencesFactory;
 import org.olat.properties.PropertyManager;
@@ -253,8 +255,10 @@ class SpecialPrefsForm extends FormBasicController {
 		
 		final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator());
 		formLayout.add(buttonLayout);
-		uifactory.addFormSubmitButton("submit", buttonLayout);
-		uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl());
+		FormSubmit submitButton = uifactory.addFormSubmitButton("submit", buttonLayout);
+		submitButton.setElementCssClass("o_sel_home_settings_gui_submit");
+		FormCancel cancelButton = uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl());
+		cancelButton.setElementCssClass("o_sel_home_settings_gui_cancel");
 	}
 
 	private void update() {
@@ -330,7 +334,8 @@ class UserPrefsResetForm extends FormBasicController {
 		
 		final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator());
 		formLayout.add(buttonLayout);
-		uifactory.addFormSubmitButton("reset.submit", buttonLayout);
+		FormSubmit submitButton = uifactory.addFormSubmitButton("reset.submit", buttonLayout);
+		submitButton.setElementCssClass("o_sel_home_settings_reset_sysprefs_submit");
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/user/PreferencesFormController.java b/src/main/java/org/olat/user/PreferencesFormController.java
index a3778f25f79..938ef3eabb0 100644
--- a/src/main/java/org/olat/user/PreferencesFormController.java
+++ b/src/main/java/org/olat/user/PreferencesFormController.java
@@ -34,6 +34,8 @@ import org.olat.core.gui.components.form.flexible.elements.StaticTextElement;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
+import org.olat.core.gui.components.form.flexible.impl.elements.FormCancel;
+import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowBackOffice;
@@ -224,8 +226,10 @@ public class PreferencesFormController extends FormBasicController {
 		// Submit and cancel buttons
 		final FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator());
 		formLayout.add(buttonLayout);
-		uifactory.addFormSubmitButton("submit", buttonLayout);
-		uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl());
+		FormSubmit submitButton = uifactory.addFormSubmitButton("submit", buttonLayout);
+		submitButton.setElementCssClass("o_sel_home_settings_prefs_submit");
+		FormCancel cancelButton = uifactory.addFormCancelButton("cancel", buttonLayout, ureq, getWindowControl());
+		cancelButton.setElementCssClass("o_sel_home_settings_prefs_cancel");
 	}
 
 	protected void formInnerEvent (UserRequest ureq, FormItem source, FormEvent event) {
-- 
GitLab