1 package org
.argeo
.cms
.ux
;
3 import java
.util
.IdentityHashMap
;
5 import org
.argeo
.api
.cms
.ux
.CmsEditable
;
6 import org
.argeo
.api
.cms
.ux
.CmsEditionEvent
;
7 import org
.argeo
.api
.cms
.ux
.CmsEditionListener
;
9 public abstract class AbstractCmsEditable
implements CmsEditable
{
10 private IdentityHashMap
<CmsEditionListener
, Object
> listeners
= new IdentityHashMap
<>();
12 protected void notifyListeners(CmsEditionEvent e
) {
13 if (CmsEditionEvent
.START_EDITING
== e
.getType()) {
14 for (CmsEditionListener listener
: listeners
.keySet())
15 listener
.editionStarted(e
);
16 } else if (CmsEditionEvent
.STOP_EDITING
== e
.getType()) {
17 for (CmsEditionListener listener
: listeners
.keySet())
18 listener
.editionStopped(e
);
20 throw new IllegalArgumentException("Unkown edition event type " + e
.getType());
25 public void addCmsEditionListener(CmsEditionListener listener
) {
26 listeners
.put(listener
, new Object());
30 public void removeCmsEditionListener(CmsEditionListener listener
) {
31 listeners
.remove(listener
, new Object());