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 d33b1a90441238f3c4e96265232ea296845b1393..4b799b0ec7b6862b92ba2c8cb86b078dfcb4ea11 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 0000000000000000000000000000000000000000..a3a377ca086435fffc6aa0bbea797e85ad4a0ccb --- /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 cd650321e5d9e4923cf2d0c0954d7f7a39390938..a00de32f1581248bd3eca5a37ac1c03531cba8b7 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 8c58d210e96e5e9757a53305ff979c85c45471b4..a2112ea75413e6efbceb1264d896cfa8ee655890 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 1d31c8c6574fbbbcc11cbd0f476f49e060c516e8..97c50b952c096b288b1a12a3f1c533bb9a9d7050 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 bef87e080e669490c627a4572245403d3827510b..c114d642ec4c433fa012036faa2d6f44f50f071f 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); }