PhoneConverter.java
上传用户:hengxinggs
上传日期:2008-01-15
资源大小:212k
文件大小:2k
源码类别:

PlugIns编程

开发平台:

Java

  1. /*******************************************************************************
  2.  * Copyright (c) 2005 IBM Corporation and others.
  3.  * All rights reserved. This program and the accompanying materials
  4.  * are made available under the terms of the Eclipse Public License v1.0
  5.  * which accompanies this distribution, and is available at
  6.  * http://www.eclipse.org/legal/epl-v10.html
  7.  * 
  8.  * Contributors:
  9.  *     IBM Corporation - initial API and implementation
  10.  *******************************************************************************/
  11. package org.eclipse.jface.examples.databinding.model;
  12. import org.eclipse.jface.databinding.converter.IConverter;
  13.  
  14. public class PhoneConverter implements IConverter {
  15. public Class getModelType() {
  16. return String.class;
  17. }
  18. public Class getTargetType() {
  19. return String.class;
  20. }
  21. public Object convertTargetToModel(Object targetObject) {
  22. // Unformat the formatted phone to a raw String
  23. return removeFormatting((String)targetObject);
  24. }
  25. public Object convertModelToTarget(Object modelObject) {
  26. String unformattedPhone = (String)modelObject;
  27. if(unformattedPhone == null || unformattedPhone.length() != 10){
  28. return unformattedPhone;
  29. } else {
  30. StringBuffer sb = new StringBuffer(13);
  31. sb.append(unformattedPhone.substring(0,3));
  32. sb.append('-');
  33. sb.append(unformattedPhone.subSequence(3,6));
  34. sb.append('-');
  35. sb.append(unformattedPhone.subSequence(6,10));
  36. return sb.toString();
  37. }
  38. }
  39. static String removeFormatting(String formattedPhone){
  40. StringBuffer sb = new StringBuffer(9);
  41. for (int i = 0; i < formattedPhone.length(); i++) {
  42. char c = formattedPhone.charAt(i);
  43. if('0' <= c && '9' >= c){
  44. sb.append(c);
  45. }
  46. }
  47. return sb.toString();
  48. }
  49. }