/*******************************************************************************
* Copyright (c) 2016 Weasis Team and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nicolas Roduit - initial API and implementation
*******************************************************************************/
package org.weasis.core.api.media.data;
import java.awt.datatransfer.Transferable;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import org.weasis.core.api.gui.util.Filter;
public interface MediaSeries<E> extends MediaSeriesGroup, Transferable {
enum MEDIA_POSITION {
FIRST, MIDDLE, LAST, RANDOM
}
List<E> getSortedMedias(Comparator<E> comparator);
void addMedia(E media);
void add(E media);
void add(int index, E media);
void addAll(Collection<? extends E> c);
void addAll(int index, Collection<? extends E> c);
E getMedia(MEDIA_POSITION position, Filter<E> filter, Comparator<E> sort);
Iterable<E> getMedias(Filter<E> filter, Comparator<E> sort);
List<E> copyOfMedias(Filter<E> filter, Comparator<E> sort);
E getMedia(int index, Filter<E> filter, Comparator<E> sort);
@Override
void dispose();
int size(Filter<E> filter);
SeriesImporter getSeriesLoader();
void setSeriesLoader(SeriesImporter seriesLoader);
String getToolTips();
String getSeriesNumber();
boolean isOpen();
boolean isSelected();
boolean isFocused();
String getMimeType();
void setOpen(boolean b);
void setSelected(boolean b, E selectedMedia);
void setFocused(boolean b);
E getNearestImage(double location, int offset, Filter<E> filter, Comparator<E> sort);
int getNearestImageIndex(double location, int offset, Filter<E> filter, Comparator<E> sort);
double getFileSize();
}