Package org.zkoss.zk.ui.impl
Class SimpleScope
- java.lang.Object
-
- org.zkoss.zk.ui.impl.SimpleScope
-
- All Implemented Interfaces:
Scope
- Direct Known Subclasses:
SynchronizedScope
public class SimpleScope extends java.lang.Object implements Scope
A simple implementation ofScope
. It supportsScopeListener
, but it doesn't support the concept of parent scope. Thus, the deriving class can overridegetAttribute(String,boolean)
,hasAttribute(String,boolean)
, and invokenotifyParentChanged(org.zkoss.zk.ui.ext.Scope)
if the parent is changed.Not thread safe.
- Since:
- 5.0.0
- Author:
- tomyeh
-
-
Constructor Summary
Constructors Constructor Description SimpleScope(Scope owner)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addScopeListener(ScopeListener listener)
Adds a listener to listen whether this scope is changed.SimpleScope
clone(Scope owner)
Clones this scope.java.lang.Object
getAttribute(java.lang.String name)
Returns the custom attribute associated with this object (scope).java.lang.Object
getAttribute(java.lang.String name, boolean recurse)
The same as getAttribute(name).java.util.Map<java.lang.String,java.lang.Object>
getAttributes()
Returns all custom attributes associated with this object (scope).java.util.List<ScopeListener>
getListeners()
Returns a list of all scope listeners (never null).boolean
hasAttribute(java.lang.String name)
Returns if a custom attribute is associated with this object (scope).boolean
hasAttribute(java.lang.String name, boolean recurse)
The same as hasAttribute(name).void
notifyIdSpaceChanged(IdSpace newIdSpace)
InvokesScopeListener.idSpaceChanged(org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.IdSpace)
for registered listeners.void
notifyParentChanged(Scope newparent)
InvokesScopeListener.parentChanged(org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.ext.Scope)
for registered listeners.java.lang.Object
removeAttribute(java.lang.String name)
Removes the attribute from the current scope if any.java.lang.Object
removeAttribute(java.lang.String name, boolean recurse)
The same as removeAttribute(name).boolean
removeScopeListener(ScopeListener listener)
Removes a change listener from this scope.java.lang.Object
setAttribute(java.lang.String name, java.lang.Object value)
Sets (a.k.a., associates) the value for a custom attribute with this object (scope).java.lang.Object
setAttribute(java.lang.String name, java.lang.Object value, boolean recurse)
The same as setAttribute(name, value).java.lang.String
toString()
-
-
-
Constructor Detail
-
SimpleScope
public SimpleScope(Scope owner)
Constructor.- Parameters:
owner
- the real scope that an user can access. If this object is the scope that an user accesses directly, passnull
-
-
Method Detail
-
getAttributes
public java.util.Map<java.lang.String,java.lang.Object> getAttributes()
Description copied from interface:Scope
Returns all custom attributes associated with this object (scope).- Specified by:
getAttributes
in interfaceScope
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name)
Description copied from interface:Scope
Returns the custom attribute associated with this object (scope).- Specified by:
getAttribute
in interfaceScope
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name, boolean recurse)
The same as getAttribute(name).- Specified by:
getAttribute
in interfaceScope
recurse
- whether to search its ancestor scope. If true and the current scope doen't define the attribute, it searches up its ancestor to see any of them has defined the specified attribute.
-
hasAttribute
public boolean hasAttribute(java.lang.String name)
Description copied from interface:Scope
Returns if a custom attribute is associated with this object (scope).Notice that
null
is a valid value, so you can tell if an attribute is associated by examining the return value ofScope.getAttribute(java.lang.String)
.- Specified by:
hasAttribute
in interfaceScope
-
hasAttribute
public boolean hasAttribute(java.lang.String name, boolean recurse)
The same as hasAttribute(name).- Specified by:
hasAttribute
in interfaceScope
recurse
- whether to search its ancestor scope. If true and the current scope doen't define the attribute, it searches up its ancestor to see any of them has defined the specified attribute.
-
setAttribute
public java.lang.Object setAttribute(java.lang.String name, java.lang.Object value)
Description copied from interface:Scope
Sets (a.k.a., associates) the value for a custom attribute with this object (scope).- Specified by:
setAttribute
in interfaceScope
- Returns:
- the previous value associated with the attribute, if any
-
setAttribute
public java.lang.Object setAttribute(java.lang.String name, java.lang.Object value, boolean recurse)
The same as setAttribute(name, value).- Specified by:
setAttribute
in interfaceScope
recurse
- whether to look up the parent scope for the existence of the attribute.
If recurse is true and the attribute is defined in one of its ancestor (including page), the attribute is replaced. Otherwise, it is the same asScope.setAttribute(String,Object)
.
-
removeAttribute
public java.lang.Object removeAttribute(java.lang.String name)
Description copied from interface:Scope
Removes the attribute from the current scope if any.- Specified by:
removeAttribute
in interfaceScope
- Returns:
- the previous value associated with the attribute, if any,
-
removeAttribute
public java.lang.Object removeAttribute(java.lang.String name, boolean recurse)
The same as removeAttribute(name).- Specified by:
removeAttribute
in interfaceScope
recurse
- whether to look up the parent scope for the existence of the attribute.
If recurse is true and the attribute is defined in one of its ancestor (including page), the attribute is removed. Otherwise, it is the same asScope.removeAttribute(String)
.
-
addScopeListener
public boolean addScopeListener(ScopeListener listener)
Description copied from interface:Scope
Adds a listener to listen whether this scope is changed. The listener is called when a custom attribute is added, removed, or the parent is changed.- Specified by:
addScopeListener
in interfaceScope
- Returns:
- weather the listener is added successfully. Note: if the resolver was added before, it won't be added again and this method returns false.
-
removeScopeListener
public boolean removeScopeListener(ScopeListener listener)
Description copied from interface:Scope
Removes a change listener from this scope.- Specified by:
removeScopeListener
in interfaceScope
- Returns:
- false if listener is not added before.
-
notifyParentChanged
public void notifyParentChanged(Scope newparent)
InvokesScopeListener.parentChanged(org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.ext.Scope)
for registered listeners.
-
notifyIdSpaceChanged
public void notifyIdSpaceChanged(IdSpace newIdSpace)
InvokesScopeListener.idSpaceChanged(org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.IdSpace)
for registered listeners.- Since:
- 5.0.1
- See Also:
addScopeListener(org.zkoss.zk.ui.ext.ScopeListener)
-
getListeners
public java.util.List<ScopeListener> getListeners()
Returns a list of all scope listeners (never null).
-
clone
public SimpleScope clone(Scope owner)
Clones this scope.- Parameters:
owner
- the owner of the cloned scope.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-