public void openFile( File file ) {

    try {
      Data.setInventoryFile( file );
      Data.getView().setupTitle( file.getName() );
      InventoryObjectDAO.setInventoryObject( Model.loadInventory( file ) );
      Data.setInventoryLoading( true ); // prevents "Inventory Changed" from events during load
      Data.getView().populateFields();
      setControlsEnabled( true );
      Data.setInventoryLoading( false );
      Data.setInventoryClean();
    } // try
    catch ( IOException error ) {
      
      if ( file.getName().equals( Data.INVENTORY_FILE ) ) { 
        JOptionPane.showMessageDialog( Data.getView(), 
                                       "I/O Error: " + error.getMessage() + Data.ERROR_RUNONCE,
                                       "I/O Error: " + Data.APP_TITLE,
                                       JOptionPane.ERROR_MESSAGE );
        BuildariaInventoryEditor.throwError();
      } // if
      else {
        JOptionPane.showMessageDialog( Data.getView(),
                                       "File Error: " + error.getMessage(),
                                       "File Error: " + Data.APP_TITLE,
                                       JOptionPane.ERROR_MESSAGE );
      } // else
      
    } // catch
    catch ( JAXBException error ) {
      JOptionPane.showMessageDialog( Data.getView(), 
                                     "Invalid XML Error: " + error.getMessage(),
                                     "Invalid XML Error: " + Data.APP_TITLE,
                                     JOptionPane.ERROR_MESSAGE );
      BuildariaInventoryEditor.throwError();
    } // catch

  } // openFile ----------------------------------------------------------------