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.configuration.M_TrafficGroup; import art.library.gui.flat.FlatButton; import art.library.gui.flat.FlatPanel; import art.library.gui.flat.FlatTableInput; 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.geom.Line2D; import java.awt.geom.Rectangle2D; public class DiagramConflicts extends FlatPanel { private boolean editable = false; private M_ControllerConfiguration m_configuration = null; private FlatTableInput table1 = null; private Color color = new FlatPanel().getLook().background; public DiagramConflicts (M_ControllerConfiguration m_configuration) { setConfiguration(m_configuration); } public void setConfiguration(M_ControllerConfiguration m_configuration) { this.m_configuration = m_configuration; 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 editable(boolean editable) { this.editable = editable; } private class DiagramColumns extends FlatButton { private DiagramColumns() { setPreferredSize(new Dimension(0,22)); } public void paint (Graphics g) { try { Graphics2D g2 = (Graphics2D)g; 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_configuration.ltrafficGroup.size()); dx = Math.min(64, dx); for (int i=0; i m_configuration.ltrafficGroup.size()) currenti = -1; if (currentj > m_configuration.ltrafficGroup.size()) currentj = -1; repaint(); } catch (Exception e) { } } } private void drawCenteredString(Graphics2D g2, String text, Rectangle2D rect, Font font) { FontMetrics metrics = g2.getFontMetrics(font); double x = rect.getX() + (rect.getWidth() - metrics.stringWidth(text)) / 2; double y = rect.getY() + ((rect.getHeight() - metrics.getHeight()) / 2) + metrics.getAscent(); g2.setFont(font); g2.drawString(text, (float)x, (float)y); } private void reverseIncompatibility(M_TrafficGroup group1, M_TrafficGroup group2) { for (Integer group : group1.lincompatibility) { if (group.intValue() == group2.number) { group1.lincompatibility.remove(group); group2.lincompatibility.remove(new Integer(group1.number)); return; } } group1.lincompatibility.add(new Integer(group2.number)); group2.lincompatibility.add(new Integer(group1.number)); } }