Esempio n. 1
0
            /// <summary>
            /// Recurses the Q Set, getting queue information
            /// </summary>
            /// <param name="parentItem"></param>
            /// <param name="subscribeToEvents"></param>
            private void RecurseQSet(QSetFolderItem parentItem, bool subscribeToEvents)
            {
                //subscribe to folders events if necessary
                if (subscribeToEvents)
                {
                    parentItem.ChildItems.AfterItemAdded    += new AfterItemAddedEvent(ChildItems_AfterItemAdded);
                    parentItem.ChildItems.BeforeItemRemoved += new BeforeItemRemovedEvent(ChildItems_BeforeItemRemoved);
                }

                //query all children of the parent
                foreach (QSetItemBase item in parentItem.ChildItems)
                {
                    if (_isStopRequested)
                    {
                        break;
                    }

                    //monitor the queue, or query the folders children
                    if (item is QSetQueueItem)
                    {
                        CountQueueMessages(((QSetQueueItem)item));
                    }
                    else if (item is QSetFolderItem)
                    {
                        RecurseQSet((QSetFolderItem)item, subscribeToEvents);
                    }
                }
            }
Esempio n. 2
0
 private void recipientsButton_Click(object sender, System.EventArgs e)
 {
     if (QueueSearchForm == null)
     {
         QueueSearchForm                    = new QueueSearchForm();
         QueueSearchForm.ImageList          = recipientsListView.SmallImageList;
         QueueSearchForm.AllowMachineSelect = true;
         QueueSearchForm.QueueImageIndex    = (int)Images.IconType.Queue;
         QueueSearchForm.ComputerImageIndex = (int)Images.IconType.Server;
     }
     if (QueueSearchForm.ShowDialog() == DialogResult.OK)
     {
         foreach (QSetItemBase item in QueueSearchForm.SelectedItems)
         {
             QSetFolderItem machineItem = item as QSetFolderItem;
             if (machineItem != null)
             {
                 foreach (QSetQueueItem childQueue in machineItem.ChildItems)
                 {
                     AddQueueItemToRecipientsList(childQueue);
                 }
             }
             else
             {
                 AddQueueItemToRecipientsList((QSetQueueItem)item);
             }
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Adds the currently active queue to the Q Set.
        /// </summary>
        public void AddActiveQueueToQSet()
        {
            if (_primaryControls.GetQSetExplorerSet() != null)
            {
                if (_primaryControls.GetQSetExplorerActiveItem() == null)
                {
                    _primaryControls.SetQSetExplorerActiveItem(_primaryControls.GetQSetExplorerSet());
                }

                if (_primaryControls.HasActiveDocument)
                {
                    MessageBrowser messageBrowser = _primaryControls.GetActiveMessageBrowser();
                    if (messageBrowser != null)
                    {
                        QSetFolderItem folderItem = _primaryControls.GetQSetExplorerActiveItem() as QSetFolderItem;
                        if (folderItem != null)
                        {
                            if (!folderItem.ChildItems.Exists(messageBrowser.QSetQueueItem.Name))
                            {
                                folderItem.ChildItems.Add(messageBrowser.QSetQueueItem);
                            }
                        }
                        else
                        {
                            MessageBox.Show(_primaryForms.EnvironmentForm, "Cannot add the queue at this point.  Select a valid folder, or the top level Queue Set to add the queue.", Locale.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            }
        }
Esempio n. 4
0
            private void ChildItems_AfterItemAdded(object sender, AfterItemAddedEventArgs e)
            {
                QSetFolderItem folderItem = e.Item as QSetFolderItem;

                if (folderItem != null)
                {
                    folderItem.ChildItems.AfterItemAdded    += new AfterItemAddedEvent(ChildItems_AfterItemAdded);
                    folderItem.ChildItems.BeforeItemRemoved += new BeforeItemRemovedEvent(ChildItems_BeforeItemRemoved);
                }
            }
Esempio n. 5
0
        /// <summary>
        /// Recursively populates the tree view with all child items of a folder item.
        /// </summary>
        /// <param name="parentItem">Parent folder item.</param>
        /// <param name="parentNode">Parent node.</param>
        private void DisplayQSetChildItems(QSetFolderItem parentFolderItem, TreeNode parentNode)
        {
            foreach (QSetItemBase item in parentFolderItem.ChildItems)
            {
                QSetItemTreeNode itemNode = new QSetItemTreeNode(item);
                parentNode.Nodes.Add((TreeNode)itemNode);

                if (item is QSetFolderItem)
                {
                    DisplayQSetChildItems((QSetFolderItem)item, itemNode);
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Recursively adds child nodes to a node.
        /// </summary>
        /// <param name="parentItem">Parent folder item.</param>
        /// <param name="parentNode">Parent node.</param>
        public void CreateChildNodes(QSetFolderItem parentFolderItem, TreeNode parentNode)
        {
            foreach (QSetItemBase item in parentFolderItem.ChildItems)
            {
                QSetItemTreeNode itemNode = new QSetItemTreeNode(item);
                parentNode.Nodes.Add((TreeNode)itemNode);

                if (item is QSetFolderItem)
                {
                    CreateChildNodes((QSetFolderItem)item, itemNode);
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Adds a new folder to the Q Set.
        /// </summary>
        public void AddNewFolderToQSet()
        {
            if (_primaryControls.GetQSetExplorerActiveItem() != null)
            {
                QSetFolderItem folderItem = _primaryControls.GetQSetExplorerActiveItem() as QSetFolderItem;
                if (folderItem != null)
                {
                    QSetFolderItem newFolderItem = new QSetFolderItem(GetNextAvailableNewItemName("New Folder", folderItem.ChildItems));
                    folderItem.ChildItems.Add(newFolderItem);

                    _primaryControls.QSetExplorerEditActiveItem();
                }
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Constructs the object a QSetItemBase object.
        /// </summary>
        /// <param name="queueSetItem">QSetItemBase object on which the tree node is based.</param>
        public QSetItemTreeNode(QSetItemBase queueSetItem) : base()
        {
            this.ImageIndex         = (int)queueSetItem.Icon;
            this.SelectedImageIndex = (int)queueSetItem.OpenIcon;
            this.Text = queueSetItem.Name;

            _queueSetItem = queueSetItem;
            QSetFolderItem folderItem = _queueSetItem as QSetFolderItem;

            if (folderItem != null)
            {
                folderItem.ChildItems.ItemAdded   += new Mulholland.Applications.QSet.QSetItemCollection.ItemAddedEvent(ChildItems_ItemAdded);
                folderItem.ChildItems.ItemRemoved += new Mulholland.Applications.QSet.QSetItemCollection.ItemRemovedEvent(ChildItems_ItemRemoved);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Constructs the object a QSetItemBase object.
        /// </summary>
        /// <param name="queueSetItem">QSetItemBase object on which the tree node is based.</param>
        public QSetItemTreeNode(QSetItemBase queueSetItem) : base()
        {
            this.ImageIndex         = (int)queueSetItem.Icon;
            this.SelectedImageIndex = (int)queueSetItem.Icon;
            this.Text = queueSetItem.Name;

            _queueSetItem = queueSetItem;
            QSetFolderItem folderItem = _queueSetItem as QSetFolderItem;

            if (folderItem != null)
            {
                _afterItemAddedEventDelegate    = new AfterItemAddedEvent(ChildItems_AfterItemAdded);
                _beforeItemRemovedEventDelegate = new BeforeItemRemovedEvent(ChildItems_BeforeItemRemoved);
                _itemRepositionedEventDelegate  = new ItemRepositionedEvent(ChildItems_ItemRepositioned);

                folderItem.ChildItems.AfterItemAdded    += _afterItemAddedEventDelegate;
                folderItem.ChildItems.BeforeItemRemoved += _beforeItemRemovedEventDelegate;
                folderItem.ChildItems.ItemRepositioned  += _itemRepositionedEventDelegate;
            }

            _queueSetItem.ItemRenamed += new ItemRenamedEvent(_queueSetItem_ItemRenamed);
        }
Esempio n. 10
0
        /// <summary>
        /// Opens a machine and all of its queues, adding to the active Q Set if possible.
        /// </summary>
        /// <param name="machineName">Name of machine.</param>
        /// <param name="messageQueues">Array of message queues belonging to the machine.</param>
        public void OpenMachine(string machineName, MessageQueue[] messageQueues)
        {
            if (_primaryControls.GetQSetExplorerSet() != null)
            {
                //ensure we have a folder item to add to
                if (_primaryControls.GetQSetExplorerActiveItem() == null)
                {
                    _primaryControls.SetQSetExplorerActiveItem(_primaryControls.GetQSetExplorerSet());
                }
                if (!(_primaryControls.GetQSetExplorerActiveItem() is QSetFolderItem))
                {
                    _primaryControls.MoveQSetExplorerActiveItemToParent();
                }

                //check the item does not already exist
                QSetFolderItem parentItem = (QSetFolderItem)_primaryControls.GetQSetExplorerActiveItem();
                if (!parentItem.ChildItems.Exists(machineName))
                {
                    QSetMachineItem newMachineItem = new QSetMachineItem(machineName);
                    foreach (MessageQueue queue in messageQueues)
                    {
                        newMachineItem.ChildItems.Add(new QSetQueueItem(string.Format(@"{0}\{1}", queue.MachineName, queue.QueueName))); //reformat as private queues can come out with extra data in name)
                    }
                    parentItem.ChildItems.Add(newMachineItem);
                }
                else
                {
                    MessageBox.Show(Locale.UserMessages.CannotAddItemAsAlreadyExists, Locale.ApplicationName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                foreach (MessageQueue queue in messageQueues)
                {
                    OpenQueue(new QSetQueueItem(string.Format(@"{0}\{1}", queue.MachineName, queue.QueueName))); //reformat as private queues can come out with extra data in name)
                }
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Adds a new web service client to the Q Set.
        /// </summary>
        public void AddNewWebServiceClient()
        {
            //ensure the q set is selected at a valid position
            if (_primaryControls.GetQSetExplorerSet() == null)
            {
                _taskManager.CreateNewQSet();
            }
            if (_primaryControls.GetQSetExplorerActiveItem() == null ||
                !(_primaryControls.GetQSetExplorerActiveItem() is QSetFolderItem) ||
                _primaryControls.GetQSetExplorerActiveItem() is QSetMachineItem)
            {
                _primaryControls.SetQSetExplorerActiveItem(_primaryControls.GetQSetExplorerSet());
            }

            QSetFolderItem parentItem = _primaryControls.GetQSetExplorerActiveItem() as QSetFolderItem;

            if (parentItem != null)
            {
                QSetWebServiceItem webServiceItem = new QSetWebServiceItem(_taskManager.GetNextAvailableNewItemName("New Web Service Client", parentItem.ChildItems));
                parentItem.ChildItems.Add(webServiceItem);
                LoadNewWebServiceClientControl(webServiceItem);
            }
        }
Esempio n. 12
0
 /// <summary>
 /// Handles the disposing of the node, unnattaching any event handlers.
 /// </summary>
 /// <param name="disposing">Set to true if being disposed from IDispose interface.</param>
 private void Dispose(bool disposing)
 {
     //detach event handlers if required
     if (!_disposed)
     {
         QSetFolderItem folderItem = _queueSetItem as QSetFolderItem;
         if (folderItem != null)
         {
             if (_afterItemAddedEventDelegate != null)
             {
                 folderItem.ChildItems.AfterItemAdded -= _afterItemAddedEventDelegate;
             }
             if (_beforeItemRemovedEventDelegate != null)
             {
                 folderItem.ChildItems.BeforeItemRemoved -= _beforeItemRemovedEventDelegate;
             }
             if (_itemRepositionedEventDelegate != null)
             {
                 folderItem.ChildItems.ItemRepositioned -= _itemRepositionedEventDelegate;
             }
         }
     }
     _disposed = true;
 }
Esempio n. 13
0
        /// <summary>
        /// Handles the drag drop.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _qsetTreeView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
        {
            //get the item which was dragged on to
            QSetItemBase dragOverItem =
                _qsetTreeView.GetNodeAt(_qsetTreeView.PointToClient(new Point(e.X, e.Y))) == null ? null : ((QSetItemTreeNode)_qsetTreeView.GetNodeAt(_qsetTreeView.PointToClient(new Point(e.X, e.Y)))).QSetItem;

            //was a Q Set item dragged?
            QSetItemBase droppedItem = QSetItemBase.GetFromDataObject(e.Data);

            if (droppedItem != null)
            {
                //handle Q Set item drag
                QSetFolderItem dragOverFolder = dragOverItem as QSetFolderItem;
                if (dragOverFolder != null && droppedItem.ParentItem != dragOverFolder)
                {
                    if (!dragOverFolder.ChildItems.Exists(droppedItem.Name))
                    {
                        ((QSetFolderItem)droppedItem.ParentItem).ChildItems.Remove(droppedItem.Name);
                        dragOverFolder.ChildItems.Add(droppedItem);
                    }
                    else
                    {
                        MessageBox.Show(Locale.UserMessages.CannotAddItemAsAlreadyExists, System.Windows.Forms.Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                //is this a message(s) drag?
                MessageDragContainer messageDragContainer = (MessageDragContainer)e.Data.GetData(typeof(MessageDragContainer));
                if (messageDragContainer != null)
                {
                    OnMessagesDragDrop(new MessagesDragDropEventArgs(messageDragContainer.OwnerQueueItem, (QSetQueueItem)dragOverItem, messageDragContainer.Messages));
                }
            }
        }
Esempio n. 14
0
        /// <summary>
        /// Handles the ok click of the queue search results.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void QueueSearchForm_OKClicked(object sender, QueueSearchForm.OKClickedEventArgs e)
        {
            if (base.PrimaryControls.GetQSetExplorerSet() == null)
            {
                base.TaskManager.CreateNewQSet();
            }

            if (base.PrimaryControls.GetQSetExplorerActiveItem() == null ||
                !(base.PrimaryControls.GetQSetExplorerActiveItem() is QSetFolderItem) ||
                base.PrimaryControls.GetQSetExplorerActiveItem() is QSetMachineItem)
            {
                base.PrimaryControls.SetQSetExplorerActiveItem(base.PrimaryControls.GetQSetExplorerSet());
            }

            QSetFolderItem parentItem = (QSetFolderItem)base.PrimaryControls.GetQSetExplorerActiveItem();

            foreach (QSetItemBase item in e.SelectedItems)
            {
                if (!parentItem.ChildItems.Exists(item.Name))
                {
                    parentItem.ChildItems.Add(item);
                }
            }
        }
Esempio n. 15
0
            /// <summary>
            /// Given a QSetItemBase, marks the corresponding QueueItemListViewItemPair for deletion,
            /// and repeats for any children of the QSetItemBase object.
            /// </summary>
            /// <param name="item">QSetItemBase to delete.</param>
            private void RecursivelyMarkListItemsForDeletion(QSetItemBase item)
            {
                //if we have a queue, remove it
                QSetQueueItem queueItem = item as QSetQueueItem;

                if (queueItem != null)
                {
                    if (_itemPairHashTable.ContainsKey(queueItem.ID))
                    {
                        _deleteItemPairQueue.Enqueue(_itemPairHashTable[queueItem.ID]);
                    }
                }

                //if we have a folder, check children
                QSetFolderItem folderItem = item as QSetFolderItem;

                if (folderItem != null)
                {
                    foreach (QSetItemBase childItem in folderItem.ChildItems)
                    {
                        RecursivelyMarkListItemsForDeletion(childItem);
                    }
                }
            }
Esempio n. 16
0
		/// <summary>
		/// Recursively populates the tree view with all child items of a folder item.
		/// </summary>
		/// <param name="parentItem">Parent folder item.</param>
		/// <param name="parentNode">Parent node.</param>
		private void DisplayQSetChildItems(QSetFolderItem parentFolderItem, TreeNode parentNode)
		{
			foreach (QSetItemBase item in parentFolderItem.ChildItems)
			{
				QSetItemTreeNode itemNode = new QSetItemTreeNode(item);
				parentNode.Nodes.Add((TreeNode)itemNode);

				if (item is QSetFolderItem)
					DisplayQSetChildItems((QSetFolderItem)item, itemNode);
			}
		}