Thank you so so much. I made the changes to the correct lines and the code works well. I have an additional question about the script UI that has to do with a reset button. I have added the rest button with a function to the script to show the idea. However, I am not sure up to update the UI elements with the reset button. How does the rest take place without closing the UI? #target photoshop;
app.bringToFront();
cTID = function(s) { return cTID[s] || (cTID[s] = app.charIDToTypeID(s)); };
sTID = function(s) { return app.stringIDToTypeID(s); };
function showDialog() {
// DIALOG
// ======
var dialog = new Window("dialog");
dialog.text = "Test UI";
dialog.orientation = "row";
dialog.alignChildren = ["left","top"];
dialog.spacing = 10;
dialog.margins = 16;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.preferredSize.width = 150;
group1.orientation = "column";
group1.alignChildren = ["fill","top"];
group1.spacing = 10;
group1.margins = 0;
group1.alignment = ["left","fill"];
// PANEL1
// ======
var panel1 = group1.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "Checkbox Group";
panel1.orientation = "column";
panel1.alignChildren = ["left","top"];
panel1.spacing = 10;
panel1.margins = 10;
panel1.alignment = ["fill","top"];
dialog.checkbox1 = panel1.add("checkbox", undefined, undefined, {name: "checkbox1"});
dialog.checkbox1.text = "item 1";
dialog.checkbox1.alignment = ["fill","top"];
dialog.checkbox1.value = checkbox1;
dialog.checkbox2 = panel1.add("checkbox", undefined, undefined, {name: "checkbox2"});
dialog.checkbox2.text = "item 2";
dialog.checkbox2.alignment = ["fill","top"];
dialog.checkbox2.value = checkbox2;
// PANEL2
// ======
var panel2 = group1.add("panel", undefined, undefined, {name: "panel2"});
panel2.text = "Radio Button Group";
panel2.orientation = "column";
panel2.alignChildren = ["left","top"];
panel2.spacing = 10;
panel2.margins = 10;
panel2.alignment = ["fill","top"];
dialog.radiobutton1 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton1"});
dialog.radiobutton1.text = "Item 1";
dialog.radiobutton1.alignment = ["fill","top"];
dialog.radiobutton1.value = radiobutton1;
dialog.radiobutton2 = panel2.add("radiobutton", undefined, undefined, {name: "radiobutton2"});
dialog.radiobutton2.text = "Item 2";
dialog.radiobutton2.alignment = ["fill","top"];
dialog.radiobutton2.value = radiobutton2;
// PANEL3
// ======
var panel3 = group1.add("panel", undefined, undefined, {name: "panel3"});
panel3.text = "Edit Text Group";
panel3.orientation = "column";
panel3.alignChildren = ["left","top"];
panel3.spacing = 10;
panel3.margins = 10;
panel3.alignment = ["fill","top"];
dialog.statictext1 = panel3.add("statictext", undefined, undefined, {name: "statictext1"});
dialog.statictext1.text = "Tittle 1";
dialog.statictext1.alignment = ["fill","top"];
dialog.edittext1 = panel3.add('edittext {properties: {name: "edittext1"}}');
dialog.edittext1.text = edittext1 || "Some text 1 ";
dialog.edittext1.alignment = ["fill","top"];
dialog.edittext1.value = edittext1;
dialog.statictext2 = panel3.add("statictext", undefined, undefined, {name: "statictext2"});
dialog.statictext2.text = "Title 2";
dialog.statictext2.alignment = ["fill","top"];
dialog.edittext2 = panel3.add('edittext {properties: {name: "edittext2"}}');
dialog.edittext2.text = edittext2 || "Some text 2";
dialog.edittext2.alignment = ["fill","top"];
dialog.edittext2.value = edittext2;
// GROUP2
// ======
var group2 = dialog.add("group", undefined, {name: "group2"});
group2.orientation = "column";
group2.alignChildren = ["fill","top"];
group2.spacing = 10;
group2.margins = 0;
var ok = group2.add("button", undefined, undefined, {name: "ok"});
ok.text = "OK";
var button1 = group2.add("button", undefined, undefined, {name: "button1"});
button1.text = "Reset";
button1.onClick = function () {
//disable checkbox
dilaog.checkbox1.disable = true;
dilaog.checkbox2.disable = true;
//disable radio button
dilaog.radiobutton1.disable = true;
dilaog.radiobutton2.disable = true;
//deafualt text field
dialog.edittext1.text = "Some text 1";
dialog.edittext2.text = "Some text 2";
}
var cancel = group2.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;
radiobutton1 = dialog.radiobutton1.value;
radiobutton2 = dialog.radiobutton2.value;
edittext1 = dialog.edittext1.text;
edittext2 = dialog.edittext2.text;
};
ok.onClick = function () {
updateParams();
saveSettings();
dialog.close(1);
};
dialog.center();
return dialog.show();
}
// Settings
var checkbox1 = false;
var checkbox2 = false;
var radiobutton1 = false;
var radiobutton2 = false;
var edittext1
var edittext2
//IDs for custom option saving / loading
const settingsID = "exportOptions";
const checkbox1ID = stringIDToTypeID("checkbox1");
const checkbox2ID = stringIDToTypeID("checkbox2");
const radiobutton1ID = stringIDToTypeID("radiobutton1");
const radiobutton2ID = stringIDToTypeID("radiobutton2");
const edittext1ID = stringIDToTypeID("edittext1");
const edittext2ID = stringIDToTypeID("edittext2");
var exportSettings;
try {
exportSettings = app.getCustomOptions(settingsID);
} catch (e) {
saveSettings();
}
if(typeof exportSettings == "undefined") {
saveSettings();
}
function loadSettings() {
exportSettings = app.getCustomOptions(settingsID);
if(exportSettings.hasKey (checkbox1ID))
checkbox1 = exportSettings.getBoolean (checkbox1ID);
if(exportSettings.hasKey (checkbox2ID))
checkbox2 = exportSettings.getBoolean (checkbox2ID);
if(exportSettings.hasKey (radiobutton1ID))
radiobutton1 = exportSettings.getBoolean (radiobutton1ID);
if(exportSettings.hasKey (radiobutton2ID))
radiobutton2 = exportSettings.getBoolean (radiobutton2ID);
if(exportSettings.hasKey (edittext1ID))
edittext1 = exportSettings.getString (edittext1ID);
if(exportSettings.hasKey (edittext2ID))
edittext2 = exportSettings.getString (edittext2ID);
}
function saveSettings() {
//save defaults
var newExportSettings = new ActionDescriptor();
newExportSettings.putBoolean (checkbox1ID, checkbox1);
newExportSettings.putBoolean (checkbox2ID, checkbox2);
newExportSettings.putBoolean (radiobutton1ID, radiobutton1);
newExportSettings.putBoolean (radiobutton2ID, radiobutton2);
newExportSettings.putString (edittext1ID, edittext1);
newExportSettings.putString (edittext2ID, edittext2);
app.putCustomOptions(settingsID,newExportSettings,true);
}
main()
function main(){
try {
//UI parameters
loadSettings();
var result = showDialog();
if(result != 2) {
if(checkbox1){
alert('The checkbox 1 value is '+checkbox1);
}
if(checkbox2) {
alert('The checkbox 2 value is '+checkbox2);
}
if(radiobutton1) {
alert('The radio button 1 value is '+radiobutton1);
}
if(radiobutton2) {
alert('The radio button 2 value is '+radiobutton2);
}
if(edittext1) {
alert('The edit text 1 value is '+edittext1);
}
if(edittext2) {
alert('The edit text 2 value is '+edittext2);
}
}
}
catch (e) {
alert(e + ' ' + e.line);
}
}
... View more