Indeterminate progress bar

There is an ancient thread on the subject already, but with no answer, so i decided instead of ressurecting that one to start a new qestion?
How to create a indeterminate progress bar, when you can't update/acces the palette with te script (for example when exporting a few very large documents).
I know Marc managed this kind of voodoo sometime ago, but i don't know if he is willing to share the trick, as it has been incorporated in some of his paid scripts.
So.. does anyone else have any ideea how it can be achieved?
I have been triying to use a embeded swf as a progress bar in a palette, but the palette only gets updated something like "onIdle".

I have to do the other stuff in another thread because otherwise the progress bar doesn't work right, yeah its really stupid. It is of note that this code is called from a GUI interface. Because I am calling this progbar from the GUI, it executes the progress on that thread. The only problem is that nothing else can be run on that thread when the progress bar is working, so rather than call a method, I have to create a whole new thread to do the operation.
Edited by: gatty790 on Nov 22, 2007 12:06 PM

Similar Messages

  • Displaying an Indeterminate Progress Bar While a DB2 Stored Proceedure Runs

    How do I display a dialog with an indeterminate progress bar while a DB2 query runs? Could anyone point me to an example or some strong docs?
    I learned Java about six months ago, so I'm relatively new to the language. Through searching and documentation, I've been able to find all the examples and answers I've needed so far. Now I've run into an issue I can't find anywhere. It seems like the most basic thing in the world. I have a DB2 stored procedure that takes about 5 minutes to run. While it's running, I want to display a simple dialog with a progress bar going back and forth (no buttons, no user interaction).
    I'm using Eclipse 3.3.1.1 as my IDE, and running the application from a JAR file. I have Java 1.6.0.30 installed. The DB2 query is running in response to a user clicking a button on the form (an ActionEvent). All of my forms are using Swing (JFrame, JDialog, etc.).
    The crux of my problem seems to be that I can bring up a dialog (which should contain the progress bar), but I can't get it to paint. All I get is a window that's the right size/location, but contains an after-image of what was behind it. I can't even get a dialog to display with a "Please Wait" label while the DB2 procedure runs.
    I tried separating both the DB2 stored procedure and the progress dialog into separate threads. I tried yielding in the DB2 thread to give the progress dialog a chance to update. I tried using invokeAndWait, but I got the following error:
    Exception in thread "AWT-EventQueue-0" java.lang.Error: Cannot call invokeAndWait from the event dispatcher thread
    It seems like I'm doing something wrong in my use of Theads, but I can't for the life of me figure out what it is. If anyone could help out a bit of a Java newbie, I would be extremely grateful.

    Demo:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class ProgressBarExample2 {
        private JProgressBar bar = new JProgressBar(0,99);
        private JButton button = new JButton("Lengthy operation");
        private ActionListener al = new ActionListener(){
           public void actionPerformed(ActionEvent evt) {
                button.setEnabled(false);
                bar.setIndeterminate(true);
                new Worker().execute();
        private class Worker extends SwingWorker<Boolean, Boolean>{
            protected Boolean doInBackground() {
                try {
                    Thread.sleep(10000); //10 secs
                } catch (InterruptedException e) {
                return Boolean.TRUE;
            protected void done() {
                button.setEnabled(true);
                bar.setIndeterminate(false);
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new ProgressBarExample2();
        ProgressBarExample2() {
            button.addActionListener(al);
            JPanel cp = new JPanel();
            cp.add(button);
            cp.add(bar);
            JFrame f = new JFrame("ProgressBarExample2");
            f.setContentPane(cp);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.pack();
            f.setLocationRelativeTo(null);
            f.setVisible(true);
    }

  • Indeterminate progress bar in JTable?

    Hi,
    Does anybody know why my code isn't working? It does not display an indeterminate progress bar in the column I have set my cell renerer to.
    Here is my code
    public void setTableReneders()
            TableColumn col = _Table.getColumnModel().getColumn(2);
            col.setCellRenderer(new ProgessBarRenderer(0, true));
    public class ProgessBarRenderer extends JProgressBar implements TableCellRenderer {
            // This method is called each time a cell in a column
            // using this renderer needs to be rendered.
            public int _Progress = 0;
            public boolean _InDer = false;
            public ProgessBarRenderer(int progress, boolean inDer)
                _InDer = inDer;
                _Progress = progress;
            public Component getTableCellRendererComponent(JTable table, Object value,
                    boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex) {
                // 'value' is value contained in the cell located at
                // (rowIndex, vColIndex)
                if (isSelected) {
                    // cell (and perhaps other cells) are selected
                if (hasFocus) {
                    // this cell is the anchor and the table has the focus
                // Configure the component with the specified value
                this.setValue(_Progress);
                this.setIndeterminate(_InDer);
                // Set tool tip if desired
                //setToolTipText((String)value);
                // Since the renderer is a component, return itself
                return this;
            // The following methods override the defaults for performance reasons
            public void validate() {}
            public void revalidate() {}
            protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {}
            public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
    }Any help would be brilliant

    I wouldn't like to use a Timer to perform an update...Then you don't understand how a JTable works. The cell will only repaint itself when the contents of the cell changes. You don't change the progress bar, you only change the value represented by the progress bar so the table never knows when to repaint itself. You should be able to use a Timer to force a cell to repaint itself. That way if the value of the progress bar has changed then this change should be reflected in the repainting of the progress bar.
    I've never tried it, but there's an example here. I don't know if it uses a Timer or some other approach.
    http://www.objects.com.au/java/examples.do

  • JS ScriptUI CS4: How to create an indeterminate progress bar?

    Hi Folks,
    Does anyone here know if ExtendScript (I'm using the CS4 flavor of ES) can produce an indeterminate (i.e., "barber pole") progress bar using ScriptUI's progressbar control? I've tried a number of value settings for the progress bar control in hopes that they would trigger the barber pole behavior, but so far, no luck.
    My current workaround is to "loop" the progress indicator. In other words, when the progress bar's value > maxvalue, I reset the value back to minvalue. Then rinse and repeat. Not really what I want, but the task being processed takes quite a bit of time, so I need to show some sign of something happening to the user.
    Thanks!
    -- Jim

    Hi Jim and Jeff,
    I can't find any practical solution to the original problem. It seems that an ExtendScript function call and a ScriptUI window cannot properly update synchroneously, except with a regular progressbar widget. I thought that a nonmodal window (='palette') might be fine, but I always get critical side effects using that approach, and generally the SWF is 'freezed' during the process. Curiously I found a kind of workaround using a pure modal dialog which mimics a nonmodal palette (!!) through the 'activate' event. But this still requires that the outer function perdiodically calls the update() method of the window from its own body, so this does not answer the question.
    Here is a first draft, based on the SWF that Jeff posted above and only tested on a Win platform. I'd really appreciate feedbacks on this from Mac users.
    // SpinProgressBar Object
    // Tested in ID CS4/CS5+ Windows only
    var SpinProgressBar = SpinProgressBar||function SB(/*str*/msg, /*fct*/process)
        // Caches the function resources
        SB.rc = SB.rc||{
            swf: "CWS\tP&\x00\x00x\x9C\x8D\x9A\x7FL\x15W\x16\xC7\xCF\x11\xC5\x11)\xE2oQ\xD0'\x0F}O\x14\x7F\xA0\xE2o|\xCA\x11\x04\x05\x04\x14\x14Q\x11\xF1'\x82\n\" \xA2(j-\xB6(Hmw[\xDB&m\xD3\xCDnKbRLI\x7F\xC4&\xEBn\xDCdmk\xB3j\xAD\x9Bvwm\xC4\xAD1\xDB\x8D\xA9Y\x93\x8D\xFB\xBD#2\xE3\xF0\xB6\xEF\xF2\xC7H\x8Egf\xEE\xB9\xF3\xFD\xDC\xF3\x9D;TS\x9F\b\xA2!\xC5D\xA1\xA1$\x03\t?I\xBD\x1E?~\x1Cc0UV4\xC6\xE7\xCD~\xDB\xC5\xD4\xD9\xD9\xF9\x98\xC2\x07\xF5o-\xCE:s\xB5\xE3\x8F\x1FT\x9CZ\x121\xFA\xB7\xF1t\xAB_/bj\t\x0Ec\xFCs\x99\xC8G\xBDh;\xF9\xC2{\xE37\"\xB7\x11D\xDB\xA8\xEF\x97\xD4\xA7\r\xFF\x8D\x1F\\#\xA4\x7F\xCA\x97\xEDWnf\x97/j\xFAK[yb=\xB9\x8C\xDE=\x93\x8C\x86\xF6\x92\xD7O\xBD}\xA1\xF5\xF5\xD3\x85\xE45\xFA c\x90\x8B\xFA\xFC`\xBB\x8C\x8F\xCE\x95\x95\x9ExT\x15W\xD9\xD8q\xF9^\xC4wi\xA9\xD7\x90\x19\xFC4\xB3\xDE\xCA\xCCv\x8D\xC9(\xAF\r\xAE\xBA\xDAR\xD9q\xC1\xFD\xE3\xAD\xF6k\x13\x90\xD9\x17\x99\xC3\xCFR\xEF\x13\xB6k\x12\x97t\xBC\x99|\xE9\xAFs\x1Fe\xDF9r\xFBa\xED\xD0a\x1F!\xD3\xF0\x93\x99w6aru|f\xD5\xF9\xD4\xEE3(\xDA\xE8\x87L\x9C\xC2\x0F\xAC\xCC\x90\x8BA\x9D\xF7\xF2\xEFL\x1Aq\xEF]\xCF\xC4NLIH\xCF\x9C\xFE\xB9\x1FQ\xD8\x9F\xB2\xCB?k\xBA\xD4V\xFEy=n\xD9\xDF\xCF-s\xDA\x9A\xC3\xB6^\xC5-3Z;\xBE\xFF\x03n\xF9C\x1By\x8CP\x95\xD9\xFALf\xC8\x9B\xBE\xA07Bw\xAE\xFB\xFA\xFD\xFC\xFB\xE6\t\xB9\xAD\xF5^\xE3\xB9\x9Es\x18\xF2m8\xDD\xF1\x9Cz\xAF\xFC\xBAg\xEDkE\x9F\x9F{\xF0n\xD1[\xB8y\x98\x9F9\\V\xF0\xC9g\xA5'1\x87/7\xD6\\\u00FE\xC7\xDD[\xED\x97\xAF\xD3;\xC1\x93{\xE1y\x9B\x8F=,\xAB9\xD9\xF7\xE4\xC9\xAF*+\xDBX\xBA\xB9\xD8\x95SSZ\xB4k'\x9D\x0E\x0E\x0B\xA2 \x8A<S?\xAAP%\x04\xA9Ho\xEA\x8DHC\x8B)\x16V\x91>\xD4\x87\"Sj3\xDF\xEA\x8E\x04S0E^X\x9A\xF9}w\xA4/\xF5\xA5\xC8\xC1\x8F\xBEquG\f2(\xF2\xEB\xBBQ\x17\xBB#\xFD\xA8\x1FE\xDE>\x92a]9\x84B(2\xF8\xEF]\x91\xA3\x88\xF4\xA7\xFE8\xEB\x9F\xB6\xEB\x84R(\x8D\xF4<\xA82sz\xA9\xC8s\xF4\x1C\x8Dl\xFA\xDB\xC2z3\xA2\xCE\n\xA30\x8Cg\xD9\xD3\x11\n+\xCD\xFB0_\x03\xFC\xA83\xF9\xF7\x9F\xB4\xFD\xD0v>o\xCE\x82\x86ywS\xE7\xDE\xFAv\xE0\x03d\x86\xFB\xC9\x84\x16\x9Ef\xDC\xCF\xFFqh\xC5\x99\x1BS\x919\xB0\xE7c\xB5\xD4y3\xFBNC\xCCSu\x0E\xF2\x93\x99\xD7\xDA\xA5\xCE\xAC\xEE3\xC0\xD9\xE0\x9E\xCA3\x1A^~\xB0/\xAE\xE2l\xE8\xBE\xEC\xD3\xD0\xE6\x10\xBF\xDALlZ=\xED\x9B\xB4\x8C\xBC\xAFn\xB4_\xC4\r\x87\xFAQ\xDC\xC5\xA0\xA2\xFB\xE7\x8A\xAEW$\xB6\xD4~\xDA\xF8\xE1\xBB_\x04'\xB8\x909\xCC\xEF\xD0\xF2\xEF\xFF\x1C{\xF5\x95\xF9#n|\xFC\xDE\xEA\xF6[_\xBC\xF3\x062\x87\xFB\x99\x18H\xAE\xADKr\x1DO$\xA7\x00\x1F\xA1)\xE3h#\xA2\xE7\xB2\x12\xF2\x9D\x8Fn7D\xFD\xAE\xE0v]\xD4\x87\xEF\xA0\xE0\x91~\xD6'\x1F\xB5_I\xF9\xEA\xDB\xB4\x8C\xA5\xD3n\xA2`\xA8|\x80\x96\xCA\xC3i\x80\xA5WS\xE5\x03)\xDC\xA1\xE9A4\xD0T\xB0\xA5\xCE\xC14\bZ\xFC\xC9\xA6\xE0!4\xD8\xA6W\x15\x19JC\xA0\xE9\xFD\xB6\xC80\x1A\xEAP\xF0p\x1Af)\xD8T\xF9\b\x1A\x8E\xF1$\xD9\xEE\x1EA#l\x9AV\x91\x91\x14\x01\x0E\xAB\x9F\x90i\xAA|\x14\x8DD\xA4\xB6\xF9\xFB\xA7*W\x88\x0B+\x84\x85\x15\xB6\xC2\nUa\x85\xA7\xB0BRXa(\xAC\xD0\x13V\xB8\t+\xC4\x84\x15V\xC2\n%a\x85\x8F\xA2e\x94\x1FQ$u6\x87\xDD\xBD\x06QDx>\xBE\xF1\x1B\x88\xE2\xED\"dF\xFA\xC9\xCCy\x9F\xC2~\x8E\x8D\xAB\x9A\xDE\t\xF9\xACM+\xF8W\xF1\x1BPvT@e\x8F\x0E\xACl\x8F1\xE6\x17\xD6\xD26\xAC\xA5W\x9E\xAE\xA5.\xBF#\xEBZ\x9Es\xBB\x96\xE7Kjy\x1E\xEBG\xAE\xF5}\xBF\xEE(9\xF3\xC1\x9F\xCF\x17^y\x94\x8D%b~\x1D\x8A\x8D\xF6C@\xB6\xEB\\YW\xC6\xBC\xB3\x1DX\"\x86\x85\xA2\x14w`\xCDF\x1B1\x01\xC5\xEF5\xC6\xF9\xBDew\xAF\xFC\xCF\x05\xF7\x1D\xF4\xCAXd\x8E\xD7\xEC\xBF`%R\x8B\x95(\x1Ae\xAD\xDB&+\xA3)\xD2\xB1\xB6\x8F\xA1(\x07\x07.\x1A\xED\xE0`,\x8D\xB1\xA9^E\xA2\xC9e\x92aE\xDC4\xD6\xBEn#\x12C\xD1\x16\x07&+\xE3\xC8mW=\"\xE3)\xC6$\xC3b\xC5C\xE3p\x1D\xDF\x13\xBEMV\xBC4\x1E|WX\x1D\xA1\x17\x96\x00\xE1\x01\xC0^8\x1C\xA8\x0B\x0F\x04\xDE\xC2\x83\x80\xB4\xF0``,<\x04\xE8\n\x0F\x05\xAE\xC2\xC3\x80\xA8\xF0p`)<\x02(\nG\x00?\xE1\x91\x98\x1E\x1F\x9E\xA2G\xC3Ox\x03\xFB\t\x8F1A\xD7%\xC4j\x1A\x0F\xAF1\xB1\xA7K\xB0-\xC4\x1B\xB0\x10\xD7u\xF9\x89I\x9A~\xC2e\xC4\x05p\x82ncr`C\xE95\xA6\xF8\xB9!\xE4z\xB0K\xAE5O\xE4z\x1D\x99S\x7F\x19\x01\xD8\xC5\xBB]\bL\xD34\x81^#^\xD3X\x02\x96\tZ\xB0\xC4\x92\xC7\xB24&,\x13\xC9\xEB@c\x12Mp\x80\x10G\xB1\x8E\x161\x99&\xDAd\xAF\"Sh\x92\x03\x8D\xA9\x14\xA7@\xB0\x19\xB3i4\xD9\x02\xC1\x84%\x9E\xA6\xD8e\x8F\xC8t\x9Aj\xB5>\x13\x96\x194\xCD\x02\xDC\x84e&\xC5\xDB\x01W\xB0D\xE28\n\x94\x0BG\x82l\xE1(\xD0,<\x1A\x04\x0B\x8F\x01\xB5\xC2.\x90*<\x16t\nG\x83Ha7(\x14\x8E\x01y\xC2\xE301\xC2\xE31\x19\xAA\xB1L\xD7\xF6%3\xB4}\xC9Lm\xD3\x9C\xA0\xE9`\xA2\x8DY\x1A\xBEdv\xE05\xDEk\xCC\xD1v\x93s\xB5\x1D\xEA\xBC@\xBE\xB3\xF8a\xED\x90\xB3\xCAw\xCE\xD7\xF4\x9DncA\xE0\xDE\xEB2\x12\x03\xB4p\xD0\x92\xA0E\xCB,\x9An\xE9\xDE\xA4e6\xCDp\xB01\x87f:H\x98K\t\x0E\xB34\x8Ff\xD9t\xAF\"\xF3i\xB6\xA3I,\xA09\x0E\x12\x12i\xAE\xED\xA5E\xE9~!\xCDsX>\x1F\xCD\xB7\xB1\xA1\"\x8Bh\x81jl\xE9VkYL\x89 \xFCf\xBA\xCD\x86M\xC0\xD1\x03\xA8\x85\xBD\x00Yx\x02\xE0\x15\x8E\x05\xB0\xC2\x13\x01\xA9\xF0$\x80)\x1C\x07\x18\x85'\x03@\xE1)\x80Nx*\xA6Dx\x1A\xA6A8\x1E\xA5\xFB\xD0\x11\x16\xEA\x1A\x13\x9F\xA61\x896\x16i\b{\xB1\x8E\xB0\x93\xB4We\xD1\xDE\x18X\xA2i&\xBDF\xB2\xA6Au\x19)\x01m\xE7R\x9D\x17\xAATm7\x99\xA6gP\xC1J\x92\x16+B\x0B\xAD\xF5\xDFde\tNy\x96\x8CdZd\xBD\"\x98\x91\x14Z\xEC\xE0`)%Y\xD6\xC8\x8C\xA4\x928\xC8H\xA3%\x0E\x83\xB7\x8C\x92m/\xEFJ\xF5\xCB)\xC5\xAEzD\xD2i\xA9\x8D\f\x15\xC9\xA0T\x9C\xF5\xEF'<\x99\xACdR\x9A\x9Do\xC5J\x02\x8E\xD3\x01\xB0\xF0\f@+<\x13\xA0\n'\x00N\xE1Y\x00Rx6 \x14\x9E\x03\xF0\x84\xE7\x026\xE1y\x98\f\xE1\xF9\x98\x00\xE1\x05(Z8\x11\x85\xFA\xF0\x9C\x97\x05\xB4%\xCBulI\xBA\xF6\xDET\x86\xB6\x81\xC9\xD4\xB6%+4m\x89\xDB\xC8\n\xEC(\xA3\x8D\xEC\x80\xD6\xD4c\xE4\xF4\xBC\xE53\xAE\xF3\x9A\xE9)\xE1:Wj\x12\xE05V\xFD\xFF6\xFB\xD0\xF2\x92\n\xF8\\M\x7F\nXVh\xC1\x92E\xCB,kd\xC2\x92M\xCB\x1D-\"\x87\xD2\x1D{V+)\xC3\x01\xC2*\xCAt\xECY\xE5\xD2\n\x07\x1Ay\x94\xE5\x00a5e+\x13\x98n5\x965\x94\xE3hk\xF9\xB4\xD2j}&,ki\x95\x05\xB8\tK\x01\xE5\xDA\x01W\xB0$\xE1\b\xE9\xE3\xE8\x03\xA3\xC2\x8B\xC0\xA5\xF0b\xB0(\x9C\x04\xFE\x84\x05\xCC\t/\x01g\xC2\xC9\x98\x06\xE1\x14\x94.\xBC\x14\xE5\n\xA7\xA2D\xE14\x94\xA5lX\x9E\xB6+Y\xAD\xEDJ\xD6hz\r\xAF\x91\xAF\xE9_\xDC\xC6Z\x1DWR\x10`\x85\xF7\x1A\xEB\xB4\xBD\xE4zm\x7F\xBA!\xA0\xEB\xFC\x14\xD2Uw/\xD4t\x9Dnc\xA3\xCE\xAEAQ\xC0\x0E\x0EZ\xD6i\xD1\xB2\x9E\xF2,\xDD\x9B\xB4l\xA0\xD5\x0E6\ni\x8D\x83\x84\x8D\x94\xEF0KE\xB4\xD6j\x00fd\x13\x158\xD8(\xA6u\x0E\x126\xD3z\xDB\xCB\x8F\xD2\xFD\x16\xDA\x00\xDD\xFFdkl[\xA9\xD0\xB2|&-\xDBh\xA3\xDA\x95n\xB6l\xD8v*\xB27?E\xCB\n\x1C\x97\x01O\xE1\xE5@R8\x1D\x18\ng\x00=\xE1L\xE0&\xBC\x02\x88\tga\x02\x84\xB3Q\xB4p\x0E\n\x15^\x89\xE2\x84W\xA1 \xE1\\\x14\xA1h\xD9\xA4mK\x8A5m\x89\xDB\xD8\xAC\xA3\xEC-\x01\x95\xBDU\xDB\x96l\xD3\xDD7\xDB\xAE\xE9%=\xC6\x0E={\x1Am\x94h\x98\xCE\x9D:\xA6\xB3T\xDBJ\x96i\xEE\x9B\x81\x95\x1DZ\xAC\x94\xD0&k\xFD7Y\xD9I\xC5\x0E2Ji\xB3\x83\x832\xDA\xE2\xE0`\x17m\xB5\xAC\x91\x19\xD9\x8D\xA1>K\xC6\x1E\xFC\xFA\xAC\xC1+\xA7\x1D\xB6M\x00\xA5\xFA\n*\xB1\xBE\xD7\x989{i\xA7\x8D\f\x15\xA9\xA4R\x93o\xEB\x05\x7F\x1F\x95\xD9M\xA0be\x1D\x8Ey@Qx5\xF0\x13^\x03\xE4\x84\xF3\x81\x99\xF0Z\xA0%\\\u0080\xD2\x85\xD7\xA1\\\u00E1\xF5(Qx\x03\xCA\x12.D)\xC2j\xD1\x12.R\xA3\xC7c\xDC\xA5\xE3Kv\x07\xF4%^c\x8F\xBFM.\xA5\xECk\xB6M.S\xD9\xE5\xBA\x0E\xA6B\xFB\x03\xC6^M_\xE26*u>\x9E\xEE\x0B\xF8\xF1\xB4J\xDBvVk#P\xA3\xFDyj\xBF\xA6A\x05,UZ\xB0T\xD3.K\xF6&,5\xB4\xDBf\x8DTd?\xEDq\xEC}\xD5R\xB9\x03\x84\x03T\xE1\xD8\xFB\xAA\xA3\xBD\x0E4\x0ER\xA5\xE3\xDD\xE7\x10\xED\xB3}\xB8T\xB2\xAF\xA7*G[;L\xD5V\xEB3a9B5\x16\xE0&,\r\xB4\xDF\x0E\xB8\x82e\x07\x8E\x9B@\x9Ep1h\x13\xDE\f\xC2\x84\xB7\x80*\xE1\xAD(Zx\x1B\n\x15\xDE\x8E\xE2\x84w\xA0 \xE1\x12\x14!\xBC\x13\x03\x17.\xC5`\x85\xCB0@\xD5Xj\xB5}\xC9\x01m_R\xA7-\xF2\x83\x9A\xFBfn\xE3\x90\x8E/\xA9\xD7\xF8\x9AqX\xDBM\x1E\xD1v\xA8\r\xDA\xBE\xF3\xA8\xA6\xEFt\x19\xC7\x02n\x1A\x1C\x0F\xDC\xBFA\xCBQ-Z\x8EQ\xAD\xA5{\x93\x96\xE3t\xC0\xC1\xC6\xF3T\xE7\xD8\xFB:A\x07\x1D$\xBC@\x87\xAC\x06`F\x1A\xA9\xDE\xD1$N\xD2a\x07\t/\xD2\x11\xABI\x98\xB4\xBCD\r\xA6\xEE\xAD\x9C&:jY>\x93\x96StL\x11\x9Ea\xBD\xE1\x9F\xA6\xE3\xF6\x0F?\x8A\x96*\x1Cw\x014\xE1\xDD\x80Kx\x0F\x80\x12.G\xB9\xC2\x15(Qx/\xCA\x12\xAED)\xC2\xFB0|\xE1*\fY\xB8\x1A\xC3\x14\xAE\xC1\xD0\x84\xF7c8\x8A\x96\xE7\xB5\x8D\xC9\t=c\xE26^\xD0\x11v\xA3\x86\xB0Oj\xAF\xCA/j\x7F\xD0{I\xFB#l\x93\xA6A\x8D1N\xFD\x82l\xD7\x1F\xFA/\x14\xBE\x1B\xF2?\x1D@\xFE\x1E\xA3Y\xD7M\xB6h\x1AT\xC0\xD2\xAC\x05K\x0B=o\xC9\xDE\x84\xE5\f\x9Dp4\x89Vz\xC1\x01\xC2\xCB\xD4\xE8\x00\xE1,\x9D\xB4\xC9^E^\xA1\x17\x1D\x1Bd\xAF\xD2K\x0E\x87\xF7+j\xB2\xED\x02(\xD9\xFF\x9AN9\xBEw\xBEF\xA7mh\xA8\xC8\xEB\xD4l\xFB\xCB\x15u\xD69j\xB1\x7F\x01U\xB0\x1C\xC5\xB1\x16T\t\x1F\x00I\xC2u(T\xF8 \x8A\x13>\x84\x82\x84\xEBQ\x84\xF0a\f\\\u00F8\b\x06+\xDC\x80\x01\n\x1F\xC5\xA0\x84\x8Fa \xC2\xC7qs\x1F\r\x0EcL\xA6c\xF2\x88\xFE\x07WG@D",
            bkg: [232,232,232],
            tmpFile: function FN(/*?str*/s)
                    FN.file && FN.file.remove();
                    FN.file = null;
                    if( !s ) return null;
                    return FN.file = (function(fx)
                        fx = new File(''+fx);
                        if( !fx.open("w") ) return null;
                        fx.encoding = 'BINARY';
                        fx.write(s);
                        fx.close();
                        return fx;
                    })(Folder.temp+'/_'+(+new Date)+'.swf');
        // Creates the UI
        var    rc = SB.rc,
            w = new Window( 'dialog', '', undefined, {borderless:true} ),
            p = w.add( 'panel' ),
            fl = p.add( 'flashplayer', undefined, rc.tmpFile(rc.swf) ),
            t = p.add( 'statictext', undefined, msg),
            r;
        rc.tmpFile(); // kills the tmp swf file
        // UI Skin/Style
        with( w.graphics )
            backgroundColor = newBrush(
                BrushType.SOLID_COLOR,
                [rc.bkg[0]/255, rc.bkg[1]/255, rc.bkg[2]/255, 1 ]
        p.orientation ='row';
        p.alignChildren = ['left','center'];
        fl.preferredSize = [50,50];
        // Fire!
        SB.win = w;
        w.onActivate = function(){ process(); w.close(-1); };
        r = -1==w.show();
        // Cleanup and return
        SB.win = null;
        w.onActivate = null;
        rc = w = p = fl = t = null;
        return r; // true=>OK, false=>broken
    // SAMPLE CODE
    var myHugeLoop = function()
        var i = 500000;
        while( i-- )
            // you have to periodically call SpinProgressBar.win.update()
            // but not necessary at each iteration
            SpinProgressBar.win.update();
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i)*
            Math.cos(i);
    if( SpinProgressBar("Currently processing a huge loop...", myHugeLoop) )
        alert( "All is fine." );
    else
        alert( "The process has been broken by the user!" );
    @+
    Marc

  • How can I use a progress bar in objective c mac

    How can I use a progress bar in objective c mac? I have a code that downloads a file and I want to be able to let the progress bar increase by 1. A bit further on the code (to download the file) it needs to increase again. And so on...
    My code
    -(IBAction) downloadButtonPressed:(id)sender;{
        //get the path to the image that we're going to download
        NSURL *url = [NSURL URLWithString:@"https://www.dropbox.com/s/l6o07m48npxknt4/Cluedo.zip?dl=1"];
        //get the path to documents folder where we're going to save our image
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *DocumentsDirectory = [paths objectAtIndex:0];
        NSString *filePath = [DocumentsDirectory stringByAppendingPathComponent:@"Cluedo.zip"];
        //Download the file to memory
        NSData *data = [NSData dataWithContentsOfURL:url];
        NSError *error = nil;
        //Save it on the Documents directory
        [data writeToFile:filePath options:NSDataWritingAtomic error:&error];
        NSFileManager* fm = [NSFileManager defaultManager];
        NSString* zipPath = filePath;
        NSString* targetFolder = @"/Applications"; //this it the parent folder
        //where your zip's content
        //goes to (must exist)
        //create a new empty folder (unzipping will fail if any
        //of the payload files already exist at the target location)
        [fm createDirectoryAtPath:targetFolder withIntermediateDirectories:NO
                       attributes:nil error:NULL];
        //now create a unzip-task
        NSArray *arguments = [NSArray arrayWithObject:zipPath];
        NSTask *unzipTask = [[NSTask alloc] init];
        [unzipTask setLaunchPath:@"/usr/bin/unzip"];
        [unzipTask setCurrentDirectoryPath:targetFolder];
        [unzipTask setArguments:arguments];
        [unzipTask launch];
        //[unzipTask waitUntilExit]; //remove this to start the task concurrently

    Your code really isn't suitable for a progress bar, not a real one anyway. Your code will spend about 99.9% of its time in the method "dataWithContentsOfURL:url". That is not a method you want to use in the real world. It is only for demos or proof of concept exercises. All network operations should be asynchronous. That gives you the ability to gracefully recover when there is a failure and also to do fancy things like display a progress bar and tell the user when the download is complete.
    Once you get the asynchronous download logic working, then you can worry about the progress bar. The first thing you will need is the size of the file. Without that, all you can ever do is an indeterminate progress bar or spinner. If you have the size of the file, then you can keep track of how much of the file you have downloaded and update your progress bar with the percentage complete. Make sure to throttle it to no more than incrementing by 1% at a time. Otherwise, a large file or a file transferred in many small chunks, would waste too much time updating the progress bar for no change.

  • Question about plugging in an ajax progress bar component onto a black-box.

    Hello,
    I have the following problem: I want to integrate an ajax progress bar component to a j2ee application and I am in reference to the following pattern (https://bpcatalog.dev.java.net/nonav/ajax/progress-bar/design.html). It seems I need for the "task" component to return the percent. The problem I have is that I am calling a legacy method (i.e. as400) that does not return a percent as it is to me only a black-box. Here is a snippet of what it looks like to me:
          AS400 sys = new AS400("AS400D.calyonfinancial.com");
           sys.setUserId("jmartin");
           sys.setPassword("jmartin");
           CommandCall cmd = new CommandCall(sys);
           cmd.run("my as400 command goes here");
           AS400Message[] messageList = cmd.getMessageList();
           for (AS400Message msg : messageList) {
               System.out.println(msg.getText());      
           sys.disconnectService(AS400.COMMAND);At best I can know whether or not it is completed.
    void actionCompleted(ActionCompletedEvent event) //Invoked when an action has completed.What do you advise I do bearing in mind I want to avoid using an indeterminate progress bar??
    Thanks in advance,
    Julien Martin.

    That's not a legacy method. The latest version of JTOpen was issued less than a month ago. And note that it's open-source, so you could change it yourself to provide percent-complete data. (Of course you'd have to be able to get that data from the underlying iSeries command.)
    It wouldn't be easy, but if you think about it for a minute you'll realize that you can't display percentage complete in a progress bar unless you have some way of finding out what percentage the task has actually completed.

  • How to start and stop a progress-bar thread before/after the main thread

    hi. I would appreciate any kind of help on my request.
    I have this as my main() function
         public static void main(String[] args)
              SwingUtilities.invokeLater(new Runnable(){
                   public void run(){                              
                        Options op = new Options();
                        OdessaClient oc = new OdessaClient(op);     
                        oc.setVisible(true);                    
         }Whenever I try to start a simple JFrame with an indeterminate progress bar on it just before the main function and stop it somewhere after I get a StackOverFlow error
    Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
         at java.awt.Component.show(Component.java:1302)
         at java.awt.Component.setVisible(Component.java:1253)
         at com.client.CylonBar.hide(CylonBar.java:25)
         at java.awt.Component.show(Component.java:1302)
         at java.awt.Component.setVisible(Component.java:1253)
    ...and so on...How must I implement something like it?

    Not precisely that way, but just off the top of my head, you would have to have a handle to the proccess (server) in the first window, then have a monitor program that allows you take this handle and end it. I would make this monitor program be the gateway to starting and stopping your server. To run a .bat file you can use runtime.exec().

  • Progress bar and sql query

    Hi, first of all excuse my English.
    I have a problem that I can not solve, i implement a indeterminate progress bar for a sql query but not shown until you have completed method. I tested threads and swingworker but can't make it work.
    The pseudocode would be:
    @Action
    public void Find() {
        progressbar.setVisible(true);
        ... query ...
    }If anyone has a solution would be very grateful.

    The Find() method is automatically created by NetBeans when I select "Set Action" from the context menu of a JButton.
    NetBeans generated code is as follows:
    public MyClass { // Constructor
        initComponents();
    private void initComponents() {
        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(administration.AdministrationApp.class).getContext().getActionMap(MyClass.class, this);
        button_find.setAction(actionMap.get("Find")); // NOI18N
    @Action
    public void Find() {
    }don't exist a method actionPerformed()

  • Progress bar of a threaded task

    hi
    i have this class:
    public class ProfileHandler extends Thread{...}
    which perform some task.
    the time-run of this task is unknown, so an indeterminate progress bar shoud be used.
    i tried to use the swingworker, but the approach they suggest is with a not-thread task (LongTask is not a thread).
    does anyone can help me to integrate my class with swingworker ?
    thanks
    Valerio

    after some googling around, and some irc-ing on #java, i decided to change a bit the architecture, because it seems to be cleaner.
    so now I have:
    public class ProfileHandler implements Runnable {
    //some default constructors...
    //and this compulsory method
    public void run(){
    //where my task is accomplished.
    }Now, out of this class, i can to smt like:
    Thread profileHandlerThread = new Thread(ProfileHandler).start();
    that will invoke the run() method.
    What i want is to separate the thread process from the gui (the jprogress bar in question), having those 2 components into 2 different classes.
    I don't know if your suggestion was about this way.
    was it?

  • Progress bar is animated in one direction in Indeterminate mode

    Hello All:
    How to make Progress bar being animated in one direction in Indeterminate mode, like what determinate mode does? For example, a horizontal progress bar is always animated from left to right.
    And how to control animation speed in this mode?
    Thank you very much.
    Johnson

    How to make Progress bar being animated in one direction in
    Indeterminate mode, like what determinate mode does?Well the point of using indeterminate mode is that you don't know how long it will take. So what happens if the task takes longer than you think and the bar reaches the end? The user will think its frozen.
    And how to control animation speed in this mode?
    UIManager.put("ProgressBar.cycleTime", new Integer(3000)); // 3000 is the default

  • Progress bar indeterminate state

    is there any way to put the progress bar into indeterminate state ? There are times when my program reaches a certain subroutine that I can not tell ahead how long is the maximum bound is going to be ...there has to be a way to do this easily but I just can't seem to find it anywhere.
    Solved!
    Go to Solution.

    Hi,
    Are you talking about windows progress or anything. I am not able to understand. It will be better if you can explain in a better way.
    Regards
    Aks
    (Appreciate answers by giving KUDOS)
    Hit the stars.............. sky is not the limit.

  • Progress bar indeterminate mode 1.3

    Sometimes, you can't immediately determine the length of a long-running task. As of 1.4, you can show this uncertainty by putting the progress bar in indeterminate mode.
    I'm looking for somthing that shows that there is progress. But I don't know how long the task is (C program).
    So does anyone has an example?
    Thanks

    Simply call setIndeterminate(true) when you start the task, and pb.setIndeterminate(false) when it's over.
    PS : nice copy/paste from the tutorial ;)

  • Progress bar in JTable?

    Hi,
    I have written a cell renderer for a progress bar but I can't set its string or make it indeterminate. Has anybody done this before? Should I write my own, or use JProgressBar (currently using JProgressBar).
    any help would be brilliant

    Here is a little example I made which shows the JProgressBar being updated.
    Everytime a row is clicked the progress bar adds one percent
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.*;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    public class TableProgress extends JFrame{
         public TableProgress(){
              super("Table Progress");
              setSize(500,115);
              Container theContainer = getContentPane();
              String[] headers = {"Name", "Percent Complete", "Progress"};
              Object[][] data = {
                   {"John Adams","50",createBar(50, "50%")},
                   {"Ben Franklin","75",createBar(75, "75%")},
                   {"Karl Marx","0",createBar(0, "0%")},
                   {"Gandalf","20",createBar(20, "20%")},
                   {"Clint Eastwood","55",createBar(55, "55%")}
              final JTable theTable = new JTable(data, headers);
              theTable.setPreferredSize(new Dimension(500,100));
              theTable.getColumn("Progress").setCellRenderer(new ProgRenderer());
              ListSelectionModel rowSM = theTable.getSelectionModel();
              rowSM.addListSelectionListener(new ListSelectionListener() {
                  public void valueChanged(ListSelectionEvent e) {
                      //Ignore extra messages.
                      if (e.getValueIsAdjusting()) return;
                      ListSelectionModel lsm =
                          (ListSelectionModel)e.getSource();
                      if (lsm.isSelectionEmpty()) {
                      } else {
                          int selectedRow = lsm.getMinSelectionIndex();
                          JProgressBar theBar = (JProgressBar)theTable.getValueAt(selectedRow, 2);
                          theBar.setValue(theBar.getValue()+1);
                          theBar.setString(String.valueOf(theBar.getValue()));
                          System.out.println(selectedRow);
              theContainer.add(theTable);
              setVisible(true);
              show();
         public JProgressBar createBar(int percentDone, String text){
              JProgressBar progressBar = new JProgressBar(0, 100);
              progressBar.setStringPainted(true);
              progressBar.setValue(percentDone);
              progressBar.setString(text);
              return progressBar;
         private class ProgRenderer implements TableCellRenderer{
              public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
                   return (JProgressBar)value;
         public static void main(String[] args){
              TableProgress theTable = new TableProgress();
    }

  • Progress Bar - HttpServletResponse

    Hi,
    My Setup:
    - Windows XP Pro
    - Jakarta-Tomcat-3.2.4
    - J2SE1.4.1_02
    - IE 6
    I would like to know if there is a way to 'emulate/plug into' the progress bar on IE.
    I have a couple of web-apps running on tomcat, and I would like to implement a global progress bar. All the examples I've seen works with
    threads and you need to update the status of the progress bar.
    I need something that picks up the status/progress of the Response
    itself.

    Thanks for the replies,
    I want to track the progress of the response from the server without
    having to implement code on all servers (web services). My testing is
    done on IE with the response being written to the browser. In this case
    IE probably tracks the loading of the page/html code, like when opening
    a new url.
    My question is, is there a clever way of measuring the response for different clients. I have seen the response.isCommitted() method which
    returns true if the server has finished, but this is only useful if
    you want to display a "indeterminate" bar(like with JProgressBar).
    The simplest way to state this problem is:
    (1) Can one measure the total length of time it will take to respond to
    a request?
    (2) Can one pick up the current status of the response so that you can compare it to the total?

  • Progress Bar or Progress Monitor for a system command

    Hello,
    I am running a DOS copy command in a Java Swing application. I understand that I
    can implement a Progress Bar or a Progress Monitor if I open the first file, read it,
    and write to a second file. But if I have a need to use the DOS copy command,
    is there a way to implement a Progress Bar or a Progress Monitor for it. If there is,
    could you please point me to some example code?
    Thank you,
    Chris

    Hello Chris,
    you would have to write some native code which peeks or watches the DOS process and its progress. Surely not an easy task. But without that information, how will you set values for the ProgressMonitor?
    What you could do, however, is showing an Indeterminate JProgressBar at DOS process start and make it disappear at process end.

Maybe you are looking for

  • Very urgent : Update maintenance view

    Hi I would like to know if i update a maintenance view ,will that change be included in the correction instruction or do i need to do anything special for the same. Regards Leon

  • PXI System does not appear in MAX 4.0

    Hello, My system comprises LabVIEW RT 7.0, target PXI-8176 controller in PXI-1000B chassis, PXI-6608, PXI-6711, NI-4472, PXI-6704, PXI-6527, PXI-8423/4, PXI-8422/4.  This has been stable for two years. I recently solved an RS-485 2-wire mode configur

  • Using Planned order Change BAPI with out changing date

    Hi I have a planned order with start date in future. With in a program, I want to call the planned order using the FM BAPI_PLANNEDORDER_CHANGE to re-explode the order BOM. I find that only if I change the order start date to system/current date, the

  • Why is the output of rounding functions a double?

    I thought the whole idea of rounding was ending up with an integer? Bill (Mid-Level minion.) My support system ensures that I don't look totally incompetent. Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know eno

  • How to merge CS6 payload files from 2 iso's

    How do I merge payload files for CS6 deployment using their tool. Payloads are on 2 iso's Thanks in advance