protected override void ReadViewModeValueCore()
        {
            string          linkPropertyName       = PropertyName.ToClientIdentifier() + "Link";
            CalculatedField linkCalculatedProperty = ClientModelManager.RegisterProperty(linkPropertyName);

            linkCalculatedProperty.Getter = String.Format(@"var origValue = {0};
                                                        var result = origValue;
                                                        if (origValue) {{
                                                            var phoneMatch = origValue.match(/\d/g);
                                                            if (origValue.indexOf('@') !== -1) {{
                                                                result = 'mailto://' + origValue;
                                                            }} else if(phoneMatch && phoneMatch.length === 10) {{
                                                                result = 'tel:' + origValue;
                                                            }} else if(origValue.indexOf('://') == -1) {{
                                                                result = 'http://' + origValue;
                                                            }} else {{ 
                                                                result = origValue;
                                                            }}
                                                        }}
                                                        return result;",
                                                          BindToCurrentObjectProperty());

            LinkComponent linkControl = ((LinkComponent)Control);

            linkControl.Text = BindToCurrentObjectProperty();
            linkControl.Link = BindToProperty(linkPropertyName);
        }