Вывод всех стилей в группах в выпадющий список

  • Автор темы Автор темы 1489
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

1489

Участник
Топикстартер
Сообщения
6
Реакции
0
Как вывести в массив все стили абзацев публикации, часть из которых может находится в группах стилей? Нужно это для последующего вывода этого массива в выпадающем списке dropdownlist (ScriptUI). А также как обратиться к нужному стилю в группе, если выбранную строчку в этом выпадающем списке определяют через свойство selection.text? Со стилями находящимися вне групп получается, а вот чтобы со всеми... увы.
 
Еще раз спасибо, то что нужно!
А если усложнить задачу? И вытаскивать стили, которые имеют большую степень вложенности, когда стиль внутри группы, которая внутри группы? Здесь я даже не представляю как ним обращаться.
 
рекурсивный обход
написать функцию, которая возвращает все стили из группы, а потом вызывает саму себя уже для каждой подгруппы
 
покурил немного объектную модель и нашел более простой способ:
Код:
var myArrayStyles = app.activeDocument.allParagraphStyles;
var myStylesId = [];
var myStylesName = [];
for (i=0;i<myArrayStyles.length;i++){
    myStylesName[i] = myArrayStyles[i].name;
    myStylesId[i] = myArrayStyles[i].id;
    }

var w = new Window("dialog", "window");
var myStyleList = w.add("dropdownlist", undefined, myStylesName);
var button = w.add("button", undefined, "Show myStyle", {name: "ok"});
w.center();

if (w.show () == 1){
    main();
}

function main(){
    var myStyle = app.activeDocument.paragraphStyles.itemByID(myStylesId[myStyleList.selection.index]);
    alert (myStyle.name);
}

Недостаток в том, что неизвестно какой группе принадлежит тот или иной стиль
 
ну да, а в случае вложенности надо опять же рекурсивно вызывать parent для parent, пока он не вернет document

возможен ведь и такой вариант
Screenshot 2014-01-09 10.34.14.png
 
Статус
Закрыто для дальнейших ответов.