package art.servers.colorsserver.M.gui.diagrams; import art.library.gui.FlatGUI; import art.library.model.devices.colors.controller.M.M_ControllerConfiguration; import art.library.model.devices.colors.controller.M.M_SubcontrollerConfiguration; import art.library.model.devices.colors.controller.M.configuration.M_Phase; import art.library.gui.flat.FlatButton; import art.library.gui.flat.FlatPanel; import art.servers.Shared; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; public class DiagramPhases extends FlatPanel { private boolean editable = false; private M_ControllerConfiguration m_controllerConfiguration = null; private M_SubcontrollerConfiguration m_subcontrollerConfiguration = null; private Color color = new FlatPanel().getLook().background; private int selectedColor = 0; public DiagramPhases(M_ControllerConfiguration m_controllerConfiguration, M_SubcontrollerConfiguration m_subcontrollerConfiguration) { setConfiguration(m_controllerConfiguration, m_subcontrollerConfiguration); } public void setConfiguration(M_ControllerConfiguration m_controllerConfiguration, M_SubcontrollerConfiguration m_subcontrollerConfiguration) { this.m_controllerConfiguration = m_controllerConfiguration; this.m_subcontrollerConfiguration = m_subcontrollerConfiguration; this.removeAll(); this.setLayout(new BorderLayout()); this.add(new DiagramColumns(), BorderLayout.NORTH); this.add(new DiagramRows(), BorderLayout.WEST); this.add(new Diagram(), BorderLayout.CENTER); } public void setSelectedColor(int color) { this.selectedColor = color; } public void editable(boolean editable) { this.editable = editable; } private class DiagramColumns extends FlatPanel { private DiagramColumns() { setPreferredSize(new Dimension(0,22)); } public void paint (Graphics g) { try { Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); g2.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DEFAULT); g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR); g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_NORMALIZE); int w = getWidth(); int h = getHeight(); g2.setBackground(color); g2.clearRect(0, 0, w, h); Font font = new FlatButton().getLook().font; g2.setColor(new FlatButton().getLook().colorForeground); double dx = (double)(w - 48) / ((double)m_subcontrollerConfiguration.lphaseStable.size()); for (int i=0; i 36) y = y + (dy-36)/2; DiagramColors.paint(g2, x, y, dx, Math.min(36, dy), color); } } g2.setColor(FlatGUI.lookDesign.getColor("window.color.background.content")); g2.setStroke(new BasicStroke(2.0f)); for (int i=0; i