/* * SVG Salamander * Copyright (c) 2004, Mark McKay * All rights reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the following * disclaimer. * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * Mark McKay can be contacted at mark@kitfox.com. Salamander and other * projects can be found at http://www.kitfox.com * * Created on May 7, 2005, 4:15 AM */ package com.kitfox.svg.app.beans; import java.awt.*; import java.util.*; import javax.swing.*; /** * Panel based on the null layout. Allows editing with absolute layout. When * instanced, records layout dimensions of all subcomponents. Then, if the * panel is ever resized, scales all children to fit new size. * * @author kitfox */ public class ProportionalLayoutPanel extends javax.swing.JPanel { public static final long serialVersionUID = 1; //Margins to leave on sides of panel, expressed in fractions [0 1] float topMargin; float bottomMargin; float leftMargin; float rightMargin; /** Creates new form ProportionalLayoutPanel */ public ProportionalLayoutPanel() { initComponents(); } public void addNotify() { super.addNotify(); Rectangle rect = this.getBounds(); JOptionPane.showMessageDialog(this, "" + rect); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // //GEN-BEGIN:initComponents private void initComponents() { jPanel1 = new javax.swing.JPanel(); setLayout(null); addComponentListener(new java.awt.event.ComponentAdapter() { public void componentResized(java.awt.event.ComponentEvent evt) { formComponentResized(evt); } public void componentShown(java.awt.event.ComponentEvent evt) { formComponentShown(evt); } }); add(jPanel1); jPanel1.setBounds(80, 90, 280, 160); } // //GEN-END:initComponents private void formComponentShown(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentShown {//GEN-HEADEREND:event_formComponentShown JOptionPane.showMessageDialog(this, "" + getWidth() + ", " + getHeight()); }//GEN-LAST:event_formComponentShown private void formComponentResized(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentResized {//GEN-HEADEREND:event_formComponentResized // TODO add your handling code here: }//GEN-LAST:event_formComponentResized // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel jPanel1; // End of variables declaration//GEN-END:variables }