package com.marshalchen.common.uimodule.tileView.tileview.detail;
import com.marshalchen.common.uimodule.tileView.tileview.tiles.selector.TileSetSelector;
import com.marshalchen.common.uimodule.tileView.tileview.tiles.selector.TileSetSelectorMinimalUpScale;
import java.util.Collections;
import java.util.LinkedList;
/*
* This is termed "Set" while it's actually a list.
* We need a unique, sorted collection (Set), but must
* support frequent use of get(). NavigableSet is not
* an option for the legacy API's we're supporting.
* For now, use a LinkedList with Set-like behavior
* built in.
*/
public class DetailLevelSet extends LinkedList<DetailLevel> {
private static final long serialVersionUID = -1742428277010988084L;
private TileSetSelector tileSetSelector = new TileSetSelectorMinimalUpScale();
public void addDetailLevel( DetailLevel detailLevel ) {
// ensure uniqueness
if ( contains( detailLevel ) ) {
return;
}
// add to the collection
add( detailLevel );
// sort it
Collections.sort( this );
}
public DetailLevel find( double scale ) {
return tileSetSelector.find( scale, this );
}
public TileSetSelector getTileSetSelector() {
return tileSetSelector;
}
/**
* Set the tile selection method, defaults to {@link TileSetSelectorMinimalUpScale}
* @param selector (TileSetSelector)
*/
public void setTileSetSelector( TileSetSelector selector ) {
tileSetSelector = selector;
}
}