question: public void saveWorkingInstancesToFileQ ( ) { if ( m_IOThread == null ) { m_FileChooser . setCapabilitiesFilter ( m_FilterEditor . getCapabilitiesFilter ( ) ) ; m_FileChooser . setAcceptAllFileFilterUsed ( false ) ; int returnVal = m_FileChooser . showSaveDialog ( this ) ; if ( returnVal == JFileChooser . APPROVE_OPTION ) { Instances inst = new Instances ( m_Instances ) ; inst . setClassIndex ( m_AttVisualizePanel . getColoringIndex ( ) ) ; saveInstancesToFile ( m_FileChooser . getSaver ( ) , inst ) ; } FileFilter temp = m_FileChooser . getFileFilter ( ) ; m_FileChooser . setAcceptAllFileFilterUsed ( true ) ; m_FileChooser . setFileFilter ( temp ) ; } else { JOptionPane . showMessageDialog ( this , "Can't save at this time,\n" + "currently busy with other IO" , "Save Instances" , JOptionPane . WARNING_MESSAGE ) ; } }
target:  Queries the user for a file to save instances as, then saves the instances in a background process. This is done in the IO thread, and an error message is popped up if the IO thread is busy.