df
Alejandro Acuña
2024-09-16 f56295b7f2c7282783589fb4903529b09e161daa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package art.client.GUI.components.devices.window.colors.rtz32.realtime.components.distribution;
 
import art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Rectangle2D;
 
 
public class Diagram_Distribution_Realtime
{
 
 
    public static void format(Graphics2D g2)
    {
        try
        {
            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);
        }
        catch (Exception e)
        {
        }
    }
 
    
    
    public static void drawRightString(Graphics2D g2, String text, Rectangle2D rect, Font font) 
    {
        FontMetrics metrics = g2.getFontMetrics(font);
        double x = (rect.getX() + rect.getWidth()) - metrics.stringWidth(text) - 5;
        double y = rect.getY() + ((rect.getHeight() - metrics.getHeight()) / 2) + metrics.getAscent();
        g2.setFont(font);
        g2.drawString(text, (float)x, (float)y);
    }        
    
 
 
    public static void drawRightString(Graphics2D g2, String text, double x, double y) 
    {
        FontMetrics metrics = g2.getFontMetrics();
        g2.drawString(text, (float)x - metrics.stringWidth(text), (float)(y + metrics.getAscent()));
    }        
    
    
    public static void drawLeftString(Graphics2D g2, String text, Rectangle2D rect, Font font) 
    {
        FontMetrics metrics = g2.getFontMetrics(font);
        double x = rect.getX();
        double y = rect.getY() + ((rect.getHeight() - metrics.getHeight()) / 2) + metrics.getAscent();
        g2.setFont(font);
        g2.drawString(text, (float)x, (float)y);
    }        
 
    public static void drawLeftString(Graphics2D g2, String text, double x, double y) 
    {
        FontMetrics metrics = g2.getFontMetrics();
        g2.drawString(text, (float)x , (float)(y + metrics.getAscent()));
    }        
        
    public static void drawCenteredString(Graphics2D g2, String text, double x, double y) 
    {
        FontMetrics metrics = g2.getFontMetrics();
        g2.drawString(text, (float)x - (metrics.stringWidth(text)/2), (float)(y + (metrics.getAscent()/2)));
    }        
 
    
    public static 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);
    }        
        
 
      
    public static int getNumberBars(RTZ32_Configuration configuration)
    {
        int result = configuration.groups.length;
        result = result + (configuration.getGroupType(20).size() * 3);
        return result;
    }
    
}