private bool ConditionEdit(ListViewItemCondition listViewItem)
        {
            FormCondition form = new FormCondition();

            form.Xml = listViewItem.Xml.CloneNode(true) as XmlElement;

            if (form.ShowDialog() == DialogResult.OK)
            {
                listViewItem.Xml = form.Xml;

                listViewItem.Update();

                EnabledUI();

                return true;
            }

            return false;
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            Text = Utils.GetWindowTitle("Rule");

            cboLayer.Items.Add(Lang.GetText("layer","all"));
            cboLayer.Items.Add(Lang.GetText("layer", "ipv4"));
            cboLayer.Items.Add(Lang.GetText("layer", "ipv6"));
            cboLayer.Items.Add(Lang.GetText("layer", "ale_auth_recv_accept_v4"));
            cboLayer.Items.Add(Lang.GetText("layer", "ale_auth_recv_accept_v6"));
            cboLayer.Items.Add(Lang.GetText("layer", "ale_auth_connect_v4"));
            cboLayer.Items.Add(Lang.GetText("layer", "ale_auth_connect_v6"));
            cboLayer.Items.Add(Lang.GetText("layer", "ale_flow_established_v4"));
            cboLayer.Items.Add(Lang.GetText("layer", "ale_flow_established_v6"));

            cboAction.Items.Add(Lang.GetText("action","block"));
            cboAction.Items.Add(Lang.GetText("action","permit"));

            cboWeight.Items.Clear();
            cboWeight.Items.Add(Lang.GetText("weight", "auto"));
            cboWeight.Items.Add(Lang.GetText("weight", "max"));
            cboWeight.Items.Add(Lang.GetText("weight", "1"));
            cboWeight.Items.Add(Lang.GetText("weight", "2"));
            cboWeight.Items.Add(Lang.GetText("weight", "3"));
            cboWeight.Items.Add(Lang.GetText("weight", "4"));
            cboWeight.Items.Add(Lang.GetText("weight", "5"));

            txtName.Text = Xml.GetAttribute("name");
            chkEnabled.Checked = (Xml.GetAttribute("enabled") == "true");
            cboLayer.Text = Lang.GetText("layer", Xml.GetAttribute("layer"));
            cboAction.Text = Lang.GetText("action", Xml.GetAttribute("action"));
            cboWeight.Text = Lang.GetText("weight", Xml.GetAttribute("weight"));

            foreach(XmlElement xmlCondition in Xml.SelectNodes("//if"))
            {
                ListViewItemCondition listItem = new ListViewItemCondition();
                listItem.Xml = xmlCondition;
                listItem.Update();
                lstConditions.Items.Add(listItem);
            }

            EnabledUI();
        }
        private void cmdConditionAdd_Click(object sender, EventArgs e)
        {
            ListViewItemCondition listViewItem = new ListViewItemCondition();
            listViewItem.Xml = new XmlDocument().CreateElement("if");
            listViewItem.Xml.SetAttribute("field", "ip_remote_address");
            listViewItem.Xml.SetAttribute("match", "equal");

            if (ConditionEdit(listViewItem) == true)
                lstConditions.Items.Add(listViewItem);

            EnabledUI();
        }