www.pudn.com > MUMail.rar > MIMEbinary.java
/* * Copyright (C) 1998-2001 Mark Tuempfel and Uli Luckas * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * To reach the Authors you can send E-Mail to: * Mark Tuempfel* Uli Luckas * */ package mumail.mime; import java.awt.*; import java.awt.event.*; import java.io.*; public abstract class MIMEbinary extends MIME implements ActionListener{ byte[] Body; public MIMEbinary() throws InterruptedException { super(); } public MIMEbinary(String[] mailLine) throws InterruptedException { super(mailLine); } public MIMEbinary(String[] mailLine, int headerStart, int bodyStop) throws InterruptedException { super(mailLine, headerStart, bodyStop); } public MIMEbinary(mimeHeader Header, String[] mailLine, int bodyStart, int bodyStop) throws InterruptedException { super(Header, mailLine, bodyStart, bodyStop); } void extractBody(String[] mailLine, int bodyStart, int bodyStop) throws InterruptedException { String Content_Transfer_Encoding = Header.get("Content-Transfer-Encoding"); if (Content_Transfer_Encoding.equals("quoted-printable")) { Body = MIMEcoder.decodeQuoted_Printable(mailLine, bodyStart, bodyStop); } else if (Content_Transfer_Encoding.equals("base64")) { Body = MIMEcoder.decodeBase64(mailLine, bodyStart, bodyStop); } else if (Content_Transfer_Encoding.equals("8bit")) { Body = MIMEcoder.decode8Bit(mailLine, bodyStart, bodyStop); } else { Body = MIMEcoder.decode7Bit(mailLine, bodyStart, bodyStop); } } void createDisplay() { setLayout(new BorderLayout(5,5)); setBackground(Color.white); Panel infopane = new Panel(); infopane.setLayout(new FlowLayout(FlowLayout.CENTER,5,5)); Label type_label = new Label(Header.getContent_Type()+":"); Label name_label = new Label(Header.getContent_TypeParameter("filename") + Header.getContent_TypeParameter("name")); infopane.add(type_label); infopane.add(name_label); if(!mumail.MUMail.applet){ Button save = new Button("Save"); save.addActionListener(this); save.setActionCommand("I18N_SAVE"); customPanel.add(save); } add("North", infopane); } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("I18N_SAVE")){ Component parent = this; while(parent.getParent()!=null){ parent=parent.getParent(); if(parent instanceof Frame){ FileDialog fdialog = new FileDialog((Frame)parent, "Saving...", FileDialog.SAVE); fdialog.setFile(Header.getContent_TypeParameter("filename") + Header.getContent_TypeParameter("name")); fdialog.show(); if(fdialog.getFile()!=null){ //System.out.println(fdialog.getDirectory() + fdialog.getFile()); try{ FileOutputStream out = new FileOutputStream(fdialog.getDirectory() + fdialog.getFile()); out.write(Body); out.close(); } catch (IOException excep) { System.err.println(excep.getMessage()); } } break; } } } } }