check = true}
}
} while (sel = sel.nextTextFrame)
)
Сначала задаем массив из названий присутствующих в публикации стилей:
var myParagraphStyles_names = new Array(); а также идентификаторы фреймов назначения левой и правой полос плюс набор разделителей:
var labels = new Array("L"r "R");
var divs = new Array"»") ; Начинаем с проверок начальных условий, чтобы скрипт работал корректно всегда. Мы должны обеспечить, чтобы, исходя из логики его работы, соблюдались такие условия:
в публикации должен быть выделен только один объект;
он обязан быть текстовым фреймом.
with(app){
if((selection.length!=1)||(selection.length==l && ^ selection[0].constructor.name != "Textframe")){
Иначе - вывод предупреждения и прекращение работы:
alert("Проверьте, чтобы был выделен лишь один текстовый фрейм!"); exit(); }
Вводим еще несколько сокращений: для выделенного фрейма, а также для стилей публикации (не на их реальные названия, это было сделано раньше через переменную myParagraphstyies_names, а на массив, как он хранится в самом InDesign):
var mySelection = app.activeDocument.selection[0];
var myParagraphStyles = app.activeDocuirient.paragraphStyles
Перебираем все существующие в публикации стили и заносим их названия в массив, чтобы потом их вывести в диалоговом окне- иначе пользователь увидит не названия стилей, а их порядковые номера:
for (i=0; i<myParag'raphStyles. length; i++)
myParagraphStyles_name[i] = myParagraphStyles[i].name; Настало время заняться созданием диалогового окна. Оформляем окно:
var myDLG = dialogs.add();
with (myDLG.dialogColumns.add()) {
with (dialogRows.addO.borderPanels.add().dialogColumns.add()) {
На данном этапе мы задали контейнер для всех элементов управления и начинаем их добавлять:
with (dialogRows.add()) {
staticTexts.add({staticLabel: "Искать стиль:"}); Теперь выведем названия всех доступных в публикации стилей myParagraphstyies name (с тем, чтобы пользователь мог выбрать требуемый), в виде раскрывающегося списка:
var DLG_myParagraphStyles = dropdowns.add({stringList: myParagraphStyles_name}); Как правило, в публикации стилей много, поэтому установим стилем по умолчанию (selectedlndex) расположенный в середине списка- в таком случае мы будем меньше путешествовать по списку стилей:
dropdowns[0].selectedlndex = Math.ceil(dropdowns[0].stringList.length/2)
}
Продолжаем наполнять диалоговое окно элементами управления. Настала очередь заняться выбором метода занесения текста в колонтитул:
брать только первый найденный на странице;
последний;
по умолчанию (checkedstate) выберем объединение результатов поиска:
with (myRadioButtons = radiobuttonGroups.add()) {
radiobuttonControls.add({staticLabel:"Первый на стр.1'}); radiobuttonControls.add({staticLabel:"Последний на стр."}); radiobuttonControls.add({checkedState:true, staticLabel:"Все на стр."}) }