예제 #1
0
        public ConfigMenuPanel()
        {
            this.Orientation = Orientation.Vertical;

            button = new ConfigMenuButton();
            this.Children.Add(button);

            detailView = new ConfigMenuTreeView();
            this.Children.Add(detailView);

            AddConfigWorkGroupCommand = new RelayCommand(AddConfigWorkGroup);
            this.ContextMenu          = new ContextMenu();
            MenuItem item;

            item         = new MenuItem();
            item.Command = AddConfigWorkGroupCommand;
            item.Header  = "Add Config Work Group";
            item.Icon    = new PackIconMaterial()
            {
                Kind = PackIconMaterialKind.FolderPlus,
                VerticalAlignment   = VerticalAlignment.Center,
                HorizontalAlignment = HorizontalAlignment.Center
            };
            this.ContextMenu.Items.Add(item);
            this.Background = Brushes.White;
        }
예제 #2
0
        public ConfigMenu()
        {
            InitializeComponent();
            try
            {
                configgrid = new ConfigMenuRootPanel();
                grid.Children.Add(configgrid);

                btnFileConfig = new ConfigMenuButton(configgrid, null, "File Config");
                configgrid.Children.Add(btnFileConfig);
                configgrid.SubPanel.Children.Add(btnFileConfig.child);

                btnSamConfig = new ConfigMenuButton(configgrid, null, "Sam Config");
                configgrid.Children.Add(btnSamConfig);
                configgrid.SubPanel.Children.Add(btnSamConfig.child);

                btnTailConfig = new ConfigMenuButton(configgrid, null, "Tail Config");
                configgrid.Children.Add(btnTailConfig);
                configgrid.SubPanel.Children.Add(btnTailConfig.child);

                Refresh();
            }
            catch (Exception e)
            {
                Log.PrintError(e.Message, "UserControls.ConfigMenu");
            }
            if (configgrid?.btn_group != null && configgrid.btn_group.Count > 0)
            {
                configgrid.btn_group[0].IsChecked = true;
            }
        }
예제 #3
0
        public ConfigPanel ConvertFromJson(JObject jobj_root)
        {
            if (jobj_root == null)
            {
                return(null);
            }

            servergrid = new ConfigPanel();
            try
            {
                foreach (var v in jobj_root.Properties())
                {
                    JObject jobj_config_root = v.Value as JObject;
                    if (jobj_config_root == null)
                    {
                        continue;
                    }

                    ConfigMenuButton smbtn = new ConfigMenuButton(servergrid, jobj_config_root, v.Name);
                    servergrid.Children.Add(smbtn);
                    servergrid.SubPanel.Children.Add(smbtn.child);

                    JObject jobj_work_group_root = jobj_config_root.GetValue("work_group") as JObject;
                    if (jobj_work_group_root == null)
                    {
                        continue;
                    }

                    foreach (var work in jobj_work_group_root.Properties())
                    {
                        JObject jobj_server_menu = work.Value as JObject;
                        if (jobj_server_menu == null)
                        {
                            continue;
                        }

                        ConfigInfoPanel ui_config_group = new ConfigInfoPanel(smbtn, jobj_config_root, work.Name);
                        ui_config_group.IsExpanded = true;
                        smbtn.child.Items.Add(ui_config_group);

                        JArray jarr_processes = jobj_server_menu.GetValue("processes") as JArray;
                        if (jarr_processes == null)
                        {
                            continue;
                        }
                        int i = 0;
                        foreach (var jprop_server_info in jarr_processes)
                        {
                            JObject jobj_process_info = jprop_server_info as JObject;
                            if (jobj_process_info == null)
                            {
                                continue;
                            }
                            string dir       = null;
                            string daemon_yn = null;
                            if (jobj_config_root.GetValue("type").ToString() == "file")
                            {
                                dir = (jobj_process_info.GetValue("enc_option") as JObject)?.GetValue("input_dir")?.ToString();
                            }
                            else
                            {
                                dir = (jobj_process_info.GetValue("comm_option") as JObject)?.GetValue("input_dir")?.ToString();
                            }
                            ui_config_group.Items.Add(new ConfigInfoPanel(smbtn, jobj_config_root, work.Name, i.ToString(), dir));

                            string daemon_keyword = "dir_monitoring_yn";
                            if (jobj_config_root.GetValue("type").ToString() == "tail")
                            {
                                daemon_keyword = "daemon_yn";
                            }

                            JToken jcur = jobj_process_info;
                            while (jcur != null &&
                                   daemon_yn == null)
                            {
                                daemon_yn = (jcur["comm_option"] as JObject)?.GetValue(daemon_keyword)?.ToString();
                                jcur      = jcur.Parent;
                                while (jcur != null &&
                                       jcur as JObject == null)
                                {
                                    jcur = jcur.Parent;
                                }
                            }

                            if (daemon_yn == "True")
                            {
                                LinuxTreeViewItem.ChangeColor(root, dir, jobj_config_root["type"] + "-" + work.Name + "-" + i);
                            }
                            i++;
                        }
                    }
                }
                return(servergrid);
            }
            catch (Exception e)
            {
                Log.PrintError(e.Message, "UserControls.ServerInfo.ConvertFromJson");
            }
            return(null);
        }