SendScreenImageToFile.java
上传用户:xiekaiwei
上传日期:2015-07-04
资源大小:620k
文件大小:3k
源码类别:

Telnet客户端

开发平台:

Java

  1. /**
  2.  * Title: tn5250J
  3.  * Copyright:   Copyright (c) 2001
  4.  * Company:
  5.  * @author  Kenneth J. Pouncey
  6.  * @version 0.5
  7.  *
  8.  * Description:
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2, or (at your option)
  13.  * any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this software; see the file COPYING.  If not, write to
  22.  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  23.  * Boston, MA 02111-1307 USA
  24.  *
  25.  */
  26. package org.tn5250j.tools;
  27. import java.io.*;
  28. import javax.swing.*;
  29. import java.awt.Frame;
  30. import org.tn5250j.tools.logging.*;
  31. import org.tn5250j.SessionGUI;
  32. import org.tn5250j.tools.encoder.EncodeComponent;
  33. import org.tn5250j.tools.filters.XTFRFileFilter;
  34. import org.tn5250j.gui.TN5250jFileChooser;
  35. public class SendScreenImageToFile {
  36.    SessionGUI session;
  37.    //  Change sent by Luc - LDC to pass a parent frame like the other dialogs
  38.    Frame  parent;
  39.    private TN5250jLogger  log = TN5250jLogFactory.getLogger (this.getClass());
  40.    public SendScreenImageToFile(Frame parent, SessionGUI ses) {
  41.       session = ses;
  42.       this.parent = parent;
  43.       try {
  44.          jbInit();
  45.       }
  46.       catch(Exception ex) {
  47.          log.warn("Error in constructor: "+ ex.getMessage());
  48.       }
  49.    }
  50.    void jbInit() throws Exception {
  51.       getPCFile();
  52.    }
  53.    /**
  54.     * Get the local file from a file chooser
  55.     */
  56.    private void getPCFile() {
  57.       String workingDir = System.getProperty("user.dir");
  58.       TN5250jFileChooser pcFileChooser = new TN5250jFileChooser(workingDir);
  59.       XTFRFileFilter pngFilter = new XTFRFileFilter("png", "Portable Network Graphics");
  60.       pcFileChooser.setFileFilter(pngFilter);
  61.       int ret = pcFileChooser.showSaveDialog(parent);
  62.       // check to see if something was actually chosen
  63.       if (ret == JFileChooser.APPROVE_OPTION) {
  64.          File file;
  65.          try {
  66.             if (!pcFileChooser.getSelectedFile().getCanonicalPath().endsWith(".png"))
  67.                file = new File(pcFileChooser.getSelectedFile().getCanonicalPath()
  68.                                  + ".png");
  69.             else
  70.                file = pcFileChooser.getSelectedFile();
  71.             EncodeComponent.encode(EncodeComponent.PNG,session, file);
  72.          }
  73.          catch (Exception e) {
  74.             log.warn("Error generating PNG exception caught: " + e.getMessage());
  75.          }
  76.       }
  77.    }
  78. }