jtulach@312: package org.apidesign.exceptions.trycatchredo.api; jtulach@312: jtulach@312: import java.awt.EventQueue; jtulach@312: import java.awt.event.ActionEvent; jtulach@312: import java.io.IOException; jtulach@312: import java.io.OutputStream; jtulach@312: import java.net.URL; jtulach@312: import javax.swing.AbstractAction; jtulach@312: import javax.swing.JOptionPane; jtulach@312: jtulach@312: /** jtulach@312: * jtulach@312: * @author Jaroslav Tulach jtulach@312: */ jtulach@312: final class SaveAction extends AbstractAction { jtulach@312: private final URL where; jtulach@312: private final CharSequence what; jtulach@312: jtulach@312: SaveAction(URL where, CharSequence what) { jtulach@312: this.where = where; jtulach@312: this.what = what; jtulach@312: } jtulach@312: jtulach@312: jtulach@312: public void actionPerformed(ActionEvent ev) { jtulach@312: assert EventQueue.isDispatchThread(); jtulach@314: // BEGIN: trycatchredo.SaveAction jtulach@312: try { jtulach@312: OutputStream os = where.openConnection().getOutputStream(); jtulach@312: os.write(what.toString().getBytes()); jtulach@312: os.close(); jtulach@312: } catch (IOException ex) { jtulach@312: JOptionPane.showMessageDialog(null, ex); jtulach@312: } jtulach@314: // END: trycatchredo.SaveAction jtulach@312: } jtulach@312: }