public GeneSearchWorker(Dispatcher dispatcher, IChromosomeStream stream, String query,
                         Action<IGene> callback)
 {
     _dispatcher = dispatcher;
     _stream = stream;
     _query = query;
     _callback = callback;
 }
 private void OnNewChromosomeSelected(IChromosomeStream arg)
 {
     OnPropertyChanged("CurrentChromosomeName");
 }
        private void OnNewChromosomeStream(IChromosomeStream stream)
        {
            OnPropertyChanged("ChromosomeId");
            OnPropertyChanged("WheelImageSource");

            ObservableCollection<IVisualPart> parts = ConvertIGenesToIVisualParts(stream.GeneList);
            ContentWidth = stream.TotalBasePairs * PixelsPerBasePair;

            AddTickmarksToCollection(parts, ContentWidth, TickMarkBasePairInterval);
            Parts = parts;
        }
 private void DoChromosomeSearch() // run in background
 {
     _result = _provider.GetChromosome(_query);
     _dispatcher.BeginInvoke(OnSearchCompleted);
 }