in client/src/main/java/org/apache/hupa/client/ui/ContactsListView.java [141:191]
protected void onRangeChanged(HasData<LabelNode> display) {
final int start = display.getVisibleRange().getStart();
rf.fetchFoldersRequest().fetch(null, Boolean.TRUE).fire(new Receiver<List<ImapFolder>>() {
private String INTENTS = " ";
@Override
public void onSuccess(List<ImapFolder> response) {
folderNodes.clear();
if (response == null || response.size() == 0) {
updateRowCount(-1, true);
} else {
for (ImapFolder folder : response) {
fillCellList(folderNodes, folder, LabelNode.ROOT, "");
}
updateRowData(start, folderNodes);
}
}
private void fillCellList(List<LabelNode> folderNodes, ImapFolder curFolder, LabelNode parent,
String intents) {
LabelNode labelNode = new LabelNode();
labelNode.setFolder(curFolder);
labelNode.setName(curFolder.getName());
labelNode.setNameForDisplay(intents + curFolder.getName());
labelNode.setParent(parent);
labelNode.setPath(curFolder.getFullName());
folderNodes.add(labelNode);
if("inbox".equalsIgnoreCase(curFolder.getName())){
if(selectionModel.getSelectedObject() == null){
selectionModel.setSelected(labelNode, true);
}
}
if (curFolder.getHasChildren()) {
for (ImapFolder subFolder : curFolder.getChildren()) {
fillCellList(folderNodes, subFolder, labelNode, intents + INTENTS);
}
}
}
@Override
public void onFailure(ServerFailure error) {
if (error.isFatal()) {
throw new RuntimeException(error.getMessage());
}
}
});
}