1 package org.woehlke.computer.kurzweil.commons.model; 2 3 import lombok.AllArgsConstructor; 4 import lombok.EqualsAndHashCode; 5 import lombok.Getter; 6 import lombok.ToString; 7 import lombok.extern.log4j.Log4j2; 8 9 import javax.swing.*; 10 import java.awt.*; 11 import java.io.Serializable; 12 13 @Log4j2 14 @Getter 15 @ToString 16 @AllArgsConstructor 17 @EqualsAndHashCode 18 public class Bounds implements Serializable { 19 20 private final int myStartX; 21 private final int myStartY; 22 private final int myWidth; 23 private final int myHeight; 24 25 public Bounds(double height, double width, Dimension screenSize){ 26 double startX = (screenSize.getWidth() - width) / 2d; 27 double startY = (screenSize.getHeight() - height) / 2d; 28 myStartX = Double.valueOf(startX).intValue(); 29 myStartY = Double.valueOf(startY).intValue(); 30 myWidth = Double.valueOf(width).intValue(); 31 myHeight = Double.valueOf(height).intValue(); 32 } 33 34 public static Bounds getFrameBounds(JRootPane rootPane){ 35 double width = rootPane.getWidth(); 36 double height = rootPane.getHeight(); 37 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 38 return new Bounds(height,width,screenSize); 39 } 40 41 public static Bounds getCanvas(JRootPane rootPane){ 42 double width = rootPane.getWidth(); 43 double height = rootPane.getHeight(); 44 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 45 return new Bounds(height,width,screenSize); 46 } 47 }