package eu.dnetlib.enabling.graph.utils;

import java.awt.Font;

import org.jgraph.graph.AttributeMap;
import org.jgraph.graph.DefaultEdge;
import org.jgraph.graph.GraphConstants;
import org.jgrapht.ext.JGraphModelAdapter;

import eu.dnetlib.enabling.graph.objects.DnetVertex;

public class DnetEdge extends DefaultEdge {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7844308933141719970L;
	private String text;

	public DnetEdge(String text) {
		this.text = text;
	}
	

	@Override
	public String toString() {
		return text;
	}
	
	public void formatEdge(JGraphModelAdapter<DnetVertex, DnetEdge> jgAdapter) {
		formatEdge(GraphConstants.ARROW_TECHNICAL, jgAdapter);
	}
	
	@SuppressWarnings("unchecked")
	protected void formatEdge(int arrow, JGraphModelAdapter<DnetVertex, DnetEdge> jgAdapter) {
		org.jgraph.graph.DefaultEdge edge = jgAdapter.getEdgeCell(this);
		AttributeMap attr = edge.getAttributes();
		GraphConstants.setFont(attr, new Font(Font.SANS_SERIF, Font.PLAIN, 9));
		GraphConstants.setMoveable(attr, false);
		GraphConstants.setDisconnectable(attr, false);
		GraphConstants.setEditable(attr, false);
		GraphConstants.setLineEnd(attr, arrow);
		AttributeMap cellAttr = new AttributeMap();
		cellAttr.put(this, attr);
		jgAdapter.edit(cellAttr, null, null, null);
	}

}
