package lectures.composite.visitors;
import util.annotations.WebDocuments;
import java.awt.Component;
import java.awt.Container;
import javax.swing.JFrame;
import lectures.composite.tree_dag_graph_objects_windows.WindowTreeCreator;
@WebDocuments({"Lectures/CompositeVisitors.pptx", "Lectures/CompositeVisitors.pdf", "Videos/CompositeVisitors.avi"})
public class ParameterizedSwingComponentTreeMorpher extends
SwingComponentTreeMorpher {
public static void main(String[] args) {
JFrame aFrame = WindowTreeCreator.createTree();
Container root = aFrame.getContentPane();
traverseInOrder(root, VisitOption.COLOR);
}
public static void traverseInOrder(Component aComponent,
VisitOption aVisitOption) {
switch (aVisitOption) {
case MAGNIFY:
magnify(aComponent);
break;
case ANIMATED_MAGNIFY:
animatedMagnify(aComponent);
break;
case COLOR:
color(aComponent);
break;
}
if (!(aComponent instanceof Container))
return;
Container aContainer = (Container) aComponent;
Component[] components = aContainer.getComponents();
for (int i = 0; i < components.length; i++) {
traverseInOrder(components[i], aVisitOption);
}
}
}