From 5753e9677a691423b8871a1e02b28c11dac7768e Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 28 May 2014 10:29:36 +0200
Subject: [PATCH] OO-990: small fix

---
 .../org/olat/admin/user/imp/ImportStep01.java |  4 +-
 .../AbstractCSSIconFlexiCellRenderer.java     | 76 +++++++++++++++++++
 .../table/AbstractFlexiTableRenderer.java     |  5 +-
 .../table/CSSIconFlexiCellRenderer.java       | 41 ++--------
 .../table/FlexiTableCustomRenderer.java       |  2 +-
 .../gui/components/table/TableController.java |  4 +-
 6 files changed, 90 insertions(+), 42 deletions(-)
 create mode 100644 src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractCSSIconFlexiCellRenderer.java

diff --git a/src/main/java/org/olat/admin/user/imp/ImportStep01.java b/src/main/java/org/olat/admin/user/imp/ImportStep01.java
index d33b1a90441..4b799b0ec7b 100644
--- a/src/main/java/org/olat/admin/user/imp/ImportStep01.java
+++ b/src/main/java/org/olat/admin/user/imp/ImportStep01.java
@@ -31,7 +31,7 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
 import org.olat.core.gui.components.form.flexible.impl.Form;
 import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
-import org.olat.core.gui.components.form.flexible.impl.elements.table.CSSIconFlexiCellRenderer;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.AbstractCSSIconFlexiCellRenderer;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
@@ -186,7 +186,7 @@ class ImportStep01 extends BasicStep {
  * Initial Date:  21.03.2008 <br>
  * @author gnaegi
  */
-class UserNewOldCustomFlexiCellRenderer extends CSSIconFlexiCellRenderer {
+class UserNewOldCustomFlexiCellRenderer extends AbstractCSSIconFlexiCellRenderer {
 
 	@Override
 	protected String getCellValue(Object cellValue) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractCSSIconFlexiCellRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractCSSIconFlexiCellRenderer.java
new file mode 100644
index 00000000000..a3a377ca086
--- /dev/null
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractCSSIconFlexiCellRenderer.java
@@ -0,0 +1,76 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.gui.components.form.flexible.impl.elements.table;
+
+import org.apache.commons.lang.StringEscapeUtils;
+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;
+
+/**
+ * 
+ * Initial date: 28.05.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public abstract class AbstractCSSIconFlexiCellRenderer implements FlexiCellRenderer {
+	
+	private final FlexiCellRenderer delegate;
+	
+	public AbstractCSSIconFlexiCellRenderer() {
+		this(null);
+	}
+	
+	public AbstractCSSIconFlexiCellRenderer(FlexiCellRenderer delegate) {
+		this.delegate = delegate;
+	}
+	
+	  /**
+	   * Render Date type with Formatter depending on locale. Render all other types with toString. 
+	   * @param target
+	   * @param cellValue
+	   * @param translator
+	   */	
+	@Override
+	public void render(StringOutput target, Object cellValue, int row, FlexiTableComponent source,
+				URLBuilder ubu, Translator translator) {
+		target.append("<span><i class=\"o_icon ")
+		     .append(getCssClass(cellValue));
+		String hoverText = getHoverText(cellValue, translator);
+		if (StringHelper.containsNonWhitespace(hoverText)) {
+			target.append("\" title=\"");
+			target.append(StringEscapeUtils.escapeHtml(hoverText));
+		}
+		target.append("\"> </i>");
+		if(delegate == null) {
+			target.append(getCellValue(cellValue));
+		} else {
+			delegate.render(target, cellValue, row, source, ubu, translator);
+		}
+		target.append("</span>");			
+	}
+		
+	protected abstract String getCssClass(Object val);
+	
+	protected abstract String getCellValue(Object val);
+	
+	protected abstract String getHoverText(Object val, Translator translator);
+}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index cd650321e5d..a00de32f158 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -75,7 +75,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 		renderBody(renderer, sb, ftC, ubu, translator, renderResult);
 		sb.append("</tbody></table>");
 		
-		renderFooterButtons(renderer, sb, ftC, ubu, translator, renderResult, args);
+		renderFooterButtons(sb, ftC, translator);
 		sb.append("</div>");
 		
 		//source
@@ -256,8 +256,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 		}
 	}
 	
-	protected void renderFooterButtons(Renderer renderer, StringOutput sb, FlexiTableComponent ftC, URLBuilder ubu, Translator translator,
-			RenderResult renderResult, String[] args) {
+	protected void renderFooterButtons(StringOutput sb, FlexiTableComponent ftC, Translator translator) {
 
 		FlexiTableElementImpl ftE = ftC.getFlexiTableElement();
 		if(ftE.isSelectAllEnable()) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/CSSIconFlexiCellRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/CSSIconFlexiCellRenderer.java
index 8c58d210e96..a2112ea7541 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/CSSIconFlexiCellRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/CSSIconFlexiCellRenderer.java
@@ -43,11 +43,7 @@ package org.olat.core.gui.components.form.flexible.impl.elements.table;/**
  * <p>
  */
 
-import org.apache.commons.lang.StringEscapeUtils;
-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;
 
 /**
  * <h3>Description:</h3>
@@ -57,10 +53,9 @@ import org.olat.core.util.StringHelper;
  * 
  * @author Florian Gnaegi, frentix GmbH, http://www.frentix.com
  */
-public class CSSIconFlexiCellRenderer implements FlexiCellRenderer {
+public class CSSIconFlexiCellRenderer extends AbstractCSSIconFlexiCellRenderer {
 	
 	private final String cssClass;
-	private final FlexiCellRenderer delegate;
 	
 	public CSSIconFlexiCellRenderer() {
 		this(null, null);
@@ -75,43 +70,21 @@ public class CSSIconFlexiCellRenderer implements FlexiCellRenderer {
 	}
 	
 	public CSSIconFlexiCellRenderer(String cssClass, FlexiCellRenderer delegate) {
+		super(delegate);
 		this.cssClass = cssClass;
-		this.delegate = delegate;
-	}
-
-	  /**
-	   * Render Date type with Formatter depending on locale. Render all other types with toString. 
-	   * @param target
-	   * @param cellValue
-	   * @param translator
-	   */	
-	@Override
-	public void render(StringOutput target, Object cellValue, int row, FlexiTableComponent source,
-				URLBuilder ubu, Translator translator) {
-		target.append("<span><i class=\"o_icon ")
-		     .append(getCssClass(cellValue));
-		String hoverText = getHoverText(cellValue, translator);
-		if (StringHelper.containsNonWhitespace(hoverText)) {
-			target.append("\" title=\"");
-			target.append(StringEscapeUtils.escapeHtml(hoverText));
-		}
-		target.append("\"> </i>");
-		if(delegate == null) {
-			target.append(getCellValue(cellValue));
-		} else {
-			delegate.render(target, cellValue, row, source, ubu, translator);
-		}
-		target.append("</span>");			
 	}
 		
+	@Override
 	protected String getCssClass(Object val) {
 		return cssClass;
 	}
-	
+
+	@Override
 	protected String getCellValue(Object val) {
 		return "  ";
 	}
-	
+
+	@Override
 	protected String getHoverText(Object val, Translator translator) {
 		return null;
 	}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java
index 1d31c8c6574..97c50b952c0 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableCustomRenderer.java
@@ -62,7 +62,7 @@ class FlexiTableCustomRenderer extends AbstractFlexiTableRenderer implements Com
 		renderBody(renderer, sb, ftC, ubu, translator, renderResult);
 		sb.append("</div>");
 
-		renderFooterButtons(renderer, sb, ftC, ubu, translator, renderResult, args);
+		renderFooterButtons(sb, ftC, translator);
 		sb.append("</div>");
 		
 		//source
diff --git a/src/main/java/org/olat/core/gui/components/table/TableController.java b/src/main/java/org/olat/core/gui/components/table/TableController.java
index bef87e080e6..c114d642ec4 100644
--- a/src/main/java/org/olat/core/gui/components/table/TableController.java
+++ b/src/main/java/org/olat/core/gui/components/table/TableController.java
@@ -267,12 +267,12 @@ public class TableController extends BasicController {
 
 		//preference + download links
 		preferenceLink = LinkFactory.createCustomLink("prefLink", "cmd.changecols", "", Link.BUTTON | Link.NONTRANSLATED, contentVc, this);
-		preferenceLink.setCustomEnabledLinkCSS("o_icon o_icon-lg o_icon_customize");
+		preferenceLink.setIconLeftCSS("o_icon o_icon_customize");
 		preferenceLink.setTooltip(translate("command.changecols"));
 		
 		downloadLink = LinkFactory.createCustomLink("downloadLink", "cmd.download", "", Link.BUTTON | Link.NONTRANSLATED, contentVc, this);
 		downloadLink.setTooltip(translate("table.export.title"));
-		downloadLink.setCustomEnabledLinkCSS("o_icon o_icon-lg o_icon_download");
+		downloadLink.setIconLeftCSS("o_icon o_icon_download");
 		
 		putInitialPanel(contentVc);
 	}
-- 
GitLab