Page 1 of 1

GenericUI - ESC handling

Posted: Tue Jun 22, 2010 8:57 am
by undavide
Hi,
I've setup a project based on GenericUI batch window: my process function contains a error handling section like that:

Code: Select allcatch(e)
  {
   if (e.number == 8007) {
      alert ("The script has been halted! You will now get back to your original, untouched image.")
  // duplicate document is closed without saving, etc
  }

The problem is that, within the batch, a single ESC key press actually stops the elaboration of one image, but the batch still goes on, opening the following file.
How could I link the error handling of my process function to the error handling of the batch? So that the batch comes up with its own alert and then quit.
Thanks in advance,

Davide

GenericUI - ESC handling

Posted: Wed Jun 23, 2010 2:40 pm
by xbytor
GenericUI doesn't have direct batch support.

How are you actually doing the batch? Via the JS DOM or using File > Automate > Batch?

GenericUI - ESC handling

Posted: Wed Jun 23, 2010 3:20 pm
by undavide
Sorry X,
I should have written: based on the SampleUI (which makes use of GenericUI).

Davide

GenericUI - ESC handling

Posted: Wed Jun 23, 2010 3:45 pm
by xbytor
For the batch loop, something like this is what you might want to do.

Note that I haven't tested this :)

Code: Select all  var errors = [];

  for (var i = 0; i < files.length; i++) {  // for each file
    var file = files;
    try {

      var doc = app.open(file);
      // process the document

    } catch (e) {
       if (e.number == 8007) {
        alert ("The script has been halted! You will now get back to your original, untouched image.");

        // duplicate document is closed without saving, etc
        } else {
          var msg = "Error: " + doc.name + ' :: ' + Stdlib.exceptionMessage(e);
          errors.push(msg);
        }

        doc.close(SaveOptions.DONOTSAVECHANGES);
     }
  }

  if (errors.length > 0) {
    alert(errors.length + " errors occurred: " + errors.join('\n');
  }