/*
 * NeuralNetDrawing.java
 *
 * Created on 10 aprile 2001, 0.34
 */

package org.joone.edit;

import org.joone.engine.*;
import org.joone.engine.learning.*;
import org.joone.net.NeuralNet;
import org.joone.util.MonitorPlugin;

public class NeuralNetDrawing extends CH.ifa.draw.standard.StandardDrawing {
    
    private NeuralNet layers;
    
    private static final long serialVersionUID = 4352010555373878830L;
    
    /** Creates new NeuralNetDrawing */
    public NeuralNetDrawing() {
        super();
        layers = new NeuralNet();
    }
    
    public CH.ifa.draw.framework.Figure remove(CH.ifa.draw.framework.Figure figure) {
        CH.ifa.draw.framework.Figure retValue;
        
        retValue = super.remove(figure);
        if (figure instanceof TeacherLayerFigure) {
            if (((TeacherLayerFigure)figure).getOutputLayer() instanceof TeachingSynapse)
                layers.setTeacher(null);
        } else
            if (figure instanceof LayerFigure) {
                LayerFigure lFigure = (LayerFigure)figure;
                Layer layer = (Layer)lFigure.getLayer();
                if (layer != null)
                    layers.removeLayer(layer);
            }
            else
                if (figure instanceof MonitorPluginFigure) {
                    MonitorPluginFigure mpFigure = (MonitorPluginFigure)figure;
                    MonitorPlugin layer = (MonitorPlugin)mpFigure.getLayer();
                    if (layer != null)
                        layers.removeNeuralNetListener(layer);
                }
        
        return retValue;
    }
    
    public CH.ifa.draw.framework.Figure add(CH.ifa.draw.framework.Figure figure) {
        CH.ifa.draw.framework.Figure retValue;
        retValue = super.add(figure);
        if (figure instanceof TeacherLayerFigure) {
            TeacherLayerFigure tlFigure = (TeacherLayerFigure)figure;
            ComparingElement ts = (ComparingElement)tlFigure.getOutputLayer();
            if ((ts != null) && (ts instanceof TeachingSynapse))
                layers.setTeacher(ts);
        } else
            if (figure instanceof LayerFigure) {
                LayerFigure lFigure = (LayerFigure)figure;
                Layer layer = (Layer)lFigure.getLayer();
                if (layer != null)
                    layers.addLayer(layer);
            }
            else
                if (figure instanceof MonitorPluginFigure) {
                    MonitorPluginFigure mpFigure = (MonitorPluginFigure)figure;
                    MonitorPlugin layer = (MonitorPlugin)mpFigure.getLayer();
                    if (layer != null)
                        layers.addNeuralNetListener(layer);
                }
        
        return retValue;
    }
    
    public void replace(CH.ifa.draw.framework.Figure figure,CH.ifa.draw.framework.Figure figure1) {
        super.replace(figure, figure1);
    }
    
    public NeuralNet getNeuralNet() {
        return layers;
    }
    
    /** Setter for property layers.
     * @param newLayers New value of NeuralNet.
     */
    public void setNeuralNet(NeuralNet newLayers) {
        this.layers = newLayers;
    }
    
}

 

Ads help maintain this website.