public void updateSavingReqBunch(
			Map<AbstractPage, List<ProgressReportStruct>> map, JTree tree) {
		
		boolean needsRefresh = false; // flag to repaint this node (relatively long operation)

		Long value = null;
		try {
			value = map.get(page).get(0).value; // for every page CheckSavingJob reports exactly one time
		} catch (NullPointerException|IndexOutOfBoundsException e) {}
		
		if (value != null) {
			if (mustSavePage != (value == 0)) needsRefresh = true;
			mustSavePage = value == 0;
		}

		needsRefresh |= downloadPageQ || downloading;
		downloadPageQ = false;
		downloading = false;
		
		int oldKidsToSave = kidsToSave;
		kidsToSave = 0;
		for (@SuppressWarnings("unchecked")
		Enumeration<DefaultMutableTreeNode> children = children(); children.hasMoreElements();) {
			TreeNodePageWrapper kid = (TreeNodePageWrapper) children.nextElement();
			
			kid.updateSavingReqBunch(map, tree);
			if (kid.mustSavePage || kid.saving)
				kidsToSave++;
		}
		needsRefresh |= oldKidsToSave != kidsToSave;
		
		
		if (needsRefresh && tree.isVisible(new TreePath(getPath()))) 
			model.nodeChanged(this);
	}