public MainWindow() { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Open Header file ..."; dlg.DefaultExt = ".hdr"; // Default file extension dlg.Filter = "HDR Files (.hdr)|*.hdr"; // Filter files by extension dlg.InitialDirectory = Properties.Settings.Default.LastDataset; DialogResult result = dlg.ShowDialog(); if (result != System.Windows.Forms.DialogResult.OK) Environment.Exit(0); directory = System.IO.Path.GetDirectoryName(dlg.FileName); Properties.Settings.Default.LastDataset = directory; headerFileName = System.IO.Path.GetFileNameWithoutExtension(dlg.FileName); CCIUtilities.Log.writeToLog("Starting PKDetectorAnalyzer " + CCIUtilities.Utilities.getVersionNumber() + " on " + headerFileName); head = (new HeaderFileReader(dlg.OpenFile())).read(); bdf = new BDFEDFFileReader( new FileStream(System.IO.Path.Combine(directory, head.BDFFile), FileMode.Open, FileAccess.Read)); for (int i = 0; i < bdf.NumberOfChannels; i++) //first see if this file has standard transducer labels if (bdf.transducer(i) == "Analog Input Box") channels.Add(new channelOptions(i, bdf.channelLabel(i))); //if it does, use them as channel choices if (channels.Count == 0) //if it does not, then show all channels for (int i = 0; i < bdf.NumberOfChannels; i++) channels.Add(new channelOptions(i, bdf.channelLabel(i))); AnalogChannelCount = channels.Count; OpenPCommand.InputGestures.Add( new KeyGesture(Key.O, ModifierKeys.Control | ModifierKeys.Shift, "Ctrl+Shift+O")); SavePCommand.InputGestures.Add( new KeyGesture(Key.S, ModifierKeys.Control, "Crtl+S")); ProcessCommand.InputGestures.Add( new KeyGesture(Key.P, ModifierKeys.Control, "Crtl+P")); ExitCommand.InputGestures.Add(new KeyGesture(Key.Q, ModifierKeys.Control, "Crtl+Q")); InitializeComponent(); //***** Set up menu commands and short cuts CommandBinding cbOpenP = new CommandBinding(OpenPCommand, cbOpen_Execute, cbOpen_CanExecute); this.CommandBindings.Add(cbOpenP); CommandBinding cbSaveP = new CommandBinding(SavePCommand, cbSave_Execute, validParams_CanExecute); this.CommandBindings.Add(cbSaveP); CommandBinding cbProcess = new CommandBinding(ProcessCommand, ProcessChannels_Click, validParams_CanExecute); this.CommandBindings.Add(cbProcess); CommandBinding cbExit = new CommandBinding(ExitCommand, Quit_Click, cbExit_CanExecute); this.CommandBindings.Add(cbExit); //***** Set up defaults and other housekeeping Title = headerFileName; TitleLine.Text = directory + System.IO.Path.DirectorySeparatorChar + headerFileName; FNExtension.Text = "PKDetection"; DataContext = this; ChannelItem ci = new ChannelItem(this); ChannelEntries.Items.Add(ci); ci.Channel.SelectedIndex = 0; Process.IsEnabled = true; //have to reenable here -- like checkError(); values are guarenteed valid however this.Activate(); }