Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / January 2006

Tip: Looking for answers? Try searching our database.

Progress monitoring for a console app

Thread view: 
Roedy Green - 26 Jan 2006 02:45 GMT
What sorts of trick have you used in console-only apps to let the user
know the program is still alive without filling up screens full of
junk?

For guis, see http://mindprod.com/jgloss/progress.html
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

IchBin - 26 Jan 2006 03:55 GMT
> What sorts of trick have you used in console-only apps to let the user
> know the program is still alive without filling up screens full of
> junk?
>
> For guis, see http://mindprod.com/jgloss/progress.html

For the HSQLDB product, in the package
org.hsqldb.util.DatabaseManagerSwing class I could not add a progress
bar because it did not make sense for this app. I added a panel at the
bottom of the screen with a button(with Icon) and a JLabel as my output
status message area. Then wrote a method so other methods could set the
status icon(red or Green) and message based on processing mode. So
visually you would know the states and what it was or was not doing.

If you do not have the product I have some screenshots here:
http://weconsultants.servebeer.com/JHackerAppManager/Portal?xpc=1$@5

To setup the status panel it went something like this..

        jStatusLine = new JLabel();
        iReadyStatus = new JButton(new
ImageIcon(CommonSwing.getIcon("StatusReady")));
        iReadyStatus.setSelectedIcon(
            new ImageIcon(CommonSwing.getIcon("StatusRunning")));
        pStatus = new JPanel();
        pStatus.setLayout(new BorderLayout());
        pStatus.add(iReadyStatus, BorderLayout.WEST);
        pStatus.add(jStatusLine, BorderLayout.CENTER);
        fMain.getContentPane().add(pStatus, "South");

The source for the HSQLDB project can be found at their website if you
want to look at...either download the jar file or look at it cvs
http://hsqldb.org/

Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
http://weconsultants.servebeer.com/JHackerAppManager
__________________________________________________________________________

'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor,  Regular Guy (1952-)
Gordon Beaton - 26 Jan 2006 07:59 GMT
> What sorts of trick have you used in console-only apps to let the
> user know the program is still alive without filling up screens full
> of junk?

This is a classic mechanism:

 static char spins[] = { '-', '\\', '|', '/' };
 static int pos = 0;

 static void spinner() {
   System.out.print(spins[pos] + "\r");
   pos = (pos + 1) % 4;
 }

Call spinner() occasionally while doing your work. It gives the user
an indication that the program hasn't died as well as some idea of the
rate it's progressing.

You get a similar effect with "bubbles" instead:

 static char bubbles[] = { '.', 'o', 'O', 'o', '.' };

/gordon

Signature

[  do not email me copies of your followups  ]
g o r d o n + n e w s @  b a l d e r 1 3 . s e

jcsnippets.atspace.com - 26 Jan 2006 19:38 GMT
> > What sorts of trick have you used in console-only apps to let the
> > user know the program is still alive without filling up screens full
[quoted text clipped - 13 lines]
> an indication that the program hasn't died as well as some idea of the
> rate it's progressing.

I was going to suggest calculating the percentage of work that still needs
to be done, and writing that to the screen. If 1% of the work would take a
long time, the user still wouldn't have a clue whether or not the program
had died.

Very nice classic!

Kind regards,

JC
--
http://jcsnippets.atspace.com
a collection of source code, tips and tricks
Roedy Green - 27 Jan 2006 00:27 GMT
>static char spins[] = { '-', '\\', '|', '/' };
>  static int pos = 0;
[quoted text clipped - 3 lines]
>    pos = (pos + 1) % 4;
>  }
I have gussied this up a bit and written test harness.

This code won't work in Eclipse or Macs.

see http://mindprod.com/jgloss/progress.html#CONSOLE
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Gordon Beaton - 30 Jan 2006 08:11 GMT
>>static char spins[] = { '-', '\\', '|', '/' };
>>  static int pos = 0;
[quoted text clipped - 4 lines]
>>  }
> I have gussied this up a bit and written test harness.

Too bad a plugin is required to see that.

> This code won't work in Eclipse or Macs.

Try \b instead of \r, which should work on more platforms and has the
added advantage that you can use the spinner at the *end* of a line
with some text explaining what's going on:

 Please wait while your disk is reformated...

(you get the idea).

/gordon

Signature

[  do not email me copies of your followups  ]
g o r d o n + n e w s @  b a l d e r 1 3 . s e



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.