Esempio n. 1
0
		/// <summary>
		/// Adds an <see cref="IDisplaySet"/> to the clipboard.
		/// </summary>
		/// <param name="displaySet"></param>
		/// <param name="selectionStrategy"></param>
		/// <remarks>
		/// When called, a copy of the specified <see cref="IPresentationImage"/>s
		/// (as determined by the <paramref name="selectionStrategy"/>) is made and stored
		/// in the clipbaord.  This ensures that the <see cref="IPresentationImage"/> is in fact a
		/// snapshot and not a reference that could be changed in unpredictable ways.
		/// Pixel data, however, is not replicated.
		/// </remarks>
		public static void Add(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy)
		{
			Platform.CheckForNullReference(displaySet, "displaySet");
			Platform.CheckForNullReference(selectionStrategy, "selectionStrategy");

			Items.Add(ClipboardComponent.CreateDisplaySetItem(displaySet, selectionStrategy));
		}
Esempio n. 2
0
        /// <summary>
        /// Adds an <see cref="IDisplaySet"/> to the clipboard.
        /// </summary>
        /// <param name="displaySet"></param>
        /// <param name="selectionStrategy"></param>
        /// <remarks>
        /// When called, a copy of the specified <see cref="IPresentationImage"/>s
        /// (as determined by the <paramref name="selectionStrategy"/>) is made and stored
        /// in the clipbaord.  This ensures that the <see cref="IPresentationImage"/> is in fact a
        /// snapshot and not a reference that could be changed in unpredictable ways.
        /// Pixel data, however, is not replicated.
        /// </remarks>
        public static void Add(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy)
        {
            Platform.CheckForNullReference(displaySet, "displaySet");
            Platform.CheckForNullReference(selectionStrategy, "selectionStrategy");

            Items.Add(ClipboardComponent.CreateDisplaySetItem(displaySet, selectionStrategy));
        }
Esempio n. 3
0
        /// <summary>
        /// Adds an <see cref="IDisplaySet"/> to the clipboard.
        /// </summary>
        /// <param name="displaySet"></param>
        /// <param name="selectionStrategy"></param>
        /// <remarks>
        /// When called, a copy of the specified <see cref="IPresentationImage"/>s
        /// (as determined by the <paramref name="selectionStrategy"/>) is made and stored
        /// in the clipbaord.  This ensures that the <see cref="IPresentationImage"/> is in fact a
        /// snapshot and not a reference that could be changed in unpredictable ways.
        /// Pixel data, however, is not replicated.
        /// </remarks>
        public static void Add(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy)
        {
            Platform.CheckForNullReference(displaySet, "displaySet");
            Platform.CheckForNullReference(selectionStrategy, "selectionStrategy");

            var clipboard = Default;

            clipboard._items.Add(clipboard.CreateDisplaySetItem(displaySet, selectionStrategy));
        }
Esempio n. 4
0
        /// <summary>
        /// Called to create a clipboard item representing a display set.
        /// </summary>
        /// <param name="displaySet"></param>
        /// <param name="selectionStrategy"></param>
        /// <returns></returns>
        public virtual ClipboardItem CreateDisplaySetItem(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy = null)
        {
            if (displaySet.PresentationImages.Count == 0)
            {
                throw new ArgumentException("DisplaySet must have at least one image.");
            }

            var presentationImage = displaySet.ImageBox != null &&
                                    displaySet.ImageBox.SelectedTile != null &&
                                    displaySet.ImageBox.SelectedTile.PresentationImage != null
                                                        ? displaySet.ImageBox.SelectedTile.PresentationImage
                                                        : displaySet.PresentationImages[displaySet.PresentationImages.Count / 2];

            var clientRectangle = presentationImage.ClientRectangle;

            if (clientRectangle.IsEmpty)
            {
                clientRectangle = new Rectangle(new Point(), presentationImage.SceneSize);
            }

            if (selectionStrategy == null)
            {
                if (displaySet.PresentationImages.Count == 1)
                {
                    // Add as a single image.
                    return(CreatePresentationImageItem(displaySet.PresentationImages[0]));
                }
                else
                {
                    return(CreateDisplaySetItem(displaySet.Clone(), clientRectangle));
                }
            }
            else
            {
                List <IPresentationImage> images = new List <IPresentationImage>(selectionStrategy.GetImages(displaySet));
                if (images.Count == 1)
                {
                    // Add as a single image.
                    return(CreatePresentationImageItem(images[0]));
                }
                else
                {
                    string name = String.Format("{0} - {1}", selectionStrategy.Description, displaySet.Name);
                    displaySet = new DisplaySet(name, displaySet.Uid)
                    {
                        Description = displaySet.Description, Number = displaySet.Number
                    };
                    images.ForEach(image => displaySet.PresentationImages.Add(image.Clone()));
                    return(CreateDisplaySetItem(displaySet, clientRectangle));
                }
            }
        }
Esempio n. 5
0
        public static IClipboardItem CreateDisplaySetItem(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy)
        {
            if (displaySet.ImageBox == null ||
                displaySet.ImageBox.SelectedTile == null ||
                displaySet.ImageBox.SelectedTile.PresentationImage == null)
            {
                throw new ArgumentException("DisplaySet must have a selected image.");
            }

            Rectangle clientRectangle = displaySet.ImageBox.SelectedTile.PresentationImage.ClientRectangle;

            if (selectionStrategy == null)
            {
                if (displaySet.PresentationImages.Count == 1)
                {
                    // Add as a single image.
                    return(CreatePresentationImageItem(displaySet.PresentationImages[0]));
                }
                else
                {
                    return(CreateDisplaySetItem(displaySet.Clone(), clientRectangle));
                }
            }
            else
            {
                List <IPresentationImage> images = new List <IPresentationImage>(selectionStrategy.GetImages(displaySet));
                if (images.Count == 1)
                {
                    // Add as a single image.
                    return(CreatePresentationImageItem(images[0]));
                }
                else
                {
                    string name = String.Format("{0} - {1}", selectionStrategy.Description, displaySet.Name);
                    displaySet = new DisplaySet(name, displaySet.Uid)
                    {
                        Description = displaySet.Description, Number = displaySet.Number
                    };
                    images.ForEach(delegate(IPresentationImage image) { displaySet.PresentationImages.Add(image.Clone()); });
                    return(CreateDisplaySetItem(displaySet, clientRectangle));
                }
            }
        }
Esempio n. 6
0
 public virtual void AddDisplaySet(DisplaySet displaySet, IImageSelectionStrategy selectionStrategy)
 {
     _items.Add(CreateDisplaySetItem(displaySet, selectionStrategy));
 }
 public override ClipboardItem CreateDisplaySetItem(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy = null)
 {
     throw new InvalidOperationException("Display set items are not supported by Key Images");
 }
Esempio n. 8
0
		/// <summary>
		/// Called to create a clipboard item representing a display set.
		/// </summary>
		/// <param name="displaySet"></param>
		/// <param name="selectionStrategy"></param>
		/// <returns></returns>
		public virtual ClipboardItem CreateDisplaySetItem(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy = null)
		{
			if (displaySet.PresentationImages.Count == 0)
				throw new ArgumentException("DisplaySet must have at least one image.");

			var presentationImage = displaySet.ImageBox != null
			                        && displaySet.ImageBox.SelectedTile != null
			                        && displaySet.ImageBox.SelectedTile.PresentationImage != null
			                        	? displaySet.ImageBox.SelectedTile.PresentationImage
			                        	: displaySet.PresentationImages[displaySet.PresentationImages.Count/2];

			var clientRectangle = presentationImage.ClientRectangle;
			if (clientRectangle.IsEmpty) clientRectangle = new Rectangle(new Point(), presentationImage.SceneSize);

			if (selectionStrategy == null)
			{
				if (displaySet.PresentationImages.Count == 1)
				{
					// Add as a single image.
					return CreatePresentationImageItem(displaySet.PresentationImages[0]);
				}
				else
				{
					return CreateDisplaySetItem(displaySet.Clone(), clientRectangle);
				}
			}
			else
			{
				List<IPresentationImage> images = new List<IPresentationImage>(selectionStrategy.GetImages(displaySet));
				if (images.Count == 1)
				{
					// Add as a single image.
					return CreatePresentationImageItem(images[0]);
				}
				else
				{
					string name = String.Format("{0} - {1}", selectionStrategy.Description, displaySet.Name);
					displaySet = new DisplaySet(name, displaySet.Uid) {Description = displaySet.Description, Number = displaySet.Number};
					images.ForEach(image => displaySet.PresentationImages.Add(image.Clone()));
					return CreateDisplaySetItem(displaySet, clientRectangle);
				}
			}
		}
Esempio n. 9
0
		/// <summary>
		/// Adds an <see cref="IDisplaySet"/> to the clipboard.
		/// </summary>
		/// <param name="displaySet"></param>
		/// <param name="selectionStrategy"></param>
		/// <remarks>
		/// When called, a copy of the specified <see cref="IPresentationImage"/>s
		/// (as determined by the <paramref name="selectionStrategy"/>) is made and stored
		/// in the clipbaord.  This ensures that the <see cref="IPresentationImage"/> is in fact a
		/// snapshot and not a reference that could be changed in unpredictable ways.
		/// Pixel data, however, is not replicated.
		/// </remarks>
		public static void Add(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy)
		{
			Platform.CheckForNullReference(displaySet, "displaySet");
			Platform.CheckForNullReference(selectionStrategy, "selectionStrategy");

			var clipboard = Default;
			clipboard._items.Add(clipboard.CreateDisplaySetItem(displaySet, selectionStrategy));
		}
		public override ClipboardItem CreateDisplaySetItem(IDisplaySet displaySet, IImageSelectionStrategy selectionStrategy = null)
		{
			throw new InvalidOperationException("Display set items are not supported by Key Images");
		}