uk.ac.starlink.table.gui
Class SaveWorker

java.lang.Object
  extended byuk.ac.starlink.table.gui.SaveWorker

public abstract class SaveWorker
extends Object

Handles asynchronous table saving. To save a table, create an instance of this class with a suitable implementation of the attemptSave(uk.ac.starlink.table.StarTable) method and call invoke() on it from the event dispatch thread. A progress bar will advise the user on how the save is going, and if the save fails a popup will advise of the error. When the save has completed one way or another, the done(boolean) method will be called.

Since:
24 Feb 2005

Constructor Summary
protected SaveWorker(Component parent, StarTable table, String location)
          Constructs a save worker which will use its own popup widow for progress display.
protected SaveWorker(JProgressBar progBar, StarTable table, String location)
          Constructs a save worker which will use a given progress bar for progress display.
 
Method Summary
protected abstract  void attemptSave(StarTable table)
          This method should do the work of saving the given table.
 void cancel()
          Interrupts any save which is in progress.
protected abstract  void done(boolean success)
          Called from the event dispatch thread when the save has completed.
 void invoke()
          Begins the save.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SaveWorker

protected SaveWorker(Component parent,
                     StarTable table,
                     String location)
Constructs a save worker which will use its own popup widow for progress display.

Parameters:
parent - parent component used for progress bar popup
table - table to be saved
location - string identifying the save destination - used for display purposes only

SaveWorker

protected SaveWorker(JProgressBar progBar,
                     StarTable table,
                     String location)
Constructs a save worker which will use a given progress bar for progress display.

Parameters:
progBar - progress bar which will be updated to display progress
table - table to be saved
location - string identifying the save destination - used for display purposes only
Method Detail

attemptSave

protected abstract void attemptSave(StarTable table)
                             throws IOException
This method should do the work of saving the given table. It will not be called on the event dispatch thread, so may take some time to execute.

Parameters:
table - table to save
Throws:
IOException - if the table cannot be saved

done

protected abstract void done(boolean success)
Called from the event dispatch thread when the save has completed. The success argument indicates whether the table was saved successfully or not. If it was not, the user will already have been informed of this.

The default implementation does nothing, but subclasses may override it to react in some way to the save's completion.

Returns:
success save status

cancel

public void cancel()
Interrupts any save which is in progress. Call from the event dispatch thread.


invoke

public void invoke()
Begins the save. Should be invoked from the event dispatch thread.


Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.