Размещение текста в диалоговом окне Javascript - PullRequest
0 голосов
/ 20 сентября 2019

Отрабатывая шаблон для цифрового штампа, используемого в программе разметки PDF под названием Bluebeam, и у меня возникают проблемы с определением места в коде и какой функции использовать для вставки простого текста в диалоговое окно Javascript (см.красный текст ниже даты прикрепленного изображения).Есть глобальный сценарий и сценарий расчета (сценарий расчета расположен в скрытом текстовом поле на марке).Извините, если на такой вопрос ответили в другом месте на этом сайте;Я не слишком уверен, какой жаргон кодирования использовать мой поиск.Кроме того, Bluebeam, очевидно, использует Adobe API, если это вообще полезно.

Спасибо.

https://imgur.com/gallery/7Y3HvAh

//GLOBAL SCRIPT

var builder =
{
textBoxes :
[   
    { field:"Date", description:"Date:", default:function() 
        {  
            var curDate = new Date();
            return ('0' + (curDate.getMonth() + 1)).slice(-2) + "/" + curDate.getDate() + "/" + curDate.getFullYear();
        } 
    }
],
}

//CALCULATION FIELD

if (event.source.forReal)
{

if (!TryUseStoredSettings())
{
    var stampDialog = CreateDialog(builder);
    app.execDialog(stampDialog);    

    this.getField(builder.listGroup).value = stampDialog.listSelection;
    for (var i = 0; i < builder.textBoxes.length; ++i)
    {
        var t = builder.textBoxes[i];
        this.getField(t.field).value = stampDialog.textBoxResults[i];
    }
    StoreSettings(stampDialog);     
}
}

function TryUseStoredSettings()
{

console.println("TryUseStoredSettings");

var globals = new Array();
for (var g in global)
    globals.push(g);

if (globals.indexOf("lastStamp") < 0 || globals.indexOf("lastFile") < 0)
    return false;

if (this.path == global.lastStamp && event.source.source.path == global.lastFile)
{
    this.getField(builder.listGroup).value = global.lastlistSelection;
    for (var i = 0; i < builder.textBoxes.length; ++i)
    {
        var t = builder.textBoxes[i];
        this.getField(t.field).value = global["lastTextBox" + i];
    }

    console.println("return true");
    return true;
}

console.println("return false");
return false;
}

function StoreSettings(stampDialog)
{
console.println("StoreSettings");
global.lastStamp = this.path;
global.lastFile = event.source.source.path;
global.lastlistSelection = stampDialog.listSelection;
for (var i = 0; i < builder.textBoxes.length; ++i)
{
    var t = builder.textBoxes[i];
    global["lastTextBox" + i] =  stampDialog.textBoxResults[i];     
}
}

function CreateDialog(dialogBuilder)

{
var sd = new Object();
sd.builder = dialogBuilder;
sd.radioSelection = "";
sd.listSelection = "";
sd.textBoxResults = new Array();

var listElements = new Array();

listElements[0] =
{
    type: "list_box",
    item_id: "listboxItems",
    field: sd.builder.listGroup,
    width: 250
};

var listCluster =
{
    type: "cluster",
    name: builder.listGroup,
    elements: listElements
};

var optionsElements = new Array();  

for (var i = 0; i < dialogBuilder.textBoxes.length; ++i)
{
    var view = new Object();        
    view.type = "view";
    view.align_children = "align_row";
    view.elements = new Array();

    var t = dialogBuilder.textBoxes[i];

    var s = new Object();
    s.type = "static_text";
    s.item_id = "sta" + i;
    s.name = t.description;
    s.width = 90;       

    var e = new Object();
    e.type = "edit_text";
    e.item_id = "edt" + i;
    e.width = 150;

    view.elements[0] = s;
    view.elements[1] = e;       

    optionsElements[i] = view;
}

var optionsCluster = 
{
    type: "cluster",
    name: "Please enter date in MM/DD/YYYY format.",
    elements: optionsElements
};

sd.initialize = function(dialog)
{
    var init = new Object();

    for (var i = 0; i < this.builder.textBoxes.length; ++i)
    {
        var t = this.builder.textBoxes[i];
        var id = "edt" + i;         
        init[id] = t.default();
    }

    dialog.load(init);
    dialog.load(this.builder.listItems[0]);
};

sd.commit = function(dialog)
{
    var res = dialog.store();

    for (var i = 0; i < this.builder.textBoxes.length; ++i)
    {
        var t = this.builder.textBoxes[i];
        var id = "edt" + i;
        this.textBoxResults[i] = res[id];
    }

    for (var i in res["listboxItems"])
    if (res["listboxItems"][i] >0)
    {
        this.listSelection = i;
    }
};

sd.description = 
{
    name: "Acceptance Stamp",
    elements:
    [
        {
            type: "view",
            align_children: "align_fill",
            elements:
            [
                listCluster,
                optionsCluster
            ]
        },
        {
            type: "ok"
        }
    ]
};

return sd;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...