ExtJS 4 desktop - как установить всплывающую подсказку на рабочем столе - PullRequest
2 голосов
/ 15 декабря 2011

Какой лучший способ установить всплывающую подсказку для ярлыка на рабочем столе?

В моем getDesktopConfig () я создаю массив данных ярлыка с полями iconCls, module, name.Вот пример добавления ярлыка модуля Users в массив, а затем установка массива в качестве свойства данных хранилища ярлыков, которое используется для создания ярлыков на рабочем столе:

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
    })
})
},
.....

Ответы [ 2 ]

1 голос
/ 29 октября 2013

Добавьте поле в Ext.ux.desktop.ShortcutModel для вашей подсказки.Здесь я назвал его qtipText.Ext.ux.desktop.ShortcutModel show теперь выглядит так:

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

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

0 голосов
/ 15 декабря 2011

Предполагая, что ярлыки генерируются производной от кнопки, я бы выбрал всплывающую подсказку: «текстовый» конфиг для shortcut_data.

...