public void actionPerformed(ActionEvent event) {
		Component source = null;
		lastFileOpened = false;
		try {
			source = (Component) event.getSource();
		} catch (Throwable e) {
			// Might not be a component, or the event may be null.
			// Who cares.
		}

		// Apple is so stupid.
		
		File tempFile = fileChooser.getCurrentDirectory();
		fileChooser.setCurrentDirectory(tempFile.getParentFile());
		fileChooser.setCurrentDirectory(tempFile);
		fileChooser.rescanCurrentDirectory();
		fileChooser.setMultiSelectionEnabled(true);
		Codec[] codecs = null;
		codecs = makeFilters();

		// Open the dialog.
		int result = fileChooser.showOpenDialog(source);
		if (result != JFileChooser.APPROVE_OPTION)
			return;
		File[] files = fileChooser.getSelectedFiles();
		for(int k = 0; k < files.length; k++){
		    File file = files[k];           
    		if (!openOrRead) {
    			// Is this file already open?
    			if (Universe.frameForFile(file) != null) {
    				Universe.frameForFile(file).toFront();
    				return;
    			}
    		}
    		try {
    			openFile(file, codecs);
    			
    		} catch (ParseException e) {
    			JOptionPane.showMessageDialog(source, e.getMessage(), "Read Error",
    					JOptionPane.ERROR_MESSAGE);
    		} catch (DataException e) {
    			JOptionPane.showMessageDialog(source, e.getMessage(), "Data Error",
    					JOptionPane.ERROR_MESSAGE);
    		}
        }
        Universe.CHOOSER.resetChoosableFileFilters();
		lastFileOpened = true;
	}