Ejemplo n.º 1
0
        static IList ExpandMenuBuilders(ICollection input, bool addDummyEntryIfMenuEmpty)
        {
            List <object> result = new List <object>(input.Count);

            foreach (object o in input)
            {
                MenuItemBuilderPlaceholder p = o as MenuItemBuilderPlaceholder;
                if (p != null)
                {
                    IEnumerable <object> c = p.BuildItems();
                    if (c != null)
                    {
                        result.AddRange(c);
                    }
                }
                else
                {
                    result.Add(o);
                    IStatusUpdate statusUpdate = o as IStatusUpdate;
                    if (statusUpdate != null)
                    {
                        statusUpdate.UpdateStatus();
                        statusUpdate.UpdateText();
                    }
                }
            }
            if (addDummyEntryIfMenuEmpty && result.Count == 0)
            {
                result.Add(new MenuItem {
                    Header = "(empty menu)", IsEnabled = false
                });
            }
            return(result);
        }
Ejemplo n.º 2
0
        void WebBrowserNavigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            string url = webBrowser.Url.AbsoluteUri.ToString();

            if (dummyUrl != null && url == "about:blank")
            {
                urlBox.Text = dummyUrl;
            }
            else
            {
                if (urlBox == null)
                {
                    urlBox = new Control();
                }
                urlBox.Text = url;
            }
            if (toolStrip != null)
            {
                foreach (object o in toolStrip.Items)
                {
                    IStatusUpdate up = o as IStatusUpdate;
                    if (up != null)
                    {
                        up.UpdateStatus();
                    }
                }
            }
        }
        public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            if (word == null) return null;
            var result =
                _acronymSettingsProvider.AcronymMapping.AsParallel().Any(p => p.Acronym.ToLower() == word.ToLower());
            if (!result) return null;

            var newMeaning =
                _acronymSettingsProvider.AcronymMapping.SingleOrDefault(p => p.Acronym.ToLower() == word.ToLower());
            if (newMeaning != null)
            {
                var il = new InlineLink
                             {
                                 FontFamily = _textProcessorEngine.FfDefault,
                                 FontSize = _textProcessorEngine.FsDefault,
                                 Foreground = _textProcessorEngine.BrText,
                                 FontStyle = FontStyles.Italic,
                                 Text = newMeaning.Meaning,
                                 ToolTip = word
                             };
                return il;
            }
            else
            {
                return null;
            }
        }
Ejemplo n.º 4
0
        internal static IList ExpandMenuBuilders(ICollection input)
        {
            ArrayList result = new ArrayList(input.Count);

            foreach (object o in input)
            {
                MenuItemBuilderPlaceholder p = o as MenuItemBuilderPlaceholder;
                if (p != null)
                {
                    ICollection c = p.BuildItems();
                    if (c != null)
                    {
                        result.AddRange(c);
                    }
                }
                else
                {
                    result.Add(o);
                    IStatusUpdate statusUpdate = o as IStatusUpdate;
                    if (statusUpdate != null)
                    {
                        statusUpdate.UpdateStatus();
                        statusUpdate.UpdateText();
                    }
                }
            }
            return(result);
        }
        public bool? Filter(IStatusUpdate update)
        {
            if (regexUrlPattern.Matches(update.Text).Count > 0)
                return Include;

            return null;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Handles update messages.
        /// </summary>
        /// <param name="message"></param>
        public override void Handle(IStatusUpdate <MultiLineTextList, IViewModelBase> message)
        {
            //IF WE DON'T HAVE A CURRENT OFFER, THEN WE DON'T NEED TO LISTEN TO THIS MESSAGE.
            if (_CurrentOffer == null)
            {
                return;
            }

            //WE DON'T CARE ABOUT MESSAGES WE PUBLISH OURSELVES
            if (message.PublisherId == Id)
            {
                return;
            }

            //WE ONLY CARE ABOUT STUDY MESSAGES
            if (message.Category != StudyResources.CategoryStudy)
            {
                return;
            }

            //NOT SURE IF THIS IS RIGHT
            if (_CurrentOffer.Opportunity.JobInfo.Id != message.JobInfo.Id)
            {
                return;
            }

            //THIS IS ONE OF THIS OBJECT'S UPDATES, SO BUBBLE IT BACK UP WITH THIS OFFER, OPPORTUNITY, ETC.

            //CREATE THE BUBBLING UP UPDATE
            var opportunity  = _CurrentOffer.Opportunity;
            var offer        = _CurrentOffer;
            var jobInfo      = opportunity.JobInfo;
            var statusUpdate =
                new StatusUpdate <MultiLineTextList, IViewModelBase>(message.Status,
                                                                     opportunity,
                                                                     offer,
                                                                     null,
                                                                     jobInfo,
                                                                     Id,
                                                                     this,
                                                                     StudyResources.CategoryStudy,
                                                                     null);


            //BEFORE PUBLISHING UPDATE, CHECK FOR PRODUCT
            //IF THIS IS A COMPLETED STATUS UPDATE, THEN PRODUCT SHOULD BE SET.  SO, BUBBLE THIS ASPECT UP.
            if (message.Status == CommonResources.StatusCompleted)
            {
                if (message.JobInfo.Product != null && _CurrentOffer.Opportunity.JobInfo.Product != null)
                {
                    jobInfo.Product = message.JobInfo.Product;
                }

                //WE'RE DONE WITH THE CURRENT OFFER
                _CurrentOffer = null;
            }

            //PUBLISH TO BUBBLE UP
            Exchange.Ton.Publish(statusUpdate);
        }
 public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     if (word == null) return null;
     bool result = _websymbols.AsParallel().Any(p => p.Key == word.ToLower());
     if (!result) return null;
     return _textProcessorEngine.WebSymbolHelper(_websymbols[word.ToLower()], word);
 }
 public InlineLink Match(string word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     MatchCollection mc = _matcher.Matches(word);
     if (mc.Count <= 0)
         return null;
     var cm = new ContextMenu();
     var miIgnore = new MenuItem {Header = "Globally ignore " + mc[0].Value + " hashtag", Tag = mc[0].Value};
     cm.Items.Add(miIgnore);
     var il = new InlineLink
                  {
                      Text = mc[0].Value,
                      FontSize = _textProcessorEngine.FsDefault,
                      FontFamily = _textProcessorEngine.FfDefault,
                      Foreground = lBrush,
                      ToolTip = mc[0].Value,
                      Tag = mc[0].Value,
                      HoverColour = _textProcessorEngine.BrHover,
                      NormalColour = _textProcessorEngine.BrBase,
                      ContextMenu = cm
                  };
     il.ToolTip = "Search for " + word + " in your current tweet stream";
     il.MouseLeftButtonDown +=
         (s, e) => PluginEventHandler.FireEvent("searchHashtag", oStatusUpdate, mc[0].Value);
     miIgnore.Click += (s, e) => _textProcessorEngine.GlobalExcludeSettings.Add(word);
     return il;
 }
        public Inline Match(String paragraph, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            Match mpa = Regex.Match(paragraph, RgxPattern);

            if (mpa.Success)
            {
            }
            return null;
        }
        public bool? Filter(IStatusUpdate update)
        {
            if (string.IsNullOrWhiteSpace(Text))
                return false;

            if (string.IsNullOrWhiteSpace(update.Text))
                return false;

            return update.Text.ToLowerInvariant().Contains(Text.ToLowerInvariant());
        }
 public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     if (!_fontmap.ContainsKey(word.ToLower()))
         return null;
     var il = new InlineLink();
     il.FontFamily = (FontFamily) il.FindResource(_fontmap[word.ToLower()]);
     il.FontSize = _textProcessorEngine.FsDefault;
     il.Foreground = _textProcessorEngine.BrText;
     il.Text = word;
     il.ToolTip = "Why do people hate on Comic Sans?";
     return il;
 }
Ejemplo n.º 12
0
        /// <summary>
        /// If completed event, this shows the StudyViewModel populated with the produced IViewModelBase
        /// produced by the study partner.
        /// </summary>
        /// <param name="message"></param>
        public void Handle(IStatusUpdate <MultiLineTextList, IViewModelBase> message)
        {
            //WE ONLY CARE ABOUT STUDY UPDATES
            if (message.Category != StudyResources.CategoryStudy)
            {
                return;
            }

            //WE DON'T CARE ABOUT MESSAGES WE PUBLISH OURSELVES
            if (message.PublisherId == Id)
            {
                return;
            }

            //WE ONLY CARE ABOUT UPDATES TO OUR CURRENT OPPORTUNITIES
            if (message.Opportunity == null || !CurrentOpportunities.Contains(message.Opportunity))
            {
                return;
            }

            //THIS IS ONE OF THIS OBJECT'S UPDATES

            //IF THIS IS A COMPLETED STATUS UPDATE, THEN PRODUCT SHOULD BE SET.  SO, BUBBLE THIS ASPECT UP.
            if (message.Status == CommonResources.StatusCompleted)
            {
                if (message.JobInfo.Product == null)
                {
                    throw new StudyException("StatusCompleted posted but JobInfo.Product == null...Where is the product?");
                }

                //WE HAVE A PRODUCT OF TYPE IVIEWMODELBASE THAT HAS BEEN CREATED FOR US VIA
                //THE EXCHANGE!
                var productViewModel = message.JobInfo.Product;

                //MOVE THE OPPORTUNITY TO PAST OPPORTUNITIES
                CurrentOpportunities.Remove(message.Opportunity);
                PastOpportunities.Add(message.Opportunity);

                //LET HISTORY KNOW WE ARE DONE THINKING OF THIS OPPORTUNITY
                var targetId = message.Opportunity.Id;
                History.Events.ThinkingAboutTargetEvent.Publish(System.Guid.Empty);

                ////GET THE STUDY VIEWMODEL THAT WILL HOUSE OUR CREATED IVIEWMODELBASE
                var studyViewModel = Services.Container.GetExportedValue <ExecuteStudySongsViewModel>();
                studyViewModel.StudyScreen = productViewModel;

                //NAVIGATE TO THE EXECUTE STUDY SONGS PAGE TO BEGIN STUDYING
                var executeStudySongsPage =
                    Services.Container.GetExportedValue <ExecuteStudySongsPage>();
                Navigation.Navigator.Ton.NavigateTo(executeStudySongsPage);
            }
        }
Ejemplo n.º 13
0
 public override void CheckStatus(IStatusUpdate updater)
 {
     base.CheckStatus(updater);
     UpdateMainMeshList();
     UpdateMainMaterialList();
     if (ListCountMemory[0] != MainMeshList.Count)
     {
         UpdateMesh(false);
     }
     if (ListCountMemory[1] != MainMaterialList.Count)
     {
         UpdateMaterial(false);
     }
     UpdateColor();
 }
Ejemplo n.º 14
0
 public static void UpdateText(IEnumerable menuItems)
 {
     if (menuItems == null)
     {
         return;
     }
     foreach (object o in menuItems)
     {
         IStatusUpdate cmi = o as IStatusUpdate;
         if (cmi != null)
         {
             cmi.UpdateText();
         }
     }
 }
Ejemplo n.º 15
0
 /// <summary>
 /// 更新Ribbon Items
 /// </summary>
 public static void UpdateStatus(IEnumerable ribbonItems)
 {
     if (ribbonItems == null)
     {
         return;
     }
     foreach (object o in ribbonItems)
     {
         IStatusUpdate cmi = o as IStatusUpdate;
         if (cmi != null)
         {
             cmi.UpdateStatus();
         }
     }
 }
Ejemplo n.º 16
0
        public void Connect(IStatusUpdate IStatusUpdate)
        {
            m_State         = DHCPState.INIT;
            m_bStop         = false;
            m_IStatusUpdate = IStatusUpdate;
            m_Instance      = this;
            m_Device        = null;
            m_dtBound       = DateTime.MaxValue;

            m_FilterThread = new Thread(new ThreadStart(StartFilter));
            m_FilterThread.Start();

            m_TimerThread = new Thread(new ThreadStart(TimerHandler));
            m_TimerThread.Start();
        }
Ejemplo n.º 17
0
        public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            string word1 = word;
            Match tweetdeckiskillingme = Regex.Match(word, BrokenTweetdeckHttpUrlRgxPattern);
            if (tweetdeckiskillingme.Success)
                word1 = "http://" + tweetdeckiskillingme.Groups["tweetdecksucks"].Value;
                    // pop http:// onto the front of the bastardised tweetdeck shorturl mechanism
            Match mpa = Regex.Match(word1, HttpUrlRgxPattern);
            if (mpa.Success)
            {
                string nmatched = mpa.Groups["urlscheme"].Value + mpa.Groups["domainpath"].Value;
                Uri ilurl;
                if (!Uri.TryCreate(nmatched, UriKind.Absolute, out ilurl)) return null;
                Uri ciurl;
                if (
                    !Uri.TryCreate(
                        "http://" + _textProcessorEngine.ShortenVisualInlineUrl(mpa.Groups["domainpath"].Value) +
                        "/favicon.ico", UriKind.Absolute, out ciurl)) return null;
                var image = new CachedImage
                                {
                                    Url = ciurl,
                                    MaxHeight = 10,
                                    MaxWidth = 10,
                                    Margin = new Thickness(0, 0, 2, 0)
                                };
                var il = new InlineLink
                             {
                                 Url = ilurl,
                                 Text = _textProcessorEngine.ShortenVisualInlineUrl(nmatched) + Ellipsis,
                                 Foreground = lBrush,
                                 ToolTip = "Browse to: " + nmatched,
                                 Tag = false,
                                 Image = image,
                                 HoverColour = _textProcessorEngine.BrHover,
                                 NormalColour = _textProcessorEngine.BrNormal,
                             };
                il.MouseLeftButtonDown += _textProcessorEngine.LinkClick;

                AddImagePreviewIcon(oStatusUpdate, il, nmatched);

                AddAdditionalSmartText(il, nmatched);

                CheckAndConvertToLongUrl(oStatusUpdate, il, nmatched);

                return il;
            }
            return null;
        }
 public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     if (_highlightWordSettingsProvider.HighlightWords.Any(k => word.ToLower().Contains(k.Text.ToLower())))
     {
         var il = new InlineLink
                      {
                          FontFamily = _textProcessorEngine.FfDefault,
                          FontSize = _textProcessorEngine.FsDefault,
                          Foreground = _textProcessorEngine.BrText,
                          Text = word
                      };
         il.Background = (Brush)il.FindResource("HighlightBackgroundColour");
         return il;
     }
     return null;
 }
        public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            if (word == null) return null;
            bool result = _wordmap.AsParallel().Any(p => p.Key == word.ToLower());
            if (!result) return null;

            var il = new InlineLink
                         {
                             FontFamily = _textProcessorEngine.FfDefault,
                             FontSize = _textProcessorEngine.FsDefault,
                             Foreground = _textProcessorEngine.BrText,
                             FontStyle = FontStyles.Italic,
                             Text = _wordmap[word.ToLower()],
                             ToolTip = word
                         };
            return il;
        }
 public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     foreach (var k in _backgroundmap)
     {
         if (!word.ToLower().Contains(k.Key.ToLower())) continue;
         var il = new InlineLink
                      {
                          FontFamily = _textProcessorEngine.FfDefault,
                          FontSize = _textProcessorEngine.FsDefault,
                          Foreground = _textProcessorEngine.BrText,
                          Text = word
                      };
         il.Background = (Brush) il.FindResource(k.Value);
         return il;
     }
     return null;
 }
        public bool? Filter(IStatusUpdate update)
        {
            if (update.Contact == null)
                return null;

            foreach (IContact contact in Contacts)
            {
                if (comparer.Compare(contact, update.Contact) == 0)
                    return Include;
            }

            string contactName = update.Contact.Name.Trim();

            if (contactName.Matches(ContactName, true))
                return Include;

            return null;
        }
        public bool? Filter(IStatusUpdate update)
        {
            bool? value = null;

            foreach (IFilter filter in filters)
            {
                bool? result = filter.Filter(update);

                if (result.HasValue)
                {
                    value = result;
                    break;
                }
            }

            if (!value.HasValue)
                return null;

            return Include;
        }
 public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     MatchCollection mc = _matcher.Matches(word);
     if (mc.Count <= 0)
     {
         return null;
     }
     var il = new InlineLink
                  {
                      Text = word,
                      Foreground = lBrush,
                      TextDecorations = null,
                      ToolTip = "View " + mc[0].Value + "'s profile",
                      HoverColour = _textProcessorEngine.BrHover,
                      NormalColour = _textProcessorEngine.BrBase
                  };
     il.MouseLeftButtonDown +=
         (s, e) => PluginEventHandler.FireEvent("profileByName", oStatusUpdate, mc[0].Value);
     return il;
 }
Ejemplo n.º 24
0
 public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     MatchCollection mc = _matcher.Matches(word);
     if (mc.Count <= 0)
         return null;
     Uri ilurl;
     if (!Uri.TryCreate("mailto:" + mc[0].Value, UriKind.Absolute, out ilurl)) return null;
     var il = new InlineLink
                  {
                      Url = ilurl,
                      Text = mc[0].Value,
                      Foreground = lBrush,
                      ToolTip = "Send email to: " + mc[0].Value,
                      Tag = mc[0].Value,
                      HoverColour = _textProcessorEngine.BrHover,
                      NormalColour = _textProcessorEngine.BrBase
                  };
     il.MouseLeftButtonDown += _textProcessorEngine.LinkClick;
     return il;
 }
Ejemplo n.º 25
0
        void WebBrowserNavigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            // do not use e.Url (frames!)
            string url = webBrowser.Url.ToString();

            if (dummyUrl != null && url == "about:blank")
            {
                urlBox.Text = dummyUrl;
            }
            else
            {
                urlBox.Text = url;
            }
            // Update toolbar:
            foreach (object o in toolStrip.Items)
            {
                IStatusUpdate up = o as IStatusUpdate;
                if (up != null)
                {
                    up.UpdateStatus();
                }
            }
        }
Ejemplo n.º 26
0
        public HtmlViewPane(bool showNavigation)
        {
            Dock = DockStyle.Fill;
            Size = new Size(500, 500);

            webBrowser      = new ExtendedWebBrowser();
            webBrowser.Dock = DockStyle.Fill;
            webBrowser.NewWindowExtended += delegate(object sender, NewWindowExtendedEventArgs e)
            {
                e.Cancel = true;
                WorkbenchSingleton.Workbench.ShowView(new BrowserPane(e.Url));
            };
            webBrowser.Navigated += delegate
            {
                // do not use e.Url (frames!)
                urlBox.Text = webBrowser.Url.ToString();

                // Update toolbar:
                foreach (object o in toolStrip.Items)
                {
                    IStatusUpdate up = o as IStatusUpdate;
                    if (up != null)
                    {
                        up.UpdateStatus();
                    }
                }
            };
            Controls.Add(webBrowser);

            if (showNavigation)
            {
                toolStrip           = ToolbarService.CreateToolStrip(this, sButtonsPath);
                toolStrip.GripStyle = ToolStripGripStyle.Hidden;
                Controls.Add(toolStrip);
            }
        }
 public Inline Match(String paragraph, Brush lBrush, IStatusUpdate oStatusUpdate)
 {
     return null;
 }
 public CollectionChangeEvent(IStatusUpdate item, CollectionChangeType type)
 {
     Item = item;
     Type = type;
 }
        public override bool IsMatch(IStatusUpdate update)
        {
            if (IsIncluded == FilterBehaviour.NoBehaviour) return false;

            return update.Text.ToLowerInvariant().Contains(Text.ToLower());
        }
    /// <summary>
    /// Handles update messages.
    /// </summary>
    /// <param name="message"></param>
    public override void Handle(IStatusUpdate<MultiLineTextList, IViewModelBase> message)
    {
      //IF WE DON'T HAVE A CURRENT OFFER, THEN WE DON'T NEED TO LISTEN TO THIS MESSAGE.
      if (_CurrentOffer == null)
        return;

      //WE DON'T CARE ABOUT MESSAGES WE PUBLISH OURSELVES
      if (message.PublisherId == Id)
        return;

      //WE ONLY CARE ABOUT STUDY MESSAGES
      if (message.Category != StudyResources.CategoryStudy)
        return;

      //NOT SURE IF THIS IS RIGHT
      if (_CurrentOffer.Opportunity.JobInfo.Id != message.JobInfo.Id)
        return;

      //THIS IS ONE OF THIS OBJECT'S UPDATES, SO BUBBLE IT BACK UP WITH THIS OFFER, OPPORTUNITY, ETC.

      //CREATE THE BUBBLING UP UPDATE
      var opportunity = _CurrentOffer.Opportunity;
      var offer = _CurrentOffer;
      var jobInfo = opportunity.JobInfo;
      var statusUpdate =
        new StatusUpdate<MultiLineTextList, IViewModelBase>(message.Status,
                                                            opportunity,
                                                            offer,
                                                            null,
                                                            jobInfo,
                                                            Id,
                                                            this,
                                                            StudyResources.CategoryStudy,
                                                            null);


      //BEFORE PUBLISHING UPDATE, CHECK FOR PRODUCT
      //IF THIS IS A COMPLETED STATUS UPDATE, THEN PRODUCT SHOULD BE SET.  SO, BUBBLE THIS ASPECT UP.
      if (message.Status == CommonResources.StatusCompleted)
      {
        if (message.JobInfo.Product != null && _CurrentOffer.Opportunity.JobInfo.Product != null)
        {
          jobInfo.Product = message.JobInfo.Product;
        }

        //WE'RE DONE WITH THE CURRENT OFFER
        _CurrentOffer = null;
      }

      //PUBLISH TO BUBBLE UP
      Exchange.Ton.Publish(statusUpdate);
    }
Ejemplo n.º 31
0
 public abstract void Handle(IStatusUpdate<MultiLineTextList, IViewModelBase> message);
 public override bool IsMatch(IStatusUpdate update)
 {
     if (IsIncluded == FilterBehaviour.NoBehaviour) return false;
     return update.Parents.Contains(Microblog) && update.Types.Contains(UpdateType);
 }
        public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            Match mcb = Regex.Match(word, RgxPatternBold);
            Match mci = Regex.Match(word, RgxPatternItalic);
            Match mch = Regex.Match(word, RgxPatternHTML);
            Match mcu = Regex.Match(word, RgxPatternUnderline);

            if (mcb.Success)
            {
                var il = new InlineLink
                             {
                                 Text = mcb.Groups["found"].Value,
                                 ToolTip = word,
                                 FontFamily = _textProcessorEngine.FfDefault,
                                 FontSize = _textProcessorEngine.FsDefault,
                                 Foreground = _textProcessorEngine.BrText,
                                 HoverColour = _textProcessorEngine.BrText,
                                 NormalColour = _textProcessorEngine.BrText,
                                 FontWeight = FontWeights.Bold
                             };
                return il;
            }

            if (mci.Success)
            {
                var il = new InlineLink
                             {
                                 Text = "\u201C" + mci.Groups["found"].Value + "\u201D",
                                 ToolTip = word,
                                 FontFamily = _textProcessorEngine.FfDefault,
                                 FontSize = _textProcessorEngine.FsDefault,
                                 Foreground = _textProcessorEngine.BrText,
                                 HoverColour = _textProcessorEngine.BrText,
                                 NormalColour = _textProcessorEngine.BrText,
                                 FontStyle = FontStyles.Italic
                             };
                return il;
            }

            if (mch.Success)
            {
                var il = new InlineLink
                             {
                                 Text = "<" + mch.Groups["found"].Value + ">",
                                 ToolTip = word,
                                 FontFamily = _textProcessorEngine.FfDefault,
                                 FontSize = _textProcessorEngine.FsDefault,
                                 Foreground = _textProcessorEngine.BrText,
                                 HoverColour = _textProcessorEngine.BrText,
                                 NormalColour = _textProcessorEngine.BrText,
                                 FontStyle = FontStyles.Italic
                             };
                return il;
            }

            if (mcu.Success)
            {
                var il = new InlineLink
                             {
                                 Text = mcu.Groups["found"].Value,
                                 ToolTip = word,
                                 FontFamily = _textProcessorEngine.FfDefault,
                                 FontSize = _textProcessorEngine.FsDefault,
                                 Foreground = _textProcessorEngine.BrText,
                                 HoverColour = _textProcessorEngine.BrText,
                                 NormalColour = _textProcessorEngine.BrText,
                                 TextDecorations = TextDecorations.Underline
                             };
                return il;
            }
            return null;
        }
 public override bool IsMatch(IStatusUpdate update)
 {
     if (IsIncluded == FilterBehaviour.NoBehaviour) return false;
     return IsMatch(update.Contact);
 }
Ejemplo n.º 35
0
 public void Publish(IStatusUpdate workStatusUpdate)
 {
     _EventAggregator.Publish(workStatusUpdate);
 }
 public bool Filter(IStatusUpdate update)
 {
     return StreamConfiguration.Filter(update);
 }
        public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            if (word == null) return null;
            bool result = _segoeuisymbolify.AsParallel().Any(p => p.Key == word.ToLower());
            if (!result) return null;

            var il = new InlineLink
                         {
                             FontFamily = _textProcessorEngine.FfUisymbol,
                             FontSize = _textProcessorEngine.FsDefault*1.25,
                             Foreground = _textProcessorEngine.BrText,
                             HoverColour = _textProcessorEngine.BrText,
                             NormalColour = _textProcessorEngine.BrText,
                             Text = _segoeuisymbolify[word.ToLower()],
                             ToolTip = word
                         };
            return il;
        }
Ejemplo n.º 38
0
 public abstract void Handle(IStatusUpdate <MultiLineTextList, IViewModelBase> message);
Ejemplo n.º 39
0
        public async void AddImagePreviewIcon(IStatusUpdate oStatusUpdate, InlineLink il, string matchedurl)
        {
            if (_textProcessorEngine.ApplicationSettings.DisableMediaProviders) return;
            if ((il.Tag is bool && (bool) il.Tag)) return;
            foreach (
                IMediaProvider mediaProvider in
                    _textProcessorEngine.MediaProcessors.Where(mediaProvider => mediaProvider.Match(matchedurl)))
            {
                string source = await mediaProvider.Transform(matchedurl);

                if (source == null) continue;
                il.Tag = true;
                var ili = new ImageMinimisedAttachment(source);
                il.Inlines.Add(new ImageMinimisedAttachmentView(ili));
            }
        }
        public bool Filter(IStatusUpdate update)
        {
            if (update == null) return false;

            if (_globalExcludeSettings.GlobalExcludeItems.Any(ignore => !update.Filter(ignore.Text)))
            {
                return false;
            }


            //master script defined filters
            if (_scriptLibrary.IsScriptEngineActive)
            {
                var _scriptingConfiguration = CompositionManager.Get<IScriptingConfiguration>();

                if (_scriptLibrary.CountScriptEntryPoints(_scriptingConfiguration.GlobalScriptFilterEntryPoint) > 0 &&
                    _scriptLibrary.ScriptEntryPoints(_scriptingConfiguration.GlobalScriptFilterEntryPoint).Any(
                        sf => !Filters.ExecuteGlobalFilterScript(sf.Key, update)))
                {
                    return false; // if returning false, that means don't include, please
                }
            }

            bool isAccepted = false;

            //For ignoring specific text
            if (Filters.IsIgnored(update.Text) == FilterBehaviour.Exclude)
            {
                return false;
            }

            //TODO "Everything" column relies on the specific checkbox, not nothing being set!
            //If it is unfiltered (ie, an 'everything' column)
            if ((!Filters.IsDefined || Filters.SelectAll) && update.Time > FilterBefore)
                isAccepted = true;

            //make sure if there is a date filter (created when a column clear is performed)
            if (update.Time > FilterBefore)
            {
                FilterBehaviour state = Filters.IsIgnored(update);

                if (state == FilterBehaviour.Exclude)
                    isAccepted = false;
                else if (state == FilterBehaviour.Include)
                    isAccepted = true;
            }

            //inline search
            if (!string.IsNullOrEmpty(SearchText))
            {
                if (!update.Text.ToLower().Contains(SearchText.ToLower()))
                    isAccepted = false;
            }

            return isAccepted;
        }
        public InlineLink Match(String word, Brush lBrush, IStatusUpdate oStatusUpdate)
        {
            if (word == null) return null;
            bool result = _emoticons.AsParallel().Any(p => p.Key == word);
            if (!result) return null;

            var il = new InlineLink
                         {
                             FontFamily = _textProcessorEngine.FfEmoticon,
                             FontSize = _textProcessorEngine.FsDefault*1.2,
                             Foreground = _textProcessorEngine.BrText,
                             HoverColour = _textProcessorEngine.BrText,
                             NormalColour = _textProcessorEngine.BrText,
                             Text = _emoticons[word],
                             ToolTip = word
                         };
            return il;
        }
 public void HandleUpdate(IStatusUpdate StatusUpdate)
 {
     _eventAggregator.GetEvent<ShowNotification>()
         .Publish(new ShowNotificationPayload("1 new update", TimeSpan.FromSeconds(15)));
 }
Ejemplo n.º 43
0
        private async void CheckAndConvertToLongUrl(IStatusUpdate oStatusUpdate, InlineLink il, string nmatched)
        {
            if (!_textProcessorEngine.ApplicationSettings.AutoExpandUrls ||
                !_textProcessorEngine.UrlExpanders.IsShortUrl(nmatched)) return;
            //TODO: cleanup the multiple passes, manual vs. web service longurl checker

            string tmatched = nmatched;
            //await CheckAndConvertToManualLongUrl(nmatched); // returns nmatched the same if its not a manual url lengthener
            //tmatched = await _textProcessorEngine.UrlExpanders.ExpandUrl(tmatched);
            //if (tmatched == null) return;

            if (_textProcessorEngine.UrlExpanders.IsShortUrl(tmatched))
                // go one more round to unshortent the url; useful when t.co shortens an existing shortened link
                tmatched = await _textProcessorEngine.UrlExpanders.ExpandUrl(tmatched);
            if (tmatched == null) tmatched = nmatched;

            //tmatched = await CheckAndConvertToManualLongUrl(nmatched); // and go around again

            il.Text = _textProcessorEngine.ShortenVisualInlineUrl(tmatched);
            Uri url;
            if (!Uri.TryCreate("http://" + il.Text + "/favicon.ico", UriKind.Absolute, out url)) return;
            var iimage = new CachedImage
                             {
                                 Url = url,
                                 MaxHeight = _textProcessorEngine.FsDefault,
                                 MaxWidth = _textProcessorEngine.FsDefault,
                                 Margin = new Thickness(0, 0, 2, 0)
                             };
            il.Text = il.Text + Ellipsis;
            il.Image = iimage;
            AddAdditionalSmartText(il, tmatched);
            AddImagePreviewIcon(oStatusUpdate, il, tmatched);
        }