Skip to main content
M.Hasanin
Inspiring
August 12, 2022
Answered

I Cant Save Script UI Setting using Script Labels

  • August 12, 2022
  • 1 reply
  • 424 views

Hello Experts, please help me to identify the problem, it doesnt save user entries when selecting from dropdown index!, i dont know what wrong i do?! , its my first time trying to save user setting from UI, here is the simple code :

//Save User UI Setting
var savedUISettings = eval(app.extractLabel("usersettings"));

//Simple Dialog
var doc = app.documents[0];
var w = new Window ("dialog");
w.preferredSize.width = 320;
w.text = "Select Currency";


var myBinding = [
    "Ignore", 
    "Right to Left", 
    "Left to Right"
                        ];   
                             
var myCurrecy = [
            "$",
            "£",
            "€",
            "¥"
                        ]; 
                             
var myTitle = w.add ("statictext", undefined, "Select Your Binding and Currenc :");
var myDropdown1 = w.add ("dropdownlist", undefined, myBinding);
var myDropdown2 = w.add ("dropdownlist", undefined, myCurrecy);

myDropdown1.selection = 1;
myDropdown2.selection = 3;

//Buttons
var buttons = w.add ("group")
buttons.add ("button", undefined, "OK");
buttons.add ("button", undefined, "Cancel");

var a = w.show()
if(a == 2){
      exit(0);
        // Save UI User Settings
        var userChoice = {
        myDropdown1 : myDropdown1.selection,
        myDropdown2 : myDropdown2.selection,
        }
        app.insertLabel("usersettings", userChoice.toSource());
}

 

This topic has been closed for replies.
Correct answer brian_p_dts

Here's how I would do it: 

//Save User UI Setting

var savedUISettings = eval(app.extractLabel("usersettings"));
if (!savedUISettings) {
    savedUISettings = [0,0];
}

//Simple Dialog
var doc = app.documents[0];
var w = new Window ("dialog");
w.preferredSize.width = 320;
w.text = "Select Currency";


var myBinding = [
    "Ignore", 
    "Right to Left", 
    "Left to Right"
];   
                             
var myCurrecy = [
            "$",
            "£",
            "€",
            "¥"
]; 
                             
var myTitle = w.add ("statictext", undefined, "Select Your Binding and Currenc :");
var myDropdown1 = w.add ("dropdownlist", undefined, myBinding);
var myDropdown2 = w.add ("dropdownlist", undefined, myCurrecy);

myDropdown1.selection = savedUISettings[0];
myDropdown2.selection = savedUISettings[1];

//Buttons
var buttons = w.add ("group")
buttons.add ("button", undefined, "OK");
buttons.add ("button", undefined, "Cancel");

if (w.show()) {
    var userSettings = [myDropdown1.selection.index, myDropdown2.selection.index];
    app.insertLabel("usersettings", (userSettings.toSource()));
}

1 reply

brian_p_dts
Community Expert
brian_p_dtsCommunity ExpertCorrect answer
Community Expert
August 12, 2022

Here's how I would do it: 

//Save User UI Setting

var savedUISettings = eval(app.extractLabel("usersettings"));
if (!savedUISettings) {
    savedUISettings = [0,0];
}

//Simple Dialog
var doc = app.documents[0];
var w = new Window ("dialog");
w.preferredSize.width = 320;
w.text = "Select Currency";


var myBinding = [
    "Ignore", 
    "Right to Left", 
    "Left to Right"
];   
                             
var myCurrecy = [
            "$",
            "£",
            "€",
            "¥"
]; 
                             
var myTitle = w.add ("statictext", undefined, "Select Your Binding and Currenc :");
var myDropdown1 = w.add ("dropdownlist", undefined, myBinding);
var myDropdown2 = w.add ("dropdownlist", undefined, myCurrecy);

myDropdown1.selection = savedUISettings[0];
myDropdown2.selection = savedUISettings[1];

//Buttons
var buttons = w.add ("group")
buttons.add ("button", undefined, "OK");
buttons.add ("button", undefined, "Cancel");

if (w.show()) {
    var userSettings = [myDropdown1.selection.index, myDropdown2.selection.index];
    app.insertLabel("usersettings", (userSettings.toSource()));
}
M.Hasanin
M.HasaninAuthor
Inspiring
August 12, 2022

@brian_p_dts , That was smart!, Thanks a lot for your help, i wish you a great day

Mohammad Hasanin