RecordGridにハイパーリンクを表示させるには

【ご質問】
グリッド内のデータをリンクテキスト(ハイパーリンク)状態で表示することは可能でしょうか。

【回答】
グリッド内のデータをハイパーリンク表示にする方法として、
StandardRecordGridCellを使用してRecordGridのセルをカスタマイズする方法が考えられます。

詳細は以下のサンプルをご参照ください。

{curl 6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{define-class public NewCell {inherits StandardRecordGridCell}

  field private frame:Frame =
      {Frame
        width = {make-elastic},
        height = {make-elastic},
        ||リンクを含むセルの為、active-traversal-containerをnullにします。
        active-traversal-container = null
      }
 
  {constructor public {default}
    {construct-super}
    {self.add-internal self.frame}
  }

  {method public open {refresh-data}:void
    ||このセルの現在のデータを取得します。
    let (data:String, valid?:bool) = {self.get-formatted-data}
   
    ||Frameにハイパーリンクとして設定したデータをaddします。
    {self.frame.add {link href = {url data}, {value data}}, replace? = true}
  }
}

{let people:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField “First”, domain = String},
            {RecordField “Last”, domain = String},
            {RecordField “Age”, domain = int}
        },
        {RecordData First = “http://www.curl.com”, Last = “Smith”, Age = 25},
        {RecordData First = “http://www.curlap.com”, Last = “Mary”, Age = 25}
    }
}

{value
    {RecordGrid
        record-source = people,
        height = 3cm,
        ||フィールド名:Firstの列のセルをNewCellに設定します。
        {RecordGridColumn “First”, width = 3.7cm, cell-spec = NewCell}
    }
}

RecordGridCell内にリンクを置く場合、独立したActiveTraversalContainerを使用します。
そのため、active-traversal-containerプロパティを
StandardActiveTraversalContainerのインスタンス、もしくはnullに設定する必要があります。
(サンプルではFrameにlinkテキストプロシージャが含まれているため、
Frameの引数に「active-traversal-container = null」を渡しています。)