Как убедиться, что пункты меню плагинов правильно выделены серым или нет (включено / отключено) (javascript, Adobe Bridge) - PullRequest
0 голосов
/ 03 декабря 2018

Я делаю несколько плагинов Adobe Bridge (CS 5.1).

Моя проблема заключается в том, что я не могу понять, как обеспечить, чтобы соответствующие пункты меню были серыми, если пользователь не выбрал допустимые пункты длясценарий.
Я могу достичь желаемого состояния, кодируя что-то вроде

function greyOutMenu () {
    var doc = application.document;
    var these = [];
    these = doc.selections;
    menuItem.enabled = true;
    if ( these.length < 1 ) {
        menuItem.enabled = false;
        return;
    }
    for ( var i in these ) {
        if ( these[i] /* is invalid */ ) { menuItem.enabled = false;
        return;
    }
}

, но как мне заставить эту проверку запускаться непосредственно при открытии меню?Если я использую

myMenu.onSelect = greyOutMenu();

Он просто запускает проверку при запуске, а не при открытии меню!

1 Ответ

0 голосов
/ 07 декабря 2018

Хорошо, я понял, что случилось.Я изменил его на ...

function greyOutMenu () {
    var doc = app.document;
    var here = doc.presentationPath;
    var thisFolder = Folder ( here );

    if ( decodeURI ( thisFolder.name ) === "correct folder name" ) { menuItem.enabled = true; }
    else { menuItem.enabled = false; }
    if (!app.document.selectionsLength > 0 ) { menuItem.enabled = false; }
}
menuItem.onDisplay = greyOutMenu;

Я мог бы поклясться, что уже пробовал menuItem.onDisplay, но я, должно быть, допустил синтаксическую ошибку.

Кроме того, в моем случаедостаточно оказаться в нужной папке и выбрать что-то, поскольку файлы добавляются непосредственно камерой.Вместо этого к самой функции добавляются более сложные проверки, чтобы предотвратить заикание при каждом открытии меню.

...