Take the code out of table 1’s Array Controller. Put a property in your AS called tableData, and bind table 1’s Array Controller to it. In your applicationWillFinishLaunching_ handler set tableData to a list of records:
set my tableData to {{firstName:“John”,lastName:“Smith”},…}
Now when you want to change the contents of table 1, you just change the value of my tableData (and not by using “set end of… to…”). So:
set my tableData to {{firstName:“Jane”,lastName:“Doe”}} & tableData
You won’t be able to bind to prefs as well, but scripting prefs is is easier than scripting table contents.