public static synchronized void open(File file) {
		if (PASS_THROUGH) {
			OpenDataFileCommand opener = new OpenDataFileCommand(file);
			if (!SwingUtilities.isEventDispatchThread()) {
				EventQueue.invokeLater(opener);
			} else {
				opener.run();
			}
		} else {
			if (PENDING_FILES == null) {
				PENDING_FILES = new ArrayList<>();
			}
			PENDING_FILES.add(file);
		}
	}