PriceModelObject.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. public class PriceModelObject extends ModelObject {
  13. private double price;
  14. public double getDouble(){
  15. return price;
  16. }
  17. public void setPrice(double aPrice){
  18. int oldDollars = getDollars();
  19. int oldCents = getCents();
  20. double oldValue = price;
  21. price = aPrice;
  22. firePropertyChange("dollars",oldDollars,getDollars());
  23. firePropertyChange("cents",oldCents,getCents());
  24. firePropertyChange("price",new Double(oldValue), new Double(price));
  25. }
  26. public double getPrice(){
  27. return price;
  28. }
  29. public int getCents(){
  30. return (int) (100*price - 100*Math.floor(price));
  31. }
  32. public void setCents(int cents){
  33. double oldPrice = getPrice();
  34. int oldCents = getCents();
  35. price = getDollars() + cents *.01;
  36. firePropertyChange("cents",oldCents,getCents());
  37. firePropertyChange("price", new Double(oldPrice), new Double(price));
  38. }
  39. public int getDollars(){
  40. return new Double(price).intValue();
  41. }
  42. public void setDollars(int dollars){
  43. double oldPrice = getPrice();
  44. int oldDollars = getDollars();
  45. price = dollars + getCents() *.01;
  46. firePropertyChange("dollars",oldDollars,getDollars());
  47. firePropertyChange("price", new Double(oldPrice), new Double(price));
  48. }
  49. }