private void cmbProgram_SelectionChanged(object sender, SelectionChangedEventArgs e) { ContentControl program = (cmbProgram.SelectedItem as ContentControl); if (program == null) { return; } ProgramID id = (program.Tag as ProgramID); txtPath.Text = id.Path; switch (id.Type) { case ProgramID.Types.Service: txtService.Text = id.GetServiceName() + " (" + id.GetServiceId() + ")"; break; case ProgramID.Types.App: txtApp.Text = id.GetPackageName(); break; } txtService.IsEnabled = id.Type == ProgramID.Types.Service; txtApp.IsEnabled = id.Type == ProgramID.Types.App; }
private void LoadCurrent(bool bUpdate = false) { if (!bUpdate) { ProgramSet.Config.AccessLevels NetAccess = ProgramSet.Config.AccessLevels.Unconfigured; cmbAccess.Background = ProgramControl.GetAccessColor(NetAccess); WpfFunc.CmbSelect(cmbAccess, NetAccess.ToString()); } btnApply.IsEnabled = false; ProgramID id = mEventList.ElementAt(curIndex); Tuple <Program, List <Engine.FwEventArgs> > list = mEvents[id]; //int PID = list.Item2.Count > 0 ? list.Item2.First().FwEvent.ProcessId : 0; string FilePath = list.Item2.Count > 0 ? list.Item2.First().entry.FwEvent.ProcessFileName : ""; imgIcon.Source = ImgFunc.GetIcon(FilePath, imgIcon.Width); // todo: use .progSet.GetIcon instead? //lblName.Text = id.GetDisplayName(false); grpBox.Header = list.Item1.Description; //lblPID.Text = string.Format("{0} ({1})", System.IO.Path.GetFileName(id.Path), PID); lblPID.Text = System.IO.Path.GetFileName(id.Path); List <string> services = new List <string>(); consGrid.Items.Clear(); foreach (Engine.FwEventArgs args in list.Item2) { consGrid.Items.Insert(0, new ConEntry(args.entry)); if (args.services != null) { foreach (var service in args.services) { if (!services.Contains(service)) { services.Add(service); } } } } if (services.Count > 0) { cmbService.Visibility = Visibility.Visible; cmbService.Items.Clear(); foreach (var service in services) { cmbService.Items.Add(service); } cmbService.SelectedIndex = -1; cmbService.Text = Translate.fmt("msg_pick_svc"); } else { cmbService.Visibility = Visibility.Collapsed; switch (id.Type) { //case ProgramList.Types.Program: lblSubName.Text = ""; break; case ProgramID.Types.Service: lblSubName.Text = id.GetServiceId(); break; case ProgramID.Types.App: lblSubName.Text = id.GetPackageName(); break; default: lblSubName.Text = ""; break; } } lblPath.Text = id.Path; }
public ProgramWnd(ProgramID id) { InitializeComponent(); this.Title = Translate.fmt("wnd_program"); this.grpProgram.Header = Translate.fmt("lbl_program"); this.radProgram.Content = Translate.fmt("lbl_exe"); this.radService.Content = Translate.fmt("lbl_svc"); this.radApp.Content = Translate.fmt("lbl_app"); this.btnOK.Content = Translate.fmt("lbl_ok"); this.btnCancel.Content = Translate.fmt("lbl_cancel"); ID = id; SuspendChange++; Paths = new ObservableCollection <PathEntry>(); ListCollectionView lcv = new ListCollectionView(Paths); lcv.GroupDescriptions.Add(new PropertyGroupDescription("Group")); cmbPath.ItemsSource = lcv; Paths.Add(new PathEntry() { Content = Translate.fmt("pro_browse"), Tag = "*", Group = Translate.fmt("lbl_selec") }); PathEntry itemAll = new PathEntry() { Content = Translate.fmt("pro_all"), Tag = null, Group = Translate.fmt("lbl_selec") }; Paths.Add(itemAll); if (ID != null && ID.Path.Length > 0) { PathEntry itemPath; if (ID.Path.Equals("system")) { itemPath = new PathEntry() { Content = Translate.fmt("pro_sys"), Tag = ID.Path, Group = Translate.fmt("lbl_selec") } } ; else { itemPath = new PathEntry() { Content = ID.Path, Tag = ID.Path, Group = Translate.fmt("lbl_known") } }; Paths.Add(itemPath); cmbPath.SelectedItem = itemPath; } else { cmbPath.SelectedItem = itemAll; } //if (ID != null && ((ID.Path.Length == 0 && ID.Name.Length == 0) || ID.Path.Equals("system"))) if (ID != null) { radProgram.IsEnabled = false; radService.IsEnabled = false; radApp.IsEnabled = false; cmbPath.IsEnabled = false; cmbService.IsEnabled = false; cmbApp.IsEnabled = false; } cmbService.ItemsSource = ServiceModel.GetInstance().GetServices(); cmbApp.ItemsSource = AppModel.GetInstance().GetApps(); if (ID == null) { radProgram.IsChecked = true; ID = ProgramID.NewID(ProgramID.Types.Program); } else { switch (ID.Type) { case ProgramID.Types.Program: radProgram.IsChecked = true; break; case ProgramID.Types.Service: radService.IsChecked = true; foreach (ServiceModel.Service service in cmbService.Items) { if (MiscFunc.StrCmp(service.Value, ID.GetServiceId())) { cmbService.SelectedItem = service; break; } } if (cmbService.SelectedItem == null) { cmbService.Text = ID.GetServiceId(); } break; case ProgramID.Types.App: radApp.IsChecked = true; foreach (AppModel.AppPkg app in cmbApp.Items) { if (MiscFunc.StrCmp(app.Value, ID.GetPackageSID())) { cmbService.SelectedItem = app; break; } } if (cmbApp.SelectedItem == null) { cmbApp.Text = ID.GetPackageName(); } break; } } if (UwpFunc.IsWindows7OrLower) { radApp.IsEnabled = false; cmbApp.IsEnabled = false; } SuspendChange--; }