Exemplo n.º 1
0
        private async void tsbRefresh_Click(object sender, EventArgs e)
        {
            this.tsbRefresh.Enabled = false;
            this.tsbShare.Enabled   = false;
            Control.SeafileDirTreeView.DataTreeViewNode node = tvDir.SelectedNode as Control.SeafileDirTreeView.DataTreeViewNode;
            if (node != null)
            {
                this.UseWaitCursor = true;
                try
                {
                    //删除已有treenode及其子节点
                    var list = this.seafiledirData.SeafileDataTable.AsEnumerable().Where(
                        r => r.ID.StartsWith(string.Format("{0}-", node.ID)
                                             )).OrderByDescending(r => r.ID).ToList();

                    foreach (var row in list)
                    {
                        this.seafiledirData.SeafileDataTable.RemoveSeafileDataTableRow(row);
                    }
                    ;


                    //重新获取
                    var temp = await session.ListDirectory(node.LibraryID.ToString(), node.Path.ToString());

                    if (temp != null)
                    {
                        for (int i = 0; i < temp.Count; i++)
                        {
                            DirType type;
                            if (temp[i].Type == DirEntryType.Dir)
                            {
                                type = DirType.Dir;
                            }
                            else
                            {
                                type = DirType.File;
                            }



                            this.seafiledirData.SeafileDataTable.AddSeafileDataTableRow(string.Format("{0}-{1}", node.ID, (i + 1).ToString()), temp[i].Name, node.ID.ToString(), temp[i].LibraryId, ((int)(type)).ToString(), temp[i].Path);
                        }
                        node.Expand();
                    }
                }
                catch (Exception ex)
                {
                    log.Error(ex.Message);
                    MessageBox.Show(ex.Message, Properties.Resources.MessageBoxErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                    this.UseWaitCursor = false;
                }
            }
            this.tsbRefresh.Enabled = true;
            this.tsbShare.Enabled   = true;
        }
Exemplo n.º 2
0
        private async void tvDir_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.tsbRefresh.Enabled = false;
            this.tsbShare.Enabled   = false;
            Control.SeafileDirTreeView.DataTreeViewNode node = tvDir.SelectedNode as Control.SeafileDirTreeView.DataTreeViewNode;
            if (node != null)
            {
                var nodetype = node.Type.ToString();
                //判断结点类型
                if (nodetype == "0" || nodetype == "1")
                {
                    if ((node.Nodes == null) || (node.Nodes.Count == 0))
                    {
                        this.UseWaitCursor = true;
                        try
                        {
                            var temp = await session.ListDirectory(node.LibraryID.ToString(), node.Path.ToString());

                            if (temp != null)
                            {
                                for (int i = 0; i < temp.Count; i++)
                                {
                                    DirType type;
                                    if (temp[i].Type == DirEntryType.Dir)
                                    {
                                        type = DirType.Dir;
                                    }
                                    else
                                    {
                                        type = DirType.File;
                                    }

                                    this.seafiledirData.SeafileDataTable.AddSeafileDataTableRow(string.Format("{0}-{1}", node.ID, (i + 1).ToString()), temp[i].Name, node.ID.ToString(), temp[i].LibraryId, ((int)(type)).ToString(), temp[i].Path);
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error(ex.Message);
                            MessageBox.Show(ex.Message, Properties.Resources.MessageBoxErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        finally
                        {
                            this.UseWaitCursor = false;
                        }
                        node.Expand();
                    }
                }
            }

            this.tsbRefresh.Enabled = true;
            this.tsbShare.Enabled   = true;
        }
Exemplo n.º 3
0
        private void tsbShare_Click(object sender, EventArgs e)
        {
            log.Info("Share link button click.");
            Control.SeafileDirTreeView.DataTreeViewNode node = tvDir.SelectedNode as Control.SeafileDirTreeView.DataTreeViewNode;
            if (node != null)
            {
                WindowWrapper            objActiveWindow = new WindowWrapper(Globals.ThisAddIn.Application.ActiveWindow());
                UI.GenerateShareLinkForm frmBox          = new UI.GenerateShareLinkForm(session, node.LibraryID.ToString(), node.Path.ToString());
                frmBox.ShowDialog(objActiveWindow);

                if (frmBox.DialogResult == DialogResult.OK)
                {
                    this.DialogResult = System.Windows.Forms.DialogResult.OK;
                    ShareLink         = frmBox.ShareLink;
                    this.Close();
                }
            }
        }