WISA.wisa3D.module
Class DataProcessor

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--WISA.wisa3D.module.DataProcessor
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
DEMProcessor, GridProcessor, OrbitProcessor

public abstract class DataProcessor
extends java.lang.Thread

DataProcessor ist Superclass für alle Klassen die Berechnungen an Datenmengen durchführen. Die Processoren die DataProcessor erweitern implementieren die processData-Methode nach der von ihnen dargestellten Funktionalität. Die Datenverwaltung der Processoren erfolgt dabei immer über ein DataHandle-Objekt. Außerdem sollte eine Unterklasse von DataHandle noch die Methode makeOptimalDataVisualization() implementieren. Optional kann noch die makeOptionDialog()-Methode implementiert werden.


Field Summary
protected  visad.Data data
          Das Data-Objekt dieses Processors
protected  java.lang.String note
          Eine kurze Beschreibung des momentanen Prozeßstandes.
protected  boolean okPressed
           
protected  int progress
          Der Fortschritt des Prozesses in Prozent.
protected  boolean stop
           
protected  boolean success
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
DataProcessor()
          Konstruiert ein leeres DataProcessor-Objekt.
DataProcessor(visad.Data data)
          Konstruiert ein DataProcessor-Objekt dessen Operationen auf dem übergebenen Data-Objekt arbeiten.
 
Method Summary
 visad.Data getData()
          Übergibt das bearbeitete Data-Objekt.
 javax.swing.Icon getIcon()
           
 java.lang.String[] getInfo()
          Gibt eine kurze Information über die Aufgaben dieses DataProcessors zurück.
 visad.ScalarMap[] getMaps()
          Gibt das für den entsprechenden Processor beste Mapping zurück.
 java.lang.String getNote()
          Gibt den momentanen Stand des Prozesses an.
 java.lang.String getProcessorName()
           
 int getProgress()
          Gibt den Fortschritt des Prozesses in Prozent an.
 boolean inputNeeded()
          Returns true if this processors needs input data.
 boolean isDone()
          Ist die Bearbeitung des DataHandle Objekts beendet, so gibt diese Methode true zurück, ansonsten false.
 javax.swing.JDialog makeOptionDialog(java.awt.Frame owner)
          Braucht der Processor noch Benutzereingaben um seine Berechnungen durchführen zu können, so kann hier ein Dialog implementiert werden.
 boolean okPressed()
          Falls ein OptionDialog für diesen Processor existiert, liefert diese Methode nach dessen Beendigung die Art der Beendigung zurück.
protected abstract  void processData()
          Führt für die implementierte Unterklasse von DataProcessor typische Berechnungen an der Datenmenge aus.
 boolean progressMonitoringDesired()
          Returns true if an monitoring of the progress of this desired.
 void run()
          Startet den Processor.
 void setData(visad.Data data)
          Setzt das zu bearbeitende Data-Objekt.
 void stopTask()
          Stoppt den Processor.
 boolean success()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

success

protected boolean success

okPressed

protected boolean okPressed

data

protected visad.Data data
Das Data-Objekt dieses Processors


progress

protected int progress
Der Fortschritt des Prozesses in Prozent. Unterklassen sollten diese Variable in ihrer prozessData()-Methode ständig aktualisieren. Die Darstellung des Fortschritts erfolgt dabei automatisch


note

protected java.lang.String note
Eine kurze Beschreibung des momentanen Prozeßstandes. Unterklassen können während ihrer Prozeßdauer dem User so immer mitteilen welche Berechnungen gerade durchgeführt werden.


stop

protected boolean stop
Constructor Detail

DataProcessor

public DataProcessor()
Konstruiert ein leeres DataProcessor-Objekt.


DataProcessor

public DataProcessor(visad.Data data)
Konstruiert ein DataProcessor-Objekt dessen Operationen auf dem übergebenen Data-Objekt arbeiten.

Method Detail

setData

public void setData(visad.Data data)
Setzt das zu bearbeitende Data-Objekt.


getData

public visad.Data getData()
Übergibt das bearbeitete Data-Objekt.


getMaps

public visad.ScalarMap[] getMaps()
Gibt das für den entsprechenden Processor beste Mapping zurück. Unterstützt ein Processor diese Funktion nicht, wird null zurückgegeben und Wisa3DFrame sorgt für ein Automapping.

Returns:
Das Mapping welches die bearbeiteten Daten am besten darstellt oder null.

run

public void run()
Startet den Processor.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

stopTask

public void stopTask()
Stoppt den Processor.


isDone

public boolean isDone()
Ist die Bearbeitung des DataHandle Objekts beendet, so gibt diese Methode true zurück, ansonsten false.


success

public boolean success()

makeOptionDialog

public javax.swing.JDialog makeOptionDialog(java.awt.Frame owner)
Braucht der Processor noch Benutzereingaben um seine Berechnungen durchführen zu können, so kann hier ein Dialog implementiert werden. Der Dialog wird automatisch vor Beginn der Berechungszeit aufgerufen und kann dabei beliebig aussehen. Voraussetzung ist das er modal ist da ansonsten der Processor gestartet wird ohne auf die Benutzereingaben zu warten.


okPressed

public boolean okPressed()
Falls ein OptionDialog für diesen Processor existiert, liefert diese Methode nach dessen Beendigung die Art der Beendigung zurück.

Returns:
true falls der Dialog erfolgreich, das heißt i.d.R. durch Betätigung des Ok-Button beendet wurde, ansonsten false.

processData

protected abstract void processData()
Führt für die implementierte Unterklasse von DataProcessor typische Berechnungen an der Datenmenge aus.


getProgress

public int getProgress()
Gibt den Fortschritt des Prozesses in Prozent an.


getNote

public java.lang.String getNote()
Gibt den momentanen Stand des Prozesses an.


inputNeeded

public boolean inputNeeded()
Returns true if this processors needs input data. By default this returns true.

Returns:
true if this processor need data to operate on.

progressMonitoringDesired

public boolean progressMonitoringDesired()
Returns true if an monitoring of the progress of this desired.

Returns:
True if automatic-progress-monitoring is desired.

getInfo

public java.lang.String[] getInfo()
Gibt eine kurze Information über die Aufgaben dieses DataProcessors zurück. Jeder DataProcessor sollte diese Methode überschreiben. Das zurückgegebene String-array enthält im ersten Element den Namen des Autors, im zweiten dessen Email-Adresse, im dritten die aktuelle Versionsnummer und im vierten eine kurze Beschreibung der Aufgaben dieses Moduls.


getProcessorName

public java.lang.String getProcessorName()

getIcon

public javax.swing.Icon getIcon()