Multiple Progress Bar

Hi, 
I am working with multiple(three) progress bar and a 'backgroundworker'. My application requires a functionality in which the second progress bar starts when the first progress bar attains 100% and similar for second and third progress bar.
Could anyone please guide how can it be achieved using backgroundworker. A code  snippet for the same will be greatly helpful.
Thanks

On my form I have 3 progress bars and a button.
Obviously, the details of your particular form might be slightly different and your background worker will have to actually do something.
public partial class Form1 : Form
public Form1()
InitializeComponent();
private BackgroundWorker backgroundWorker1 = new BackgroundWorker();
private List<ProgressBar> bars;
private ProgressBar CurrentBar;
private void button1_Click(object sender, EventArgs e)
backgroundWorker1.RunWorkerAsync();
private void Form1_Load(object sender, EventArgs e)
bars = new List<ProgressBar> { progressBar1, progressBar2, progressBar3 };
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
foreach (ProgressBar bar in bars)
CurrentBar = bar;
bar.Value = 0;
for (int i = 1; i <= 100; i++)
Thread.Sleep(10);
backgroundWorker1.ReportProgress(i);
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
CurrentBar.Value = e.ProgressPercentage;
Hope that helps.
Technet articles: Uneventful MVVM;
All my Technet Articles

Similar Messages

  • How to make growing progress bars in video?

    I am as green as you can get, in fact I do not yet have my editing software, though my first choice is Adobe premiere pro. For future reference could someone please explain to me how I could animate one or multiple progress bars to fill up over the course of a series of videos? I know this can be done as I've seen it before, please help.

    Make 2 bars in Photoshop one 0% and one 100%, place the second one above the first in the timeline and animate it with a linear wipe.

  • Multiple bounded ranges in a progress bar

    Hi,
    Is it possible to show multiple bounded ranges in the same progress bar?
    That is to say, can a progress bar display multiple values and extents in the same time?
    Suppose a given task is split into 5 sub-tasks and I want to model the progress of each sub-task in the same progress bar. From the API, I can see that the JProgressBar is modeled by a single BoundedRangeModel (it has a minimum, maximum, value and an extent).
    Any help or directions would be greatly appreciated.
    Best Regards,
    Kumar.

    Hi,
    Is it possible to show multiple bounded ranges in the same progress bar?
    That is to say, can a progress bar display multiple values and extents in the same time?
    Suppose a given task is split into 5 sub-tasks and I want to model the progress of each sub-task in the same progress bar. From the API, I can see that the JProgressBar is modeled by a single BoundedRangeModel (it has a minimum, maximum, value and an extent).
    Any help or directions would be greatly appreciated.
    Best Regards,
    Kumar.

  • Progress bar shows multiple messages when sending one.

    When I send a single email in Mail, the progress bar will often show "Sending 2 of 2 messages". Is it bundling and holding messages or sending multiples? I'm not sending to multiple addresses, unless my own and the recipient counts as two. Any explanation?

    are you using an IMAP account? if so it's probably just mail syncing your sent mailbox with the server.

  • Splash screen with progress bar and multiple jar files to load

    Hello,
    I have been looking to the new features in java 6 for splash screens. I haven't implemented this never before and i was wondering how i could do the following with java 1.5 or 6:
    I would like to see a splash screen with a progress bar that "grows" when every jar file has been read.
    At this time i call my application like this from a shell script:
    exec "$JAVA_BIN" -Djava.library.path=$LIBRARIES_J3D -classpath xxxx.jar yyyy.jar zzzz.jar ...
    where xxx.jar, yyy.jar and zzz.jar are very heavy jars.
    So i would like to see in the progress bar 33% 66% and 100% when they are loaded.
    I do not know if this is the right forum to ask for this. If no, please point me which would be the ideal one.
    Any help will be very useful. Thanks to all!

    Am 10.07.2015 um 07:17 schrieb Lalit Solanki:
    > Hi friend,
    >
    > I am create pure eclipse E4 application and trying to splash screen with progress bar and message.
    >
    >
    >
    >
    > but above image in only support eclipse E3 application so pleas help me how to add progress bar and message in eclipse E4 application
    >
    Hi Lalit,
    there's a Bug entry: https://bugs.eclipse.org/bugs/show_bug.cgi?id=382224
    Meanwhile you can use this solution:
    https://www.eclipse.org/forums/index.php/t/328812/5ceed4bcaa683a94d65efb161bffd217/
    Regards,
    Ralf.

  • One Progress Bar for Multiple Files

    I am using XML via actionscripts to load image files from the
    web server.
    The site is a secure ecommerce site so I can not run any
    scripts on the server side.
    I want to find out the total size of all of the image files
    to show a progress bar before I start the download.
    So I need a way to request the size of each image file on the
    web server???
    Any suggestions?

    Create a property node for each of the charts. Wire the controlling chart X scale maximum and minimum to the slave X scale max and min. (X Scale -> Range -> Max & Min).
    Hope this helps.

  • Copying multiple files (1000+) - Progress bar update is slow! Any ideas?

    When I copy 1000+ raw files from any drive to another it takes a long time before the copy progress bar shows up, and some times it just takes a long time before the progress is updated. When it is updated, it has already copied alot of the files. Quite annoying, because you don't really get if it has begun copying, if it's hanging or what... Seems to me that the new per-file progress bar takes up too many ressources!
    Btw I'm not on a slow system. 2.5 Quad core i7 MBP, 16GB RAM, OCZ Vertex 3 SSD...
    Anyone got any ideas on this?

    The progress bars have always been wonky. Can't judge a thing by them.
    File feedback here.

  • [SOLVED] Almost there just need a global progress bar

    Heya,
    There's no man page for bar so I have looked at the code a bit. I am trying to have a progress bar to copy a folder with many files including symbolic links (unfortunately pycp does not support them yet). With the -s parameter, I can specify the approximate size of what I am copying but it works only if it is a single file.
    I have also tried pv, pipemeter, orphan advcp, ecp, scp and I am now desperate.
    Would someone be kind enough to help me ?
    [tamikana@archlinux ~]$ cat /usr/bin/bar
    #! /bin/sh
    # bar
    # 'cat' with ASCII progress bar
    # (c) Henrik Theiling
    BAR_VERSION=1.4
    # Synopsis:
    # 'bar' works just like 'cat', but shows a progress bar in ASCII art on stderr.
    # The script's main function is meant to be usable in any Bourne shell to be
    # suitable for install scripts without the need for any additional tool.
    # Shell Script Usage: bar [options] [files]
    # Options:
    # -h displays help
    # Examples:
    # Normal pipe:
    # : bar mypack.tar.bz2 | tar xjpf -
    # Individual pipe for each file:
    # : bar -c 'tar xjpf -' mypack1.tar.bz2 mypack2.tar.bz2
    # Individual pipe, using ${bar_file} variable:
    # : bar -c 'echo ${bar_file}: ; gzip -dc | tar tvf -' \
    # : -e .tar.gz \
    # : file1 file2 file3 file4 file5 \
    # : > package-list.txt
    # Programs and shell commands:
    # Required (otherwise this fails):
    # if, then, else, fi, expr, test, cat, eval, exec
    # shell functions
    # test:
    # a = b
    # a -lt b
    # a -gt b
    # a -le b
    # -f a
    # -n a
    # -z a
    # expr:
    # a + b
    # a - b
    # a '*' b
    # a / b
    # a : b
    # Optional (otherwise this does not show the bar):
    # grep, dd, echo, ls, sed, cut
    # ls:
    # must output the file size at fifth position.
    # The command line interface also uses:
    # awk
    ####>-SCHNIPP-<########################################################
    bar_cat()
    # Use this shell function in your own install scripts.
    # Options:
    # Width of the bar (in ten characters). The default is 76 characters.
    test -z "${BAR_WIDTH}" && test -n "${COLUMNS}" && BAR_WIDTH=${COLUMNS}
    # Check syntax:
    ( expr "${BAR_WIDTH}" + 0 >/dev/null 2>&1 ) || BAR_WIDTH=0
    BAR_WIDTH=`expr ${BAR_WIDTH} + 0` || BAR_WIDTH=0
    test "x${BAR_WIDTH}" = x0 && BAR_WIDTH=76
    # Maximal block size to use for dd.
    test -n "${BAR_BS}" || BAR_BS=1048567
    # BEGIN PERC
    # Whether to show a percentage.
    test -n "${BAR_PERC}" || BAR_PERC=1
    # END PERC
    # BEGIN ETA
    # Whether to show estimated time of arrival (ETA).
    test -n "${BAR_ETA}" || BAR_ETA=1
    # END ETA
    # Width of the trace display:
    # BEGIN TRACE
    test -n "${BAR_TRACE_WIDTH}" || BAR_TRACE_WIDTH=10
    # END TRACE
    # The command to execute for every given file. Each file
    # is piped into this command individually. By default, the
    # files are simply dumped to stdout.
    test -n "${BAR_CMD}" || BAR_CMD=cat
    # The characters to be used in the bar
    test -n "${BAR_L}" || BAR_L='['
    test -n "${BAR_R}" || BAR_R=']'
    test -n "${BAR_C0}" || BAR_C0='.'
    test -n "${BAR_C1}" || BAR_C1='='
    # Additional extension to add to each file:
    #BAR_EXT=${BAR_EXT-}
    # Whether to clear bar after termination. Otherwise keep the full bar.
    #BAR_CLEAR=${BAR_CLEAR-0}
    # Unless switched off by user, use the bar by default:
    test -n "${BAR_OK}" || BAR_OK=1
    BAR_WIDTH=`expr ${BAR_WIDTH} - 3`
    bar_trace=''
    # BEGIN TRACE
    if test "x${BAR_TRACE}" = x1
    then
    BAR_WIDTH=`expr ${BAR_WIDTH} - ${BAR_TRACE_WIDTH}`
    bar_lauf=${BAR_TRACE_WIDTH}
    bar_t_space=''
    bar_t_dot=''
    while test "${bar_lauf}" -gt 1
    do
    bar_t_space="${bar_t_space} "
    bar_t_dot="${bar_t_dot}."
    bar_lauf=`expr ${bar_lauf} - 1`
    done
    bar_trace="${bar_t_space} "
    fi
    # END TRACE
    bar_eta=''
    BAR_GET_TIME='echo'
    # BEGIN ETA
    ( expr 1 + ${SECONDS} >/dev/null 2>&1 ) || BAR_ETA=0
    if test "x${BAR_ETA}" = x1
    then
    BAR_GET_TIME='( echo ${SECONDS} )'
    BAR_WIDTH=`expr ${BAR_WIDTH} - 6`
    bar_eta='--:-- '
    fi
    # END ETA
    bar_perc=''
    # BEGIN PERC
    if test "x${BAR_PERC}" = x1
    then
    BAR_WIDTH=`expr ${BAR_WIDTH} - 5`
    bar_perc=' 0% '
    fi
    # END PERC
    BAR_GET_SIZE='( ls -l "${BAR_DIR}${bar_file}${BAR_EXT}" | sed "s@ *@ @g" | cut -d " " -f 5 ) 2>/dev/null'
    # portable?
    # check features:
    ( ( echo a ) >/dev/null 2>&1 ) || BAR_OK=0
    ( ( echo a | dd bs=2 count=2 ) >/dev/null 2>&1 ) || BAR_OK=0
    ( ( echo a | grep a ) >/dev/null 2>&1 ) || BAR_OK=0
    ( ( echo a | sed 's@ *@ @g' ) >/dev/null 2>&1 ) || BAR_OK=0
    ( ( echo a | cut -d ' ' -f 1 ) >/dev/null 2>&1 ) || BAR_OK=0
    # check ranges:
    test "${BAR_WIDTH}" -ge 4 || BAR_OK=0
    BAR_ECHO='echo'
    BAR_E_C1=''
    BAR_E_C2=''
    BAR_E_NL='echo'
    # Does echo accept -n without signalling an error?
    if echo -n abc >/dev/null 2>&1
    then
    BAR_E_C1='-n'
    fi
    # Check how to print a line without newline:
    if ( ( ${BAR_ECHO} "${BAR_E_C1}" abc ; echo 1,2,3 ) | grep n ) >/dev/null 2>&1
    then
    # Try echo \c:
    if ( ( ${BAR_ECHO} 'xyz\c' ; echo 1,2,3 ) | grep c ) >/dev/null 2>&1
    then
    # Try printf:
    if ( ( printf 'ab%s' c ; echo 1,2,3 ) | grep abc ) >/dev/null 2>&1
    then
    BAR_ECHO='printf'
    BAR_E_C1='%s'
    else
    BAR_ECHO=':'
    BAR_E_C1=''
    BAR_E_NL=':'
    BAR_OK=0
    fi
    else
    BAR_E_C1=''
    BAR_E_C2='\c'
    fi
    fi
    # prepare initial bar:
    bar_shown=0
    if test "${BAR_OK}" = 1
    then
    bar_lauf=0
    bar_graph=''
    while test `expr ${bar_lauf} + 5` -le "${BAR_WIDTH}"
    do
    bar_graph="${bar_graph}${BAR_C0}${BAR_C0}${BAR_C0}${BAR_C0}${BAR_C0}"
    bar_lauf=`expr ${bar_lauf} + 5`
    done
    while test "${bar_lauf}" -lt "${BAR_WIDTH}"
    do
    bar_graph="${bar_graph}${BAR_C0}"
    bar_lauf=`expr ${bar_lauf} + 1`
    done
    ${BAR_E_C2}" 1>&2_eta}${bar_perc}${BAR_L}${bar_graph}${BAR_R}
    bar_shown=1
    fi
    # for shifting large numbers so that expr can handle them:
    # Assume we can compute up to 2147483647, thus 9 arbitrary digits.
    # We must be able to do + of two numbers of 9 digits length. Ok.
    # BEGIN LARGE
    ( ( test 1999999998 = `expr 999999999 + 999999999` ) >/dev/null 2>&1 ) || BAR_OK=0
    bar_large_num="........."
    bar_div=""
    # END LARGE
    bar_numsuff=""
    # find size:
    bar_size=0
    if test -n "${BAR_SIZE}"
    then
    bar_size=${BAR_SIZE}
    # BEGIN LARGE
    while expr "${bar_size}" : "${bar_large_num}" >/dev/null 2>&1
    do
    bar_div="${bar_div}."
    bar_numsuff="${bar_numsuff}0"
    bar_size=`expr "${bar_size}" : '\(.*\).$'`
    done
    # END LARGE
    BAR_GET_SIZE="echo '${BAR_SIZE}'"
    else
    for bar_file
    do
    bar_size1=0
    if test -f "${BAR_DIR}${bar_file}${BAR_EXT}"
    then
    bar_size1=`eval "${BAR_GET_SIZE}"`
    # BEGIN LARGE
    # divide and upround by pattern matching:
    if test -n "${bar_div}"
    then
    bar_size1=`expr "${bar_size1}" : '\(.*\)'${bar_div}'$'` || bar_size1=0
    fi
    # adjust if still too large:
    while expr "${bar_size1}" : "${bar_large_num}" >/dev/null 2>&1
    do
    bar_div="${bar_div}."
    bar_numsuff="${bar_numsuff}0"
    bar_size1=`expr "${bar_size1}" : '\(.*\).$'`
    bar_size=`expr "${bar_size}" : '\(.*\).$'` || bar_size=0
    done
    # upround if necessary:
    if test -n "${bar_div}"
    then
    bar_size1=`expr "${bar_size1}" + 1`
    fi
    # END LARGE
    # add to total size:
    bar_size=`expr ${bar_size} + ${bar_size1}`
    # BEGIN LARGE
    # adjust if still too large:
    while expr "${bar_size}" : "${bar_large_num}" >/dev/null 2>&1
    do
    bar_div="${bar_div}."
    bar_numsuff="${bar_numsuff}0"
    bar_size=`expr "${bar_size}" : '\(.*\).$'`
    done
    # END LARGE
    else
    BAR_OK=0
    fi
    done
    fi
    bar_quad=`expr ${BAR_WIDTH} '*' ${BAR_WIDTH}`
    test "${bar_size}" -gt "${bar_quad}" || BAR_OK=0
    if test "${BAR_OK}" = 0
    then
    # For some reason, we cannot display the bar. Thus plain operation:
    for bar_file
    do
    if test "${bar_file}" = "/dev/stdin"
    then
    eval "${BAR_CMD}"
    else
    eval "${BAR_CMD}" < "${BAR_DIR}${bar_file}${BAR_EXT}"
    fi
    done
    else
    # Compute wanted bytes per step:
    bar_want_bps=`expr ${bar_size} + ${BAR_WIDTH}`
    bar_want_bps=`expr ${bar_want_bps} - 1`
    bar_want_bps=`expr ${bar_want_bps} / ${BAR_WIDTH}`
    # Compute block count per step to keep within maximum block size:
    bar_count=1
    if test "${bar_want_bps}" -gt "${BAR_BS}"
    then
    bar_count=`expr ${bar_want_bps} + ${BAR_BS}`
    bar_count=`expr ${bar_count} - 1`
    bar_count=`expr ${bar_count} / ${BAR_BS}`
    fi
    # Compute block size for given count:
    bar_wc=`expr ${BAR_WIDTH} '*' ${bar_count}`
    bar_bs=`expr ${bar_size} + ${bar_wc}`
    bar_bs=`expr ${bar_bs} - 1`
    bar_bs=`expr ${bar_bs} / ${bar_wc}`
    # Compute bs * count, the bytes per step:
    bar_bps=`expr ${bar_bs} '*' ${bar_count}`
    # Compute bytes per hundredth:
    bar_bph=`expr ${bar_size} + 99`
    bar_bph=`expr ${bar_bph} / 100`
    # Run loop:
    bar_pos=0
    bar_graph="${BAR_L}"
    bar_cur_char=0
    bar_t0=`eval "${BAR_GET_TIME}" 2>/dev/null` || bar_t0=0
    for bar_file
    do
    # BEGIN TRACE
    if test "x${BAR_TRACE}" = x1
    then
    bar_trace=`expr "${bar_file}" : '.*/\([^/][^/]*\)$'` || bar_trace="${bar_file}"
    bar_trace=`expr "${bar_trace}${bar_t_space}" : '\('${bar_t_dot}'\)'`
    bar_trace="${bar_trace} "
    fi
    # END TRACE
    # Initial character position in bar for file:
    bar_char=`expr ${bar_pos} / ${bar_want_bps}` || bar_char=0
    while test "${bar_char}" -gt `expr ${bar_cur_char} + 4`
    do
    bar_graph="${bar_graph}${BAR_C1}${BAR_C1}${BAR_C1}${BAR_C1}${BAR_C1}"
    bar_cur_char=`expr ${bar_cur_char} + 5`
    done
    while test "${bar_char}" -gt "${bar_cur_char}"
    do
    bar_graph="${bar_graph}${BAR_C1}"
    bar_cur_char=`expr ${bar_cur_char} + 1`
    done
    # Get file size. This must work now (we checked with test -f before).
    bar_size1=`eval "${BAR_GET_SIZE}" 2>/dev/null` || bar_size1=0
    # BEGIN LARGE
    # Divide and upround by pattern matching:
    if test -n "${bar_div}"
    then
    bar_size1=`expr "${bar_size1}" : '\(.*\)'${bar_div}'$'` || bar_size1=0
    bar_size1=`expr "${bar_size1}" + 1`
    fi
    # END LARGE
    # loop:
    bar_total=0
    exec 6>&1
    exec 5<"${BAR_DIR}${bar_file}${BAR_EXT}"
    while test "${bar_total}" -lt "${bar_size1}"
    do
    dd bs="${bar_bs}" count="${bar_count}${bar_numsuff}" <&5 >&6 2>/dev/null
    bar_total=`expr ${bar_total} + ${bar_bps}`
    if test "${bar_total}" -gt "${bar_size1}"
    then
    bar_total="${bar_size1}"
    fi
    bar_pos1=`expr ${bar_pos} + ${bar_total}`
    bar_proz=`expr ${bar_pos1} / ${bar_bph}` || bar_proz=0
    # BEGIN PERC
    if test "x${BAR_PERC}" = x1
    then
    bar_perc=" ${bar_proz}% "
    bar_perc=`expr "${bar_perc}" : '.*\(.....\)$'`
    fi
    # END PERC
    # BEGIN ETA
    if test "x${BAR_ETA}" = x1
    then
    bar_diff=`eval "${BAR_GET_TIME}" 2>/dev/null` || bar_diff=0
    bar_diff=`expr ${bar_diff} - ${bar_t0} 2>/dev/null` || bar_diff=0
    bar_100p=`expr 100 - ${bar_proz}` || bar_100p=0
    bar_diff=`expr ${bar_diff} '*' ${bar_100p}` || bar_diff=0
    bar_diff=`expr ${bar_diff} + ${bar_proz}` || bar_diff=0
    bar_diff=`expr ${bar_diff} - 1` || bar_diff=0
    bar_diff=`expr ${bar_diff} / ${bar_proz} 2>/dev/null` || bar_diff=0
    if test "${bar_diff}" -gt 0
    then
    bar_t_unit=":"
    if test "${bar_diff}" -gt 2700
    then
    bar_t_uni="h"
    bar_diff=`expr ${bar_diff} / 60`
    fi
    bar_diff_h=`expr ${bar_diff} / 60` || bar_diff_h=0
    if test "${bar_diff_h}" -gt 99
    then
    bar_eta=" ${bar_diff_h}${bar_t_unit} "
    else
    bar_diff_hi=`expr ${bar_diff_h} '*' 60` || bar_diff_hi=0
    bar_diff=`expr ${bar_diff} - ${bar_diff_hi}` || bar_diff=0
    bar_diff=`expr "00${bar_diff}" : '.*\(..\)$'`
    bar_eta=" ${bar_diff_h}${bar_t_unit}${bar_diff} "
    fi
    bar_eta=`expr "${bar_eta}" : '.*\(......\)$'`
    fi
    fi
    # END ETA
    bar_char=`expr ${bar_pos1} / ${bar_want_bps}` || bar_char=0
    while test "${bar_char}" -gt "${bar_cur_char}"
    do
    bar_graph="${bar_graph}${BAR_C1}"
    ${bar_trace}${bar_eta}${bar_perc}${bar_graph}${BAR_E_C2}" 1>&2
    bar_cur_char=`expr ${bar_cur_char} + 1`
    done
    done
    ) | eval "${BAR_CMD}"
    bar_pos=`expr ${bar_pos} + ${bar_size1}`
    done
    # ${BAR_ECHO} "${BAR_E_C1}" "${BAR_R}${BAR_E_C2}" 1>&2
    fi
    if test "${bar_shown}" = 1
    then
    # BEGIN TRACE
    test "x${BAR_TRACE}" = x1 && bar_trace="${bar_t_space} "
    # END TRACE
    # BEGIN ETA
    test "x${BAR_ETA}" = x1 && bar_eta=' '
    # END ETA
    if test "x${BAR_CLEAR}" = x1
    then
    # BEGIN PERC
    test "x${BAR_PERC}" = x1 && bar_perc=' '
    # END PERC
    bar_lauf=0
    bar_graph=''
    while test `expr ${bar_lauf} + 5` -le "${BAR_WIDTH}"
    do
    bar_graph="${bar_graph} "
    bar_lauf=`expr ${bar_lauf} + 5`
    done
    while test "${bar_lauf}" -lt "${BAR_WIDTH}"
    do
    bar_graph="${bar_graph} "
    bar_lauf=`expr ${bar_lauf} + 1`
    done
    ${BAR_E_C2}" 1>&2_eta}${bar_perc} ${bar_graph}
    else
    # BEGIN PERC
    test "x${BAR_PERC}" = x1 && bar_perc='100% '
    # END PERC
    bar_lauf=0
    bar_graph=''
    while test `expr ${bar_lauf} + 5` -le "${BAR_WIDTH}"
    do
    bar_graph="${bar_graph}${BAR_C1}${BAR_C1}${BAR_C1}${BAR_C1}${BAR_C1}"
    bar_lauf=`expr ${bar_lauf} + 5`
    done
    while test "${bar_lauf}" -lt "${BAR_WIDTH}"
    do
    bar_graph="${bar_graph}${BAR_C1}"
    bar_lauf=`expr ${bar_lauf} + 1`
    done
    ${bar_trace}${bar_eta}${bar_perc}${BAR_L}${bar_graph}${BAR_R}${BAR_E_C2}" 1>&2
    ${BAR_E_NL} 1>&2
    fi
    fi
    ####>-SCHNAPP-<########################################################
    BAR_AWK_0=''
    # Command line interface:
    while test -n "$1"
    do
    case "$1" in
    -o|-c|-w|-0|-1|-e|-d|-b|-s|-\[\]|-\[|-\]|-T)
    if test -z "$2"
    then
    echo "$0: Error: A non-empty argument was expected after $1" 1>&2
    fi
    BAR_ARG="$1"
    BAR_OPT="$2"
    shift
    shift
    -o*|-c*|-w*|-0*|-1*|-e*|-d*|-b*|-T*)
    BAR_ARG=`expr "$1" : '\(-.\)'`
    BAR_OPT=`expr "$1" : '-.\(.*\)$'`
    shift
    -h|-n|-p|-D|-D-|-q|-V|-t|-E|-L)
    BAR_ARG="$1"
    BAR_OPT=""
    shift
    --) shift
    break
    -*) echo "$0: Error: Unrecognized option: $1" 1>&2
    exit 1
    break
    esac
    case "${BAR_ARG}" in
    -h) echo 'Usage: bar [-n] [-p] [-q] [-o FILE] [-c CMD] [-s SIZE] [-b SIZE]'
    echo ' [-w WIDTH] [-0/1/[/] CHAR] [-d DIR] [-e EXT] [Files]'
    echo ' bar -V'
    echo ' bar -D'
    echo ' bar -D-'
    echo 'Options:'
    echo ' -h displays help'
    echo ' -o FILE sets output file'
    echo ' -c CMD sets individual execution command'
    echo ' -e EXT append an extension to each file'
    echo ' -d DIR prepend this prefix to each file (a directory must end in /)'
    echo ' -s SIZE expected number of bytes. Use for pipes. This is a hint'
    echo ' only that must be greater or equal to the amount actually'
    echo ' processed. Further, this only works for single files.'
    echo ' -b SIZE maximal block size (bytes) (default: 1048567)'
    echo ' -w WIDTH width in characters (default: terminal width-3 or 76)'
    echo ' -0 CHAR character for empty bar (default: .)'
    echo ' -1 CHAR character for full bar (default: =)'
    echo ' -[ CHAR first character of bar (default: [)'
    echo ' -] CHAR last character of bar (default: ])'
    echo ' -n clears bar after termination'
    echo ' -t traces (=displays) which file is processed'
    echo ' -T WIDTH no of characters reserved for the file display of -t'
    echo ' -p hides percentage'
    echo ' -E hides estimated time display'
    echo ' -q hides the whole bar, be quiet'
    echo ' -D tries to dump the bar_cat() shell function, then exit.'
    echo ' Here, -t, -p, -E remove the corresponding feature completely.'
    echo ' Further, -L removes large file support from the code.'
    echo ' -D- same as -D, but dumps the function body only'
    echo ' -V displays version number'
    echo ' -- end of options: only file names follow'
    exit 0
    -n) BAR_CLEAR=1
    -L) BAR_LARGE=0
    BAR_AWK_0="${BAR_AWK_0} /END *LARGE/ {x=1} ;"
    BAR_AWK_0="${BAR_AWK_0} /BEGIN *LARGE/ {x=0} ;"
    -t) BAR_TRACE=1
    BAR_AWK_0="${BAR_AWK_0} /END *TRACE/ {x=1} ;"
    BAR_AWK_0="${BAR_AWK_0} /BEGIN *TRACE/ {x=0} ;"
    -T) BAR_TRACE_WIDTH="${BAR_OPT}"
    -q) BAR_OK=0
    -p) BAR_PERC=0
    BAR_AWK_0="${BAR_AWK_0} /END *PERC/ {x=1} ;"
    BAR_AWK_0="${BAR_AWK_0} /BEGIN *PERC/ {x=0} ;"
    -E) BAR_ETA=0
    BAR_AWK_0="${BAR_AWK_0} /END *ETA/ {x=1} ;"
    BAR_AWK_0="${BAR_AWK_0} /BEGIN *ETA/ {x=0} ;"
    -V) echo "bar v${BAR_VERSION}"
    exit 0
    -D) echo "BAR_VERSION=${BAR_VERSION}"
    awk "${BAR_AWK_0}"'{sub(/ *#.*$/,"")} ; /^bar_cat/ {x=1} ; {sub(/^ */,"")} ; /./ {if(x)print} ; /^}/ {x=0}' "$0"
    exit 0
    -D-) echo "BAR_VERSION=${BAR_VERSION}"
    awk "${BAR_AWK_0}"'{sub(/ *#.*$/,"")} ; /^}/ {x=0} ; {sub(/^ */,"")} ; /./ {if(x)print} ; /^{/ {x=1}' "$0"
    exit 0
    -o) exec 1>"${BAR_OPT}"
    -c) BAR_CMD="${BAR_OPT}"
    -b) BAR_BS="${BAR_OPT}"
    if BAR_RAW=`expr "${BAR_BS}" : '\(.*\)k$'`
    then
    BAR_BS=`expr ${BAR_RAW} '*' 1024`
    elif BAR_RAW=`expr "${BAR_BS}" : '\(.*\)M$'`
    then
    BAR_BS=`expr ${BAR_RAW} '*' 1048567`
    fi
    -s) BAR_SIZE="${BAR_OPT}"
    if BAR_RAW=`expr "${BAR_SIZE}" : '\(.*\)k$'`
    then
    BAR_SIZE=`expr ${BAR_RAW} '*' 1024`
    elif BAR_RAW=`expr "${BAR_SIZE}" : '\(.*\)M$'`
    then
    BAR_SIZE=`expr ${BAR_RAW} '*' 1048567`
    fi
    if test "$#" -gt 1
    then
    echo "Error: -s cannot be specified for multiple input files." 1>&2
    exit 1
    fi
    -e) BAR_EXT="${BAR_OPT}"
    -d) BAR_DIR="${BAR_OPT}"
    -0) BAR_C0="${BAR_OPT}"
    -1) BAR_C1="${BAR_OPT}"
    -\[) BAR_L="${BAR_OPT}"
    -\]) BAR_R="${BAR_OPT}"
    BAR_L="${BAR_OPT}"
    BAR_R="${BAR_OPT}"
    -w) BAR_WIDTH="${BAR_OPT}"
    esac
    done
    # Invoke main function:
    if test "$#" = 0
    then
    bar_cat /dev/stdin
    else
    bar_cat "$@"
    fi
    EDIT: solved https://bbs.archlinux.org/viewtopic.php … 85#p498885
    It seems like I have not tried every potential packages after all
    Last edited by tamikana (2011-10-30 16:04:46)

    This might help http://www.dwcourse.com/dreamweaver/ten-commandments-spry-menubars.php#one
    Also, if you use DW CS5 click on Live Code and Live View. Then when clicking on the menu items in Live View, watch the changes in classes that occur. This mifgt give you a clue of what to do.
    Cheers,
    Gramps

  • Progress bar in a JProgressBar component is not always drawn

    Hi experts,
    I have a strange issue with a swing application. This app contains of a JFrame including a JTable. This table has multiple columns, one of them is a JProgressBar (implementing a TableCellRenderer). Multiple background threads are running, every of them updates one row's progress bar via the InvokeLater() method. This works fine.
    At a specific point within the runtime of the application, the value of a progress bar is set back to 0, and instead of the default percentage text a custom string is displayed (then continuing to progress with this custom text set). This works fine as well.
    Problem is, that when a custom string is set to one progress bar as described above, then the bars of the other JProgressBars are not painted any more. But the default percentage text of these other JProgressBars are still incremented and painted correctly. When the one progress bar, that has the custom string set, has finished and this row is removed from table, then the other progress bars are again painted correctly (including the default percentage text).
    A part of the custom TableCellRenderer class is shown here:
         public class ProgressRenderer extends JProgressBar implements TableCellRenderer
         public ProgressRenderer()
              super(SwingConstants.HORIZONTAL);
              setBorderPainted(false);
              setStringPainted(true);
         public Component getTableCellRendererComponent(JTable table, Object value,
              boolean isSelected, boolean hasFocus, int row, int column)
              if(value != null)
                   setValue(((JProgressBar) value).getValue());
                   setString(((JProgressBar) value).getString());
                   setMinimum(((JProgressBar) value).getMinimum());
                   setMaximum(((JProgressBar) value).getMaximum());
              return this;
    ...Any ideas what could be wrong here?
    I am really out of ideas here :(
    Thanks in advance for your help!
    Kind regards, Matthias

    I have solved the problem:
         public Component getTableCellRendererComponent(JTable table, Object value,
              boolean isSelected, boolean hasFocus, int row, int column)
              if(value != null)
                   setString(((JProgressBar) value).getString());
                   setMinimum(((JProgressBar) value).getMinimum());
                   setMaximum(((JProgressBar) value).getMaximum());
                   setValue(((JProgressBar) value).getValue());
              return this;
         }

  • Folio Builder Panel - progress bars?

    Not a major thing, I know, but still...
    What happened to the upload progress bars in the Folio Builder Panel? I do like being able to monitor progress.

    OK, I might be mistaken - the bars are there when updating an article, or when adding a single article to an existing folio. With multi-article import, there were no bars. Didn't we get to see loading bars when importing multiple articles? Or is old age setting in?

  • Is there a way to use a progress bar with Xerces XML Parser?

    My program is parsing very long XML files that take several minutes to parse. I am using Xerces as the parser. I would like to use a progress bar to show the progress, but I haven't found any way to get Xerces to give progress updates. Is this possible?

    Use teh SAX parser and listen to SAX events. Example:
    import java.io.*;
    import java.util.*;
    //jaxp-api.jar:
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    //sax.jar:
    import org.xml.sax.Attributes;
    import org.xml.sax.InputSource;
    import org.xml.sax.XMLReader;
    import org.xml.sax.helpers.DefaultHandler;
    import mine.IOUtils;
    * Handler to read content from (large) XML sources and send events to registered XMLListeners. Use this class to read
    * big (multiple megabytes) XML files via SAX and listen to XML events to process XML elements.
    * For small (less than a megabyte) XML files, it's more convenient to use the DOM API
    * to read the XML into a DOM document and perform XPath commands. DOM is easier to handle but has
    * the drawback that the complete XML content is stored in one big DOM document object in memory.
    public final class XMLHandler extends DefaultHandler {
        /** (Reusable) XMLReader to parse an XML document. */
        private XMLReader xmlReader = null;
        /** Registered XMLEventListeners. */
        private List<XMLListener> listeners = new ArrayList<XMLListener>();
        /** Value of current element. */
        private StringBuilder elementValue = null;
        /** Stack of current element and all of its parent elements. */
        private Stack<String> elementStack = new Stack<String>();
         * Constructor.
         * @throws Exception
        public XMLHandler() throws Exception {
            super();
            // Create a JAXP SAXParserFactory and configure it
            final SAXParserFactory spf = SAXParserFactory.newInstance(); //Use the default (non-validating) parser
            spf.setValidating(true);
            // Create a JAXP SAXParser
            final SAXParser saxParser = spf.newSAXParser();
            // Get the encapsulated SAX XMLReader
            xmlReader = saxParser.getXMLReader();
            xmlReader.setContentHandler(this);
            xmlReader.setDTDHandler(this);
            xmlReader.setEntityResolver(this);
            xmlReader.setErrorHandler(this);
        }//XMLHandler()
          * Add XMLListener to receive XML events from the current XML document.
         *  If <i>listener</i> is null, no exception is thrown and no action is performed.
          * @param listener XMLListener to add.
         public void addXMLEventListener(final XMLListener listener) {
            if (listener != null) {
                listeners.add(listener);
        }//addXMLEventListener()
         * Parse current XML document. Registered XMLEventListeners will receive events during parsing.
         * @param fileName Name of file to read XML content from.
         * @throws Exception
        public void parse(final String fileName) throws Exception {
            if (fileName != null) {
                parse(IOUtils.openInputStream(fileName));
        }//readXML()
          * Parse current XML document. Registered XMLEventListeners will receive events during parsing.
         * @param inputStream InputStream to read XML content from.
          * @throws Exception
         public void parse(final InputStream inputStream) throws Exception {
            if (inputStream != null) {
                xmlReader.parse(new InputSource(inputStream));
        }//readXML()
         * Overwrite super.
         * Receive notification of the beginning of the document.
        @Override
        public void startDocument() {
            for (XMLListener l : listeners) {
                l.documentStarted();
        }//startDocument()
         * Overwrites super.
         * Receive notification of the start of an element.
        @Override
        public void startElement(final String uri, final String localName, final String qName, final Attributes atts) {
            elementStack.push(qName);
            for (XMLListener l : listeners) {
                l.elementStarted(qName, elementStack);
            elementValue = new StringBuilder(); //element value
            //element attributes:
            if (atts.getLength() > 0) {
                String attName = null;
                for (int i = 0; i < atts.getLength(); i++) {
                    attName = atts.getQName(i);
                    final String attValue = atts.getValue(i);
                    for (XMLListener l : listeners) {
                        l.attributeRead(qName, attName, attValue);
                }//next attribute
            }//else: no attributes
        }//startElement()
         * Overwrites super.
         * Receive notification of character data inside an element. This method can be called multiple times
         * from SAX, so we need to append all results of all calls to the final element value.
        @Override
        public void characters(final char ch[], final int start, final int length) {
            String s = new String(ch, start, length);
            elementValue.append(s);
        }//characters()
         * Overwrites super.
         * Receive notification of the end of an element.
        @Override
        public void endElement(final String uri, final String localName, final String qName) {
            for (XMLListener l : listeners) {
                l.elementEnded(qName, elementValue.toString());
            elementStack.pop();
        }//endElement()
         * Overwrite super.
         * Receive notification of the end of the document.
        @Override
        public void endDocument() {
            for (XMLListener l : listeners) {
                l.documentEnded();
        }//endDocument()
    }//XMLHandler

  • Is it possible to use a progress bar in Photoshop?

    Hi,
    I'm developing an automation plug-in to Photoshop. It take long time to do the work, I therefore want to start a none modal dialog with a progress bar and a cancel button. I did not find any example of this in the SDK. Is it possible to use any of the functions in the PIProgressSuite.h for this kind of dialog?
    Regards,
    Mattias

    I don't think you will have much luck with the progress suite. It is used for one operation that your plug-in would control. You are probably using multiple Photoshop events and want to sum them up in a progress bar. Ideally you would want a double progress bar, one for the overall progress and one for the step progress. Unfortunately, the progress suite will get reset with each process that Photoshop tries to show progress for. Your best bet is to just use an OS progress bar in your dialog. Figuring out the progress will be dificult.

  • Hide document window and set progress bar window in front...

    Hi everyone,
    We have created the batch script to generate artlink reports from multiple inx files and writing it into a text file.
    Our script will open each document from the selected folder and generating the art link reports. From starting to end of the process the progress bar window will takes place to show the status of the process. The concern is, the progress bar window has been sent to back after opening of each document. Is it possbile to minimize the documents window, so the progress bar window alone displayed in the screen as front most window.
    Can anyone look into this and help me out. Thanks in advance.
    Thiyagu

    Hi Thomas,
    Thanks for your kind help. Its working greatly. Sorry, past two days i was outstation so i am unable to reply you.
    Once again thanking you.
    Regards
    Thiyagu

  • Progress bar Fl cs3 as3.0

    below is my very simple code to load images from a instance
    of button component into an instance of UIloader component.
    there are multiple buttons like this one
    i can't get it... the way to get progress bar to listen and
    respond to the loading of the image
    img_02_btn.addEventListener(MouseEvent.CLICK, onClick2);
    function onClick2(event:MouseEvent):void
    trace("typeMe");
    loaderOne.source = "assets/b300.png";
    loaderOne.load();
    }

    Thanks Jongware I knew it had to be something simple.
    Working version:
        var myStop =6;
        var myWindow = new Window ( 'window','Progress');
        var myProgressBar = myWindow.add ('progressbar', [12, 12, 350, 24], 0, myStop);
        var myStaticText = myWindow.add('statictext');
        myStaticText.bounds = [0, 0, 340, 20];
        myStaticText.alignment = "left";
    function stagesLeft(myText,stageVal){
        if(stageVal == 1){   
            myWindow.show();
            myProgressBar.value = stageVal;
            myStaticText.text = myText;
            myWindow.text = 'Stage '+ stageVal + ' out of ' + myStop;
            if(stageVal == 6){
            myWindow.close();
    To use the function:
    stagesLeft("This is the first stage",1)
    then further on in the script when another process is taking place
    stagesLeft("Here is stage 2 of this script",2)
    etc etc.
    Cheers, John.

  • Progress bar completion function

    How do we control the progress bar completion functions @ the end of the pages, so they reflect reasonably correct amounts?

    For single page forms we never show progress
    For multiple page forms the first page always shows 0% and we don't show progress on the last page. For the pages in between we take the number of questions completed on the previous pages and divide by the total number of questions in the entire form to get the percentage for the current visible page.
    Hope that explains this better.
    Randy

Maybe you are looking for

  • Adding a Column to a JTable

    I have a simple gui where I query a database and return a result set in a JTable using a table model. I would like to be able to add a new column with checkboxes as the first column in the table. I've seen examples using checkboxes with boolen data f

  • Determining datafile size for temp tablespace

    Is there a rule of thumb for determining the size of the temporary tablespace, or at least a common starting value? -Thanks Chuck

  • Keyboard-driven text-selection faulty

    G'day I thought I raised this before, but cannot find reference to it either here or in the bug tracker.  Sorry if I'm repeating myself. Often I'll find myself towards the end of a line of code, and wanting to select everything back to an earlier poi

  • N97 mini: loudness of message tone

    hello, in am using the general profile on a Nokia N97 mini. The loudness of 'message alert tone' is too loud for me.I don't find a variable where I can change the loudness of the 'incoming message' (sms) tone.

  • JSTL : problems with sql:query /forEach  tag

    I am not able to iterate thru the resultset provided by <sql:query> tag in JSTL. rowcount and columnName works, which means that query does produce a resultset. However, the <c:forEach> tag doesnt display the retrieved data. Code is approx like: c:ca