package info.opencards.learnstrats.leitner;
import info.opencards.OpenCards;
import info.opencards.core.*;
import info.opencards.ui.AbstractLearnDialog;
import java.util.Collection;
import java.util.List;
/**
* DOCUMENT ME!
*
* @author Holger Brandl
*/
public class LeitnerProcessManager extends LearnProcessManager {
public LeitnerProcessManager(List<CardFile> cardFiles, ItemValuater itemValuater, LeitnerLearnMethodFactory factory) {
super(itemValuater, factory);
this.lmFactory = factory;
this.itemValuater = itemValuater;
scheduler.clear();
for (CardFile cardFile : cardFiles) {
LeitnerSystem leitnerItems = cardFile.getFlashCards().getLeitnerItems();
List<Item> scheduledCardFileItems = leitnerItems.getNotLastBoxCards();
scheduler.put(cardFile, scheduledCardFileItems);
}
procIt = scheduler.keySet().iterator();
// if (itemValuater instanceof LeitnerLearnDialog) {
// ((LeitnerLearnDialog) itemValuater).setLeitnerSystem(leitnerSystem);
// }
addLearnProcessManagerProcessListener(new LearnProcListener() {
public void processFinished(boolean wasInterrupted) {
OpenCards.showLastMinConfigView(null);
}
});
}
public void itemChanged(Item item, boolean stillOnSchedule, Integer feedback) {
}
public void processStatusInfo(String statusMsg, double completeness) {
if (itemValuater instanceof AbstractLearnDialog) {
// int completeness = (int) (100 * numProcessed / (double) numScheduled);
// ((AbstractLearnDialog) itemValuater).updateStatus(completeness, (numScheduled - numProcessed) + " " + Utils.getRB().getString("AbstractLearnDialog.statusbar.text"));
((AbstractLearnDialog) itemValuater).updateStatus((int) completeness, statusMsg);
}
}
public void setupSchedule(Collection<CardFile> curFiles) {
procIt = scheduler.keySet().iterator();
}
protected ItemCollection getItemCollection(CardFile cardFile) {
return cardFile.getFlashCards().getLeitnerItems();
}
}