diff --git a/src/main/java/org/olat/admin/user/bulkChange/GroupAddOverviewModel.java b/src/main/java/org/olat/admin/user/bulkChange/GroupAddOverviewModel.java index 8779dfdd71c5f2b75b4bd84b045d2bee36e417a4..4369d6afe7de0acc422b801b6093c128cbef4712 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/GroupAddOverviewModel.java +++ b/src/main/java/org/olat/admin/user/bulkChange/GroupAddOverviewModel.java @@ -22,7 +22,8 @@ package org.olat.admin.user.bulkChange; import java.util.ArrayList; import java.util.List; -import org.olat.core.gui.components.table.DefaultTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.gui.translator.Translator; import org.olat.core.util.filter.FilterFactory; import org.olat.group.BusinessGroup; @@ -36,26 +37,23 @@ import org.olat.group.BusinessGroup; * Initial Date: 09.05.2011 <br> * @author Roman Haag, frentix GmbH, roman.haag@frentix.com */ -public class GroupAddOverviewModel extends DefaultTableDataModel<BusinessGroup> { +public class GroupAddOverviewModel extends DefaultFlexiTableDataModel<BusinessGroup> { private Translator translator; private List<Long> mailGroupIDs; private List<Long> ownGroupIDs; private List<Long> partGroupIDs; - public GroupAddOverviewModel(List<BusinessGroup> allGroupIDs, List<Long> ownGroupIDs, List<Long> partGroupIDs, List<Long> mailGroups, Translator trans) { - super(allGroupIDs); + public GroupAddOverviewModel(List<BusinessGroup> allGroupIDs, List<Long> ownGroupIDs, List<Long> partGroupIDs, List<Long> mailGroups, + Translator trans, FlexiTableColumnModel columnModel) { + super(columnModel); + setObjects(allGroupIDs); this.translator = trans; this.ownGroupIDs = ownGroupIDs; this.partGroupIDs = partGroupIDs; this.mailGroupIDs = mailGroups; } - @Override - public int getColumnCount() { - return 5; - } - @Override public Object getValueAt(int row, int col) { BusinessGroup group = getObject(row); @@ -93,6 +91,6 @@ public class GroupAddOverviewModel extends DefaultTableDataModel<BusinessGroup> @Override public GroupAddOverviewModel createCopyWithEmptyList() { - return new GroupAddOverviewModel(new ArrayList<BusinessGroup>(), ownGroupIDs, partGroupIDs, mailGroupIDs, translator); + return new GroupAddOverviewModel(new ArrayList<>(), ownGroupIDs, partGroupIDs, mailGroupIDs, translator, getTableColumnModel()); } } \ No newline at end of file diff --git a/src/main/java/org/olat/admin/user/bulkChange/OverviewModel.java b/src/main/java/org/olat/admin/user/bulkChange/OverviewModel.java index 51fcd0bbab89915d38993292738c4ca9b8255dc9..d327935f314854f851008c2b824f3714636c7cd8 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/OverviewModel.java +++ b/src/main/java/org/olat/admin/user/bulkChange/OverviewModel.java @@ -22,7 +22,8 @@ package org.olat.admin.user.bulkChange; import java.util.ArrayList; import java.util.List; -import org.olat.core.gui.components.table.DefaultTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; /** * Description:<br> @@ -33,18 +34,11 @@ import org.olat.core.gui.components.table.DefaultTableDataModel; * * @author rhaag */ -public class OverviewModel extends DefaultTableDataModel<List<String>> { +public class OverviewModel extends DefaultFlexiTableDataModel<List<String>> { - private int columnCount = 0; - - public OverviewModel(List<List<String>> objects, int columnCount) { - super(objects); - this.columnCount = columnCount; - } - - @Override - public int getColumnCount() { - return columnCount; + public OverviewModel(List<List<String>> objects, FlexiTableColumnModel columnModel) { + super(columnModel); + setObjects(objects); } @Override @@ -55,7 +49,7 @@ public class OverviewModel extends DefaultTableDataModel<List<String>> { } @Override - public Object createCopyWithEmptyList() { - return new OverviewModel(new ArrayList<List<String>>(), columnCount); + public OverviewModel createCopyWithEmptyList() { + return new OverviewModel(new ArrayList<List<String>>(), getTableColumnModel()); } } diff --git a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep02.java b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep02.java index 4afa4d606ac4b9640ae9b786e5130ba18016ef50..c41ce7ad69b1740b59864e820ddee78270ad547e 100644 --- a/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep02.java +++ b/src/main/java/org/olat/admin/user/bulkChange/UserBulkChangeStep02.java @@ -39,11 +39,8 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; 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; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelImpl; import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer; -import org.olat.core.gui.components.table.TableDataModel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.wizard.BasicStep; @@ -172,7 +169,7 @@ class UserBulkChangeStep02 extends BasicStep { tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, "table.role.removed", colPos++, false, null, FlexiColumnModel.ALIGNMENT_LEFT, textRenderer)); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, "table.role.status", colPos++, false, null, FlexiColumnModel.ALIGNMENT_LEFT, textRenderer)); - FlexiTableDataModel<List<String>> tableDataModel = new FlexiTableDataModelImpl<>(new OverviewModel(mergedDataChanges, colPos), tableColumnModel); + OverviewModel tableDataModel = new OverviewModel(mergedDataChanges, tableColumnModel); uifactory.addTableElement(getWindowControl(), "newUsers", tableDataModel, getTranslator(), formLayoutVertical); Set<Long> allGroups = new HashSet<>(); @@ -192,9 +189,7 @@ class UserBulkChangeStep02 extends BasicStep { groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("send.email", 3)); List<BusinessGroup> groups = businessGroupService.loadBusinessGroups(allGroups); - TableDataModel<BusinessGroup> model = new GroupAddOverviewModel(groups, ownGroups, partGroups, mailGroups, getTranslator()); - FlexiTableDataModel<BusinessGroup> groupDataModel = new FlexiTableDataModelImpl<>(model, groupColumnModel); - + GroupAddOverviewModel groupDataModel = new GroupAddOverviewModel(groups, ownGroups, partGroups, mailGroups, getTranslator(), groupColumnModel); uifactory.addTableElement(getWindowControl(), "groupOverview", groupDataModel, getTranslator(), formLayout); } } diff --git a/src/main/java/org/olat/admin/user/imp/ImportStep00.java b/src/main/java/org/olat/admin/user/imp/ImportStep00.java index 70075de371ffae86ec89595a38ed89237641f237..b277bd0997ca7aee53d83637b03eed5cb47de7e9 100644 --- a/src/main/java/org/olat/admin/user/imp/ImportStep00.java +++ b/src/main/java/org/olat/admin/user/imp/ImportStep00.java @@ -99,11 +99,9 @@ class ImportStep00 extends BasicStep { @Override public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) { - StepFormController stepI = new ImportStepForm00(ureq, windowControl, form, stepsRunContext); - return stepI; + return new ImportStepForm00(ureq, windowControl, form, stepsRunContext); } - private final class ImportStepForm00 extends StepFormBasicController { private List<Identity> idents; 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 88d7cf14489fe2c62161541748be7ab2cab17d80..537007b03c20fb3ec197c2e237d0d832b0902f61 100644 --- a/src/main/java/org/olat/admin/user/imp/ImportStep01.java +++ b/src/main/java/org/olat/admin/user/imp/ImportStep01.java @@ -35,9 +35,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.AbstractCS 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; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelImpl; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.wizard.BasicStep; @@ -74,16 +72,13 @@ class ImportStep01 extends BasicStep { @Override public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) { - StepFormController stepI = new ImportStepForm01(ureq, windowControl, form, stepsRunContext); - return stepI; + return new ImportStepForm01(ureq, windowControl, form, stepsRunContext); } private final class ImportStepForm01 extends StepFormBasicController { - - private FormLayoutContainer textContainer; - private SingleSelection updateEl, updatePasswordEl; - private List<UserPropertyHandler> userPropertyHandlers; + private SingleSelection updateEl; + private SingleSelection updatePasswordEl; @Autowired private UserManager userManager; @@ -119,7 +114,7 @@ class ImportStep01 extends BasicStep { @Override protected boolean validateFormLogic(UserRequest ureq) { - boolean allOk = true; + boolean allOk = super.validateFormLogic(ureq); if(updateEl != null && (!updateEl.isOneSelected() || updateEl.isSelected(0))) { updateEl.setErrorKey("form.mandatory.hover", null); allOk &= false; @@ -129,7 +124,7 @@ class ImportStep01 extends BasicStep { updatePasswordEl.setErrorKey("form.mandatory.hover", null); allOk &= false; } - return allOk & super.validateFormLogic(ureq); + return allOk; } @Override @@ -145,7 +140,7 @@ class ImportStep01 extends BasicStep { List<UpdateIdentity> updateIdents = (List<UpdateIdentity>) getFromRunContext("updateIdents"); @SuppressWarnings("unchecked") List<TransientIdentity> newIdents = (List<TransientIdentity>) getFromRunContext("newIdents"); - textContainer = FormLayoutContainer.createCustomFormLayout("step1", getTranslator(), velocity_root + "/step1.html"); + FormLayoutContainer textContainer = FormLayoutContainer.createCustomFormLayout("step1", getTranslator(), velocity_root + "/step1.html"); formLayoutVertical.add(textContainer); int cntall = idents.size(); @@ -183,14 +178,13 @@ class ImportStep01 extends BasicStep { tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.user.lang", colPos++)); // followed by all properties configured - // if only mandatory required: check for um.isMandatoryUserProperty(usageIdentifyer, userPropertyHandler); - userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, true); + List<UserPropertyHandler> userPropertyHandlers = userManager.getUserPropertyHandlersFor(usageIdentifyer, true); for (int i = 0; i < userPropertyHandlers.size(); i++) { UserPropertyHandler userPropertyHandler = userPropertyHandlers.get(i); - tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(), colPos++)); + tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(userPropertyHandler.i18nColumnDescriptorLabelKey(), colPos++)); } - FlexiTableDataModel<Identity> tableDataModel = new FlexiTableDataModelImpl<>(new Model(idents, colPos), tableColumnModel); + Model tableDataModel = new Model(idents, tableColumnModel, getLocale()); uifactory.addTableElement(getWindowControl(), "newUsers", tableDataModel, getTranslator(), formLayoutVertical); } } diff --git a/src/main/java/org/olat/admin/user/imp/Model.java b/src/main/java/org/olat/admin/user/imp/Model.java index f2ccdb5904f1b4ccd8ff24a2cb45d4417d03af51..8c64cc61a35d429e631aeb1d77d2d11175b88f6d 100644 --- a/src/main/java/org/olat/admin/user/imp/Model.java +++ b/src/main/java/org/olat/admin/user/imp/Model.java @@ -25,9 +25,12 @@ package org.olat.admin.user.imp; +import java.util.ArrayList; import java.util.List; +import java.util.Locale; -import org.olat.core.gui.components.table.DefaultTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.id.Identity; import org.olat.user.UserManager; import org.olat.user.propertyhandlers.UserPropertyHandler; @@ -39,21 +42,17 @@ import org.olat.user.propertyhandlers.UserPropertyHandler; * * Description: Table model for user mass import. */ -public class Model extends DefaultTableDataModel<Identity> { +public class Model extends DefaultFlexiTableDataModel<Identity> { - private List<UserPropertyHandler> userPropertyHandlers; + private final Locale locale; + private final List<UserPropertyHandler> userPropertyHandlers; private static final String usageIdentifyer = UserImportController.class.getCanonicalName(); - private int columnCount = 0; - public Model(List<Identity> objects, int columnCount) { - super(objects); + public Model(List<Identity> objects, FlexiTableColumnModel columnModel, Locale locale) { + super(columnModel); + this.locale = locale; userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, true); - this.columnCount = columnCount; - } - - @Override - public int getColumnCount() { - return columnCount; + setObjects(objects); } @Override @@ -83,9 +82,14 @@ public class Model extends DefaultTableDataModel<Identity> { } else if (col > 3 && col < getColumnCount()) { // get user property for this column for an already existing user UserPropertyHandler userPropertyHandler = userPropertyHandlers.get(col - 4); - String value = userPropertyHandler.getUserProperty(ident.getUser(), getLocale()); + String value = userPropertyHandler.getUserProperty(ident.getUser(), locale); return (value == null ? "n/a" : value); } return "ERROR"; } + + @Override + public DefaultFlexiTableDataModel<Identity> createCopyWithEmptyList() { + return new Model(new ArrayList<>(), getTableColumnModel(), locale); + } } diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java deleted file mode 100644 index 0df1929d1e9bb02b0dc291a835071858fb164c58..0000000000000000000000000000000000000000 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableDataModelImpl.java +++ /dev/null @@ -1,101 +0,0 @@ -/** -* OLAT - Online Learning and Training<br> -* http://www.olat.org -* <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 -* <p> -* http://www.apache.org/licenses/LICENSE-2.0 -* <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> -* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br> -* University of Zurich, Switzerland. -* <hr> -* <a href="http://www.openolat.org"> -* OpenOLAT - Online Learning and Training</a><br> -* This file has been modified by the OpenOLAT community. Changes are licensed -* under the Apache 2.0 license as the original file. -* <p> -*/ - -package org.olat.core.gui.components.form.flexible.impl.elements.table; - -import org.olat.core.gui.components.table.TableDataModel; - -/** - * Table data model including column models. - * @author Christian Guretzki - */ -public class FlexiTableDataModelImpl<T> implements FlexiTableDataModel<T> { - - private TableDataModel<T> tableModel; - private FlexiTableColumnModel tableColumnModel; - - /** - * Constructor to create a FlexiTableDataModel with a non-flexi table data model as input. - * @param tableModel non-flexi table data model - * @param tableColumnModel table-column-model (all columns) - */ - public FlexiTableDataModelImpl(TableDataModel<T> tableModel, FlexiTableColumnModel tableColumnModel ) { - this.tableModel = tableModel; - this.tableColumnModel = tableColumnModel; - } - - @Override - public boolean isSelectable(int row) { - return true; - } - - /** - * @return Number of table row. - */ - @Override - public int getRowCount() { - return tableModel.getRowCount(); - } - - @Override - public boolean isRowLoaded(int row) { - return row < tableModel.getRowCount(); - } - - @Override - public T getObject(int row) { - return tableModel.getObject(row); - } - - /** - * Return Object for certain table cell. - * @param row Row number [0...row] - * @param col column number [0...column] - * @return Object for certain table cell - */ - @Override - public Object getValueAt(int row, int col) { - return tableModel.getValueAt(row, col); - } - - /** - * Return table-column-model (all columns) for this table-data-model. - * @return table-column-model - */ - @Override - public FlexiTableColumnModel getTableColumnModel() { - return tableColumnModel; - } - - /** - * Set table-column-model (all columns) for this table-data-model. - */ - @Override - public void setTableColumnModel(FlexiTableColumnModel tableColumnModel) { - this.tableColumnModel = tableColumnModel; - } - -} \ No newline at end of file diff --git a/src/main/java/org/olat/course/highscore/ui/HighScoreFlexiTableModel.java b/src/main/java/org/olat/course/highscore/ui/HighScoreFlexiTableModel.java index ae456c25805bbfd92e0fa3b4bdb51f3b439802f7..6b7738487a2bb4522170d6a1643f5d131b742877 100644 --- a/src/main/java/org/olat/course/highscore/ui/HighScoreFlexiTableModel.java +++ b/src/main/java/org/olat/course/highscore/ui/HighScoreFlexiTableModel.java @@ -21,41 +21,31 @@ package org.olat.course.highscore.ui; import java.util.ArrayList; import java.util.List; -import org.olat.core.gui.components.table.TableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; import org.olat.core.id.Identity; /** * Initial Date: 5.08.2016 <br> * @author fkiefer */ -public class HighScoreFlexiTableModel implements TableDataModel<HighScoreTableEntry> { +public class HighScoreFlexiTableModel extends DefaultFlexiTableDataModel<HighScoreTableEntry> { - private final int COLUMN_COUNT = 3; private final String placeholder; - private List<HighScoreTableEntry> entries; private final boolean anonymous; private Identity ownId; public HighScoreFlexiTableModel(List<HighScoreTableEntry> entries, boolean anonymous, String placeholder, - Identity ownId) { - this.entries = entries; + Identity ownId, FlexiTableColumnModel columnModel) { + super(columnModel); + this.setObjects(entries); this.anonymous = anonymous; this.placeholder = placeholder; this.ownId = ownId; } - @Override - public int getColumnCount() { - return COLUMN_COUNT; - } - - @Override - public int getRowCount() { - return entries == null ? 0 : entries.size(); - } - @Override public Object getValueAt(int row, int col) { - HighScoreTableEntry entry = entries.get(row); + HighScoreTableEntry entry = getObject(row); switch(col) { case 0: return entry.getRank(); case 1: return entry.getScore(); @@ -65,19 +55,7 @@ public class HighScoreFlexiTableModel implements TableDataModel<HighScoreTableEn } @Override - public HighScoreTableEntry getObject(int row) { - return null; - } - - @Override - public void setObjects(List<HighScoreTableEntry> entries) { - this.entries = entries; + public HighScoreFlexiTableModel createCopyWithEmptyList() { + return new HighScoreFlexiTableModel(new ArrayList<>(), anonymous, placeholder, ownId, getTableColumnModel()); } - - @Override - public Object createCopyWithEmptyList() { - return new HighScoreFlexiTableModel(new ArrayList<>(), anonymous,placeholder,ownId); - } - - } diff --git a/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java b/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java index 2ad23cc5e71579598315bdd7421908a711877b4d..ca5c2644309c4602bd607ad1ec94cbb4b36c2c8d 100644 --- a/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java +++ b/src/main/java/org/olat/course/highscore/ui/HighScoreRunController.java @@ -38,9 +38,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableCssDelegate; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelImpl; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableRendererType; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; @@ -71,7 +69,8 @@ public class HighScoreRunController extends FormBasicController{ private static final String GUIPREF_KEY_HIGHSCORE = "highscore"; - private FlexiTableDataModel<HighScoreTableEntry> tableDataModel, tableDataModel2; + private HighScoreFlexiTableModel tableDataModel; + private HighScoreFlexiTableModel tableDataModel2; private List<HighScoreTableEntry> allMembers, ownIdMembers; private List<List<HighScoreTableEntry>> allPodium; private List<Integer> ownIdIndices; @@ -326,8 +325,8 @@ public class HighScoreRunController extends FormBasicController{ allMembers.subList(tableSize, allMembers.size()).clear(); } - tableDataModel = new FlexiTableDataModelImpl<>(new HighScoreFlexiTableModel(allMembers, anonymous, - translate("highscore.anonymous"),ownIdentity), tableColumnModel); + tableDataModel = new HighScoreFlexiTableModel(allMembers, anonymous, + translate("highscore.anonymous"),ownIdentity, tableColumnModel); FlexiTableElement topTenTable = uifactory.addTableElement(getWindowControl(), "table", tableDataModel, getTranslator(), formLayout); topTenTable.setNumOfRowsEnabled(false); @@ -336,10 +335,8 @@ public class HighScoreRunController extends FormBasicController{ //establish a 2nd table if ownID position is greater than first table's size setting if (!ownIdMembers.isEmpty()) { - tableDataModel2 = new FlexiTableDataModelImpl<>( - new HighScoreFlexiTableModel(ownIdMembers, anonymous, - translate("highscore.anonymous"), ownIdentity), - tableColumnModel); + tableDataModel2 = new HighScoreFlexiTableModel(ownIdMembers, anonymous, + translate("highscore.anonymous"), ownIdentity, tableColumnModel); FlexiTableElement tableElement = uifactory.addTableElement( getWindowControl(), "table2", tableDataModel2, getTranslator(), formLayout); tableElement.setNumOfRowsEnabled(false); @@ -347,7 +344,7 @@ public class HighScoreRunController extends FormBasicController{ tableElement.setCssDelegate(new MarkedMemberCssDelegate(true)); } } - if (viewPosition && ownIdIndices.size() > 0) { + if (viewPosition && !ownIdIndices.isEmpty()) { int amountWorse = allScores.length - ownIdIndices.get(0) - 1; if (amountWorse > 0) { mainVC.contextPut("relposition", translate("highscore.position.inrelation", diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java index dd978a0a77145455ef7874f791c558d1132fcf4d..d8df87492694d6db87b2834a68fb1611c181e95d 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java @@ -76,9 +76,6 @@ public class GuiDemoFlexiForm extends FormBasicController { // but typically initForm(..) is the last call in the constructor. } - /** - * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#doDispose(boolean) - */ @Override protected void doDispose() { // cleanup tempt files @@ -86,10 +83,7 @@ public class GuiDemoFlexiForm extends FormBasicController { tmpFile.delete(); } } - - /** - * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#formOK(org.olat.core.gui.UserRequest) - */ + @Override protected void formOK(UserRequest ureq) { // this method is called if the form has validated @@ -118,10 +112,6 @@ public class GuiDemoFlexiForm extends FormBasicController { initialPanel.pushContent(confirm); } - /** - * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer, - * org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest) - */ @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { /* @@ -147,8 +137,7 @@ public class GuiDemoFlexiForm extends FormBasicController { lastName.setPlaceholderText("Muster"); lastName.setHelpUrl("https://en.wikipedia.org/wiki/Family_name"); - fileElement = uifactory.addFileElement(getWindowControl(), "file", formLayout); - fileElement.setLabel("guidemo.flexi.form.file", null); + fileElement = uifactory.addFileElement(getWindowControl(), "file", "guidemo.flexi.form.file", formLayout); fileElement.setMaxUploadSizeKB(500, "guidemo.flexi.form.filetobig", null); Set<String> mimeTypes = new HashSet<>(); mimeTypes.add("image/*"); diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiTablesController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiTablesController.java index ff81e7d57629b0851215c40252c28753c6870bdd..ff07c00d5fd2e0f248bf5b4128ba82999f57bc96 100644 --- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiTablesController.java +++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiTablesController.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.UUID; import org.olat.core.gui.UserRequest; +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.FormLink; import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; @@ -40,14 +41,12 @@ import org.olat.core.gui.components.form.flexible.impl.FormEvent; import org.olat.core.gui.components.form.flexible.impl.elements.FormLinkImpl; import org.olat.core.gui.components.form.flexible.impl.elements.MultipleSelectionElementImpl; import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel; +import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiCellRenderer; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModel; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; -import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelImpl; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponent; -import org.olat.core.gui.components.table.BaseTableDataModelWithoutFilter; +import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; @@ -63,7 +62,7 @@ import org.olat.core.gui.translator.Translator; */ public class GuiDemoFlexiTablesController extends FormBasicController { - private FlexiTableDataModel<Row> tableDataModel; + private SampleFlexiTableModel tableDataModel; public GuiDemoFlexiTablesController(UserRequest ureq, WindowControl wControl) { super(ureq, wControl, "flexitable"); @@ -86,25 +85,26 @@ public class GuiDemoFlexiTablesController extends FormBasicController { // column 7 : Link tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("guidemo.table.header7", 6)); - tableDataModel = new FlexiTableDataModelImpl<>(new SampleFlexiTableModel(formLayout), tableColumnModel); - uifactory.addTableElement(getWindowControl(), "gui-demo", tableDataModel, getTranslator(), formLayout); + tableDataModel = new SampleFlexiTableModel(tableColumnModel); + int iEntries = 50; + List<Row> entries = new ArrayList<>(iEntries); + for (int i=0; i < iEntries; i++) { + entries.add(new Row(i, formLayout)); + } + tableDataModel.setObjects(entries); + + uifactory.addTableElement(getWindowControl(), "gui-demo", tableDataModel, 24, true, getTranslator(), formLayout); uifactory.addFormSubmitButton("ok", formLayout); } + @Override protected void doDispose() { // } - - @Override - protected boolean validateFormLogic(UserRequest ureq) { - boolean isInputValid = true; - //do some validation here - return isInputValid && super.validateFormLogic(ureq); - } @Override - protected void formInnerEvent(UserRequest ureq, org.olat.core.gui.components.form.flexible.FormItem source, FormEvent event) { - System.out.println("TEST formInnerEvent"); + protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) { + logInfo("TEST formInnerEvent"); } @Override @@ -112,7 +112,7 @@ public class GuiDemoFlexiTablesController extends FormBasicController { Object obj = tableDataModel.getValueAt(0, 2); if(obj instanceof MultipleSelectionElement) { MultipleSelectionElement selection = (MultipleSelectionElement)obj; - System.out.println(selection.getSelectedKeys()); + logInfo(selection.getSelectedKeys().toString()); } fireEvent(ureq, Event.DONE_EVENT); @@ -127,28 +127,15 @@ public class GuiDemoFlexiTablesController extends FormBasicController { * Example legacy (non-flexi-table) table-model. * @author guretzki */ - private class SampleFlexiTableModel extends BaseTableDataModelWithoutFilter<Row> { - private final int COLUMN_COUNT = 7; - private final List<Row> entries; - - public SampleFlexiTableModel(FormItemContainer formContainer) { - int iEntries = 50; - entries = new ArrayList<>(iEntries); - for (int i=0; i < iEntries; i++) { - entries.add(new Row(i, formContainer)); - } - } - - public int getColumnCount() { - return COLUMN_COUNT; - } + private class SampleFlexiTableModel extends DefaultFlexiTableDataModel<Row> { - public int getRowCount() { - return entries.size(); + public SampleFlexiTableModel(FlexiTableColumnModel tableColumnModel) { + super(tableColumnModel); } + @Override public Object getValueAt(int row, int col) { - Row entry = entries.get(row); + Row entry = getObject(row); switch(col) { case 0: return entry.getCol1(); case 1: return entry.getCol2(); @@ -160,6 +147,11 @@ public class GuiDemoFlexiTablesController extends FormBasicController { default: return entry; } } + + @Override + public DefaultFlexiTableDataModel<Row> createCopyWithEmptyList() { + return new SampleFlexiTableModel(getTableColumnModel()); + } } private class Row {