Skip to main content
1-Visitor
November 5, 2012
Question

Non-blocking popup with ACL?

  • November 5, 2012
  • 4 replies
  • 1407 views
Related to my earlier thread about looping over files, I'd like to popup a dialog telling the user that the work is happening (in a big directory, it can take a while). The best option I've found for that is response, but it requires a response, so it blocks the rest of the script. Is creating a dialog box in XUI be the best option? Would that work?

Steve

    4 replies

    18-Opal
    November 5, 2012
    Hi Steve--



    You might try using the "eval" command, which will pop up a log window
    and display your message, something like this:



    eval "processing directory " . $dir . " to check for XPath expression "
    . $xpath output=>*;



    The last bit (output=>*) tells it that you want the output to go to the
    log window, and to be appended to any contents already there.



    The log window won't block execution.



    --Clay





    Clay Helberg

    Senior Consultant

    TerraXML


    1-Visitor
    November 5, 2012
    If you are popping up a dialog, that must mean that the user is watching. If the user is watching, what's the problem with asking him/her to click on an "OK" button? Or do you want this to run with or without human monitoring?
    The "message" command might work better for that. However, if the text is short enough to fit in the Arbortext window message area in the lower border of the window, it will. So you need to make sure the message is big enough to cause a separate dialog to appear.
    1-Visitor
    November 5, 2012
    Ed, what I'd really like is a progress bar, which is what I should have posted originally rather than asking for a popup.

    Clay, nifty solution.

    Steve
    18-Opal
    November 5, 2012
    If you want a progress bar, you might be able to use something like this:



    function pbar(pct) {

    local n = (pct * 20) / 100;

    response("n is " . n);

    local bar = ";

    for (i=0; i < n; i++) {

    bar .= "█";

    }

    window_set(current_window(),"message",bar);

    window_update();

    }



    You'll need to call this function and pass it the status value (% completed) whenever you want to update the progress bar.



    --Clay



    Clay Helberg

    Senior Consultant

    TerraXML