Changeset 465


Ignore:
Timestamp:
07/18/09 11:54:22 (3 years ago)
Author:
octorian
Message:

Initial refactoring to support a more complete MIME message part type set

Location:
trunk
Files:
4 added
29 edited
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/LogicMail/LogicMail.jdp

    r461 r465  
    124124src\org\logicprobe\LogicMail\mail\smtp\SmtpClient.java 
    125125src\org\logicprobe\LogicMail\mail\smtp\SmtpProtocol.java 
     126src\org\logicprobe\LogicMail\message\AbstractMimeMessagePartVisitor.java 
     127src\org\logicprobe\LogicMail\message\ApplicationPart.java 
     128src\org\logicprobe\LogicMail\message\AudioPart.java 
    126129src\org\logicprobe\LogicMail\message\ContentPart.java 
    127130src\org\logicprobe\LogicMail\message\FolderMessage.java 
     
    135138src\org\logicprobe\LogicMail\message\MessageFlags.java 
    136139src\org\logicprobe\LogicMail\message\MessageMimeConverter.java 
    137 src\org\logicprobe\LogicMail\message\MessagePart.java 
    138 src\org\logicprobe\LogicMail\message\MessagePartFactory.java 
    139 src\org\logicprobe\LogicMail\message\MessagePartTransformer.java 
    140 src\org\logicprobe\LogicMail\message\MessagePartVisitor.java 
     140src\org\logicprobe\LogicMail\message\MimeMessagePart.java 
     141src\org\logicprobe\LogicMail\message\MimeMessagePartFactory.java 
     142src\org\logicprobe\LogicMail\message\MimeMessagePartTransformer.java 
     143src\org\logicprobe\LogicMail\message\MimeMessagePartVisitor.java 
    141144src\org\logicprobe\LogicMail\message\MultiPart.java 
    142145src\org\logicprobe\LogicMail\message\TextContent.java 
     
    144147src\org\logicprobe\LogicMail\message\UnsupportedContentException.java 
    145148src\org\logicprobe\LogicMail\message\UnsupportedPart.java 
     149src\org\logicprobe\LogicMail\message\VideoPart.java 
    146150src\org\logicprobe\LogicMail\model\AccountNode.java 
    147151src\org\logicprobe\LogicMail\model\AccountNodeEvent.java 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/AbstractMailStore.java

    r437 r465  
    3535import org.logicprobe.LogicMail.message.MessageContent; 
    3636import org.logicprobe.LogicMail.message.MessageFlags; 
    37 import org.logicprobe.LogicMail.message.MessagePart; 
     37import org.logicprobe.LogicMail.message.MimeMessagePart; 
    3838import org.logicprobe.LogicMail.util.EventListenerList; 
    3939 
     
    189189     * @param messagePart The part of the message to load 
    190190     */ 
    191     public abstract void requestMessageParts(MessageToken messageToken, MessagePart[] messageParts); 
     191    public abstract void requestMessageParts(MessageToken messageToken, MimeMessagePart[] messageParts); 
    192192     
    193193    /** 
     
    398398     * @param messageSource The raw message source, if available 
    399399     */ 
    400     protected void fireMessageAvailable(MessageToken messageToken, MessagePart messageStructure, MessageContent[] messageContent, String messageSource) { 
     400    protected void fireMessageAvailable(MessageToken messageToken, MimeMessagePart messageStructure, MessageContent[] messageContent, String messageSource) { 
    401401        Object[] listeners = listenerList.getListeners(MessageListener.class); 
    402402        MessageEvent e = null; 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/IncomingMailConnectionHandler.java

    r453 r465  
    4141import org.logicprobe.LogicMail.message.MessageContent; 
    4242import org.logicprobe.LogicMail.message.MessageFlags; 
    43 import org.logicprobe.LogicMail.message.MessagePart; 
     43import org.logicprobe.LogicMail.message.MimeMessagePart; 
    4444import org.logicprobe.LogicMail.util.Queue; 
    4545 
     
    113113                        break; 
    114114                case REQUEST_MESSAGE_PARTS: 
    115                         handleRequestMessageParts((MessageToken)params[0], (MessagePart[])params[1]); 
     115                        handleRequestMessageParts((MessageToken)params[0], (MimeMessagePart[])params[1]); 
    116116                        break; 
    117117                case REQUEST_MESSAGE_DELETE: 
     
    262262        } 
    263263 
    264         private void handleRequestMessageParts(MessageToken messageToken, MessagePart[] messageParts) throws IOException, MailException { 
     264        private void handleRequestMessageParts(MessageToken messageToken, MimeMessagePart[] messageParts) throws IOException, MailException { 
    265265                checkActiveFolder(messageToken); 
    266266 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/LocalMailStore.java

    r437 r465  
    4444import org.logicprobe.LogicMail.message.MessageContent; 
    4545import org.logicprobe.LogicMail.message.MessageFlags; 
    46 import org.logicprobe.LogicMail.message.MessagePart; 
     46import org.logicprobe.LogicMail.message.MimeMessagePart; 
    4747import org.logicprobe.LogicMail.util.MailMessageParser; 
    4848import org.logicprobe.LogicMail.util.ThreadQueue; 
     
    197197                        // Parse the message source 
    198198                        Hashtable contentMap = new Hashtable(); 
    199                 MessagePart rootPart = MailMessageParser.parseRawMessage(contentMap, new ByteArrayInputStream(messageSource.getBytes())); 
     199                MimeMessagePart rootPart = MailMessageParser.parseRawMessage(contentMap, new ByteArrayInputStream(messageSource.getBytes())); 
    200200                message = new Message(rootPart); 
    201201                Enumeration e = contentMap.keys(); 
    202202                while(e.hasMoreElements()) { 
    203                         MessagePart part = (MessagePart)e.nextElement(); 
     203                        MimeMessagePart part = (MimeMessagePart)e.nextElement(); 
    204204                        message.putContent(part, (MessageContent)contentMap.get(part)); 
    205205                } 
     
    214214    } 
    215215 
    216     public void requestMessageParts(MessageToken messageToken, MessagePart[] messageParts) { 
     216    public void requestMessageParts(MessageToken messageToken, MimeMessagePart[] messageParts) { 
    217217        throw new UnsupportedOperationException(); 
    218218    } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/MessageEvent.java

    r436 r465  
    3434import org.logicprobe.LogicMail.message.MessageContent; 
    3535import org.logicprobe.LogicMail.message.MessageFlags; 
    36 import org.logicprobe.LogicMail.message.MessagePart; 
     36import org.logicprobe.LogicMail.message.MimeMessagePart; 
    3737 
    3838/** 
     
    4343        private MessageToken messageToken; 
    4444        private MessageFlags messageFlags; 
    45         private MessagePart messageStructure; 
     45        private MimeMessagePart messageStructure; 
    4646        private MessageContent[] messageContent; 
    4747        private String messageSource; 
     
    6262         * @param messageSource the message source 
    6363         */ 
    64         public MessageEvent(Object source, int type, MessageToken messageToken, MessageFlags messageFlags, MessagePart messageStructure, MessageContent[] messageContent, String messageSource) { 
     64        public MessageEvent(Object source, int type, MessageToken messageToken, MessageFlags messageFlags, MimeMessagePart messageStructure, MessageContent[] messageContent, String messageSource) { 
    6565                super(source); 
    6666                this.type = type; 
     
    9494         * @param messageSource the message source 
    9595         */ 
    96         public MessageEvent(Object source, MessageToken messageToken, MessagePart messageStructure, MessageContent[] messageContent, String messageSource) { 
     96        public MessageEvent(Object source, MessageToken messageToken, MimeMessagePart messageStructure, MessageContent[] messageContent, String messageSource) { 
    9797                this(source, TYPE_FULLY_LOADED, messageToken, null, messageStructure, messageContent, messageSource); 
    9898        } 
     
    136136         * Gets the message structure, if it is available for this particular event. 
    137137         */ 
    138         public MessagePart getMessageStructure() { 
     138        public MimeMessagePart getMessageStructure() { 
    139139                return messageStructure; 
    140140        } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/NetworkMailStore.java

    r437 r465  
    3838import org.logicprobe.LogicMail.message.MessageContent; 
    3939import org.logicprobe.LogicMail.message.MessageFlags; 
    40 import org.logicprobe.LogicMail.message.MessagePart; 
     40import org.logicprobe.LogicMail.message.MimeMessagePart; 
    4141 
    4242public class NetworkMailStore extends AbstractMailStore { 
     
    139139        } 
    140140 
    141         public void requestMessageParts(MessageToken messageToken, MessagePart[] messageParts) { 
     141        public void requestMessageParts(MessageToken messageToken, MimeMessagePart[] messageParts) { 
    142142                connectionHandler.addRequest(IncomingMailConnectionHandler.REQUEST_MESSAGE_PARTS, new Object[] { messageToken, messageParts }); 
    143143        } 
     
    188188                case IncomingMailConnectionHandler.REQUEST_MESSAGE: 
    189189                        results = (Object[])result; 
    190                         fireMessageAvailable((MessageToken)results[0], (MessagePart)results[1], (MessageContent[])results[2], null); 
     190                        fireMessageAvailable((MessageToken)results[0], (MimeMessagePart)results[1], (MessageContent[])results[2], null); 
    191191                        break; 
    192192                case IncomingMailConnectionHandler.REQUEST_MESSAGE_PARTS: 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/imap/ImapClient.java

    r453 r465  
    5252import org.logicprobe.LogicMail.message.MessageContentFactory; 
    5353import org.logicprobe.LogicMail.message.MessageFlags; 
    54 import org.logicprobe.LogicMail.message.MessagePart; 
    55 import org.logicprobe.LogicMail.message.MessagePartFactory; 
     54import org.logicprobe.LogicMail.message.MimeMessagePart; 
     55import org.logicprobe.LogicMail.message.MimeMessagePartFactory; 
    5656import org.logicprobe.LogicMail.message.MultiPart; 
    5757import org.logicprobe.LogicMail.message.UnsupportedContentException; 
     
    577577        ImapParser.MessageSection structure = getMessageStructure(imapMessageToken.getMessageUid()); 
    578578        Hashtable contentMap = new Hashtable(); 
    579         MessagePart rootPart = 
     579        MimeMessagePart rootPart = 
    580580            getMessagePart(contentMap, imapMessageToken.getMessageUid(), 
    581581                           structure, accountConfig.getMaxMessageSize()); 
     
    583583        Enumeration e = contentMap.keys(); 
    584584        while(e.hasMoreElements()) { 
    585                 MessagePart part = (MessagePart)e.nextElement(); 
     585                MimeMessagePart part = (MimeMessagePart)e.nextElement(); 
    586586                msg.putContent(part, (MessageContent)contentMap.get(part)); 
    587587        } 
     
    589589    } 
    590590 
    591     public MessageContent getMessagePart(MessageToken messageToken, MessagePart messagePart) throws IOException, MailException { 
     591    public MessageContent getMessagePart(MessageToken messageToken, MimeMessagePart mimeMessagePart) throws IOException, MailException { 
    592592        ImapMessageToken imapMessageToken = (ImapMessageToken)messageToken; 
    593593        if(!imapMessageToken.getFolderPath().equalsIgnoreCase(activeMailbox.getPath())) { 
     
    596596 
    597597        // Get the relevant data from the MessagePart object 
    598         String partAddress = messagePart.getTag(); 
    599         String mimeType = messagePart.getMimeType(); 
    600         String mimeSubtype = messagePart.getMimeSubtype(); 
     598        String partAddress = mimeMessagePart.getTag(); 
     599        String mimeType = mimeMessagePart.getMimeType(); 
     600        String mimeSubtype = mimeMessagePart.getMimeSubtype(); 
    601601         
    602602        // Make sure we can actually get this part 
    603603        if(partAddress == null || mimeType == null || mimeSubtype == null) { return null; } 
    604         if(!MessagePartFactory.isMessagePartSupported(mimeType, mimeSubtype)) { return null; } 
     604        if(!MimeMessagePartFactory.isMimeMessagePartSupported(mimeType, mimeSubtype)) { return null; } 
    605605        if(mimeType.equalsIgnoreCase("multipart")) { return null; } 
    606606        if(!(messageToken instanceof ImapMessageToken)) { return null; } 
     
    610610        MessageContent content; 
    611611        try { 
    612                         content = MessageContentFactory.createContent(messagePart, data); 
     612                        content = MessageContentFactory.createContent(mimeMessagePart, data); 
    613613                } catch (UnsupportedContentException e) { 
    614614                        content = null; 
     
    617617        } 
    618618 
    619     private MessagePart getMessagePart( 
     619    private MimeMessagePart getMessagePart( 
    620620                Hashtable contentMap, 
    621621                int uid, 
     
    624624        throws IOException, MailException 
    625625    { 
    626         MessagePart part; 
    627         if(MessagePartFactory.isMessagePartSupported(structure.type, structure.subtype)) { 
     626        MimeMessagePart part; 
     627        if(MimeMessagePartFactory.isMimeMessagePartSupported(structure.type, structure.subtype)) { 
    628628            String data; 
    629629            if(structure.type.equalsIgnoreCase("multipart")) 
     
    639639                } 
    640640            } 
    641             part = MessagePartFactory.createMessagePart( 
     641            part = MimeMessagePartFactory.createMimeMessagePart( 
    642642                        structure.type, 
    643643                        structure.subtype, 
     
    666666        if((part instanceof MultiPart)&&(structure.subsections != null)&&(structure.subsections.length > 0)) { 
    667667            for(int i=0;i<structure.subsections.length;i++) { 
    668                 MessagePart subPart = getMessagePart(contentMap, uid, structure.subsections[i], maxSize); 
     668                MimeMessagePart subPart = getMessagePart(contentMap, uid, structure.subsections[i], maxSize); 
    669669                if(subPart != null) { 
    670670                    ((MultiPart)part).addPart(subPart); 
     
    675675    } 
    676676 
    677     private MessagePart createMessagePartTree(ImapParser.MessageSection structure) { 
     677    private MimeMessagePart createMessagePartTree(ImapParser.MessageSection structure) { 
    678678        if(structure == null) { return null; } 
    679         MessagePart part = MessagePartFactory.createMessagePart( 
     679        MimeMessagePart part = MimeMessagePartFactory.createMimeMessagePart( 
    680680                        structure.type, 
    681681                        structure.subtype, 
     
    691691                MultiPart multiPart = (MultiPart)part; 
    692692            for(int i=0; i<structure.subsections.length; i++) { 
    693                 MessagePart subPart = createMessagePartTree(structure.subsections[i]); 
     693                MimeMessagePart subPart = createMessagePartTree(structure.subsections[i]); 
    694694                if(subPart != null) { 
    695695                        multiPart.addPart(subPart); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/mail/pop/PopClient.java

    r433 r465  
    5252import org.logicprobe.LogicMail.message.MessageEnvelope; 
    5353import org.logicprobe.LogicMail.message.MessageFlags; 
    54 import org.logicprobe.LogicMail.message.MessagePart; 
     54import org.logicprobe.LogicMail.message.MimeMessagePart; 
    5555import org.logicprobe.LogicMail.util.Connection; 
    5656import org.logicprobe.LogicMail.util.MailMessageParser; 
     
    278278         
    279279        Hashtable contentMap = new Hashtable(); 
    280         MessagePart rootPart = MailMessageParser.parseRawMessage(contentMap, StringParser.createInputStream(message)); 
     280        MimeMessagePart rootPart = MailMessageParser.parseRawMessage(contentMap, StringParser.createInputStream(message)); 
    281281        Message msg = new Message(rootPart); 
    282282        Enumeration e = contentMap.keys(); 
    283283        while(e.hasMoreElements()) { 
    284                 MessagePart part = (MessagePart)e.nextElement(); 
     284                MimeMessagePart part = (MimeMessagePart)e.nextElement(); 
    285285                msg.putContent(part, (MessageContent)contentMap.get(part)); 
    286286        } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/ContentPart.java

    r453 r465  
    88 * Abstract representation of a message part representing content. 
    99 */ 
    10 public abstract class ContentPart extends MessagePart { 
     10public abstract class ContentPart extends MimeMessagePart { 
    1111        private String name; 
    1212        private String encoding; 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/FolderMessage.java

    r434 r465  
    5656    private int uid; 
    5757    private MessageFlags messageFlags; 
    58     private MessagePart structure; 
     58    private MimeMessagePart structure; 
    5959 
    6060    /** 
     
    223223     * @return Root part of the message structure tree 
    224224     */ 
    225     public MessagePart getStructure() { 
     225    public MimeMessagePart getStructure() { 
    226226        return this.structure; 
    227227    } 
     
    231231     * @param structure Root part of the message structure tree 
    232232     */ 
    233     public void setStructure(MessagePart structure) { 
     233    public void setStructure(MimeMessagePart structure) { 
    234234        this.structure = structure; 
    235235    } 
     
    291291                boolean hasStructure = input.readBoolean(); 
    292292                if(hasStructure) { 
    293                         structure = (MessagePart)SerializationUtils.deserializeClass(input); 
     293                        structure = (MimeMessagePart)SerializationUtils.deserializeClass(input); 
    294294                } 
    295295        } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/ImagePart.java

    r453 r465  
    5555    } 
    5656     
    57     public void accept(MessagePartVisitor visitor) { 
     57    public void accept(MimeMessagePartVisitor visitor) { 
    5858        visitor.visitImagePart(this); 
    5959    } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/Message.java

    r433 r465  
    4444 */ 
    4545public class Message { 
    46     private MessagePart structure; 
     46    private MimeMessagePart structure; 
    4747    private Hashtable content = new Hashtable(); 
    4848     
     
    5252     * @param body The structured message body tree 
    5353     */ 
    54     public Message(MessagePart structure) { 
     54    public Message(MimeMessagePart structure) { 
    5555        // TODO: Consider removing the Message object completely 
    5656        this.structure = structure; 
     
    6161     * @return Body 
    6262     */ 
    63     public MessagePart getStructure() { 
     63    public MimeMessagePart getStructure() { 
    6464        return structure; 
    6565    } 
    6666     
    67     public void putContent(MessagePart messagePart, MessageContent messageContent) { 
    68         content.put(messagePart, messageContent); 
     67    public void putContent(MimeMessagePart mimeMessagePart, MessageContent messageContent) { 
     68        content.put(mimeMessagePart, messageContent); 
    6969    } 
    7070     
    71     public MessageContent getContent(MessagePart messagePart) { 
    72         return (MessageContent)content.get(messagePart); 
     71    public MessageContent getContent(MimeMessagePart mimeMessagePart) { 
     72        return (MessageContent)content.get(mimeMessagePart); 
    7373    } 
    7474     
     
    8787        Enumeration e = content.keys(); 
    8888        while(e.hasMoreElements()) { 
    89                 MessagePart part = (MessagePart)e.nextElement(); 
     89                MimeMessagePart part = (MimeMessagePart)e.nextElement(); 
    9090                result.put(part, content.get(part)); 
    9191        } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MessageContentFactory.java

    r437 r465  
    4040         * Creates a new MessageContent object. 
    4141         *  
    42          * @param messagePart The message part describing the MIME properties for the content. 
     42         * @param mimeMessagePart The message part describing the MIME properties for the content. 
    4343         * @param encoding The encoding for the data. 
    4444         * @param param The type-specific parameter, if applicable. 
     
    4949         * @throws UnsupportedContentException Thrown if the content type was not supported or the data could not be decoded. 
    5050         */ 
    51         public static MessageContent createContent(MessagePart messagePart, String data) throws UnsupportedContentException { 
     51        public static MessageContent createContent(MimeMessagePart mimeMessagePart, String data) throws UnsupportedContentException { 
    5252        MessageContent content; 
    53         if(messagePart instanceof TextPart) { 
    54                 TextPart textPart = (TextPart)messagePart; 
     53        if(mimeMessagePart instanceof TextPart) { 
     54                TextPart textPart = (TextPart)mimeMessagePart; 
    5555                content = new TextContent(textPart, textPart.getEncoding(), textPart.getCharset(), data); 
    5656        } 
    57         else if(messagePart instanceof ImagePart) { 
    58                 ImagePart imagePart = (ImagePart)messagePart; 
     57        else if(mimeMessagePart instanceof ImagePart) { 
     58                ImagePart imagePart = (ImagePart)mimeMessagePart; 
    5959                content = new ImageContent(imagePart, imagePart.getEncoding(), data); 
    6060        } 
     
    7171     * of message content. 
    7272     * 
    73      * @param messagePart Message part object 
     73     * @param mimeMessagePart Message part object 
    7474     * @return True if supported, false if unsupported 
    7575     */ 
    76     public static boolean isContentSupported(MessagePart messagePart) { 
     76    public static boolean isContentSupported(MimeMessagePart mimeMessagePart) { 
    7777        boolean result; 
    78         if(messagePart instanceof TextPart) { 
    79                 result = TextContent.isPartSupported((TextPart)messagePart); 
     78        if(mimeMessagePart instanceof TextPart) { 
     79                result = TextContent.isPartSupported((TextPart)mimeMessagePart); 
    8080        } 
    81         else if(messagePart instanceof ImagePart) { 
    82                 result = ImageContent.isPartSupported((ImagePart)messagePart); 
     81        else if(mimeMessagePart instanceof ImagePart) { 
     82                result = ImageContent.isPartSupported((ImagePart)mimeMessagePart); 
    8383        } 
    8484        else { 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MessageMimeConverter.java

    r433 r465  
    8686    } 
    8787 
    88     private class MessageMimeConverterPartVisitor implements MessagePartVisitor { 
     88    private class MessageMimeConverterPartVisitor extends AbstractMimeMessagePartVisitor { 
    8989            public void visitMultiPart(MultiPart part) { 
    9090                // Handle the case of this being the root part 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MimeMessagePart.java

    r434 r465  
    4040 
    4141/** 
    42  * Abstract representation of a message part 
     42 * Abstract representation of a MIME message part 
    4343 */ 
    44 public abstract class MessagePart implements Serializable { 
     44public abstract class MimeMessagePart implements Serializable { 
    4545    private long uniqueId; 
    4646    private String tag; 
     
    4848    private String mimeSubtype; 
    4949    private int size; 
    50     private MessagePart parent; 
     50    private MimeMessagePart parent; 
    5151 
    5252    /** Creates a new instance of MessagePart */ 
    53     protected MessagePart(String mimeType, String mimeSubtype, int size, String tag) { 
     53    protected MimeMessagePart(String mimeType, String mimeSubtype, int size, String tag) { 
    5454        this.uniqueId = UniqueIdGenerator.getInstance().getUniqueId(); 
    5555        this.tag = tag; 
     
    6464     * @param visitor The visitor instance 
    6565     */ 
    66     public abstract void accept(MessagePartVisitor visitor); 
     66    public abstract void accept(MimeMessagePartVisitor visitor); 
    6767     
    6868    /** 
     
    104104     * @param parent The parent message part, or null if this is the root 
    105105     */ 
    106     protected void setParent(MessagePart parent) { 
     106    protected void setParent(MimeMessagePart parent) { 
    107107        this.parent = parent; 
    108108    } 
     
    112112     * @return Parent, or null if this is the root 
    113113     */ 
    114     public MessagePart getParent() { 
     114    public MimeMessagePart getParent() { 
    115115        return parent; 
    116116    } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MimeMessagePartFactory.java

    r453 r465  
    3434 * Creates message parts, doing the necessary decoding. 
    3535 */ 
    36 public class MessagePartFactory { 
     36public class MimeMessagePartFactory { 
    3737    /** 
    3838     * Create a new message part 
     
    4646     * @param tag Protocol-specific tag for addressing the part 
    4747     */ 
    48     public static MessagePart createMessagePart( 
     48    public static MimeMessagePart createMimeMessagePart( 
    4949                String mimeType, 
    5050                String mimeSubtype, 
     
    6565        if(tag == null) { tag = ""; } 
    6666         
    67         MessagePart part; 
     67        MimeMessagePart part; 
    6868        if (mimeType.equalsIgnoreCase("multipart")) { 
    6969            part = new MultiPart(mimeSubtype, tag); 
     
    8888     * @param size Size of the content this part refers to, or -1 if not available 
    8989     */ 
    90     public static MessagePart createMessagePart( 
     90    public static MimeMessagePart createMimeMessagePart( 
    9191                String mimeType, 
    9292                String mimeSubtype, 
     
    9797                String contentId, 
    9898                int size) { 
    99         return MessagePartFactory.createMessagePart(mimeType, mimeSubtype, name, encoding, param, disposition, contentId, size, ""); 
     99        return MimeMessagePartFactory.createMimeMessagePart(mimeType, mimeSubtype, name, encoding, param, disposition, contentId, size, ""); 
    100100    } 
    101101     
     
    113113     * @return True if supported, false if unsupported 
    114114     */ 
    115     public static boolean isMessagePartSupported(String mimeType, 
     115    public static boolean isMimeMessagePartSupported(String mimeType, 
    116116        String mimeSubtype) { 
    117117        if (mimeType.equalsIgnoreCase("multipart")) { 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MimeMessagePartTransformer.java

    r453 r465  
    3737 
    3838/** 
    39  * Utility class to take a {@link MessagePart} tree and transform 
     39 * Utility class to take a {@link MimeMessagePart} tree and transform 
    4040 * it into a list based on various rules. 
    4141 */ 
    42 public class MessagePartTransformer { 
     42public class MimeMessagePartTransformer { 
    4343        /** 
    4444         * Gets a list of displayable message parts in order. 
     
    4747         * @return The displayable parts. 
    4848         */ 
    49         public static MessagePart[] getDisplayableParts(MessagePart rootPart) { 
     49        public static MimeMessagePart[] getDisplayableParts(MimeMessagePart rootPart) { 
    5050                DisplayablePartVisitor visitor = new DisplayablePartVisitor(); 
    5151                rootPart.accept(visitor); 
    5252                Vector parts = visitor.getDisplayableParts(); 
    53                 MessagePart[] result = new MessagePart[parts.size()]; 
     53                MimeMessagePart[] result = new MimeMessagePart[parts.size()]; 
    5454                parts.copyInto(result); 
    5555                return result; 
    5656        } 
    5757         
    58         private static class DisplayablePartVisitor implements MessagePartVisitor { 
     58        private static class DisplayablePartVisitor extends AbstractMimeMessagePartVisitor { 
    5959                private Vector displayableParts = new Vector(); 
    6060                int displayFormat; 
     
    8080                                                } 
    8181                                                else { 
    82                                                         MessagePart[] siblings = parent.getParts(); 
     82                                                        MimeMessagePart[] siblings = parent.getParts(); 
    8383                                                        boolean otherPlain = false; 
    8484                                                        for(int i=0; i<siblings.length; i++) { 
     
    100100                                                } 
    101101                                                else { 
    102                                                         MessagePart[] siblings = parent.getParts(); 
     102                                                        MimeMessagePart[] siblings = parent.getParts(); 
    103103                                                        boolean otherHtml = false; 
    104104                                                        for(int i=0; i<siblings.length; i++) { 
     
    130130                        } 
    131131                } 
    132  
    133                 public void visitUnsupportedPart(UnsupportedPart part) { 
    134                         // No need to display unknown things 
    135                 } 
    136                  
    137                 public void visitMultiPart(MultiPart part) { 
    138                         // MultiPart sections are not displayed 
    139                 } 
    140132        } 
    141133         
     
    155147         * @return The displayable parts. 
    156148         */ 
    157         public static MessagePart[] getAttachmentParts(MessagePart rootPart) { 
     149        public static MimeMessagePart[] getAttachmentParts(MimeMessagePart rootPart) { 
    158150                AttachmentPartVisitor visitor = new AttachmentPartVisitor(); 
    159151                rootPart.accept(visitor); 
    160152                Vector parts = visitor.getAttachmentParts(); 
    161                 MessagePart[] result = new MessagePart[parts.size()]; 
     153                MimeMessagePart[] result = new MimeMessagePart[parts.size()]; 
    162154                parts.copyInto(result); 
    163155                return result; 
    164156        } 
    165157 
    166         private static class AttachmentPartVisitor implements MessagePartVisitor { 
     158        private static class AttachmentPartVisitor extends AbstractMimeMessagePartVisitor { 
    167159                private Vector attachmentParts = new Vector(); 
    168160                 
     
    179171                        attachmentParts.addElement(part); 
    180172                } 
    181  
    182                 public void visitUnsupportedPart(UnsupportedPart part) { 
    183                         // Not an attachment part 
    184                 } 
    185173                 
    186                 public void visitMultiPart(MultiPart part) { 
    187                         // Not an attachment part 
    188                 } 
     174                // TODO: Add ApplicationPart, AudioPart, VideoPart, and MessagePart 
    189175        } 
    190176} 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MimeMessagePartVisitor.java

    r36 r465  
    3535 * Visitor for handling a message part structure 
    3636 */ 
    37 public interface MessagePartVisitor { 
     37public interface MimeMessagePartVisitor { 
     38    public abstract void visitApplicationPart(ApplicationPart part); 
     39    public abstract void visitAudioPart(AudioPart part); 
     40    public abstract void visitImagePart(ImagePart part); 
    3841    public abstract void visitMultiPart(MultiPart part); 
    3942    public abstract void visitTextPart(TextPart part); 
    40     public abstract void visitImagePart(ImagePart part); 
     43    public abstract void visitVideoPart(VideoPart part); 
    4144    public abstract void visitUnsupportedPart(UnsupportedPart part); 
    4245} 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/MultiPart.java

    r434 r465  
    4343 * Multi-part message part (MIME type: "multipart/????") 
    4444 */ 
    45 public class MultiPart extends MessagePart { 
    46     private MessagePart[] parts; 
     45public class MultiPart extends MimeMessagePart { 
     46    private MimeMessagePart[] parts; 
    4747    private boolean partMixed; 
    4848    private boolean partAlternative; 
     
    8181    } 
    8282     
    83     public void accept(MessagePartVisitor visitor) { 
     83    public void accept(MimeMessagePartVisitor visitor) { 
    8484        visitor.visitMultiPart(this); 
    8585        if(parts != null) { 
     
    8989    } 
    9090 
    91     public void addPart(MessagePart part) { 
     91    public void addPart(MimeMessagePart part) { 
    9292        if(parts == null) { 
    93             parts = new MessagePart[1]; 
     93            parts = new MimeMessagePart[1]; 
    9494            parts[0] = part; 
    9595        } 
     
    100100    } 
    101101     
    102     public MessagePart[] getParts() { 
     102    public MimeMessagePart[] getParts() { 
    103103        return parts; 
    104104    } 
     
    150150                int partCount = input.readInt(); 
    151151                for(int i=0; i<partCount; i++) { 
    152                         MessagePart part = (MessagePart)SerializationUtils.deserializeClass(input); 
     152                        MimeMessagePart part = (MimeMessagePart)SerializationUtils.deserializeClass(input); 
    153153                        this.addPart(part); 
    154154                } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/TextPart.java

    r453 r465  
    5757    } 
    5858     
    59     public void accept(MessagePartVisitor visitor) { 
     59    public void accept(MimeMessagePartVisitor visitor) { 
    6060        visitor.visitTextPart(this); 
    6161    } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/message/UnsupportedPart.java

    r434 r465  
    3838 * by this application. 
    3939 */ 
    40 public class UnsupportedPart extends MessagePart { 
     40public class UnsupportedPart extends MimeMessagePart { 
    4141     
    4242    /** Creates a new instance of UnsupportedPart */ 
     
    5454    } 
    5555     
    56     public void accept(MessagePartVisitor visitor) { 
     56    public void accept(MimeMessagePartVisitor visitor) { 
    5757        visitor.visitUnsupportedPart(this); 
    5858    } 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/model/MessageNode.java

    r453 r465  
    4444import org.logicprobe.LogicMail.mail.AbstractMailStore; 
    4545import org.logicprobe.LogicMail.mail.MessageToken; 
     46import org.logicprobe.LogicMail.message.AbstractMimeMessagePartVisitor; 
    4647import org.logicprobe.LogicMail.message.FolderMessage; 
    47 import org.logicprobe.LogicMail.message.ImagePart; 
    4848import org.logicprobe.LogicMail.message.Message; 
    4949import org.logicprobe.LogicMail.message.MessageContent; 
     
    5151import org.logicprobe.LogicMail.message.MessageFlags; 
    5252import org.logicprobe.LogicMail.message.MessageMimeConverter; 
    53 import org.logicprobe.LogicMail.message.MessagePart; 
    54 import org.logicprobe.LogicMail.message.MessagePartTransformer; 
    55 import org.logicprobe.LogicMail.message.MessagePartVisitor; 
    56 import org.logicprobe.LogicMail.message.MultiPart; 
     53import org.logicprobe.LogicMail.message.MimeMessagePart; 
     54import org.logicprobe.LogicMail.message.MimeMessagePartTransformer; 
    5755import org.logicprobe.LogicMail.message.TextContent; 
    5856import org.logicprobe.LogicMail.message.TextPart; 
    59 import org.logicprobe.LogicMail.message.UnsupportedPart; 
    6057import org.logicprobe.LogicMail.util.EventListenerList; 
    6158import org.logicprobe.LogicMail.util.StringParser; 
     
    150147         
    151148        private MailboxNode parent; 
    152         private MessagePart messageStructure; 
     149        private MimeMessagePart messageStructure; 
    153150        private Hashtable messageContent = new Hashtable(); 
    154         private MessagePart[] attachmentParts; 
     151        private MimeMessagePart[] attachmentParts; 
    155152        private String messageSource; 
    156153        private EventListenerList listenerList = new EventListenerList(); 
     
    181178                this.messageStructure = folderMessage.getStructure(); 
    182179                if(this.messageStructure != null) { 
    183                         this.attachmentParts = MessagePartTransformer.getAttachmentParts(this.messageStructure); 
     180                        this.attachmentParts = MimeMessagePartTransformer.getAttachmentParts(this.messageStructure); 
    184181                } 
    185182        } 
     
    486483         * @param message The message structure. 
    487484         */ 
    488         void setMessageStructure(MessagePart messageStructure) { 
     485        void setMessageStructure(MimeMessagePart messageStructure) { 
    489486                boolean fireEvent; 
    490487                synchronized(messageContent) { 
     
    493490                                refreshInProgress = false; 
    494491                                this.flags &= ~Flag.RECENT; // RECENT = false 
    495                                 this.attachmentParts = MessagePartTransformer.getAttachmentParts(this.messageStructure); 
     492                                this.attachmentParts = MimeMessagePartTransformer.getAttachmentParts(this.messageStructure); 
    496493                                fireEvent = true; 
    497494                        } 
     
    541538         * @return The message structure. 
    542539         */ 
    543         public MessagePart getMessageStructure() { 
     540        public MimeMessagePart getMessageStructure() { 
    544541                synchronized(messageContent) { 
    545542                        if(this.messageStructure != null) { 
     
    553550         * Gets message content. 
    554551         *  
    555          * @param messagePart The part that represents the content's structural placement. 
     552         * @param mimeMessagePart The part that represents the content's structural placement. 
    556553         * @return The content. 
    557554         */ 
    558         public MessageContent getMessageContent(MessagePart messagePart) { 
     555        public MessageContent getMessageContent(MimeMessagePart mimeMessagePart) { 
    559556                synchronized(messageContent) { 
    560                         return (MessageContent)messageContent.get(messagePart); 
     557                        return (MessageContent)messageContent.get(mimeMessagePart); 
    561558                } 
    562559    } 
     
    596593         * <p> 
    597594         * This is a convenience method, as it returns an array that is populated 
    598          * from the message structure when {@link #setMessageStructure(MessagePart)} 
     595         * from the message structure when {@link #setMessageStructure(MimeMessagePart)} 
    599596         * is called.  This array will contain all message parts that are not of 
    600597         * type multi, text, or unsupported. 
     
    603600         * @return Message attachments. 
    604601         */ 
    605         public MessagePart[] getAttachmentParts() { 
     602        public MimeMessagePart[] getAttachmentParts() { 
    606603                synchronized(messageContent) { 
    607604                        return this.attachmentParts; 
     
    699696                Enumeration en = messageContent.keys(); 
    700697                while(en.hasMoreElements()) { 
    701                         MessagePart part = (MessagePart)en.nextElement(); 
     698                        MimeMessagePart part = (MimeMessagePart)en.nextElement(); 
    702699                        message.putContent(part, (MessageContent)messageContent.get(part)); 
    703700                } 
     
    905902    } 
    906903 
    907     private class FindFirstTextPartVisitor implements MessagePartVisitor { 
     904    private class FindFirstTextPartVisitor extends AbstractMimeMessagePartVisitor { 
    908905        private TextPart firstTextPart; 
    909906 
     
    915912                } 
    916913                } 
    917  
    918                 public void visitImagePart(ImagePart part) { } 
    919                 public void visitMultiPart(MultiPart part) { } 
    920                 public void visitUnsupportedPart(UnsupportedPart part) { } 
    921914    }; 
    922915     
     
    982975                        if(mailStore.hasMessageParts()) { 
    983976                                int maxSize = Integer.MAX_VALUE; 
    984                                 MessagePart[] displayableParts = MessagePartTransformer.getDisplayableParts(this.messageStructure); 
     977                                MimeMessagePart[] displayableParts = MimeMessagePartTransformer.getDisplayableParts(this.messageStructure); 
    985978                                AccountConfig accountConfig = parent.getParentAccount().getAccountConfig(); 
    986979                                if(accountConfig instanceof ImapConfig) { 
     
    1000993                                 
    1001994                                if(partsToFetch.size() > 0) { 
    1002                                         displayableParts = new MessagePart[partsToFetch.size()]; 
     995                                        displayableParts = new MimeMessagePart[partsToFetch.size()]; 
    1003996                                        partsToFetch.copyInto(displayableParts); 
    1004997                                        mailStore.requestMessageParts(messageToken, displayableParts); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/BaseScreen.java

    r463 r465  
    3333 
    3434import net.rim.device.api.i18n.ResourceBundle; 
     35import net.rim.device.api.ui.Field; 
    3536import net.rim.device.api.ui.MenuItem; 
    3637import net.rim.device.api.ui.Screen; 
     
    6263        private HeaderField headerField; 
    6364        private boolean isExposed = false; 
     65        private Field originalStatusField; 
    6466         
    6567    public BaseScreen(NavigationController navigationController) { 
     
    7678        super(); 
    7779        initialize(navigationController, title); 
     80    } 
     81     
     82    public void setStatus(Field status) { 
     83        originalStatusField = status; 
     84        super.setStatus(status); 
    7885    } 
    7986     
     
    119126                } 
    120127                else { 
    121                         setStatus(null); 
     128                        setStatus(originalStatusField); 
    122129                } 
    123130        } 
     
    129136        isExposed = false; 
    130137        synchronized(statusBarField) { 
    131                 setStatus(null); 
     138                setStatus(originalStatusField); 
    132139        } 
    133140        MailConnectionManager.getInstance().removeMailConnectionListener(mailConnectionListener); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/CompositionScreen.java

    r453 r465  
    5252import org.logicprobe.LogicMail.message.MessageEnvelope; 
    5353import org.logicprobe.LogicMail.message.MessageFlags; 
    54 import org.logicprobe.LogicMail.message.MessagePart; 
    55 import org.logicprobe.LogicMail.message.MessagePartFactory; 
     54import org.logicprobe.LogicMail.message.MimeMessagePart; 
     55import org.logicprobe.LogicMail.message.MimeMessagePartFactory; 
    5656import org.logicprobe.LogicMail.message.TextContent; 
    5757import org.logicprobe.LogicMail.message.TextPart; 
     
    233233    private void populateFromMessage(MessageNode message) { 
    234234        int i; 
    235         MessagePart body = message.getMessageStructure(); 
     235        MimeMessagePart body = message.getMessageStructure(); 
    236236 
    237237        // Currently only all-text reply bodies are supported 
     
    464464    private Message generateMessage() { 
    465465        String contentText = messageEditField.getText(); 
    466         MessagePart bodyPart = MessagePartFactory.createMessagePart( 
     466        MimeMessagePart bodyPart = MimeMessagePartFactory.createMimeMessagePart( 
    467467                        "text", "plain", null, "7bit", "us-ascii", "", "", contentText.length()); 
    468468        MessageContent bodyContent; 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/MailboxMessageField.java

    r446 r465  
    3535 
    3636import org.logicprobe.LogicMail.conf.MailSettings; 
    37 import org.logicprobe.LogicMail.message.MessagePart; 
     37import org.logicprobe.LogicMail.message.MimeMessagePart; 
    3838import org.logicprobe.LogicMail.model.Address; 
    3939import org.logicprobe.LogicMail.model.MailboxNode; 
     
    136136        String dateString = createDisplayDate(); 
    137137        Bitmap attachmentIcon = null; 
    138         MessagePart[] attachments = messageNode.getAttachmentParts(); 
     138        MimeMessagePart[] attachments = messageNode.getAttachmentParts(); 
    139139        if(attachments != null && attachments.length > 0) { 
    140140                attachmentIcon = Bitmap.getBitmapResource("mail_attachment.png"); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/MessageFieldFactory.java

    r453 r465  
    3737import org.logicprobe.LogicMail.message.ImageContent; 
    3838import org.logicprobe.LogicMail.message.MessageContent; 
    39 import org.logicprobe.LogicMail.message.MessagePart; 
     39import org.logicprobe.LogicMail.message.MimeMessagePart; 
    4040import org.logicprobe.LogicMail.message.TextContent; 
    4141import org.logicprobe.LogicMail.message.TextPart; 
     
    114114 
    115115        private static Field createUnsupportedMessageField(MessageContent content) { 
    116                 MessagePart part = content.getMessagePart(); 
     116                MimeMessagePart part = content.getMessagePart(); 
    117117                return new RichTextField( 
    118118                                resources.getString(LogicMailResource.MESSAGERENDERER_UNSUPPORTED) 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/MessageIcons.java

    r439 r465  
    3131package org.logicprobe.LogicMail.ui; 
    3232 
     33import org.logicprobe.LogicMail.message.ApplicationPart; 
     34import org.logicprobe.LogicMail.message.AudioPart; 
    3335import org.logicprobe.LogicMail.message.ImagePart; 
    34 import org.logicprobe.LogicMail.message.MessagePart; 
    35 import org.logicprobe.LogicMail.message.MessagePartVisitor; 
     36import org.logicprobe.LogicMail.message.MimeMessagePart; 
     37import org.logicprobe.LogicMail.message.MimeMessagePartVisitor; 
    3638import org.logicprobe.LogicMail.message.MultiPart; 
    3739import org.logicprobe.LogicMail.message.TextPart; 
    3840import org.logicprobe.LogicMail.message.UnsupportedPart; 
     41import org.logicprobe.LogicMail.message.VideoPart; 
    3942 
    4043import net.rim.device.api.system.Bitmap; 
     
    5053        private Bitmap mimeApplicationBitmap; 
    5154         
    52          
    5355        private MessageIcons() { 
    5456                 
    5557        } 
    5658         
    57         public static Bitmap getIcon(MessagePart messagePart) { 
    58                 return instance.getIconImpl(messagePart); 
     59        public static Bitmap getIcon(MimeMessagePart mimeMessagePart) { 
     60                return instance.getIconImpl(mimeMessagePart); 
    5961        } 
    6062 
    61         private Bitmap getIconImpl(MessagePart messagePart) { 
     63        private Bitmap getIconImpl(MimeMessagePart mimeMessagePart) { 
    6264                visitor.clearIcon(); 
    63                 messagePart.accept(visitor); 
     65                mimeMessagePart.accept(visitor); 
    6466                return visitor.getIcon(); 
    6567        } 
    6668         
    67         private class MessagePartIconVisitor implements MessagePartVisitor { 
     69        private class MessagePartIconVisitor implements MimeMessagePartVisitor { 
    6870                private Bitmap icon; 
     71 
     72                public void visitApplicationPart(ApplicationPart part) { 
     73                        if(icon != null) { return; } 
     74                        if(mimeApplicationBitmap == null) { 
     75                                mimeApplicationBitmap = Bitmap.getBitmapResource("mime_application.png"); 
     76                        } 
     77                        icon = mimeApplicationBitmap; 
     78                } 
     79 
     80                public void visitAudioPart(AudioPart part) { 
     81                        if(icon != null) { return; } 
     82                        if(mimeAudioBitmap == null) { 
     83                                mimeAudioBitmap = Bitmap.getBitmapResource("mime_audio.png"); 
     84                        } 
     85                        icon = mimeAudioBitmap; 
     86                } 
    6987 
    7088                public void visitImagePart(ImagePart part) { 
     
    87105                        if(icon != null) { return; } 
    88106                } 
    89                  
     107 
     108                public void visitVideoPart(VideoPart part) { 
     109                        if(mimeVideoBitmap == null) { 
     110                                mimeVideoBitmap = Bitmap.getBitmapResource("mime_video.png"); 
     111                        } 
     112                        icon = mimeVideoBitmap; 
     113                } 
     114 
    90115                public void visitUnsupportedPart(UnsupportedPart part) { 
    91                         if(icon != null) { return; } 
    92                         String type = part.getMimeType(); 
    93                         if(type.equals("audio")) { 
    94                                 if(mimeAudioBitmap == null) { 
    95                                         mimeAudioBitmap = Bitmap.getBitmapResource("mime_audio.png"); 
    96                                 } 
    97                                 icon = mimeAudioBitmap; 
    98                         } 
    99                         else if(type.equals("video")) { 
    100                                 if(mimeVideoBitmap == null) { 
    101                                         mimeVideoBitmap = Bitmap.getBitmapResource("mime_video.png"); 
    102                                 } 
    103                                 icon = mimeVideoBitmap; 
    104                         } 
    105                         else { 
    106                                 if(mimeApplicationBitmap == null) { 
    107                                         mimeApplicationBitmap = Bitmap.getBitmapResource("mime_application.png"); 
    108                                 } 
    109                                 icon = mimeApplicationBitmap; 
    110                         } 
     116                        // Use the application icon for unsupported types. 
     117                        // We can safely pass null since the parameter is 
     118                        // not currently used by any of the visitor methods. 
     119                        visitApplicationPart(null); 
    111120                } 
    112121                 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/MessagePropertiesScreen.java

    r446 r465  
    3434import org.logicprobe.LogicMail.conf.MailSettings; 
    3535import org.logicprobe.LogicMail.message.MessageContentFactory; 
    36 import org.logicprobe.LogicMail.message.MessagePart; 
     36import org.logicprobe.LogicMail.message.MimeMessagePart; 
    3737import org.logicprobe.LogicMail.message.MultiPart; 
    3838import org.logicprobe.LogicMail.model.Address; 
     
    144144                structureTreeField.setDefaultExpanded(true); 
    145145                structureTreeField.setIndentWidth(20); 
    146                 MessagePart rootPart = messageNode.getMessageStructure(); 
     146                MimeMessagePart rootPart = messageNode.getMessageStructure(); 
    147147                if(rootPart != null) { 
    148148                        populateStructureTreeField(0, rootPart); 
     
    151151        } 
    152152         
    153         private void populateStructureTreeField(int id, MessagePart part) { 
     153        private void populateStructureTreeField(int id, MimeMessagePart part) { 
    154154                int newId = structureTreeField.addChildNode(id, part); 
    155155                if(part instanceof MultiPart) { 
    156156                        MultiPart multiPart = (MultiPart)part; 
    157                         MessagePart[] children = multiPart.getParts(); 
     157                        MimeMessagePart[] children = multiPart.getParts(); 
    158158                        for(int i=children.length - 1; i>=0; --i) { 
    159159                                populateStructureTreeField(newId, children[i]); 
     
    203203                        int indent) { 
    204204        StringBuffer buf = new StringBuffer(); 
    205         MessagePart part = (MessagePart)structureTreeField.getCookie(node); 
     205        MimeMessagePart part = (MimeMessagePart)structureTreeField.getCookie(node); 
    206206        buf.append(part.getMimeType()); 
    207207        buf.append('/'); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/MessageScreen.java

    r461 r465  
    6767import org.logicprobe.LogicMail.message.ContentPart; 
    6868import org.logicprobe.LogicMail.message.MessageContent; 
    69 import org.logicprobe.LogicMail.message.MessagePart; 
    70 import org.logicprobe.LogicMail.message.MessagePartTransformer; 
     69import org.logicprobe.LogicMail.message.MimeMessagePart; 
     70import org.logicprobe.LogicMail.message.MimeMessagePartTransformer; 
    7171import org.logicprobe.LogicMail.model.AccountNode; 
    7272import org.logicprobe.LogicMail.model.Address; 
     
    287287                        && messageFieldManager.getFieldWithFocus() == attachmentsTreeField) { 
    288288                int node = attachmentsTreeField.getCurrentNode(); 
    289                 if(node != -1 && attachmentsTreeField.getCookie(node) instanceof MessagePart) { 
     289                if(node != -1 && attachmentsTreeField.getCookie(node) instanceof MimeMessagePart) { 
    290290                        menu.add(saveAttachmentItem); 
    291291                } 
     
    357357 
    358358                // Add a collapsed TreeField to show attachments, if any exist 
    359         MessagePart[] attachmentParts = messageNode.getAttachmentParts(); 
     359        MimeMessagePart[] attachmentParts = messageNode.getAttachmentParts(); 
    360360        if(attachmentParts.length > 0) { 
    361361                attachmentsTreeField = new TreeField(new TreeFieldCallback() { 
     
    372372         
    373373        // Add fields to display the message body 
    374         MessagePart[] displayableParts = MessagePartTransformer.getDisplayableParts(messageNode.getMessageStructure());          
     374        MimeMessagePart[] displayableParts = MimeMessagePartTransformer.getDisplayableParts(messageNode.getMessageStructure());          
    375375        for(int i=0; i<displayableParts.length; i++) { 
    376376                MessageContent content = messageNode.getMessageContent(displayableParts[i]); 
  • trunk/LogicMail/src/org/logicprobe/LogicMail/util/MailMessageParser.java

    r453 r465  
    3838import org.logicprobe.LogicMail.message.MessageContentFactory; 
    3939import org.logicprobe.LogicMail.message.MessageEnvelope; 
    40 import org.logicprobe.LogicMail.message.MessagePart; 
    41 import org.logicprobe.LogicMail.message.MessagePartFactory; 
     40import org.logicprobe.LogicMail.message.MimeMessagePart; 
     41import org.logicprobe.LogicMail.message.MimeMessagePartFactory; 
    4242import org.logicprobe.LogicMail.message.MultiPart; 
    4343import org.logicprobe.LogicMail.message.UnsupportedContentException; 
     
    192192     * @throws IOException Signals that an I/O exception has occurred. 
    193193     */ 
    194     public static MessagePart parseRawMessage(Hashtable contentMap, InputStream inputStream) 
     194    public static MimeMessagePart parseRawMessage(Hashtable contentMap, InputStream inputStream) 
    195195        throws IOException { 
    196196        MIMEInputStream mimeInputStream = null; 
     
    202202        } 
    203203 
    204         MessagePart rootPart = getMessagePart(contentMap, mimeInputStream); 
     204        MimeMessagePart rootPart = getMessagePart(contentMap, mimeInputStream); 
    205205 
    206206        return rootPart; 
     
    215215     * @return Root MessagePart element for this portion of the message tree 
    216216     */ 
    217     private static MessagePart getMessagePart(Hashtable contentMap, MIMEInputStream mimeInputStream) 
     217    private static MimeMessagePart getMessagePart(Hashtable contentMap, MIMEInputStream mimeInputStream) 
    218218        throws IOException { 
    219219        // Parse out the MIME type and relevant header fields 
     
    244244        if (mimeInputStream.isMultiPart() && 
    245245                type.equalsIgnoreCase("multipart")) { 
    246             MessagePart part = MessagePartFactory.createMessagePart( 
     246            MimeMessagePart part = MimeMessagePartFactory.createMimeMessagePart( 
    247247                        type, subtype, null, null, null, null, null, -1); 
    248248            MIMEInputStream[] mimeSubparts = mimeInputStream.getParts(); 
    249249 
    250250            for (int i = 0; i < mimeSubparts.length; i++) { 
    251                 MessagePart subPart = getMessagePart(contentMap, mimeSubparts[i]); 
     251                MimeMessagePart subPart = getMessagePart(contentMap, mimeSubparts[i]); 
    252252 
    253253                if (subPart != null) { 
     
    281281 
    282282                String data = new String(buffer, offset, size); 
    283                 MessagePart part = MessagePartFactory.createMessagePart( 
     283                MimeMessagePart part = MimeMessagePartFactory.createMimeMessagePart( 
    284284                                type, subtype, name, encoding, charset, disposition, contentId, size); 
    285285                try { 
     
    293293 
    294294                String data = new String(buffer); 
    295                 MessagePart part = MessagePartFactory.createMessagePart( 
     295                MimeMessagePart part = MimeMessagePartFactory.createMimeMessagePart( 
    296296                                type, subtype, name, encoding, charset, disposition, contentId, data.length()); 
    297297                try { 
  • trunk/LogicMailTests/src/org/logicprobe/LogicMail/message/MessageTest.java

    r453 r465  
    4444    private String sampleText; 
    4545    private MessageEnvelope envelope; 
    46     private MessagePart structure; 
     46    private MimeMessagePart structure; 
    4747    private TextContent textContent; 
    4848    private Message message; 
  • trunk/LogicMailTests/src/org/logicprobe/LogicMail/model/AccountNodeTest.java

    r437 r465  
    3737import org.logicprobe.LogicMail.mail.MessageToken; 
    3838import org.logicprobe.LogicMail.message.MessageFlags; 
    39 import org.logicprobe.LogicMail.message.MessagePart; 
     39import org.logicprobe.LogicMail.message.MimeMessagePart; 
    4040 
    4141import j2meunit.framework.Test; 
     
    247247                 
    248248                public void requestMessage(MessageToken messageToken) { } 
    249                 public void requestMessageParts(MessageToken messageToken, MessagePart[] messageParts) { } 
     249                public void requestMessageParts(MessageToken messageToken, MimeMessagePart[] messageParts) { } 
    250250                public void requestMessageAnswered(MessageToken messageToken, MessageFlags messageFlags) { } 
    251251                public void requestMessageDelete(MessageToken messageToken, MessageFlags messageFlags) { } 
  • trunk/LogicMailTests/src/org/logicprobe/LogicMail/model/MessageNodeTest.java

    r453 r465  
    3636import org.logicprobe.LogicMail.message.MessageContent; 
    3737import org.logicprobe.LogicMail.message.MessageEnvelope; 
    38 import org.logicprobe.LogicMail.message.MessagePart; 
     38import org.logicprobe.LogicMail.message.MimeMessagePart; 
    3939import org.logicprobe.LogicMail.message.TextContent; 
    4040import org.logicprobe.LogicMail.message.TextPart; 
     
    9191                MessageNode result = instance.toReplyMessage(); 
    9292 
    93                 MessagePart resultPart = result.getMessageStructure(); 
     93                MimeMessagePart resultPart = result.getMessageStructure(); 
    9494                assertNotNull("Null result", resultPart); 
    9595                assertTrue("Bad type", resultPart instanceof TextPart); 
     
    136136            MessageNode result = instance.toForwardMessage(); 
    137137             
    138                 MessagePart resultPart = result.getMessageStructure(); 
     138                MimeMessagePart resultPart = result.getMessageStructure(); 
    139139                assertNotNull("Null result", resultPart); 
    140140                assertTrue("Bad type", resultPart instanceof TextPart); 
Note: See TracChangeset for help on using the changeset viewer.