Beispiel #1
0
        /// <inheritdoc />
        public ICardChannelLayer RequestLayer(ICardChannelLayer layer, SearchMode mode)
        {
            if (layers.Count == 0)
            {
                throw new Exception("CardChannelStack.requestLayer(): no layers defined in the stack");
            }
            switch (mode)
            {
            case SearchMode.Bottom:
                return(layers[layers.Count - 1]);

            case SearchMode.Next:
                return(layers.Following(l => l.LayerId == layer.LayerId));

            case SearchMode.Previous:
                return(layers.Preceding(l => l.LayerId == layer.LayerId));

            case SearchMode.Top:
                return(layers[0]);

            default:
                throw new NotSupportedException(String.Format("CardChannelStack.RequestLayer(): Seek mode '{0}' unknown", mode));
            }
        }
Beispiel #2
0
 /// <inheritdoc />
 public void AddLayer(ICardChannelLayer layer)
 {
     layers.Add(layer);
     layer.SetStack(this);
 }
Beispiel #3
0
 /// <inheritdoc />
 public void ReleaseLayer(ICardChannelLayer layer)
 {
     layers.Remove(layer);
 }
Beispiel #4
0
        /// <summary>
        /// Encapsulates an <see cref="ICardChannelLayer"/> and adds <see cref="ICardChannelLayerObservable"/> behaviour.
        /// </summary>
        /// <param name="layer">Card channel layer to encapsulate.</param>
        /// <returns></returns>
        public static ICardChannelLayerObservable ToObservableLayer(this ICardChannelLayer layer)
        {
            var layerObservable = layer as ICardChannelLayerObservable;

            return(layerObservable ?? new CardChannelLayerObservable(layer));
        }
Beispiel #5
0
        /// <inheritdoc />
        public ICardChannelLayer RequestLayer(ICardChannelLayer layer, SearchMode mode)
        {
            var stack = (ICardChannelStack)channel;

            return(stack.RequestLayer(layer, mode));
        }
Beispiel #6
0
        /// <inheritdoc />
        public void ReleaseLayer(ICardChannelLayer layer)
        {
            var stack = (ICardChannelStack)channel;

            stack.ReleaseLayer(layer);
        }
Beispiel #7
0
        /// <inheritdoc />
        public void AddLayer(ICardChannelLayer layer)
        {
            var stack = (ICardChannelStack)channel;

            stack.AddLayer(layer);
        }
Beispiel #8
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="channelLayer">Instance to wrap.</param>
 public CardChannelLayerObservable(ICardChannelLayer channelLayer)
     : base(channelLayer)
 {
 }