private void fileAndStreamSourceTree_SelectionChanged(object sender, EventArgs e)
        {
            HeaderSourceItem item = fileAndStreamSourceTree.SelectedItem as HeaderSourceItem;

            if (item != null && !item.AllowSelection)
            {
                fileAndStreamSourceTree.SelectedItem = null;
            }

            UpdateUseSourceState();
        }
 public HeaderSourceItem(HeaderSourceItem parent, string name, IInputFile inputFile, IDetector detector, bool allowSelection)
 {
     _parent         = parent;
     _name           = name;
     _inputFile      = inputFile;
     _detector       = detector;
     _allowSelection = allowSelection;
     if (_parent != null)
     {
         parent._children.Add(this);
     }
 }
 private void buttonUseSource_Click(object sender, EventArgs e)
 {
     if (fileAndStreamSourceTree.Enabled)
     {
         HeaderSourceItem item = fileAndStreamSourceTree.SelectedItem as HeaderSourceItem;
         if (item != null)
         {
             UseFileAsSource(item.InputFile, item.Detector);
         }
     }
     else if (databaseSourceList.Enabled)
     {
         // TODO: Use database as source.
     }
     Close();
 }
        private void AddFileAndStreamSourceToList()
        {
            IProject project = _mainFileTree.DataSource as IProject;

            if (project == null)
            {
                return;
            }

            HeaderSourceItem   rootNode = new HeaderSourceItem(null, "root", false);
            IList <IInputFile> files    = project.GetInputFiles();

            foreach (IInputFile file in files)
            {
                HeaderSourceItem fileNode = new HeaderSourceItem(rootNode, (new FileInfo(file.Name)).Name, false);

                IList <IDetector> detectors = project.GetDetectors(file);
                foreach (IDetector detector in detectors)
                {
                    new HeaderSourceItem(fileNode, detector.Name, file, detector, true);
                }
            }
            fileAndStreamSourceTree.DataSource = rootNode;
        }
 public HeaderSourceItem(HeaderSourceItem parent, string name, bool allowSelection)
     : this(parent, name, null, null, allowSelection)
 {
 }