Ignore:
Timestamp:
08/27/08 09:18:49 (16 years ago)
Author:
ra33
Message:
 
Location:
trunk/src/org/expeditee/agents
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/agents/MailTree.java

    r278 r282  
    88import org.expeditee.gui.AttributeValuePair;
    99import org.expeditee.gui.Frame;
     10import org.expeditee.gui.FrameIO;
    1011import org.expeditee.gui.FreeItems;
    1112import org.expeditee.items.Item;
    1213import org.expeditee.items.Text;
    1314
    14 public class MailFrame extends DefaultAgent {
     15public class MailTree extends DefaultAgent {
    1516
    1617        @Override
    1718        public boolean initialise(Frame frame, Item item) {
    1819                return super.initialise(frame, item);
     20        }
     21
     22        private String getFrameText(Frame frame, String prefix) {
     23                StringBuffer sb = new StringBuffer();
     24                // Get the text to mail
     25                for (Text t : frame.getBodyTextItems(false)) {
     26                        if (t.hasLink()) {
     27                                Frame linkedFrame = FrameIO.LoadFrame(t.getAbsoluteLink());
     28                                if (linkedFrame == null)
     29                                        continue;
     30
     31                                String frameTitle = linkedFrame.getTitle();
     32                                sb.append(prefix).append(frameTitle).append('\n')
     33                                                .append(prefix);
     34                                for (int i = 0; i < frameTitle.length(); i++) {
     35                                        sb.append('-');
     36                                }
     37                                sb.append("\n\n");
     38                                sb.append(getFrameText(linkedFrame, prefix));
     39                        } else {
     40                                sb.append(prefix).append(t.getText()).append("\n\n");
     41                        }
     42                }
     43
     44                Text original = frame.getAnnotation("original");
     45                if (original != null) {
     46                        Frame linkedFrame = FrameIO.LoadFrame(original.getAbsoluteLink());
     47                        if (linkedFrame != null) {
     48                                sb.append("\n\n").append("Original Message").append(
     49                                                "----------------").append("\n\n");
     50                                sb.append(getFrameText(linkedFrame, ">"));
     51                        }
     52                }
     53
     54                return sb.toString();
    1955        }
    2056
     
    3066        protected Frame process(Frame frame) {
    3167                String subject = frame.getTitle();
    32                 List<Text> text = frame.getBodyTextItems(false);
    33                 StringBuilder body = new StringBuilder();
    34                 for (Text t : text) {
    35                         body.append(t.getText()).append("\n\n");
    36                 }
     68
     69                // Get the text to mail
     70                String body = getFrameText(frame, "");
     71
    3772                String to = frame.getAnnotationValue("to");
    3873                String cc = frame.getAnnotationValue("cc");
     
    115150                // Allow the user to do other stuff while the message gets sent
    116151                _running = false;
    117                 MailSession.sendTextMessage(to, cc, bcc, subject, body.toString());
     152                MailSession.sendTextMessage(to, cc, bcc, subject, body, null);
    118153
    119154                return null;
  • trunk/src/org/expeditee/agents/PdfFrameset.java

    r228 r282  
    11package org.expeditee.agents;
    22
    3 import java.awt.Dimension;
    4 import java.io.FileNotFoundException;
    5 import java.io.FileOutputStream;
     3import java.io.IOException;
    64
    75import org.expeditee.gui.Frame;
    8 import org.expeditee.gui.FrameGraphics;
    9 import org.expeditee.gui.FrameIO;
    10 import org.expeditee.gui.UserSettings;
     6import org.expeditee.gui.MessageBay;
     7import org.expeditee.io.PdfFramesetWriter;
    118
    12 import com.lowagie.text.Document;
    13 import com.lowagie.text.DocumentException;
    14 import com.lowagie.text.Rectangle;
    15 import com.lowagie.text.pdf.PdfContentByte;
    16 import com.lowagie.text.pdf.PdfWriter;
    179
    1810public class PdfFrameset extends DefaultAgent {
    19         private long _firstFrame = 1;
     11        private PdfFramesetWriter _pdfWriter;
     12       
     13        private int _firstFrame = 1;
    2014
    21         private long _maxFrame = Integer.MAX_VALUE;
     15        private int _maxFrame = Integer.MAX_VALUE;
    2216
    23         public PdfFrameset(long firstFrame, long maxFrame) {
     17        public PdfFrameset(int firstFrame, int maxFrame) {
    2418                super();
    2519                _firstFrame = firstFrame;
     
    3529        @Override
    3630        protected Frame process(Frame frame) {
    37                 String framesetName = frame.getFramesetName();
    38                 String fileName = FrameIO.EXPORTS_DIR + framesetName + ".pdf";
    39                 int count = FrameIO.getLastNumber(framesetName);
    40 
    41                 Dimension d = FrameGraphics.getMaxSize();
    42                 Document _pdfDocument = new Document(new Rectangle(d.width, d.height));
     31                _pdfWriter = new PdfFramesetWriter(_firstFrame, _maxFrame);
    4332               
    44                 PdfContentByte cb = null;
    4533                try {
    46                         PdfWriter writer = PdfWriter.getInstance(_pdfDocument,
    47                                         new FileOutputStream(fileName));
    48                         _pdfDocument.open();
    49                         _pdfDocument.addCreationDate();
    50                         _pdfDocument.addAuthor(UserSettings.Username);
    51                         _pdfDocument.addCreator("Expeditee");
    52                         cb = writer.getDirectContent();
    53 
    54                 } catch (FileNotFoundException e) {
    55                         e.printStackTrace();
    56                         return null;
    57                 } catch (DocumentException e) {
    58                         e.printStackTrace();
    59                         return null;
     34                        _pdfWriter.writeFrame(frame);
     35                } catch (IOException e) {
     36                        MessageBay.errorMessage("PdfFrameset error: " + e.getMessage());
     37                        //e.printStackTrace();
    6038                }
    61 
    62                 for (long i = _firstFrame; i <= _maxFrame && i <= count; i++) {
    63                         if (_stop) {
    64                                 break;
    65                         }
    66                         String frameName = framesetName + i;
    67                         Frame toPaint = FrameIO.LoadFrame(frameName);
    68                         if (toPaint != null) {
    69                                 overwriteMessage("Converting " + frameName);
    70                                 java.awt.Graphics2D g2 = cb.createGraphics(FrameGraphics
    71                                                 .getMaxSize().width, FrameGraphics.getMaxSize().height);
    72                                 FrameGraphics.paintFrame(toPaint, null, false, false, g2);
    73                                 g2.dispose();
    74                                 // Move to the next page?
    75                                 _pdfDocument.setPageCount(_pdfDocument.getPageNumber() + 1);
    76                         }
    77                 }
    78                 try {
    79                         _pdfDocument.close();
    80                 } catch (Exception e) {
    81                         overwriteMessage("Error writing PDF document");
    82                 }
     39               
    8340                return null;
    8441        }
     42       
     43        @Override
     44        public void stop(){
     45                _pdfWriter.stop();
     46        }
    8547}
  • trunk/src/org/expeditee/agents/mail/MailSession.java

    r254 r282  
    224224
    225225        public static boolean sendTextMessage(String to, String cc, String bcc,
    226                         String subject, String body) {
     226                        String subject, String body, Object attachments) {
    227227
    228228                if (_theMailSession == null) {
     
    236236                }
    237237
    238                 return _theMailSession.sendText(to, cc, bcc, subject, body);
     238                return _theMailSession.sendText(to, cc, bcc, subject, body, attachments);
    239239        }
    240240
    241241        private synchronized boolean sendText(String to, String cc, String bcc,
    242                         String subject, String body) {
     242                        String subject, String body, Object attachments) {
    243243                if (!_transport.isConnected()) {
    244244                        MessageBay
     
    263263                        // -- Create a new message --
    264264                        Message msg = new MimeMessage(_session);
    265 
     265                       
    266266                        // -- Set the FROM and TO fields --
    267267                        msg.setFrom(new InternetAddress(_address));
     
    409409                                if (flag == null
    410410                                                || msgs[msgNum].getFlags().contains(flag) == isPresent) {
    411                                         Item newItem = readMessage(msgs[msgNum], msgNum, frame, point);
     411                                        Item newItem = readMessage(msgs[msgNum], msgNum, frame,
     412                                                        point);
    412413                                        if (newItem != null) {
    413414                                                mailItems.add(newItem);
     
    423424        }
    424425
    425         private Item readMessage(final Message message, int messageNo, Frame frame, Point point) {
    426                 String subject;
    427                 try {
    428                         subject = message.getSubject();
    429                 } catch (MessagingException e) {
    430                         MessageBay.errorMessage("GetMail error: " + e.getMessage());
    431                         return null;
    432                 }
    433 
    434                 final Text source = FrameDNDTransferHandler
    435                                 .importString(subject, point);
    436                 // Create a frameCreator
    437                 final FrameCreator frames = new FrameCreator(frame.getFramesetName(),
    438                                 frame.path, messageNo + ". " + subject, false);
     426        private Item readMessage(final Message message, final int messageNo,
     427                        final Frame frame, final Point point) {
     428
     429                final Text source = FrameDNDTransferHandler.importString(
     430                                "Loading message " + messageNo, point);
    439431
    440432                new Thread() {
    441433                        public void run() {
    442434                                try {
     435                                        String subject = message.getSubject();
     436                                        source.setText(messageNo + ". " + subject);
     437                                        // Create a frameCreator
     438                                        final FrameCreator frames = new FrameCreator(frame
     439                                                        .getFramesetName(), frame.path, subject, false);
     440
    443441                                        // Get the header information
    444442                                        String from = ((InternetAddress) message.getFrom()[0])
    445443                                                        .getPersonal();
    446                                         if( from != null){
    447                                                 frames.addText("@fromName: " + from, null, null, null, false);
     444                                        if (from != null) {
     445                                                frames.addText("@fromName: " + from, null, null, null,
     446                                                                false);
    448447                                        }
    449448                                        from = ((InternetAddress) message.getFrom()[0])
    450                                                                 .getAddress();
    451                                         frames.addText("@fromAddress: " + from, null, null, null, false);
     449                                                        .getAddress();
     450                                        Text fromAddressItem = frames.addText("@from: " + from,
     451                                                        null, null, null, false);
     452
     453                                        Text reply = frames.addText("@reply" + from, null, null,
     454                                                        null, false);
     455                                        reply.setPosition(10 + fromAddressItem.getX()
     456                                                        + fromAddressItem.getBoundsWidth(), fromAddressItem
     457                                                        .getY());
    452458
    453459                                        // -- Get the message part (i.e. the message itself) --
     
    461467                                        }
    462468                                        // -- Get the content type --
    463                                         String contentType = messagePart.getContentType().toLowerCase();
     469                                        String contentType = messagePart.getContentType()
     470                                                        .toLowerCase();
    464471                                        // -- If the content is plain text, we can print it --
    465472                                        // System.out.println("CONTENT:" + contentType);
     
    479486                                        frames.save();
    480487                                        source.setLink(frames.getName());
     488                                } catch (MessagingException e) {
     489                                        MessageBay.errorMessage("GetMail error: " + e.getMessage());
    481490                                } catch (Exception e) {
    482                                         MessageBay.errorMessage("GetMail error: " + e.getMessage());
     491                                        MessageBay.errorMessage("Error reading mail: "
     492                                                        + e.getMessage());
    483493                                }
    484494                        }
Note: See TracChangeset for help on using the changeset viewer.