* @return an ordered List of {@link VisualSelectedItem} corresponding to the panel elements.
*/
private List<VisualSelectedItem> getSelectedItemsList(){
List<VisualSelectedItem> retVal = new ArrayList<VisualSelectedItem>();
List<VisualPageListItem> validElements = ((VisualListModel)thumbnailList.getModel()).getValidElements();
VisualSelectedItem tmpElement = null;
Set<Integer> pages = new LinkedHashSet<Integer>();
for(VisualPageListItem currentElement : validElements){
//first element
if(tmpElement == null){
tmpElement = new VisualSelectedItem(currentElement.getParentFileCanonicalPath(), currentElement.getDocumentPassword());
pages.add(currentElement.getPageNumber());
}else{
//filename changed
if(!tmpElement.getSelectedFile().equals(currentElement.getParentFileCanonicalPath())){
tmpElement.setPagesSelection(getSelectionString(pages));
retVal.add(tmpElement);
tmpElement = new VisualSelectedItem(currentElement.getParentFileCanonicalPath(), currentElement.getDocumentPassword());
pages.clear();
pages.add(currentElement.getPageNumber());
}else{
//page already there
if(!pages.add(currentElement.getPageNumber())){
tmpElement.setPagesSelection(getSelectionString(pages));
retVal.add(tmpElement);
tmpElement = new VisualSelectedItem(currentElement.getParentFileCanonicalPath(), currentElement.getDocumentPassword());
pages.clear();
pages.add(currentElement.getPageNumber());
}
}
}
}
tmpElement.setPagesSelection(getSelectionString(pages));
retVal.add(tmpElement);
return retVal;
}