/*
* ChartOutputSynapse.java
*
* Created on 17 marzo 2002, 16.53
*/
package org.joone.edit;
/**
* This class plots a line chart
*
* @author pmarrone
*/
import org.joone.engine.*;
import java.io.*;
public class ChartOutputSynapse extends AbstractChartSynapse {
private static final long serialVersionUID = 7501332794591309201L;
private transient DrawingRegion myDrawingRegion;
private transient SharedBuffer grafBuffer;
/** Creates new form ChartOutputSynapse */
public ChartOutputSynapse() {
super();
}
private void initDrawingRegion(int mainTrainingCycles) {
iFrame.getContentPane().removeAll();
myDrawingRegion = new DrawingRegion(new java.awt.Dimension(550, 350), getMaxYaxis(), mainTrainingCycles);
iFrame.getContentPane().add(myDrawingRegion, java.awt.BorderLayout.CENTER);
iFrame.setSize(560, 360);
iFrame.pack();
}
/** Setter for property maxYaxis.
* @param maxYaxis New value of property maxYaxis.
*/
public void setMaxYaxis(double maxYaxis) {
super.setMaxYaxis(maxYaxis);
if (myDrawingRegion != null)
myDrawingRegion.setMaxYvalue(maxYaxis);
}
/** Setter for property maxXaxis.
* @param maxXaxis New value of property maxXaxis.
*/
public void setMaxXaxis(int maxXaxis) {
super.setMaxXaxis(maxXaxis);
if (myDrawingRegion != null)
myDrawingRegion.setMaxXvalue(maxXaxis);
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
if (getTitle() == null) {
// to assure backward compatibility...
setTitle("Chart");
setName("Chart");
setMaxXaxis(10000);
setMaxYaxis(1.0);
setResizable(true);
setSerie(1);
super.initComponents();
}
myDrawingRegion = null;
}
/** Method to plot a serie of a pattern in multi-serie mode
* This method is used by a ChartingHandle to plot a specific serie
* @param pattern The input pattern
* @param handle The ChartingHandle class that describes the serie to plot
*/
public void fwdPut(Pattern pattern, ChartingHandle handle) {
if (isEnabled()) {
SharedBuffer buffer = getDrawingRegion().getBuffer(handle);
this.fwdPut(pattern, handle.getSerie(), buffer);
}
}
/** Method to plot a serie in the chart in single-serie mode
* @param pattern The input pattern
*/
public void fwdPut(Pattern pattern) {
if (isEnabled()) {
if (getSerie() > pattern.getArray().length) {
new NetErrorManager(getMonitor(), "ChartOutputSynapse: '"+getName()+"' - Serie greater than the pattern's length");
return;
}
grafBuffer = getDrawingRegion().getBuffer();
this.fwdPut(pattern, getSerie(), grafBuffer);
}
}
private void fwdPut(Pattern pattern, int numSerie, SharedBuffer buffer) {
if (pattern.getCount() > -1) {
double[] array = pattern.getArray();
double cycle = pattern.getCount();
buffer.put(array[numSerie - 1], cycle);
}
// else {
// getDrawingRegion().stopPloting();
// myDrawingRegion = null;
// }
}
/** Getter for property myDrawingRegion.
* @return Value of property myDrawingRegion.
*/
private DrawingRegion getDrawingRegion() {
if (myDrawingRegion == null)
initDrawingRegion(maxXaxis);
return myDrawingRegion;
}
public void removeHandle(ChartingHandle handle) {
if (myDrawingRegion != null)
myDrawingRegion.removeHandle(handle);
}
}
Ads help maintain this website.