package com.horstmann.violet.workspace.editorpart; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import javax.swing.JComponent; import javax.swing.plaf.PanelUI; import com.horstmann.violet.product.diagram.abstracts.IGraph; import com.horstmann.violet.workspace.editorpart.behavior.IEditorPartBehavior; public class EditorPartUI extends PanelUI { @Override public void installUI(JComponent c) { super.installUI(c); c.setBackground(Color.WHITE); } @Override public void paint(Graphics g, JComponent c) { IEditorPart editor = (IEditorPart) c; IEditorPartSelectionHandler selectionHandler = editor.getSelectionHandler(); IGraph graph = editor.getGraph(); double zoom = editor.getZoomFactor(); IGrid grid = editor.getGrid(); super.paint(g, c); Graphics2D g2 = (Graphics2D) g; grid.paint(g2); g2.scale(zoom, zoom); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); graph.draw(g2); for (IEditorPartBehavior paintableBehaviour : editor.getBehaviorManager().getBehaviors()) { paintableBehaviour.onPaint(g2); } } }