001/*
002 * SVG Salamander
003 * Copyright (c) 2004, Mark McKay
004 * All rights reserved.
005 *
006 * Redistribution and use in source and binary forms, with or 
007 * without modification, are permitted provided that the following
008 * conditions are met:
009 *
010 *   - Redistributions of source code must retain the above 
011 *     copyright notice, this list of conditions and the following
012 *     disclaimer.
013 *   - Redistributions in binary form must reproduce the above
014 *     copyright notice, this list of conditions and the following
015 *     disclaimer in the documentation and/or other materials 
016 *     provided with the distribution.
017 *
018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
019 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
020 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
021 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
022 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
023 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
025 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
026 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
027 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
028 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
029 * OF THE POSSIBILITY OF SUCH DAMAGE. 
030 * 
031 * Mark McKay can be contacted at mark@kitfox.com.  Salamander and other
032 * projects can be found at http://www.kitfox.com
033 *
034 * Created on May 7, 2005, 4:15 AM
035 */
036
037package com.kitfox.svg.app.beans;
038
039import java.awt.*;
040import java.util.*;
041import javax.swing.*;
042
043/**
044 * Panel based on the null layout.  Allows editing with absolute layout.  When
045 * instanced, records layout dimensions of all subcomponents.  Then, if the
046 * panel is ever resized, scales all children to fit new size.
047 *
048 * @author  kitfox
049 */
050public class ProportionalLayoutPanel extends javax.swing.JPanel
051{
052    public static final long serialVersionUID = 1;
053
054    //Margins to leave on sides of panel, expressed in fractions [0 1]
055    float topMargin;
056    float bottomMargin;
057    float leftMargin;
058    float rightMargin;
059    
060    /** Creates new form ProportionalLayoutPanel */
061    public ProportionalLayoutPanel()
062    {
063        initComponents();
064    }
065    
066    public void addNotify()
067    {
068        super.addNotify();
069        
070        Rectangle rect = this.getBounds();
071        JOptionPane.showMessageDialog(this, "" + rect);
072    }
073    
074    
075    /** This method is called from within the constructor to
076     * initialize the form.
077     * WARNING: Do NOT modify this code. The content of this method is
078     * always regenerated by the Form Editor.
079     */
080    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
081    private void initComponents()
082    {
083        jPanel1 = new javax.swing.JPanel();
084
085        setLayout(null);
086
087        addComponentListener(new java.awt.event.ComponentAdapter()
088        {
089            public void componentResized(java.awt.event.ComponentEvent evt)
090            {
091                formComponentResized(evt);
092            }
093            public void componentShown(java.awt.event.ComponentEvent evt)
094            {
095                formComponentShown(evt);
096            }
097        });
098
099        add(jPanel1);
100        jPanel1.setBounds(80, 90, 280, 160);
101
102    }
103    // </editor-fold>//GEN-END:initComponents
104
105    private void formComponentShown(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentShown
106    {//GEN-HEADEREND:event_formComponentShown
107        JOptionPane.showMessageDialog(this, "" + getWidth() + ", " + getHeight());
108
109    }//GEN-LAST:event_formComponentShown
110
111    private void formComponentResized(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentResized
112    {//GEN-HEADEREND:event_formComponentResized
113// TODO add your handling code here:
114    }//GEN-LAST:event_formComponentResized
115    
116    
117    // Variables declaration - do not modify//GEN-BEGIN:variables
118    private javax.swing.JPanel jPanel1;
119    // End of variables declaration//GEN-END:variables
120    
121}