/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE file at the root of the source
* tree and available online at
*
* https://github.com/keeps/roda
*/
package org.roda.wui.client.common.lists.utils;
import org.roda.core.data.v2.formats.Format;
import org.roda.core.data.v2.index.filter.Filter;
import org.roda.core.data.v2.ip.AIP;
import org.roda.core.data.v2.ip.DIP;
import org.roda.core.data.v2.ip.DIPFile;
import org.roda.core.data.v2.ip.File;
import org.roda.core.data.v2.ip.IndexedAIP;
import org.roda.core.data.v2.ip.IndexedDIP;
import org.roda.core.data.v2.ip.IndexedFile;
import org.roda.core.data.v2.ip.IndexedRepresentation;
import org.roda.core.data.v2.ip.Representation;
import org.roda.core.data.v2.ip.TransferredResource;
import org.roda.core.data.v2.jobs.IndexedReport;
import org.roda.core.data.v2.jobs.Job;
import org.roda.core.data.v2.jobs.Report;
import org.roda.core.data.v2.log.LogEntry;
import org.roda.core.data.v2.notifications.Notification;
import org.roda.core.data.v2.risks.IndexedRisk;
import org.roda.core.data.v2.risks.Risk;
import org.roda.core.data.v2.risks.RiskIncidence;
import org.roda.core.data.v2.user.RODAMember;
import org.roda.wui.client.common.LastSelectedItemsSingleton;
import org.roda.wui.client.common.lists.AIPList;
import org.roda.wui.client.common.lists.DIPFileList;
import org.roda.wui.client.common.lists.DIPList;
import org.roda.wui.client.common.lists.FormatList;
import org.roda.wui.client.common.lists.JobList;
import org.roda.wui.client.common.lists.LogEntryList;
import org.roda.wui.client.common.lists.NotificationList;
import org.roda.wui.client.common.lists.RepresentationList;
import org.roda.wui.client.common.lists.RiskIncidenceList;
import org.roda.wui.client.common.lists.RiskList;
import org.roda.wui.client.common.lists.RodaMemberList;
import org.roda.wui.client.common.lists.SimpleFileList;
import org.roda.wui.client.common.lists.SimpleJobReportList;
import org.roda.wui.client.common.lists.TransferredResourceList;
import com.google.gwt.core.client.GWT;
import config.i18n.client.ClientMessages;
public class ListFactory {
private static final ClientMessages messages = GWT.create(ClientMessages.class);
public BasicAsyncTableCell<?> getList(String actualClass, String title, Filter filter, boolean selectable,
int pageSize, int incrementPage) {
if (actualClass.equals(AIP.class.getName()) || actualClass.equals(IndexedAIP.class.getName())) {
return new AIPList(filter, LastSelectedItemsSingleton.getInstance().isSelectedJustActive(), null,
messages.selectAipSearchResults(), selectable, pageSize, incrementPage);
} else if (actualClass.equals(Representation.class.getName())
|| actualClass.equals(IndexedRepresentation.class.getName())) {
return new RepresentationList(filter, LastSelectedItemsSingleton.getInstance().isSelectedJustActive(), null,
messages.selectRepresentationSearchResults(), selectable, pageSize, incrementPage);
} else if (actualClass.equals(File.class.getName()) || actualClass.equals(IndexedFile.class.getName())) {
return new SimpleFileList(filter, LastSelectedItemsSingleton.getInstance().isSelectedJustActive(), null,
messages.selectFileSearchResults(), selectable, pageSize, incrementPage);
} else if (actualClass.equals(Format.class.getName())) {
return new FormatList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(IndexedRisk.class.getName()) || actualClass.equals(Risk.class.getName())) {
return new RiskList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(RiskIncidence.class.getName())) {
return new RiskIncidenceList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(Job.class.getName())) {
return new JobList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(Report.class.getName()) || actualClass.equals(IndexedReport.class.getName())) {
return new SimpleJobReportList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(TransferredResource.class.getName())) {
return new TransferredResourceList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(Notification.class.getName())) {
return new NotificationList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(LogEntry.class.getName())) {
return new LogEntryList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(RODAMember.class.getName())) {
return new RodaMemberList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(DIP.class.getName()) || actualClass.equals(IndexedDIP.class.getName())) {
return new DIPList(filter, null, title, selectable, pageSize, incrementPage);
} else if (actualClass.equals(DIPFile.class.getName())) {
return new DIPFileList(filter, null, title, selectable, pageSize, incrementPage);
} else {
return null;
}
}
}