"name" : "ContextMenu",
"guid" : "asc.{0956b700-7940-4b53-c563-aa77cf624ac5}",
"minVersion":"7.4",
"version": "0.0.1",
"description":"Тестовый плагин проверки работы контекстного меню",
"variations" : [
{
"description" : "Пример Starfair Studio",
"url" : "index.html",
"icons": [ "resources/icon.png" ],
"isViewer" : true,
"EditorsSupport" : ["cell"],
"isVisual" : false,
"isModal" : false,
"isInsideMode" : false,
"initDataType" : "",
"initData" : "",
"isUpdateOleOnResize" : false,
"events": ["onContextMenuShow", "onContextMenuClick"],
"buttons" : []
}
]
}
(function (window, undefined) {
window.Asc.plugin.init = function () {
//Здесь пишется код, выполняемый при запуске
};
//Обработка нажатия на системные кнопки (если их добавили в конфигурации)
window.Asc.plugin.button = function (id) {};
//--- Далее вставляем код начиная с этого места
})(window, undefined);
//Присоединение к системному событию создания пунктов своего контекстного меню в момент его показа в редакторе
window.Asc.plugin.attachEvent('onContextMenuShow', function(options) {
if (!options) return;
//Присоединение к контекстному меню через системный вызов
if (options.type === 'Selection' || options.type === 'Target')
this.executeMethod('AddContextMenuItem', [getContextMenuItems()]);
});
//Заполнение пунктов контекстного меню
function getContextMenuItems() {
let settings = {
guid: window.Asc.plugin.guid,
items: [
{
id : 'onCellActionContextMenuMethod',
text : 'Тестовый пункт'
}
]
};
return settings;
};
//Присоединяется к созданному пользовательскому сообщению нажатия на кнопку контекстного меню
window.Asc.plugin.attachContextMenuClickEvent('onCellActionContextMenuMethod', function(data) {
window.Asc.plugin.executeMethod ("GetSelectionType", [], function(sType) {
switch (sType) {
case "text":
window.Asc.plugin.callCommand(function(){
var sel=Api.GetSelection();
if(sel.Text=='test'){// Если содержимое ячейки == 'test', заменяем его на "done!"
sel.SetValue("done!");
}
},undefined,undefined);
break;
default:
break;
}
});
});