void select_imagesource_file_dialog() {
		String fname = null;
		JFileChooser chooser = new JFileChooser(image_dir);
		chooser.setDialogTitle("Open Image File");
		if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
			File f = chooser.getSelectedFile();
			if (f.exists()) {
				fname = f.toString();
				image_file = f;
				image_dir = f.getParent();
			} else
				statusBar.setText("file does not exist");
		}

		if (fname != null) {
			//String json;
			try {
				//json = new String(Files.readAllBytes(Paths.get(fname)));
				//Gson gson = new Gson();
				//ImageSource source = gson.fromJson(json, ImageSource.class);
				ImageSource source = new ImageSource(fname);
				updateImageSource(source);
			} catch (Exception e1) {
				System.err.println("Error getting " + fname + ": " + e1);
			}
		}
	}