2011-12-14 4 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

Вам не хватает важной информации. Что такое компонент, который отображает ярлык? Если это вы shortcut config { iconCls: «users-shortcut», модуль: «users-module-window», имя: «Пользователи» } к чему он применяется? – dbrin

+0

Ярлыки добавляются в приложение для настольных компьютеров. Обновление вопроса. –

+0

Я понимаю. Но я не знаком с этим приложением, можете ли вы указать тип компонента ExtJS для ярлыка? Это производная от кнопки? – dbrin

ответ

0

Если предположить, что ярлыки генерируются производную от кнопки я бы пошел со всплывающей подсказкой: «some text» config для shortcut_data.

+0

Это имело бы смысл, и это первое, что я пробовал, включая добавление этого свойства в ShortcutModel. Не повезло. –

+0

делать какие-либо всплывающие подсказки? Смысл: qtips инициализируется с помощью: Ext.QuickTips.init(); – dbrin

+0

Пожалуйста, взгляните на демонстрационное настольное приложение Sencha: [демонстрационный рабочий стол] (http://docs.sencha.com/ext-js/4-0/#!/example/desktop/desktop.html) –

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" 
     }); 

В методе InitComponent из Ext.ux .desktop.Desktop, вы увидите, что есть прослушиватель для события itemclick для shortcutsView. Просто добавьте еще один приемник для 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 оленья кожа существовать в первый раз, и мы создаем подсказку для этого вида. позже мы просто обновляем текст подсказки в соответствии с записью (соответствующий ярлыку, на который переместилась мышь).