Skip to content
Snippets Groups Projects
Commit 102589d2 authored by srosse's avatar srosse
Browse files

OO-4254: delete old compatibility table model

parent d0cef95a
No related branches found
No related tags found
No related merge requests found
Showing
with 90 additions and 252 deletions
...@@ -22,7 +22,8 @@ package org.olat.admin.user.bulkChange; ...@@ -22,7 +22,8 @@ package org.olat.admin.user.bulkChange;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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.gui.translator.Translator;
import org.olat.core.util.filter.FilterFactory; import org.olat.core.util.filter.FilterFactory;
import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroup;
...@@ -36,26 +37,23 @@ import org.olat.group.BusinessGroup; ...@@ -36,26 +37,23 @@ import org.olat.group.BusinessGroup;
* Initial Date: 09.05.2011 <br> * Initial Date: 09.05.2011 <br>
* @author Roman Haag, frentix GmbH, roman.haag@frentix.com * @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 Translator translator;
private List<Long> mailGroupIDs; private List<Long> mailGroupIDs;
private List<Long> ownGroupIDs; private List<Long> ownGroupIDs;
private List<Long> partGroupIDs; private List<Long> partGroupIDs;
public GroupAddOverviewModel(List<BusinessGroup> allGroupIDs, List<Long> ownGroupIDs, List<Long> partGroupIDs, List<Long> mailGroups, Translator trans) { public GroupAddOverviewModel(List<BusinessGroup> allGroupIDs, List<Long> ownGroupIDs, List<Long> partGroupIDs, List<Long> mailGroups,
super(allGroupIDs); Translator trans, FlexiTableColumnModel columnModel) {
super(columnModel);
setObjects(allGroupIDs);
this.translator = trans; this.translator = trans;
this.ownGroupIDs = ownGroupIDs; this.ownGroupIDs = ownGroupIDs;
this.partGroupIDs = partGroupIDs; this.partGroupIDs = partGroupIDs;
this.mailGroupIDs = mailGroups; this.mailGroupIDs = mailGroups;
} }
@Override
public int getColumnCount() {
return 5;
}
@Override @Override
public Object getValueAt(int row, int col) { public Object getValueAt(int row, int col) {
BusinessGroup group = getObject(row); BusinessGroup group = getObject(row);
...@@ -93,6 +91,6 @@ public class GroupAddOverviewModel extends DefaultTableDataModel<BusinessGroup> ...@@ -93,6 +91,6 @@ public class GroupAddOverviewModel extends DefaultTableDataModel<BusinessGroup>
@Override @Override
public GroupAddOverviewModel createCopyWithEmptyList() { 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
...@@ -22,7 +22,8 @@ package org.olat.admin.user.bulkChange; ...@@ -22,7 +22,8 @@ package org.olat.admin.user.bulkChange;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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> * Description:<br>
...@@ -33,18 +34,11 @@ import org.olat.core.gui.components.table.DefaultTableDataModel; ...@@ -33,18 +34,11 @@ import org.olat.core.gui.components.table.DefaultTableDataModel;
* *
* @author rhaag * @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, FlexiTableColumnModel columnModel) {
super(columnModel);
public OverviewModel(List<List<String>> objects, int columnCount) { setObjects(objects);
super(objects);
this.columnCount = columnCount;
}
@Override
public int getColumnCount() {
return columnCount;
} }
@Override @Override
...@@ -55,7 +49,7 @@ public class OverviewModel extends DefaultTableDataModel<List<String>> { ...@@ -55,7 +49,7 @@ public class OverviewModel extends DefaultTableDataModel<List<String>> {
} }
@Override @Override
public Object createCopyWithEmptyList() { public OverviewModel createCopyWithEmptyList() {
return new OverviewModel(new ArrayList<List<String>>(), columnCount); return new OverviewModel(new ArrayList<List<String>>(), getTableColumnModel());
} }
} }
...@@ -39,11 +39,8 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; ...@@ -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.DefaultFlexiColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; 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.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.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.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.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.wizard.BasicStep; import org.olat.core.gui.control.generic.wizard.BasicStep;
...@@ -172,7 +169,7 @@ class UserBulkChangeStep02 extends 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.removed", colPos++, false, null, FlexiColumnModel.ALIGNMENT_LEFT, textRenderer));
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, "table.role.status", 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); uifactory.addTableElement(getWindowControl(), "newUsers", tableDataModel, getTranslator(), formLayoutVertical);
Set<Long> allGroups = new HashSet<>(); Set<Long> allGroups = new HashSet<>();
...@@ -192,9 +189,7 @@ class UserBulkChangeStep02 extends BasicStep { ...@@ -192,9 +189,7 @@ class UserBulkChangeStep02 extends BasicStep {
groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("send.email", 3)); groupColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("send.email", 3));
List<BusinessGroup> groups = businessGroupService.loadBusinessGroups(allGroups); List<BusinessGroup> groups = businessGroupService.loadBusinessGroups(allGroups);
TableDataModel<BusinessGroup> model = new GroupAddOverviewModel(groups, ownGroups, partGroups, mailGroups, getTranslator()); GroupAddOverviewModel groupDataModel = new GroupAddOverviewModel(groups, ownGroups, partGroups, mailGroups, getTranslator(), groupColumnModel);
FlexiTableDataModel<BusinessGroup> groupDataModel = new FlexiTableDataModelImpl<>(model, groupColumnModel);
uifactory.addTableElement(getWindowControl(), "groupOverview", groupDataModel, getTranslator(), formLayout); uifactory.addTableElement(getWindowControl(), "groupOverview", groupDataModel, getTranslator(), formLayout);
} }
} }
......
...@@ -99,11 +99,9 @@ class ImportStep00 extends BasicStep { ...@@ -99,11 +99,9 @@ class ImportStep00 extends BasicStep {
@Override @Override
public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) { public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) {
StepFormController stepI = new ImportStepForm00(ureq, windowControl, form, stepsRunContext); return new ImportStepForm00(ureq, windowControl, form, stepsRunContext);
return stepI;
} }
private final class ImportStepForm00 extends StepFormBasicController { private final class ImportStepForm00 extends StepFormBasicController {
private List<Identity> idents; private List<Identity> idents;
......
...@@ -35,9 +35,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.AbstractCS ...@@ -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.DefaultFlexiColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; 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.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.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.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.wizard.BasicStep; import org.olat.core.gui.control.generic.wizard.BasicStep;
...@@ -74,16 +72,13 @@ class ImportStep01 extends BasicStep { ...@@ -74,16 +72,13 @@ class ImportStep01 extends BasicStep {
@Override @Override
public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) { public StepFormController getStepController(UserRequest ureq, WindowControl windowControl, StepsRunContext stepsRunContext, Form form) {
StepFormController stepI = new ImportStepForm01(ureq, windowControl, form, stepsRunContext); return new ImportStepForm01(ureq, windowControl, form, stepsRunContext);
return stepI;
} }
private final class ImportStepForm01 extends StepFormBasicController { private final class ImportStepForm01 extends StepFormBasicController {
private SingleSelection updateEl;
private FormLayoutContainer textContainer; private SingleSelection updatePasswordEl;
private SingleSelection updateEl, updatePasswordEl;
private List<UserPropertyHandler> userPropertyHandlers;
@Autowired @Autowired
private UserManager userManager; private UserManager userManager;
...@@ -119,7 +114,7 @@ class ImportStep01 extends BasicStep { ...@@ -119,7 +114,7 @@ class ImportStep01 extends BasicStep {
@Override @Override
protected boolean validateFormLogic(UserRequest ureq) { protected boolean validateFormLogic(UserRequest ureq) {
boolean allOk = true; boolean allOk = super.validateFormLogic(ureq);
if(updateEl != null && (!updateEl.isOneSelected() || updateEl.isSelected(0))) { if(updateEl != null && (!updateEl.isOneSelected() || updateEl.isSelected(0))) {
updateEl.setErrorKey("form.mandatory.hover", null); updateEl.setErrorKey("form.mandatory.hover", null);
allOk &= false; allOk &= false;
...@@ -129,7 +124,7 @@ class ImportStep01 extends BasicStep { ...@@ -129,7 +124,7 @@ class ImportStep01 extends BasicStep {
updatePasswordEl.setErrorKey("form.mandatory.hover", null); updatePasswordEl.setErrorKey("form.mandatory.hover", null);
allOk &= false; allOk &= false;
} }
return allOk & super.validateFormLogic(ureq); return allOk;
} }
@Override @Override
...@@ -145,7 +140,7 @@ class ImportStep01 extends BasicStep { ...@@ -145,7 +140,7 @@ class ImportStep01 extends BasicStep {
List<UpdateIdentity> updateIdents = (List<UpdateIdentity>) getFromRunContext("updateIdents"); List<UpdateIdentity> updateIdents = (List<UpdateIdentity>) getFromRunContext("updateIdents");
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
List<TransientIdentity> newIdents = (List<TransientIdentity>) getFromRunContext("newIdents"); 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); formLayoutVertical.add(textContainer);
int cntall = idents.size(); int cntall = idents.size();
...@@ -183,14 +178,13 @@ class ImportStep01 extends BasicStep { ...@@ -183,14 +178,13 @@ class ImportStep01 extends BasicStep {
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.user.lang", colPos++)); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("table.user.lang", colPos++));
// followed by all properties configured // followed by all properties configured
// if only mandatory required: check for um.isMandatoryUserProperty(usageIdentifyer, userPropertyHandler); List<UserPropertyHandler> userPropertyHandlers = userManager.getUserPropertyHandlersFor(usageIdentifyer, true);
userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, true);
for (int i = 0; i < userPropertyHandlers.size(); i++) { for (int i = 0; i < userPropertyHandlers.size(); i++) {
UserPropertyHandler userPropertyHandler = userPropertyHandlers.get(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); uifactory.addTableElement(getWindowControl(), "newUsers", tableDataModel, getTranslator(), formLayoutVertical);
} }
} }
......
...@@ -25,9 +25,12 @@ ...@@ -25,9 +25,12 @@
package org.olat.admin.user.imp; package org.olat.admin.user.imp;
import java.util.ArrayList;
import java.util.List; 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.core.id.Identity;
import org.olat.user.UserManager; import org.olat.user.UserManager;
import org.olat.user.propertyhandlers.UserPropertyHandler; import org.olat.user.propertyhandlers.UserPropertyHandler;
...@@ -39,21 +42,17 @@ import org.olat.user.propertyhandlers.UserPropertyHandler; ...@@ -39,21 +42,17 @@ import org.olat.user.propertyhandlers.UserPropertyHandler;
* *
* Description: Table model for user mass import. * 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 static final String usageIdentifyer = UserImportController.class.getCanonicalName();
private int columnCount = 0;
public Model(List<Identity> objects, int columnCount) { public Model(List<Identity> objects, FlexiTableColumnModel columnModel, Locale locale) {
super(objects); super(columnModel);
this.locale = locale;
userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, true); userPropertyHandlers = UserManager.getInstance().getUserPropertyHandlersFor(usageIdentifyer, true);
this.columnCount = columnCount; setObjects(objects);
}
@Override
public int getColumnCount() {
return columnCount;
} }
@Override @Override
...@@ -83,9 +82,14 @@ public class Model extends DefaultTableDataModel<Identity> { ...@@ -83,9 +82,14 @@ public class Model extends DefaultTableDataModel<Identity> {
} else if (col > 3 && col < getColumnCount()) { } else if (col > 3 && col < getColumnCount()) {
// get user property for this column for an already existing user // get user property for this column for an already existing user
UserPropertyHandler userPropertyHandler = userPropertyHandlers.get(col - 4); 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 (value == null ? "n/a" : value);
} }
return "ERROR"; return "ERROR";
} }
@Override
public DefaultFlexiTableDataModel<Identity> createCopyWithEmptyList() {
return new Model(new ArrayList<>(), getTableColumnModel(), locale);
}
} }
/**
* 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
...@@ -21,41 +21,31 @@ package org.olat.course.highscore.ui; ...@@ -21,41 +21,31 @@ package org.olat.course.highscore.ui;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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; import org.olat.core.id.Identity;
/** /**
* Initial Date: 5.08.2016 <br> * Initial Date: 5.08.2016 <br>
* @author fkiefer * @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 final String placeholder;
private List<HighScoreTableEntry> entries;
private final boolean anonymous; private final boolean anonymous;
private Identity ownId; private Identity ownId;
public HighScoreFlexiTableModel(List<HighScoreTableEntry> entries, boolean anonymous, String placeholder, public HighScoreFlexiTableModel(List<HighScoreTableEntry> entries, boolean anonymous, String placeholder,
Identity ownId) { Identity ownId, FlexiTableColumnModel columnModel) {
this.entries = entries; super(columnModel);
this.setObjects(entries);
this.anonymous = anonymous; this.anonymous = anonymous;
this.placeholder = placeholder; this.placeholder = placeholder;
this.ownId = ownId; this.ownId = ownId;
} }
@Override
public int getColumnCount() {
return COLUMN_COUNT;
}
@Override
public int getRowCount() {
return entries == null ? 0 : entries.size();
}
@Override @Override
public Object getValueAt(int row, int col) { public Object getValueAt(int row, int col) {
HighScoreTableEntry entry = entries.get(row); HighScoreTableEntry entry = getObject(row);
switch(col) { switch(col) {
case 0: return entry.getRank(); case 0: return entry.getRank();
case 1: return entry.getScore(); case 1: return entry.getScore();
...@@ -65,19 +55,7 @@ public class HighScoreFlexiTableModel implements TableDataModel<HighScoreTableEn ...@@ -65,19 +55,7 @@ public class HighScoreFlexiTableModel implements TableDataModel<HighScoreTableEn
} }
@Override @Override
public HighScoreTableEntry getObject(int row) { public HighScoreFlexiTableModel createCopyWithEmptyList() {
return null; return new HighScoreFlexiTableModel(new ArrayList<>(), anonymous, placeholder, ownId, getTableColumnModel());
}
@Override
public void setObjects(List<HighScoreTableEntry> entries) {
this.entries = entries;
} }
@Override
public Object createCopyWithEmptyList() {
return new HighScoreFlexiTableModel(new ArrayList<>(), anonymous,placeholder,ownId);
}
} }
...@@ -38,9 +38,7 @@ import org.olat.core.gui.components.form.flexible.impl.FormBasicController; ...@@ -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.DefaultFlexiColumnModel;
import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableCssDelegate; 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.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.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.form.flexible.impl.elements.table.FlexiTableRendererType;
import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.Link;
import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.link.LinkFactory;
...@@ -71,7 +69,8 @@ public class HighScoreRunController extends FormBasicController{ ...@@ -71,7 +69,8 @@ public class HighScoreRunController extends FormBasicController{
private static final String GUIPREF_KEY_HIGHSCORE = "highscore"; 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<HighScoreTableEntry> allMembers, ownIdMembers;
private List<List<HighScoreTableEntry>> allPodium; private List<List<HighScoreTableEntry>> allPodium;
private List<Integer> ownIdIndices; private List<Integer> ownIdIndices;
...@@ -326,8 +325,8 @@ public class HighScoreRunController extends FormBasicController{ ...@@ -326,8 +325,8 @@ public class HighScoreRunController extends FormBasicController{
allMembers.subList(tableSize, allMembers.size()).clear(); allMembers.subList(tableSize, allMembers.size()).clear();
} }
tableDataModel = new FlexiTableDataModelImpl<>(new HighScoreFlexiTableModel(allMembers, anonymous, tableDataModel = new HighScoreFlexiTableModel(allMembers, anonymous,
translate("highscore.anonymous"),ownIdentity), tableColumnModel); translate("highscore.anonymous"),ownIdentity, tableColumnModel);
FlexiTableElement topTenTable = uifactory.addTableElement(getWindowControl(), "table", tableDataModel, FlexiTableElement topTenTable = uifactory.addTableElement(getWindowControl(), "table", tableDataModel,
getTranslator(), formLayout); getTranslator(), formLayout);
topTenTable.setNumOfRowsEnabled(false); topTenTable.setNumOfRowsEnabled(false);
...@@ -336,10 +335,8 @@ public class HighScoreRunController extends FormBasicController{ ...@@ -336,10 +335,8 @@ public class HighScoreRunController extends FormBasicController{
//establish a 2nd table if ownID position is greater than first table's size setting //establish a 2nd table if ownID position is greater than first table's size setting
if (!ownIdMembers.isEmpty()) { if (!ownIdMembers.isEmpty()) {
tableDataModel2 = new FlexiTableDataModelImpl<>( tableDataModel2 = new HighScoreFlexiTableModel(ownIdMembers, anonymous,
new HighScoreFlexiTableModel(ownIdMembers, anonymous, translate("highscore.anonymous"), ownIdentity, tableColumnModel);
translate("highscore.anonymous"), ownIdentity),
tableColumnModel);
FlexiTableElement tableElement = uifactory.addTableElement( FlexiTableElement tableElement = uifactory.addTableElement(
getWindowControl(), "table2", tableDataModel2, getTranslator(), formLayout); getWindowControl(), "table2", tableDataModel2, getTranslator(), formLayout);
tableElement.setNumOfRowsEnabled(false); tableElement.setNumOfRowsEnabled(false);
...@@ -347,7 +344,7 @@ public class HighScoreRunController extends FormBasicController{ ...@@ -347,7 +344,7 @@ public class HighScoreRunController extends FormBasicController{
tableElement.setCssDelegate(new MarkedMemberCssDelegate(true)); tableElement.setCssDelegate(new MarkedMemberCssDelegate(true));
} }
} }
if (viewPosition && ownIdIndices.size() > 0) { if (viewPosition && !ownIdIndices.isEmpty()) {
int amountWorse = allScores.length - ownIdIndices.get(0) - 1; int amountWorse = allScores.length - ownIdIndices.get(0) - 1;
if (amountWorse > 0) { if (amountWorse > 0) {
mainVC.contextPut("relposition", translate("highscore.position.inrelation", mainVC.contextPut("relposition", translate("highscore.position.inrelation",
......
...@@ -76,9 +76,6 @@ public class GuiDemoFlexiForm extends FormBasicController { ...@@ -76,9 +76,6 @@ public class GuiDemoFlexiForm extends FormBasicController {
// but typically initForm(..) is the last call in the constructor. // but typically initForm(..) is the last call in the constructor.
} }
/**
* @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#doDispose(boolean)
*/
@Override @Override
protected void doDispose() { protected void doDispose() {
// cleanup tempt files // cleanup tempt files
...@@ -86,10 +83,7 @@ public class GuiDemoFlexiForm extends FormBasicController { ...@@ -86,10 +83,7 @@ public class GuiDemoFlexiForm extends FormBasicController {
tmpFile.delete(); tmpFile.delete();
} }
} }
/**
* @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#formOK(org.olat.core.gui.UserRequest)
*/
@Override @Override
protected void formOK(UserRequest ureq) { protected void formOK(UserRequest ureq) {
// this method is called if the form has validated // this method is called if the form has validated
...@@ -118,10 +112,6 @@ public class GuiDemoFlexiForm extends FormBasicController { ...@@ -118,10 +112,6 @@ public class GuiDemoFlexiForm extends FormBasicController {
initialPanel.pushContent(confirm); 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 @Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
/* /*
...@@ -147,8 +137,7 @@ public class GuiDemoFlexiForm extends FormBasicController { ...@@ -147,8 +137,7 @@ public class GuiDemoFlexiForm extends FormBasicController {
lastName.setPlaceholderText("Muster"); lastName.setPlaceholderText("Muster");
lastName.setHelpUrl("https://en.wikipedia.org/wiki/Family_name"); lastName.setHelpUrl("https://en.wikipedia.org/wiki/Family_name");
fileElement = uifactory.addFileElement(getWindowControl(), "file", formLayout); fileElement = uifactory.addFileElement(getWindowControl(), "file", "guidemo.flexi.form.file", formLayout);
fileElement.setLabel("guidemo.flexi.form.file", null);
fileElement.setMaxUploadSizeKB(500, "guidemo.flexi.form.filetobig", null); fileElement.setMaxUploadSizeKB(500, "guidemo.flexi.form.filetobig", null);
Set<String> mimeTypes = new HashSet<>(); Set<String> mimeTypes = new HashSet<>();
mimeTypes.add("image/*"); mimeTypes.add("image/*");
......
...@@ -31,6 +31,7 @@ import java.util.List; ...@@ -31,6 +31,7 @@ import java.util.List;
import java.util.UUID; import java.util.UUID;
import org.olat.core.gui.UserRequest; 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.FormItemContainer;
import org.olat.core.gui.components.form.flexible.elements.FormLink; import org.olat.core.gui.components.form.flexible.elements.FormLink;
import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement; import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
...@@ -40,14 +41,12 @@ import org.olat.core.gui.components.form.flexible.impl.FormEvent; ...@@ -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.FormLinkImpl;
import org.olat.core.gui.components.form.flexible.impl.elements.MultipleSelectionElementImpl; 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.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.FlexiCellRenderer;
import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; 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.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.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.Controller;
import org.olat.core.gui.control.Event; import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
...@@ -63,7 +62,7 @@ import org.olat.core.gui.translator.Translator; ...@@ -63,7 +62,7 @@ import org.olat.core.gui.translator.Translator;
*/ */
public class GuiDemoFlexiTablesController extends FormBasicController { public class GuiDemoFlexiTablesController extends FormBasicController {
private FlexiTableDataModel<Row> tableDataModel; private SampleFlexiTableModel tableDataModel;
public GuiDemoFlexiTablesController(UserRequest ureq, WindowControl wControl) { public GuiDemoFlexiTablesController(UserRequest ureq, WindowControl wControl) {
super(ureq, wControl, "flexitable"); super(ureq, wControl, "flexitable");
...@@ -86,25 +85,26 @@ public class GuiDemoFlexiTablesController extends FormBasicController { ...@@ -86,25 +85,26 @@ public class GuiDemoFlexiTablesController extends FormBasicController {
// column 7 : Link // column 7 : Link
tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("guidemo.table.header7", 6)); tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel("guidemo.table.header7", 6));
tableDataModel = new FlexiTableDataModelImpl<>(new SampleFlexiTableModel(formLayout), tableColumnModel); tableDataModel = new SampleFlexiTableModel(tableColumnModel);
uifactory.addTableElement(getWindowControl(), "gui-demo", tableDataModel, getTranslator(), formLayout); 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); uifactory.addFormSubmitButton("ok", formLayout);
} }
@Override
protected void doDispose() { protected void doDispose() {
// //
} }
@Override
protected boolean validateFormLogic(UserRequest ureq) {
boolean isInputValid = true;
//do some validation here
return isInputValid && super.validateFormLogic(ureq);
}
@Override @Override
protected void formInnerEvent(UserRequest ureq, org.olat.core.gui.components.form.flexible.FormItem source, FormEvent event) { protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
System.out.println("TEST formInnerEvent"); logInfo("TEST formInnerEvent");
} }
@Override @Override
...@@ -112,7 +112,7 @@ public class GuiDemoFlexiTablesController extends FormBasicController { ...@@ -112,7 +112,7 @@ public class GuiDemoFlexiTablesController extends FormBasicController {
Object obj = tableDataModel.getValueAt(0, 2); Object obj = tableDataModel.getValueAt(0, 2);
if(obj instanceof MultipleSelectionElement) { if(obj instanceof MultipleSelectionElement) {
MultipleSelectionElement selection = (MultipleSelectionElement)obj; MultipleSelectionElement selection = (MultipleSelectionElement)obj;
System.out.println(selection.getSelectedKeys()); logInfo(selection.getSelectedKeys().toString());
} }
fireEvent(ureq, Event.DONE_EVENT); fireEvent(ureq, Event.DONE_EVENT);
...@@ -127,28 +127,15 @@ public class GuiDemoFlexiTablesController extends FormBasicController { ...@@ -127,28 +127,15 @@ public class GuiDemoFlexiTablesController extends FormBasicController {
* Example legacy (non-flexi-table) table-model. * Example legacy (non-flexi-table) table-model.
* @author guretzki * @author guretzki
*/ */
private class SampleFlexiTableModel extends BaseTableDataModelWithoutFilter<Row> { private class SampleFlexiTableModel extends DefaultFlexiTableDataModel<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;
}
public int getRowCount() { public SampleFlexiTableModel(FlexiTableColumnModel tableColumnModel) {
return entries.size(); super(tableColumnModel);
} }
@Override
public Object getValueAt(int row, int col) { public Object getValueAt(int row, int col) {
Row entry = entries.get(row); Row entry = getObject(row);
switch(col) { switch(col) {
case 0: return entry.getCol1(); case 0: return entry.getCol1();
case 1: return entry.getCol2(); case 1: return entry.getCol2();
...@@ -160,6 +147,11 @@ public class GuiDemoFlexiTablesController extends FormBasicController { ...@@ -160,6 +147,11 @@ public class GuiDemoFlexiTablesController extends FormBasicController {
default: return entry; default: return entry;
} }
} }
@Override
public DefaultFlexiTableDataModel<Row> createCopyWithEmptyList() {
return new SampleFlexiTableModel(getTableColumnModel());
}
} }
private class Row { private class Row {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment