Ejemplo n.º 1
0
 /// <summary>
 /// Agrega una lista de archivos de un usuario de la red a la ventana
 /// </summary>
 /// <param name="netUser">El usuario dueño de la lista de archivo</param>
 /// <param name="fileList">La lista de archivos</param>
 public void addFileList(NetUser netUser, FileInformationList fileList)
 {
     if (treeView.InvokeRequired)
     {
         NetUserFilesCallback d = new NetUserFilesCallback(addFileList);
         this.Invoke(d, new object[] { netUser, fileList });
     }
     else
     {
         removeFileList(netUser);
         FileInformation[] fileListArray = fileList.toArray();
         lock (thisLock)
         {
             foreach (FileInformation file in fileListArray)
             {
                 TreeNode fileNode = new TreeNode(file.Name + " (" + (file.Size / 1024) + " KB) " + " [" + netUser.Name + "]");
                 fileNode.ImageIndex         = 0;
                 fileNode.SelectedImageIndex = 0;
                 NetUserFile netUserFile = new NetUserFile();
                 netUserFile.NetUser         = netUser;
                 netUserFile.FileInformation = file;
                 fileNode.Tag = netUserFile;
                 assignMenuStrip(ref fileNode, netUserFile);
                 treeView.Nodes.Add(fileNode);
             }
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Se gatilla cuando el usuario hace clic sobre un menu con opción de descarga
        /// </summary>
        /// <param name="sender">El sender</param>
        /// <param name="e">Los argumentos de evento</param>
        private void toolStripEvent(object sender, EventArgs e)
        {
            ToolStripMenuItem toolStripMenuItem = (ToolStripMenuItem)sender;
            NetUserFile       netUserFile       = (NetUserFile)toolStripMenuItem.Tag;

            if (netUserFile != null)
            {
                FileTransferProtocol.sendFileRequest(netUserFile.NetUser, netUserFile.FileInformation);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Asigna un menú con opción de descarga a un nodos del arbol de archivos
        /// </summary>
        /// <param name="treeNode">El nodo del árbol de archivos</param>
        /// <param name="netUserFile">El archivo asociado a un usuario de red</param>
        private void assignMenuStrip(ref TreeNode treeNode, NetUserFile netUserFile)
        {
            ContextMenuStrip  contextMenucontextMenu = new ContextMenuStrip();
            ToolStripMenuItem toolStripMenuItem      = new ToolStripMenuItem();

            toolStripMenuItem.Text   = "Download";
            toolStripMenuItem.Click += toolStripEvent;
            toolStripMenuItem.Tag    = netUserFile;
            contextMenucontextMenu.Items.Add(toolStripMenuItem);
            treeNode.ContextMenuStrip = contextMenucontextMenu;
        }
        /// <summary>
        /// Acción para el evento de clic sobre el menu de cada nodo
        /// </summary>
        /// <param name="sender">El sender</param>
        /// <param name="e">Los parametros del evento</param>
        private void menuItem_Click(object sender, EventArgs e)
        {
            TreeNode node = treeView.SelectedNode;

            if (node != null)
            {
                try
                {
                    NetUserFile netUserFile = (NetUserFile)node.Tag;
                    FileTransferProtocol.sendFileRequest(netUserFile.NetUser, netUserFile.FileInformation);
                }
                catch (ThreadAbortException ex)
                {
                    throw ex;
                }
                catch (Exception)
                {
                }
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Elimina la lista de archivos de un usuario de la red de la ventana
 /// </summary>
 /// <param name="netUser">El usuario de la red</param>
 public void removeFileList(NetUser netUser)
 {
     if (treeView.InvokeRequired)
     {
         NetUserCallback d = new NetUserCallback(removeFileList);
         this.Invoke(d, new object[] { netUser });
     }
     else
     {
         lock (thisLock)
         {
             for (int i = treeView.Nodes.Count - 1; i >= 0; i--)
             {
                 TreeNode    node        = treeView.Nodes[i];
                 NetUserFile netUserFile = (NetUserFile)node.Tag;
                 if (netUserFile.NetUser.Name.Equals(netUser.Name))
                 {
                     treeView.Nodes.RemoveAt(i);
                 }
             }
         }
     }
 }