Package org.olat.modules.wiki

Source Code of org.olat.modules.wiki.MediaFilesTableModel

/**
* OLAT - Online Learning and Training<br>
* http://www.olat.org
* <p>
* This software is protected by the OLAT software license.<br>
* Use is subject to license terms.<br>
* See LICENSE.TXT in this distribution for details.
* <p>
* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
* University of Zurich, Switzerland.<br>
* All rights reserved.
* <p>
*/
package org.olat.modules.wiki;

import java.util.Date;
import java.util.List;

import org.olat.basesecurity.ManagerFactory;
import org.olat.core.gui.components.table.CustomCssCellRenderer;
import org.olat.core.gui.components.table.CustomRenderColumnDescriptor;
import org.olat.core.gui.components.table.DefaultColumnDescriptor;
import org.olat.core.gui.components.table.DefaultTableDataModel;
import org.olat.core.gui.components.table.TableController;
import org.olat.core.gui.translator.Translator;
import org.olat.core.util.Formatter;

/**
* Description:<br>
* Generates an table containing media files in the wiki. Elements are @see org.olat.modules.wiki.MediaFileElement
* <P>
* Initial Date: Nov 6, 2006 <br>
*
* @author guido
*/
public class MediaFilesTableModel extends DefaultTableDataModel {
  private static final int COLUMN_COUNT = 5;
  private Formatter formatter;

  public MediaFilesTableModel(List objects, Translator trans) {
    super(objects);
    setLocale(trans.getLocale());
    formatter = Formatter.getInstance(trans.getLocale());
  }

  public void addColumnDescriptors(TableController tableCtr) {
    tableCtr.addColumnDescriptor(new CustomRenderColumnDescriptor("table.header.filename", 0, WikiMainController.ACTION_SHOW_MEDIA,
        getLocale(), 1, new StrikeThroughCellRenderer()));
    tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.created.by", 1, null, getLocale()));
    tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.creation.date", 2, null, getLocale()));
    tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.deleted.by", 3, null, getLocale()));
    tableCtr.addColumnDescriptor(new DefaultColumnDescriptor("table.header.deleted.at", 4, null, getLocale()));
  }

  @Override
  public int getColumnCount() {
    return COLUMN_COUNT;
  }

  @Override
  public Object getValueAt(int row, int col) {
    MediaFileElement entry = getEntryAt(row);
    switch (col) {
      case 0:
        String filename = entry.getFilename();
        if (filename.length() > 40) {
          if(filename.endsWith(WikiMainController.METADATA_SUFFIX)) return entry.getFilename().substring(0, 40) + WikiMainController.METADATA_SUFFIX;
          return entry.getFilename().substring(0, 40) + "...";
        }
        return entry.getFilename();
      case 1:
        long identKey = entry.getCreatedBy();
        if (identKey == 0) return "---";
        return ManagerFactory.getManager().loadIdentityByKey(identKey).getName();
      case 2:
        return formatter.formatDateAndTime(new Date(entry.getCreationDate()));
      case 3:
        long key = entry.getDeletedBy();
        if (key == 0) return "---";
        return ManagerFactory.getManager().loadIdentityByKey(key).getName();
      case 4:
        long delDate = entry.getDeletionDate();
        if (delDate == 0) return "---";
        return formatter.formatDateAndTime(new Date(delDate));
      default:
        return "ERROR";
    }
  }

  private MediaFileElement getEntryAt(int row) {
    return (MediaFileElement) this.objects.get(row);
  }

  private class StrikeThroughCellRenderer extends CustomCssCellRenderer {

    @Override
    protected String getCssClass(Object val) {
      String filename = (String) val;
      if (filename.endsWith(WikiMainController.METADATA_SUFFIX)) return "wiki-file-deleted";
      return "";
    }

    @Override
    protected String getCellValue(Object val) {
      String filename = (String) val;
      if (filename.endsWith(WikiMainController.METADATA_SUFFIX)) { return filename.substring(0, filename.lastIndexOf(".")); }
      return filename;
    }

    @Override
    protected String getHoverText(Object val) {
      return null;
    }

  }

}
TOP

Related Classes of org.olat.modules.wiki.MediaFilesTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.