2011-12-14 52 views
2

設置桌面快捷方式的工具提示的最佳方式是什麼?ExtJS 4桌面 - 如何設置桌面快捷方式工具提示

在我的getDesktopConfig()中,我創建了一個帶有字段iconCls,模塊,名稱的快捷數據數組。下面是增加一個用戶模塊的快捷方式到陣列,然後設置陣列作爲快捷方式的數據存儲,其被用於創建桌面快捷方式的數據屬性的示例:

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

您錯過了一條重要的信息。呈現快捷方式的組件是什麼?如果這是你的快捷方式配置圖標Cls:「用戶快捷方式」, 模塊:「用戶模塊窗口」, 名稱:「用戶」 }它適用於什麼? – dbrin 2011-12-15 00:11:46

+0

快捷方式已添加到桌面應用程序中。更新問題。 – 2011-12-15 00:23:24

回答

0

假設快捷方式通過產生一個按鈕的派生我會用tooltip:'一些文本'配置爲shortcut_data。

1

爲您的工具提示添加一個字段到Ext.ux.desktop.ShortcutModel。在這裏,我已經命名爲qtipText。 Ext.ux.desktop.ShortcutModel秀現在這個樣子:

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

現在,當你定義的快捷方式,與附加價值這一領域的工具提示:

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

在Ext.ux的initComponent方法.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犯規存在,我們創造了這個觀點的工具提示。稍後,我們根據記錄更新提示文本(對應於鼠標移過的快捷方式)。