In Photoshop and Bridge, I am testing a script UI dialog. In Photoshop the script UI displays correctly and remembers the radiobox and checkbox user values. In Bridge, the script UI dialog fails to display completely and throws a refrecneError on line 192. stryingIDToTypeID is not a function Can someone help me figure out how to avoid the referenceErorr ? The idea is to display the dialog in Bridge with the last user settings. Below are the two sample scripts for Photoshop and Bridge. Photoshop script correct dialog #target photoshop;
// #include "../Hero__Functions-1.2.0.jsx";
// #include "../Hero__FileBuilderSettingsRead-5.2.2.jsx";
app.bringToFront();
cTID = function(s) { return cTID[s] || (cTID[s] = app.charIDToTypeID(s)); };
sTID = function(s) { return app.stringIDToTypeID(s); };
///////////////////////////////////////////////////////
// UI Dialog
///////////////////////////////////////////////////////
function showDialog () {
// DIALOG
// ======
var dialog = new Window("dialog");
dialog.text = "Project Timeline";
dialog.orientation = "row";
dialog.alignChildren = ["left","top"];
dialog.spacing = 10;
dialog.margins = 10;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.orientation = "column";
group1.alignChildren = ["left","top"];
group1.spacing = 10;
group1.margins = 10;
group1.alignment = ["left","center"];
// GROUP2
// ======
var group2 = group1.add("group", undefined, {name: "group2"});
group2.orientation = "row";
group2.alignChildren = ["left","center"];
group2.spacing = 10;
group2.margins = 0;
group2.alignment = ["fill","top"];
// PANEL1
// ======
var panel1 = group2.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "Panel 1";
panel1.orientation = "column";
panel1.alignChildren = ["left","top"];
panel1.spacing = 10;
panel1.margins = 10;
panel1.alignment = ["left","fill"];
dialog.checkbox1 = panel1.add("checkbox", undefined, undefined, {name: "checkbox1"});
dialog.checkbox1.text = "Checkbox";
dialog.checkbox1.value = checkbox1;
dialog.checkbox2 = panel1.add("checkbox", undefined, undefined, {name: "checkbox2"});
dialog.checkbox2.text = "Checkbox";
dialog.checkbox2.value = checkbox2;
dialog.checkbox3 = panel1.add("checkbox", undefined, undefined, {name: "checkbox3"});
dialog.checkbox3.text = "Checkbox";
dialog.checkbox3.value = checkbox3;
// PANEL2
// ======
var panel2 = group2.add("panel", undefined, undefined, {name: "panel2"});
panel2.text = "Panel 2";
panel2.orientation = "column";
panel2.alignChildren = ["left","top"];
panel2.spacing = 10;
panel2.margins = 10;
panel2.alignment = ["left","fill"];
dialog.radiobutton1 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton1"});
dialog.radiobutton1.text = "RadioButton";
dialog.radiobutton1.value = radiobutton1;
dialog.radiobutton2 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton2"});
dialog.radiobutton2.text = "RadioButton";
dialog.radiobutton2.value = radiobutton2;
dialog.radiobutton3 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton3"});
dialog.radiobutton3.text = "RadioButton";
dialog.radiobutton3.value = radiobutton3;
// PANEL3
// ======
var panel3 = group2.add("panel", undefined, undefined, {name: "panel3"});
panel3.text = "Panel 3";
panel3.orientation = "column";
panel3.alignChildren = ["left","top"];
panel3.spacing = 10;
panel3.margins = 10;
panel3.alignment = ["left","fill"];
dialog.radiobutton4 = panel3.add("radiobutton", undefined, undefined, {name: "radiobutton4"});
dialog.radiobutton4.text = "RadioButton";
dialog.radiobutton4.value = radiobutton4;
dialog.radiobutton5 = panel3.add("radiobutton", undefined, undefined, {name: "radiobutton5"});
dialog.radiobutton5.text = "RadioButton";
dialog.radiobutton5.value = radiobutton5;
dialog.radiobutton6 = panel3.add("radiobutton", undefined, undefined, {name: "radiobutton6"});
dialog.radiobutton6.text = "RadioButton";
dialog.radiobutton6.value = radiobutton6;
// GROUP3
// ======
var group3 = dialog.add("group", undefined, {name: "group3"});
group3.orientation = "column";
group3.alignChildren = ["left","top"];
group3.spacing = 10;
group3.margins = 0;
var ok = group3.add("button", undefined, undefined, { name: "ok" });
ok.text = "OK";
var reset = group3.add("button", undefined, undefined, { name: "reset" });
reset.text = "Reset";
var cancel = group3.add("button", undefined, undefined, { name: "cancel" });
cancel.text = "Cancel";
//update the params and save them off on close
function updateParams() {
checkbox1 = dialog.checkbox1.value;
checkbox2 = dialog.checkbox2.value;
checkbox3 = dialog.checkbox3.value;
radiobutton1 = dialog.radiobutton1.value;
radiobutton2 = dialog.radiobutton2.value;
radiobutton3 = dialog.radiobutton3.value;
radiobutton4 = dialog.radiobutton4.value;
radiobutton5 = dialog.radiobutton5.value;
radiobutton6 = dialog.radiobutton6.value;
};
reset.onClick = function() {
dialog.checkbox1.value = false;
dialog.checkbox2.value = false;
dialog.checkbox3.value = false;
dialog.radiobutton1.value = false;
dialog.radiobutton2.value = false;
dialog.radiobutton3.value = false;
dialog.radiobutton4.value = false;
dialog.radiobutton5.value = false;
dialog.radiobutton6.value = false;
}
ok.onClick = function () {
updateParams();
saveSettings();
dialog.close(1);
};
dialog.center();
return dialog.show();
}
//showDialog()
///////////////////////////////////////////////////////
// UI Dialog Save Parameters
///////////////////////////////////////////////////////
// Settings.
var checkbox1 = false;
var checkbox2 = false;
var checkbox3 = false;
var radiobutton1 = false;
var radiobutton2 = false;
var radiobutton3 = false;
var radiobutton4 = false;
var radiobutton5 = false;
var radiobutton6 = false;
//IDs for custom option saving / loading
const settingsID = "exportOptions";
const checkbox1ID = stringIDToTypeID("checkbox1");
const checkbox2ID = stringIDToTypeID("checkbox2");
const checkbox3ID = stringIDToTypeID("checkbox3");
const radiobutton1ID = stringIDToTypeID("radiobutton1");
const radiobutton2ID = stringIDToTypeID("radiobutton2");
const radiobutton3ID = stringIDToTypeID("radiobutton3");
const radiobutton4ID = stringIDToTypeID("radiobutton4");
const radiobutton5ID = stringIDToTypeID("radiobutton5");
const radiobutton6ID = stringIDToTypeID("radiobutton6");
//try and load previous settings
//var testDoc = app.activeDocument;
var exportSettings;
try {
exportSettings = app.getCustomOptions(settingsID);
} catch (e) {
saveSettings();
}
if(typeof exportSettings == "undefined") {
saveSettings();
}
///////////////////////////////////////////////////////
// FUNCTIONS
///////////////////////////////////////////////////////
function loadSettings() {
//alert('step 1b')
// check for previously saved dialog options
// exclude layer group name and feather value
exportSettings = app.getCustomOptions(settingsID);
if(exportSettings.hasKey (checkbox1ID))
checkbox1 = exportSettings.getBoolean (checkbox1ID);
if(exportSettings.hasKey (checkbox2ID))
checkbox2 = exportSettings.getBoolean (checkbox2ID);
if(exportSettings.hasKey (checkbox3ID))
checkbox3 = exportSettings.getBoolean (checkbox3ID);
if(exportSettings.hasKey (radiobutton1ID))
radiobutton1 = exportSettings.getBoolean (radiobutton1ID);
if(exportSettings.hasKey (radiobutton2ID))
radiobutton2 = exportSettings.getBoolean (radiobutton2ID);
if(exportSettings.hasKey (radiobutton3ID))
radiobutton3 = exportSettings.getBoolean (radiobutton3ID);
if(exportSettings.hasKey (radiobutton4ID))
radiobutton4 = exportSettings.getBoolean (radiobutton4ID);
if(exportSettings.hasKey (radiobutton5ID))
radiobutton5 = exportSettings.getBoolean (radiobutton5ID);
if(exportSettings.hasKey (radiobutton6ID))
radiobutton6 = exportSettings.getBoolean (radiobutton6ID);
}
function saveSettings() {
//save defaults
var newExportSettings = new ActionDescriptor();
newExportSettings.putBoolean (checkbox1ID, checkbox1);
newExportSettings.putBoolean (checkbox2ID, checkbox2);
newExportSettings.putBoolean (checkbox3ID, checkbox3);
newExportSettings.putBoolean (radiobutton1ID, radiobutton1);
newExportSettings.putBoolean (radiobutton2ID, radiobutton2);
newExportSettings.putBoolean (radiobutton3ID, radiobutton3);
newExportSettings.putBoolean (radiobutton4ID, radiobutton4);
newExportSettings.putBoolean (radiobutton5ID, radiobutton5);
newExportSettings.putBoolean (radiobutton6ID, radiobutton6);
app.putCustomOptions(settingsID,newExportSettings,true);
}
//UI parameters
loadSettings();
var result = showDialog();
if(result != 2) {
alert('test');
}
Bridge script with referenceError #target bridge
cTID = function(s) { return cTID[s] || (cTID[s] = app.charIDToTypeID(s)); };
sTID = function(s) { return app.stringIDToTypeID(s); };
if( BridgeTalk.appName == "bridge" ) {
addInfo = new MenuElement("command", "Menu UI Test", "at the end of Tools");
}
addInfo .onSelect = function () {
myFunction();
}
function myFunction(){
alert('Test')
///////////////////////////////////////////////////////
// UI Dialog
///////////////////////////////////////////////////////
function showDialog () {
// DIALOG
// ======
var dialog = new Window("dialog");
dialog.text = "Project Timeline";
dialog.orientation = "row";
dialog.alignChildren = ["left","top"];
dialog.spacing = 10;
dialog.margins = 10;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.orientation = "column";
group1.alignChildren = ["left","top"];
group1.spacing = 10;
group1.margins = 10;
group1.alignment = ["left","center"];
// GROUP2
// ======
var group2 = group1.add("group", undefined, {name: "group2"});
group2.orientation = "row";
group2.alignChildren = ["left","center"];
group2.spacing = 10;
group2.margins = 0;
group2.alignment = ["fill","top"];
// PANEL1
// ======
var panel1 = group2.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "Panel 1";
panel1.orientation = "column";
panel1.alignChildren = ["left","top"];
panel1.spacing = 10;
panel1.margins = 10;
panel1.alignment = ["left","fill"];
dialog.checkbox1 = panel1.add("checkbox", undefined, undefined, {name: "checkbox1"});
dialog.checkbox1.text = "Checkbox";
dialog.checkbox1.value = checkbox1;
dialog.checkbox2 = panel1.add("checkbox", undefined, undefined, {name: "checkbox2"});
dialog.checkbox2.text = "Checkbox";
dialog.checkbox2.value = checkbox2;
dialog.checkbox3 = panel1.add("checkbox", undefined, undefined, {name: "checkbox3"});
dialog.checkbox3.text = "Checkbox";
dialog.checkbox3.value = checkbox3;
// PANEL2
// ======
var panel2 = group2.add("panel", undefined, undefined, {name: "panel2"});
panel2.text = "Panel 2";
panel2.orientation = "column";
panel2.alignChildren = ["left","top"];
panel2.spacing = 10;
panel2.margins = 10;
panel2.alignment = ["left","fill"];
dialog.radiobutton1 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton1"});
dialog.radiobutton1.text = "RadioButton";
dialog.radiobutton1.value = radiobutton1;
dialog.radiobutton2 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton2"});
dialog.radiobutton2.text = "RadioButton";
dialog.radiobutton2.value = radiobutton2;
dialog.radiobutton3 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton3"});
dialog.radiobutton3.text = "RadioButton";
dialog.radiobutton3.value = radiobutton3;
// PANEL3
// ======
var panel3 = group2.add("panel", undefined, undefined, {name: "panel3"});
panel3.text = "Panel 3";
panel3.orientation = "column";
panel3.alignChildren = ["left","top"];
panel3.spacing = 10;
panel3.margins = 10;
panel3.alignment = ["left","fill"];
dialog.radiobutton4 = panel3.add("radiobutton", undefined, undefined, {name: "radiobutton4"});
dialog.radiobutton4.text = "RadioButton";
dialog.radiobutton4.value = radiobutton4;
dialog.radiobutton5 = panel3.add("radiobutton", undefined, undefined, {name: "radiobutton5"});
dialog.radiobutton5.text = "RadioButton";
dialog.radiobutton5.value = radiobutton5;
dialog.radiobutton6 = panel3.add("radiobutton", undefined, undefined, {name: "radiobutton6"});
dialog.radiobutton6.text = "RadioButton";
dialog.radiobutton6.value = radiobutton6;
// GROUP3
// ======
var group3 = dialog.add("group", undefined, {name: "group3"});
group3.orientation = "column";
group3.alignChildren = ["left","top"];
group3.spacing = 10;
group3.margins = 0;
var ok = group3.add("button", undefined, undefined, { name: "ok" });
ok.text = "OK";
var reset = group3.add("button", undefined, undefined, { name: "reset" });
reset.text = "Reset";
var cancel = group3.add("button", undefined, undefined, { name: "cancel" });
cancel.text = "Cancel";
//update the params and save them off on close
function updateParams() {
checkbox1 = dialog.checkbox1.value;
checkbox2 = dialog.checkbox2.value;
checkbox3 = dialog.checkbox3.value;
radiobutton1 = dialog.radiobutton1.value;
radiobutton2 = dialog.radiobutton2.value;
radiobutton3 = dialog.radiobutton3.value;
radiobutton4 = dialog.radiobutton4.value;
radiobutton5 = dialog.radiobutton5.value;
radiobutton6 = dialog.radiobutton6.value;
};
reset.onClick = function() {
dialog.checkbox1.value = false;
dialog.checkbox2.value = false;
dialog.checkbox3.value = false;
dialog.radiobutton1.value = false;
dialog.radiobutton2.value = false;
dialog.radiobutton3.value = false;
dialog.radiobutton4.value = false;
dialog.radiobutton5.value = false;
dialog.radiobutton6.value = false;
}
ok.onClick = function () {
updateParams();
saveSettings();
dialog.close(1);
};
dialog.center();
return dialog.show();
}
//showDialog()
try {
///////////////////////////////////////////////////////
// UI Dialog Save Parameters
///////////////////////////////////////////////////////
// Settings.
var checkbox1 = false;
var checkbox2 = false;
var checkbox3 = false;
var radiobutton1 = false;
var radiobutton2 = false;
var radiobutton3 = false;
var radiobutton4 = false;
var radiobutton5 = false;
var radiobutton6 = false;
//IDs for custom option saving / loading
const settingsID = "exportOptions";
const checkbox1ID = stringIDToTypeID("checkbox1");
const checkbox2ID = stringIDToTypeID("checkbox2");
const checkbox3ID = stringIDToTypeID("checkbox3");
const radiobutton1ID = stringIDToTypeID("radiobutton1");
const radiobutton2ID = stringIDToTypeID("radiobutton2");
const radiobutton3ID = stringIDToTypeID("radiobutton3");
const radiobutton4ID = stringIDToTypeID("radiobutton4");
const radiobutton5ID = stringIDToTypeID("radiobutton5");
const radiobutton6ID = stringIDToTypeID("radiobutton6");
//try and load previous settings
//var testDoc = app.activeDocument;
var exportSettings;
try {
exportSettings = app.getCustomOptions(settingsID);
} catch (e) {
saveSettings();
}
if(typeof exportSettings == "undefined") {
saveSettings();
}
///////////////////////////////////////////////////////
// FUNCTIONS
///////////////////////////////////////////////////////
function loadSettings() {
//alert('step 1b')
// check for previously saved dialog options
// exclude layer group name and feather value
exportSettings = app.getCustomOptions(settingsID);
if(exportSettings.hasKey (checkbox1ID))
checkbox1 = exportSettings.getBoolean (checkbox1ID);
if(exportSettings.hasKey (checkbox2ID))
checkbox2 = exportSettings.getBoolean (checkbox2ID);
if(exportSettings.hasKey (checkbox3ID))
checkbox3 = exportSettings.getBoolean (checkbox3ID);
if(exportSettings.hasKey (radiobutton1ID))
radiobutton1 = exportSettings.getBoolean (radiobutton1ID);
if(exportSettings.hasKey (radiobutton2ID))
radiobutton2 = exportSettings.getBoolean (radiobutton2ID);
if(exportSettings.hasKey (radiobutton3ID))
radiobutton3 = exportSettings.getBoolean (radiobutton3ID);
if(exportSettings.hasKey (radiobutton4ID))
radiobutton4 = exportSettings.getBoolean (radiobutton4ID);
if(exportSettings.hasKey (radiobutton5ID))
radiobutton5 = exportSettings.getBoolean (radiobutton5ID);
if(exportSettings.hasKey (radiobutton6ID))
radiobutton6 = exportSettings.getBoolean (radiobutton6ID);
}
function saveSettings() {
//save defaults
var newExportSettings = new ActionDescriptor();
newExportSettings.putBoolean (checkbox1ID, checkbox1);
newExportSettings.putBoolean (checkbox2ID, checkbox2);
newExportSettings.putBoolean (checkbox3ID, checkbox3);
newExportSettings.putBoolean (radiobutton1ID, radiobutton1);
newExportSettings.putBoolean (radiobutton2ID, radiobutton2);
newExportSettings.putBoolean (radiobutton3ID, radiobutton3);
newExportSettings.putBoolean (radiobutton4ID, radiobutton4);
newExportSettings.putBoolean (radiobutton5ID, radiobutton5);
newExportSettings.putBoolean (radiobutton6ID, radiobutton6);
app.putCustomOptions(settingsID,newExportSettings,true);
}
//UI parameters
loadSettings();
var result = showDialog();
if(result != 2) {
alert('test');
}
} catch (e) {
alert(e + ' ' + e.line)
}
}
... View more