public static String open(final String fileType, final String description, Component parent) {
		if (currentDirectory == null && Cytoscape.getCurrentSessionFileName() != null) {
			File curSession = new File(Cytoscape.getCurrentSessionFileName());
			if (curSession != null && curSession.exists()) {
				currentDirectory = curSession.getParentFile();
			}
		}
		JFileChooser chooser = new JFileChooser(currentDirectory);
		if (fileType != null) {
			chooser.setFileFilter(new FileFilter() {
				public boolean accept(File pathName) {
					if (pathName.getAbsolutePath().endsWith(fileType) || pathName.isDirectory()) {
						return true;
					}
					return false;
				}
	
				public String getDescription() {
					return description;
				}
			});
		} else {
			chooser.setFileFilter(new FileFilter() {
				public boolean accept(File pathName) {
					return true;
				}
	
				public String getDescription() {
					return description;
				}
			});
		}
		chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
		int result = chooser.showOpenDialog(parent);
		if (result == JFileChooser.APPROVE_OPTION) {
			currentDirectory = chooser.getCurrentDirectory();
			return chooser.getSelectedFile().getAbsolutePath();
		}
		return null;
	}