ZoomModel.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.poqop.document.models;
  2. import com.poqop.document.events.BringUpZoomControlsEvent;
  3. import com.poqop.document.events.EventDispatcher;
  4. import com.poqop.document.events.ZoomChangedEvent;
  5. import com.poqop.document.events.ZoomListener;
  6. public class ZoomModel extends EventDispatcher
  7. {
  8. private float zoom = 1.0f;
  9. private static final float INCREMENT_DELTA = 0.1f;
  10. private boolean horizontalScrollEnabled;
  11. private boolean isCommited;
  12. public void setZoom(float zoom)
  13. {
  14. zoom = Math.max(zoom, 1.0f);
  15. if (this.zoom != zoom)
  16. {
  17. float oldZoom = this.zoom;
  18. this.zoom = zoom;
  19. isCommited = false;
  20. dispatch(new ZoomChangedEvent(zoom, oldZoom));
  21. }
  22. }
  23. public float getZoom()
  24. {
  25. return zoom;
  26. }
  27. //Ôö¼ÓËõ·Å
  28. public void increaseZoom()
  29. {
  30. setZoom(getZoom() + INCREMENT_DELTA);
  31. }
  32. //¼õÉÙËõ·Å
  33. public void decreaseZoom()
  34. {
  35. setZoom(getZoom() - INCREMENT_DELTA);
  36. }
  37. public void toggleZoomControls()
  38. {
  39. dispatch(new BringUpZoomControlsEvent());
  40. }
  41. public void setHorizontalScrollEnabled(boolean horizontalScrollEnabled)
  42. {
  43. this.horizontalScrollEnabled = horizontalScrollEnabled;
  44. }
  45. public boolean isHorizontalScrollEnabled()
  46. {
  47. return horizontalScrollEnabled;
  48. }
  49. public boolean canDecrement()
  50. {
  51. return zoom > 1.0f;
  52. }
  53. public void commit()
  54. {
  55. if (!isCommited)
  56. {
  57. isCommited = true;
  58. dispatch(new ZoomListener.CommitZoomEvent());
  59. }
  60. }
  61. }