01: /*
02: * Copyright 2006-2007 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt.
07: *
08: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
09: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
10: * the license for the specific language governing your rights and limitations.
11: *
12: * Additional Contributor(s): Martin Schmid gridvision engineering GmbH
13: */
14: package org.pentaho.reportdesigner.crm.report.zoom;
15:
16: import org.jetbrains.annotations.NotNull;
17:
18: import java.util.LinkedHashSet;
19:
20: /**
21: * User: Martin
22: * Date: 03.02.2006
23: * Time: 19:28:50
24: */
25: public class ZoomModel {
26: @NotNull
27: private LinkedHashSet<ZoomModelListener> zoomModelListeners;
28:
29: private int zoomFactor;//*1000
30:
31: public ZoomModel() {
32: zoomModelListeners = new LinkedHashSet<ZoomModelListener>();
33: }
34:
35: public int getZoomFactor() {
36: return zoomFactor;
37: }
38:
39: public void setZoomFactor(int zoomFactor) {
40: int oldZoomFactor = this .zoomFactor;
41: this .zoomFactor = zoomFactor;
42:
43: if (oldZoomFactor != zoomFactor) {
44: notifyListeners(oldZoomFactor, zoomFactor);
45: }
46: }
47:
48: public void addZoomModelListener(@NotNull
49: ZoomModelListener zoomModelListener) {
50: zoomModelListeners.add(zoomModelListener);
51: }
52:
53: public void removeZoomModelListener(@NotNull
54: ZoomModelListener zoomModelListener) {
55: zoomModelListeners.remove(zoomModelListener);
56: }
57:
58: private void notifyListeners(int oldFactor, int newFactor) {
59: LinkedHashSet<ZoomModelListener> set = new LinkedHashSet<ZoomModelListener>(
60: zoomModelListeners);
61: for (ZoomModelListener zoomModelListener : set) {
62: zoomModelListener.zoomFactorChanged(oldFactor, newFactor);
63: }
64: }
65: }
|