45 lines
1.1 KiB
Java
45 lines
1.1 KiB
Java
package org.insa.algo.weakconnectivity;
|
|
|
|
import java.awt.Color;
|
|
import java.util.ArrayList;
|
|
|
|
import org.insa.drawing.Drawing;
|
|
import org.insa.drawing.graph.GraphDrawing;
|
|
import org.insa.graph.Node;
|
|
|
|
public class WeaklyConnectedComponentGraphicObserver implements WeaklyConnectedComponentObserver {
|
|
|
|
private static final Color[] COLORS = {
|
|
Color.BLUE, Color.ORANGE, Color.GREEN, Color.YELLOW, Color.RED
|
|
};
|
|
|
|
// Drawing + Graph drawing
|
|
private Drawing drawing;
|
|
private GraphDrawing gdrawing;
|
|
|
|
// Current index color
|
|
private int cindex = 0;
|
|
|
|
public WeaklyConnectedComponentGraphicObserver(Drawing drawing) {
|
|
this.drawing = drawing;
|
|
this.gdrawing = new GraphDrawing(drawing);
|
|
this.drawing.setAutoRepaint(true);
|
|
}
|
|
|
|
@Override
|
|
public void notifyStartComponent(Node curNode) {
|
|
this.drawing.setColor(COLORS[cindex]);
|
|
cindex = (cindex + 1) % COLORS.length;
|
|
}
|
|
|
|
@Override
|
|
public void notifyNewNodeInComponent(Node node) {
|
|
this.gdrawing.drawPoint(node.getPoint(), 5);
|
|
this.drawing.repaint();
|
|
}
|
|
|
|
@Override
|
|
public void notifyEndComponent(ArrayList<Node> nodes) {
|
|
}
|
|
|
|
}
|