public void resolveAllDependencies()
	{

		// Human
		// under:
		// http://lbb.ut.ac.ir/Download/LBBsoft/StrongestPath/plugins/files/human/
		// Example: dh.addDependency("test/test2".replace("/", File.separator),
		// "binary-human-CORUM-Nodes.txt", "md5-todo");
		String sep = File.separator;
		String rootPath = Resources.getRoot() + sep + "files";
		String[] top = { "human", "mouse" };
		String[] datasets = { "ophid", "HPRD", "CORUM", "InnateDB", "MPPI", "MatrixDB", 
				"bind", "dip", "grid", "intact", "mint", "string", };
//		String[] postfixes = { "converted", "Degs", "Nodes", "PPI-Inverted","PPI" };
		String[] postfixes = { "PPI-Inverted","PPI" };

		String relativePath;
		for (int i = 0; i < 2; i++) {
			relativePath = rootPath + sep + top[i];
			for (int j = 0; j < datasets.length; j++) {
//				addDependency(relativePath, "binary-" + top[i] + "-"
//						+ datasets[j] + ".txt", "MD5");
				if (i == 1 && j < 2 ) // For mouse, HPRD and ophid don't need the files with postfixes.
					continue;
				for (int k = 0; k < postfixes.length; k++) {
					addDependency(relativePath, "binary-" + top[i] + "-"
							+ datasets[j] + "-" + postfixes[k] + ".txt", "MD5");
				}
				
			}

//			addDependency(relativePath, "binary-" + top[i] + "-MPACT.txt",
//					"MD5");
//			addDependency(relativePath, "binary-" + top[i] + "-mpiimex.txt",
//					"MD5");
//			addDependency(relativePath, "binary-" + top[i] + "-mpilit.txt",
//					"MD5");
			addDependency(relativePath, "Annotations-" + top[i] + ".txt",
					"MD5");
//			if (i == 1)
//				addDependency(relativePath, "binary-allnet-" + top[i]
//						+ ".txt", "MD5");
		}

		addDependency(rootPath + sep + "static", "human.jpg", "MD5");
		addDependency(rootPath + sep + "static", "mouse.jpg", "MD5");

		// Mouse
		// under:
		// http://lbb.ut.ac.ir/Download/LBBsoft/StrongestPath/plugins/files/mouse/

		// Static
		// under:
		// http://lbb.ut.ac.ir/Download/LBBsoft/StrongestPath/plugins/files/static/

		String baseUrl = "http://www.cs.colostate.edu/~asharifi/StrongestPath/plugins/files";
		//String baseUrl = "http://lbb.ut.ac.ir/Download/LBBsoft/StrongestPath/plugins/files";
		
//		try {
//			File f = new File(rootPath + sep + "static" + File.separator);
//			f.mkdirs();
//			f = new File(rootPath + sep + "mouse" + File.separator);
//			f.mkdirs();
//			f = new File(rootPath + sep + "human" + File.separator);
//			f.mkdirs();
//
//		} catch (Exception e) {
//			// TODO: handle exception
//			JOptionPane.showMessageDialog(null, e.getMessage());
//		}
		try {
			String[] urls = {
					baseUrl+"/human/", 
					baseUrl+"/mouse/", 
					baseUrl+"/static/"
					};
			String[] absolutePaths = {
					rootPath+sep+"human",
					rootPath+sep+"mouse",
					rootPath+sep+"static"
					};
//			resolveDependencies(baseUrl + "/human/", rootPath+sep+"human");
//			resolveDependencies(baseUrl + "/mouse/", rootPath+sep+"mouse");
//			resolveDependencies(baseUrl + "/static/", rootPath+sep+"static");
			int missings = resolveDependencies(urls, absolutePaths);
			
			if(missings != 0)
				JOptionPane.showMessageDialog(null, "All necessary files have been successfully downloaded!");

		} catch (IOException e) {
			JOptionPane.showMessageDialog(null, "Error: "+e.getMessage());
			e.printStackTrace();
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "Error: "+e.getMessage());
			e.printStackTrace();
		}
	}