Coverage Summary for Class: CircleLayout (it.polimi.ingsw.Client.GUI)
| Class | Class, % | Method, % | Branch, % | Line, % |
|---|---|---|---|---|
| CircleLayout | 0% (0/1) | 0% (0/7) | 0% (0/4) | 0% (0/32) |
1 package it.polimi.ingsw.Client.GUI; 2 3 import java.awt.*; 4 5 public class CircleLayout implements LayoutManager { 6 7 /** 8 * For compatibility with LayoutManager interface 9 */ 10 public void addLayoutComponent(String name, Component comp) { 11 } 12 13 /** 14 * For compatibility with LayoutManager interface 15 */ 16 public void removeLayoutComponent(Component comp) { 17 } 18 19 /** 20 * Returns this CircleLayout's preferred size based on its Container 21 * 22 * @param target This CircleLayout's target container 23 * @return The preferred size 24 */ 25 26 public Dimension preferredLayoutSize(Container target) { 27 return target.getSize(); 28 } 29 30 /** 31 * Returns this CircleLayout's minimum size based on its Container 32 * 33 * @param target This CircleLayout's target container 34 * @return The minimum size 35 */ 36 public Dimension minimumLayoutSize(Container target) { 37 return target.getSize(); 38 } 39 40 /** 41 * Arranges the parent's Component objects in a Circle. 42 */ 43 public void layoutContainer(Container parent) { 44 int x, y, w, h, s, c; 45 int n = parent.getComponentCount(); 46 double parentWidth = parent.getSize().width; 47 double parentHeight = parent.getSize().height; 48 Insets insets = parent.getInsets(); 49 int centerX = ((int) (parentWidth - (insets.left + insets.right)) / 2) - 100; 50 int centerY = ((int) (parentHeight - (insets.top + insets.bottom)) / 2) - 75; 51 52 Component comp; 53 Dimension compPS; 54 if (n == 1) { 55 comp = parent.getComponent(0); 56 x = centerX; 57 y = centerY; 58 compPS = comp.getPreferredSize(); 59 w = compPS.width; 60 h = compPS.height; 61 comp.setBounds(x, y, w, h); 62 } else { 63 double r = (Math.min(parentWidth - (insets.left + insets.right), parentHeight 64 - (insets.top + insets.bottom))) / 2; 65 r *= 0.75; // Multiply by .75 to account for extreme right and bottom 66 // Components 67 for (int i = 0; i < n; i++) { 68 comp = parent.getComponent(i); 69 compPS = comp.getPreferredSize(); 70 c = (int) (r * Math.cos(2 * i * Math.PI / n)); 71 s = (int) (r * Math.sin(2 * i * Math.PI / n)); 72 x = c + centerX; 73 y = s + centerY; 74 75 w = compPS.width; 76 h = compPS.height; 77 78 comp.setBounds(x, y, w, h); 79 } 80 } 81 82 } 83 84 /** 85 * Returns a String representation of this CircleLayout. 86 * 87 * @return A String that represents this CircleLayout 88 */ 89 public String toString() { 90 return this.getClass().getName(); 91 } 92 93 }