private void btnDelQuery_Click(object sender, EventArgs e)
        {
            TicketNode node = treeTrac.SelectedNode as TicketNode;

            node.ServerDetails.TicketQueries.Remove(node.TicketDefinition);
            CommonRoot.SaveInstance();
            node.Remove();
        }
            public override void Refresh()
            {
                List <TicketQueryDefinition> ticketQueries = ServerDetails.TicketQueries;

                this.Nodes.Clear();
                foreach (TicketQueryDefinition ticketQuery in ticketQueries)
                {
                    TicketNode node = new TicketNode(ServerDetails, ticketQuery);
                    this.Nodes.Add(node);
                }
            }
 private void TicketDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
 {
     try
     {
         TicketNode ticketNode = e.Node as TicketNode;
         TracConnect.CreateTicketWindow(ticketNode.ServerDetails, ticketNode.TicketDefinition, null);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private void mnuQueryEdit_Click(object sender, EventArgs e)
        {
            TicketNode node = treeTrac.SelectedNode as TicketNode;

            AddNewTicketQueryForm form = new AddNewTicketQueryForm(this._tracConnect, node.TicketDefinition);

            if (form.ShowDialog() == DialogResult.OK)
            {
                CommonRoot.SaveInstance();

                node.Refresh();
            }
        }
        private void treeTrac_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            btnDelTracServer.Enabled = (e.Node is ServerNode);

            if (e.Button == MouseButtons.Right)
            {
                treeTrac.SelectedNode = e.Node;

                if (e.Node is ServerNode)
                {
                    ctmServer.Show(treeTrac, e.X, e.Y);
                    return;
                }

                if (e.Node is TicketsNode)
                {
                    ctmTickets.Show(treeTrac, e.X, e.Y);
                    return;
                }

                if (e.Node is TicketNode)
                {
                    ctmTicket.Show(treeTrac, e.X, e.Y);
                    return;
                }
            }
            else if (e.Button == MouseButtons.Left)
            {
                if (e.Node is TicketNode)
                {
                    TicketNode ticketNode = e.Node as TicketNode;
                    if (TicketQueryClick != null)
                    {
                        TicketQueryClick(this, new TicketQueryArgs(ticketNode.ServerDetails, ticketNode.TicketDefinition));
                    }
                    return;
                }
            }
        }
            public override void Refresh()
            {
                List<TicketQueryDefinition> ticketQueries = ServerDetails.TicketQueries;

                this.Nodes.Clear();
                foreach (TicketQueryDefinition ticketQuery in ticketQueries)
                {
                    TicketNode node = new TicketNode(ServerDetails, ticketQuery);
                    this.Nodes.Add(node);
                }
            }
        private void btnQueryOpen_Click(object sender, EventArgs e)
        {
            TicketNode node = treeTrac.SelectedNode as TicketNode;

            TracConnect.CreateTicketWindow(node.ServerDetails, node.TicketDefinition, null);
        }