package org.joone.edit;
import CH.ifa.draw.framework.*;
import CH.ifa.draw.standard.*;
import java.util.*;
import org.joone.log.*;
/**
* A more efficient version of the generic object creation
* tool that is not based on cloning.
*/
public class LayerFigureCreationTool extends CreationTool
{
/**
* Logger
* */
private static final ILogger log = LoggerFactory.getLogger (LayerFigureCreationTool.class);
protected Hashtable params;
String objType;
DrawingView view;
public LayerFigureCreationTool(DrawingView view, String type) {
super(view);
params = new Hashtable();
objType = type;
this.view = view;
}
/**
* Creates a new Figure.
*/
protected Figure createFigure() {
try {
Class cLayer = Class.forName(objType);
ConcreteGenericFigure lf = (ConcreteGenericFigure)cLayer.newInstance();
lf.setParams(params);
// Each component is provided with a pointer to the parent NeuralNet object
NeuralNetDrawing nnd = (NeuralNetDrawing)view.drawing();
lf.setParam("NeuralNet", nnd.getNeuralNet());
lf.initialize();
return lf;
} catch (ClassNotFoundException cnfe)
{
log.warn ( "ClassNotFoundException thrown. Message is : " + cnfe.getMessage(),
cnfe);
} catch (InstantiationException ie) {
log.warn ( "InstantiationException thrown. Message is : " + ie.getMessage(),
ie);
} catch (IllegalAccessException iae) {
log.warn ( "IllegalAccessException thrown. Message is : " + iae.getMessage(),
iae);
}
return null;
}
/** Used to get a parameter by name
* @return the parameter's value
* @param key the parameter's name
*/
public Object getParam(Object key) {
return params.get(key);
}
/** Used to set a parameter of the layer
* @param key the parameter's name
* @param newParam the parameter's value
*/
public void setParam(Object key, Object newParam) {
params.put(key, newParam);
}
public void setParams(Hashtable newParams) {
params = newParams;
}
}
Ads help maintain this website.