STree

Q1
STreeクラスとHtmlViewクラスを組み合わせたページブックマーク機能 
A1
STreeクラスを利用してWEBブラウザのようなブックマーク機能を実装することができます。

[サンプルイメージ]
 

[サンプルコード]
Button Button2 {
  ・・・(略)・・・
  Function OnTouch( e ) {
    try{
      var csv_idata = new CSVDocument();

      /* CSVファイルを開く(ダイアログ表示) */
      var fs  = new FileSystem();
      var f = fs.OpenDialog("ファイルを開く", 
      			"csvファイル(*.csv)=*.csv", "csv", "bkm.csv");
      /* 選択したCSVファイルのデータをロード */
      csv_idata.Load(f);
      f.Close();

      for(var i = 0; i < csv_idata.Rows; i ++){
        /* 取得したCSVファイルのデータをブックマークへ追加 */
        var c_item = ^.obj[0].Append(csv_idata.GetCell(i,1));  ・・・@
        c_item.value = csv_idata.GetCell(i,2);
      }
      /* アイコンを開いた状態にする */
      ^.obj[0].Expanded = $TRUE;
    }catch(e){
       //.MessageBox(e.Message);
    }
  }
}
STree STree1 {
  ・・・(略)・・・
  if ( !$DESIGNTIME ) {
    /* ルートアイテム初期化 */
    var r_item = this.RootItem;
    r_item.Delete();

    /* ルートアイテムの取得 */
    var parent = this.RootItem;
    /* 親ディレクトリの設定 */
    ^.obj[0] = parent.Append("お気に入り");
    ^.obj[0].Value = "P";
    /* アイコンの設定 */
    ^.obj[0].OpenIcon = 51;
    ^.obj[0].CloseIcon = 50;
    /* アイコンを開いた状態にする */
    ^.obj[0].Expanded = $TRUE;
    }
     ・・・(略)・・・
    Function OnRClicked( e ) {
      var x_txt;
      if(e.item.id != 0){
        /* 右クリックメニューの設定 */
        x_txt = "<?xml version=\"1.0\" encoding=\"SHIFT_JIS\"?>
                 <menudefine>
                 <menuitem id=\"1\" title=\"名前の変更\" />
                 <separator />
                 <menuitem id=\"2\" title=\"削除\" />
                 </menudefine>";

        var domimpl = new xmlDOMImplementation;
        var dom = domimpl.parse(x_txt);
        /* XMLデータをpopupMenuへセット */
        var id = popupMenu(dom);

        if(id == 1){
              /* 名前の変更 */
              e.item.EditLabel();  ・・・B
        }else if (id == 2){
              if(e.item.value != "P"){
                    /* 削除 */
                    e.item.delete();  ・・・A
              }
        }
      }
    }
}
HtmlView HtmlView1 {
  ・・・(略)・・・
  Function OnUserEvent1( e ){
    /* ダイアログで入力された値が
    	空白でなければセット、空白の場合はURLをセット */
    var d_name = e.UserData1 == "" ?  ^.tmp_url[0] : e.UserData1;
    /* STreeへブックマーク(アイテム)を追加 */
    var ap_item = ^.obj[0].Append(d_name); ・・・@
    /* アイテムのvalueへURLをセット */
    ap_item.value = ^.tmp_url[0];
    /* アイコンを開いた状態にする */
    ^.obj[0].Expanded = $TRUE;
  }
・・・(略)・・・

[ポイント]
 @ブックマークの追加
  STreeItemクラスのAppendメソッドを利用することで、親ディレクトリの配下に
  新規のアイテムを追加します。

 Aブックマークの削除
  STreeItemクラスのDeleteメソッドを利用し、親ディレクトリの配下から
  対象アイテムを削除することができます。

 Bブックマークのタイトル変更
  STreeItemクラスのEditLabelメソッドを利用し、対象アイテムのタイトル名を
  変更することができます。


実際の挙動については、CRSファイル形式のサンプル
 「STreeとHtmlViewを組み合わせたページブックマーク機能(Stree50_004.zip)」
をご確認ください。

管理番号:Stree50_004
 
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ