20 package net.sf.gridarta.gui.map.mapview;
22 import java.awt.Point;
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import java.util.Collections;
26 import java.util.Iterator;
27 import java.util.List;
28 import java.util.concurrent.CopyOnWriteArrayList;
33 import org.jetbrains.annotations.NotNull;
34 import org.jetbrains.annotations.Nullable;
46 private final Collection<MapViewsListener<G, A, R>>
listeners =
new CopyOnWriteArrayList<>();
55 private final List<MapView<G, A, R>>
mapViews =
new ArrayList<>();
105 mapControl.acquire();
108 if (viewPosition !=
null) {
112 mapControl.acquire();
114 listener.mapViewCreated(mapView);
118 mapControl.release();
128 final Point[] result =
new Point[
mapViews.size()];
129 for (
int i = 0; i < result.length; i++) {
130 result[i] =
mapViews.get(i).getScrollPane().getViewport().getViewPosition();
141 listener.mapViewClosing(mapView);
143 mapView.closeNotify();
145 mapView.getMapControl().release();
174 return Collections.unmodifiableList(
mapViews).iterator();
182 mapView.getRenderer().forceRepaint();
192 listener.mapViewRaise(mapView);