public void paintEdge(JGraphPane graphPane, JPowerGraphGraphics g, T edge, SubGraphHighlighter theSubGraphHighlighter) {
HighlightingManipulator highlightingManipulator=(HighlightingManipulator) graphPane.getManipulator(HighlightingManipulator.NAME);
boolean isHighlighted=highlightingManipulator!=null && highlightingManipulator.getHighlightedEdge()==edge;
DraggingManipulator draggingManipulator=(DraggingManipulator) graphPane.getManipulator(DraggingManipulator.NAME);
boolean isDragging=draggingManipulator!=null && draggingManipulator.getDraggedEdge()==edge;
JPowerGraphPoint from=graphPane.getScreenPointForNode(edge.getFrom());
JPowerGraphPoint to=graphPane.getScreenPointForNode(edge.getTo());
JPowerGraphColor color=g.getBackground();
g.setBackground(getEdgeColor(edge,isHighlighted,isDragging, theSubGraphHighlighter));
paintArrow(g,from.x,from.y,to.x,to.y);
g.setBackground(color);
}