advancedcontactform.java

来自「moblie syncml mail javame」· Java 代码 · 共 157 行

JAVA
157
字号
/*
 * Funambol is a mobile platform developed by Funambol, Inc. 
 * Copyright (C) 2003 - 2007 Funambol, Inc.
 * 
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License version 3 as published by
 * the Free Software Foundation with the addition of the following permission 
 * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
 * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE 
 * WARRANTY OF NON INFRINGEMENT  OF THIRD PARTY RIGHTS.
 * 
 * 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 Affero General Public License 
 * along with this program; if not, see http://www.gnu.org/licenses or write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301 USA.
 * 
 * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite 
 * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
 * 
 * The interactive user interfaces in modified source and object code versions
 * of this program must display Appropriate Legal Notices, as required under
 * Section 5 of the GNU Affero General Public License version 3.
 * 
 * In accordance with Section 7(b) of the GNU Affero General Public License
 * version 3, these Appropriate Legal Notices must retain the display of the
 * "Powered by Funambol" logo. If the display of the logo is not reasonably 
 * feasible for technical reasons, the Appropriate Legal Notices must display
 * the words "Powered by Funambol".
 *
 *
 */

package com.funambol.mailclient.ui.view;

import com.funambol.mail.Address;
import com.funambol.mail.MailException;
import com.funambol.mailclient.cm.ContactManagerException;
import com.funambol.mailclient.ui.controller.UIController;
import com.funambol.mailclient.cm.Contact;
import com.funambol.mailclient.loc.Localization;
import com.funambol.util.Log;
import com.funambol.util.StringUtil;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;


/**
 * Form containing the textfield for contact details:
 * First, Second name, second and third emails and phone contacts
 */
public class AdvancedContactForm extends Form implements CommandListener{
    private static final int MAX_TXTFIELD_SIZE=128;
    private Command okCommand =
            new Command(Localization.getMessages().GENERIC_OK, UIController.COMMAND_TYPE,0);
   private TextField txtEmail2 =
            new TextField(Localization.getMessages().ACF_CONTACT_EMAIL_2_LABEL,"",MAX_TXTFIELD_SIZE,TextField.ANY | TextField.NON_PREDICTIVE);
    private TextField txtEmail3 =
            new TextField(Localization.getMessages().ACF_CONTACT_EMAIL_3_LABEL,"",MAX_TXTFIELD_SIZE,TextField.ANY | TextField.NON_PREDICTIVE);
    private TextField txtHome =
            new TextField(Localization.getMessages().ACF_CONTACT_HOME_LABEL,"",MAX_TXTFIELD_SIZE,TextField.ANY);
    private TextField txtJob =
            new TextField(Localization.getMessages().ACF_CONTACT_JOB_LABEL,"",MAX_TXTFIELD_SIZE,TextField.ANY);
    private TextField txtMobile =
            new TextField(Localization.getMessages().ACF_CONTACT_MOBILE_LABEL,"",MAX_TXTFIELD_SIZE,TextField.ANY);
    private Contact contact;
    
    /**
     * Creates a new instance of AdvancedContactForm starting from a
     * contact passed from addContactForm
     */
    public AdvancedContactForm(Contact contact) {
        super(Localization.getMessages().ACF_ADVANCED_COMMAND_LABEL);
        this.contact=contact;
        this.addCommand(okCommand);
        this.addCommand(UIController.cancelCommand);
        this.setCommandListener(this);
        //#ifdef isBlackberry
//#        this.addCommand( UIController.blackberryExitCommand );
        //#endif
        
        try {
           
            if (!StringUtil.isNullOrEmpty(contact.getEmail_2())) {
                txtEmail2.setString(contact.getEmail_2());
            }
            
            if (!StringUtil.isNullOrEmpty(contact.getEmail_3())) {
                txtEmail3.setString(contact.getEmail_3());
            }
            if (!StringUtil.isNullOrEmpty(contact.getHomePhone())) {
                //Log.debug("Home Number: [" + contact.getHomePhone()+"]");
                txtHome.setString(contact.getHomePhone());
            }
            if (!StringUtil.isNullOrEmpty(contact.getJobPhone())) {
                //Log.debug("Job Number: [" + contact.getJobPhone()+"]");
                txtJob.setString(contact.getJobPhone());
            }
            if (!StringUtil.isNullOrEmpty(contact.getMobilePhone())) {
                //Log.debug("Mobile Number: [" + contact.getMobilePhone()+"]");
                txtMobile.setString(contact.getMobilePhone());
            }
        } catch (IllegalArgumentException ex) {
            Log.error("illegal argument in contact " + contact.toString());
            ex.printStackTrace();
        }

        txtEmail2.setInitialInputMode("MIDP_LOWERCASE_LATIN");
        txtEmail3.setInitialInputMode("MIDP_LOWERCASE_LATIN");
        append(txtEmail2);
        append(txtEmail3);
        append(txtHome);
        append(txtJob);
        append(txtMobile);
        setCommandListener(this);
    }
    
    private boolean checkEmailField(TextField field) {
        
        return ( StringUtil.isNullOrEmpty( field.getString( )) ||
                ( field.getString().indexOf("@")!=-1 ) &&
                field.getString().length()>2 );
    }
    
    
    public void commandAction(Command command, Displayable displayable) {
        if (command==okCommand) {
            
            if ( checkEmailField(txtEmail2) && checkEmailField(txtEmail3) ) {
                contact.setEmail_2(txtEmail2.getString());
                contact.setEmail_3(txtEmail3.getString());
                contact.setHomePhone(txtHome.getString());
                contact.setJobPhone(txtJob.getString());
                contact.setMobilePhone(txtMobile.getString());
                UIController.showBackScreen();
            } else {
                UIController.showErrorAlert(
                        Localization.getMessages().INVALID_EMAIL_ADDRESS );
            }
        } else if (command == UIController.cancelCommand) {
            UIController.showBackScreen();
        } else if (command == UIController.blackberryExitCommand) {
            UIController.midlet.destroyApp( false );
        }
        
    }
    
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?