2011-12-14 5 views
2

デスクトップショートカットのツールチップを設定する最適な方法は何ですか?ExtJS 4デスクトップ - デスクトップショートカットツールチップを設定する方法

私のgetDesktopConfig()では、フィールドiconCls、module、nameを持つショートカットデータの配列を作成します。ここでアレイへのユーザー・モジュールのショートカットを追加し、デスクトップ・ショートカットを作成するために使用されるショートカット・データ・ストアのデータプロパティとしてアレイを設定する例は次のとおり

Ext.define("MyDesktop.App", { 
extend: "Ext.ux.desktop.App", 

.... 

getDesktopConfig:   function() { 
    var b = this; 
    var a = b.callParent(); 

    ..... 

    shortcut_data.push({ 
      iconCls:  "users-shortcut", 
      module:   "users-module-window", 
      name:   "Users" 
     }); 

    ...... 

    return Ext.apply(a,{ 
     contextMenuItems: [{ 
      text:   "Dashboards", 
      handler:   b.onDashboards, 
      scope:   b 
     }], 
     shortcuts:   Ext.create("Ext.data.Store",{ 
      model:   "Ext.ux.desktop.ShortcutModel", 
      data:   shortcut_data 
     }), 
     wallpaper:   "/assets/MyApp_Wallpaper.jpg", 
     wallpaperStretch: false 
    }) 
}) 
}, 
..... 
+0

重要な情報が欠落しています。ショートカットをレンダリングするコンポーネントは何ですか?これがあなたのショートカット設定ならば、 iconCls: "users-shortcut"、 モジュール: "users-module-window"、 名前: "Users" }これは何に適用されますか? – dbrin

+0

デスクトップアプリケーションにショートカットが追加されました。質問を更新しています。 –

+0

私は理解します。しかし、私はこのアプリに慣れていない、ショートカットアイコンのExtJSコンポーネントタイプを提供できますか?それはボタンの派生物ですか? – dbrin

答えて

0

ショートカットはによって生成されると仮定するとボタンのデリバティブを私はツールチップで行く:shortcut_dataのための 'いくつかのテキスト'設定。

+0

それは意味があります、そして、私が試した最初のことは、そのプロパティをShortcutModelに追加することです。そこには運がない。 –

+0

ツールチップは機能しますか?意味、qtipsは次のように初期化されました:Ext.QuickTips.init(); – dbrin

+0

Senchaデモデスクトップアプリケーションを見てください:[demo desktop](http://docs.sencha.com/ext-js/4-0/#!/example/desktop/desktop.html) –

1

ツールチップのExt.ux.desktop.ShortcutModelにフィールドを追加します。ここでは、qtipTextという名前を付けました。 Ext.uxのinitComponent方法で

shortcut_data.push({ 
      iconCls:  "users-shortcut", 
      module:   "users-module-window", 
      name:   "Users", 
      qtipText:  "Open Users Window" 
     }); 

:あなたのショートカットを定義するとき

Ext.define('Ext.ux.desktop.ShortcutModel', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     { name: 'name' }, 
     { name: 'iconCls' }, 
     { name: 'module' }, 
     { name: 'qtipText' } 
    ] 
}); 

さて、ツールチップの値にこのフィールドを追加します。Ext.ux.desktop.ShortcutModelは次のようになり、今表示し.desktop.Desktopでは、shortcutsViewのitemclickイベントのリスナーがあることがわかります。ただ、itemmouseenterイベントのために別のリスナーを追加します。次のように

me.shortcutsView.on('itemmouseenter', me.onShortcutItemMouseEnter, me); 

は、ハンドラを定義します。

onShortcutItemMouseEnter: function (dataView, record) { 
    if(!dataView.tip) 
     dataView.tip = Ext.create('Ext.tip.ToolTip', { 
      target: dataView.el, 
      delegate: dataView.itemSelector,        
      trackMouse: true, 
      html: record.get('qtipText') 
     }); 
    else 
     dataView.tip.update(record.get('qtipText')); 
}, 

dataView.tip doesntのは初めてで存在し、私たちは、このビューのツールヒントを作成します。後で、ヒントテキストをレコード(マウスが移動したショートカットに対応)に従って更新するだけです。

関連する問題