Ignore:
Timestamp:
05/30/09 17:10:16 (3 years ago)
Author:
octorian
Message:

Merge of 1.1 changes from r445 (Manual language selection, initial Vietnamese translation (very rough), QP decoding fix, and Unicode normalizer integration with mappings for Vietnamese)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LogicMail/src/org/logicprobe/LogicMail/ui/CompositionScreen.java

    r439 r446  
    4646import org.logicprobe.LogicMail.conf.AccountConfig; 
    4747import org.logicprobe.LogicMail.conf.IdentityConfig; 
     48import org.logicprobe.LogicMail.conf.MailSettings; 
    4849import org.logicprobe.LogicMail.message.Message; 
    4950import org.logicprobe.LogicMail.message.MessageContent; 
     
    6364import org.logicprobe.LogicMail.model.MessageNodeListener; 
    6465import org.logicprobe.LogicMail.util.EventObjectRunnable; 
     66import org.logicprobe.LogicMail.util.UnicodeNormalizer; 
    6567 
    6668 
     
    7678    private AccountNode accountNode; 
    7779    private AccountConfig accountConfig; 
     80    private UnicodeNormalizer unicodeNormalizer; 
    7881     
    7982    private BorderedFieldManager recipientsFieldManager; 
     
    129132        this.accountConfig = accountNode.getAccountConfig(); 
    130133        this.identityConfig = accountConfig.getIdentityConfig(); 
     134        if(MailSettings.getInstance().getGlobalConfig().getUnicodeNormalization()) { 
     135            unicodeNormalizer = UnicodeNormalizer.getInstance(); 
     136        } 
    131137 
    132138        initFields(); 
     
    155161        this.accountConfig = accountNode.getAccountConfig(); 
    156162        this.identityConfig = accountConfig.getIdentityConfig(); 
     163        if(MailSettings.getInstance().getGlobalConfig().getUnicodeNormalization()) { 
     164            unicodeNormalizer = UnicodeNormalizer.getInstance(); 
     165        } 
    157166 
    158167        initFields(); 
     
    217226                if(content instanceof TextContent) { 
    218227                    messageEditField.insert("\r\n"); 
    219                     messageEditField.insert(((TextContent)content).getText()); 
     228                    messageEditField.insert(normalize(((TextContent)content).getText())); 
    220229                    messageEditField.setCursorPosition(0); 
    221230                } 
     
    223232 
    224233        // Set the subject 
    225         subjectEditField.setText(message.getSubject()); 
     234        subjectEditField.setText(normalize(message.getSubject())); 
    226235 
    227236        // Set the recipients 
     
    229238        if (recipients != null) { 
    230239            for (i = 0; i < recipients.length; i++) { 
    231                 insertRecipientField(EmailAddressBookEditField.ADDRESS_TO).setText(recipients[i].toString()); 
     240                insertRecipientField(EmailAddressBookEditField.ADDRESS_TO).setText(normalize(recipients[i].toString())); 
    232241            } 
    233242        } 
     
    236245        if (recipients != null) { 
    237246            for (i = 0; i < recipients.length; i++) { 
    238                 insertRecipientField(EmailAddressBookEditField.ADDRESS_CC).setText(recipients[i].toString()); 
     247                insertRecipientField(EmailAddressBookEditField.ADDRESS_CC).setText(normalize(recipients[i].toString())); 
    239248            } 
    240249        } 
     
    243252        if (recipients != null) { 
    244253            for (i = 0; i < recipients.length; i++) { 
    245                 insertRecipientField(EmailAddressBookEditField.ADDRESS_BCC).setText(recipients[i].toString()); 
     254                insertRecipientField(EmailAddressBookEditField.ADDRESS_BCC).setText(normalize(recipients[i].toString())); 
    246255            } 
    247256        } 
     
    263272     
    264273    private void initFields() { 
    265  
    266274        recipientsFieldManager = new BorderedFieldManager( 
    267275                        Manager.NO_HORIZONTAL_SCROLL 
     
    566574        return super.keyChar(key, status, time); 
    567575    } 
     576 
     577    /** 
     578     * Run the Unicode normalizer on the provide string, 
     579     * only if normalization is enabled in the configuration. 
     580     * If normalization is disabled, this method returns 
     581     * the input unmodified. 
     582     *  
     583     * @param input Input string 
     584     * @return Normalized string 
     585     */ 
     586    private String normalize(String input) { 
     587        if(unicodeNormalizer == null) { 
     588            return input; 
     589        } 
     590        else { 
     591            return unicodeNormalizer.normalize(input); 
     592        } 
     593    } 
    568594} 
Note: See TracChangeset for help on using the changeset viewer.