public PodaPresu4() { JFileChooser chooser = new JFileChooser(); chooser.setFileFilter(new FileNameExtensionFilter("Trabajos XML", "xml")); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { try { SAXBuilder builder = new SAXBuilder(); Document d = builder.build(chooser.getSelectedFile()); tx = new TrabajoXml(d); jt = new JfTrabajo(); jt.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { checkSave(); super.windowClosing( e); // To change body of generated methods, choose Tools | Templates. } }); jt.setTrabajo(tx.readTrabajo()); jt.setVisible(true); } catch (JDOMException | IOException ex) { Logger.getLogger(PodaPresu4.class.getName()).log(Level.SEVERE, null, ex); } } }
private void checkSave() { if (jt.getTrabajo().isDirty()) { int result = JOptionPane.showConfirmDialog( null, "Desea guardar los cambios?", "Guardar los cambios?", JOptionPane.YES_NO_OPTION); if (result == JOptionPane.YES_OPTION) { try { XMLOutputter xmlo = new XMLOutputter(Format.getPrettyFormat()); URI uri = new URI(tx.getDocument().getBaseURI()); File file = new File(uri); tx.writeTrabajo(jt.getTrabajo()); xmlo.output(tx.getDocument(), new FileWriter(file)); } catch (URISyntaxException | IOException ex) { Logger.getLogger(PodaPresu4.class.getName()).log(Level.SEVERE, null, ex); } } } }