mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			701 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			701 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Java
		
	
	
	
| /* JRootPane.java --
 | |
|    Copyright (C) 2002, 2004  Free Software Foundation, Inc.
 | |
| 
 | |
| This file is part of GNU Classpath.
 | |
| 
 | |
| GNU Classpath is free software; you can redistribute it and/or modify
 | |
| it under the terms of the GNU General Public License as published by
 | |
| the Free Software Foundation; either version 2, or (at your option)
 | |
| any later version.
 | |
| 
 | |
| GNU Classpath is distributed in the hope that it will be useful, but
 | |
| WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
| General Public License for more details.
 | |
| 
 | |
| You should have received a copy of the GNU General Public License
 | |
| along with GNU Classpath; see the file COPYING.  If not, write to the
 | |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | |
| 02110-1301 USA.
 | |
| 
 | |
| Linking this library statically or dynamically with other modules is
 | |
| making a combined work based on this library.  Thus, the terms and
 | |
| conditions of the GNU General Public License cover the whole
 | |
| combination.
 | |
| 
 | |
| As a special exception, the copyright holders of this library give you
 | |
| permission to link this library with independent modules to produce an
 | |
| executable, regardless of the license terms of these independent
 | |
| modules, and to copy and distribute the resulting executable under
 | |
| terms of your choice, provided that you also meet, for each linked
 | |
| independent module, the terms and conditions of the license of that
 | |
| module.  An independent module is a module which is not derived from
 | |
| or based on this library.  If you modify this library, you may extend
 | |
| this exception to your version of the library, but you are not
 | |
| obligated to do so.  If you do not wish to do so, delete this
 | |
| exception statement from your version. */
 | |
| 
 | |
| 
 | |
| package javax.swing;
 | |
| 
 | |
| import java.awt.BorderLayout;
 | |
| import java.awt.Component;
 | |
| import java.awt.Container;
 | |
| import java.awt.Dimension;
 | |
| import java.awt.IllegalComponentStateException;
 | |
| import java.awt.Insets;
 | |
| import java.awt.LayoutManager;
 | |
| import java.awt.LayoutManager2;
 | |
| import java.awt.Rectangle;
 | |
| import java.io.Serializable;
 | |
| 
 | |
| import javax.accessibility.Accessible;
 | |
| import javax.accessibility.AccessibleContext;
 | |
| import javax.accessibility.AccessibleRole;
 | |
| import javax.swing.plaf.RootPaneUI;
 | |
| 
 | |
| /**
 | |
|  * This class is where JComponents are added to. Unlike awt where you could
 | |
|  * just say frame.add(), with swing you need to say frame.getRootPane()
 | |
|  * (which delivers an instance of this class) and add your components to
 | |
|  * that. It is implemented by several 'layers' (pane() should be read as
 | |
|  * plane()) each on top of the others where you can add components to.
 | |
|  * (getContentPane(), getGlassPane(), getLayeredPane())
 | |
|  *
 | |
|  * @author Ronald Veldema (rveldema@cs.vu.nl)
 | |
|  */
 | |
| public class JRootPane extends JComponent implements Accessible
 | |
| {
 | |
|   //  The class used to obtain the accessible role for this object.
 | |
|   protected class AccessibleJRootPane extends AccessibleJComponent
 | |
|   {
 | |
|     /**
 | |
|      * For compatability with Sun's JDK
 | |
|      */
 | |
|     private static final long serialVersionUID = 1082432482784468088L;
 | |
| 
 | |
|     /**
 | |
|      * Creates a new <code>AccessibleJRootPane</code> object.
 | |
|      */
 | |
|     protected AccessibleJRootPane()
 | |
|     {
 | |
|       // Nothing to do here.
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @return DOCUMENT ME!
 | |
|      */
 | |
|     public AccessibleRole getAccessibleRole()
 | |
|     {
 | |
|       return AccessibleRole.ROOT_PANE;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Custom Layout Manager for JRootPane. It positions contentPane and
 | |
|   // menuBar withing its layeredPane.
 | |
|   protected class RootLayout implements LayoutManager2, Serializable
 | |
|   {
 | |
|     /** DOCUMENT ME! */
 | |
|     private static final long serialVersionUID = -4100116998559815027L;
 | |
| 
 | |
|     /**
 | |
|      * The cached layout info for the glass pane.
 | |
|      */
 | |
|     private Rectangle glassPaneBounds;
 | |
| 
 | |
|     /**
 | |
|      * The cached layout info for the layered pane.
 | |
|      */
 | |
|     private Rectangle layeredPaneBounds;
 | |
| 
 | |
|     /**
 | |
|      * The cached layout info for the content pane.
 | |
|      */
 | |
|     private Rectangle contentPaneBounds;
 | |
| 
 | |
|     /**
 | |
|      * The cached layout info for the menu bar.
 | |
|      */
 | |
|     private Rectangle menuBarBounds;
 | |
| 
 | |
|     /**
 | |
|      * Creates a new <code>RootLayout</code> object.
 | |
|      */
 | |
|     protected RootLayout()
 | |
|     {
 | |
|       // Nothing to do here.
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param comp DOCUMENT ME!
 | |
|      * @param constraints DOCUMENT ME!
 | |
|      */
 | |
|     public void addLayoutComponent(Component comp, Object constraints)
 | |
|     {
 | |
|       // Nothing to do here.
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param name DOCUMENT ME!
 | |
|      * @param comp DOCUMENT ME!
 | |
|      */
 | |
|     public void addLayoutComponent(String name, Component comp)
 | |
|     {
 | |
|       // Nothing to do here.
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param target DOCUMENT ME!
 | |
|      *
 | |
|      * @return DOCUMENT ME!
 | |
|      */
 | |
|     public float getLayoutAlignmentX(Container target)
 | |
|     {
 | |
|       return 0.0F;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param target DOCUMENT ME!
 | |
|      *
 | |
|      * @return DOCUMENT ME!
 | |
|      */
 | |
|     public float getLayoutAlignmentY(Container target)
 | |
|     {
 | |
|       return 0.0F;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param target DOCUMENT ME!
 | |
|      */
 | |
|     public void invalidateLayout(Container target)
 | |
|     {
 | |
|       synchronized (this)
 | |
|         {
 | |
|           glassPaneBounds = null;
 | |
|           layeredPaneBounds = null;
 | |
|           contentPaneBounds = null;
 | |
|           menuBarBounds = null;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param c DOCUMENT ME!
 | |
|      */
 | |
|     public void layoutContainer(Container c)
 | |
|     {
 | |
|       if (glassPaneBounds == null || layeredPaneBounds == null
 | |
|           || contentPaneBounds == null || menuBarBounds == null)
 | |
|         {
 | |
|           Insets i = getInsets();
 | |
|           int containerWidth = c.getBounds().width - i.left - i.right;
 | |
|           int containerHeight = c.getBounds().height - i.top - i.bottom;
 | |
| 
 | |
|           // 1. the glassPane fills entire viewable region (bounds - insets).
 | |
|           // 2. the layeredPane filles entire viewable region.
 | |
|           // 3. the menuBar is positioned at the upper edge of layeredPane.
 | |
|           // 4. the contentPane fills viewable region minus menuBar, if present.
 | |
| 
 | |
| 
 | |
|           // +-------------------------------+
 | |
|           // |  JLayeredPane                 |
 | |
|           // |  +--------------------------+ |
 | |
|           // |  | menuBar                  | |
 | |
|           // |  +--------------------------+ |
 | |
|           // |  +--------------------------+ |
 | |
|           // |  |contentPane               | |
 | |
|           // |  |                          | |
 | |
|           // |  |                          | |
 | |
|           // |  |                          | |
 | |
|           // |  +--------------------------+ |
 | |
|           // +-------------------------------+
 | |
| 
 | |
|           if (menuBar != null)
 | |
|             {
 | |
|               Dimension menuBarSize = menuBar.getPreferredSize();
 | |
|               if (menuBarSize.height > containerHeight)
 | |
|                 menuBarSize.height = containerHeight;
 | |
|               menuBarBounds = new Rectangle(0, 0, containerWidth,
 | |
|                                             menuBarSize.height);
 | |
|               contentPaneBounds = new Rectangle(0, menuBarSize.height,
 | |
|                                                 containerWidth,
 | |
|                                          containerHeight - menuBarSize.height);
 | |
|             }
 | |
|           else
 | |
|             contentPaneBounds = new Rectangle(0, 0, containerWidth,
 | |
|                                               containerHeight);
 | |
| 
 | |
|           glassPaneBounds = new Rectangle(i.left, i.top, containerWidth, containerHeight);
 | |
|           layeredPaneBounds = new Rectangle(i.left, i.top, containerWidth, containerHeight);
 | |
|         }
 | |
| 
 | |
|       glassPane.setBounds(glassPaneBounds);
 | |
|       layeredPane.setBounds(layeredPaneBounds);
 | |
|       if (menuBar != null)
 | |
|         menuBar.setBounds(menuBarBounds);
 | |
|       getContentPane().setBounds(contentPaneBounds);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param target DOCUMENT ME!
 | |
|      *
 | |
|      * @return DOCUMENT ME!
 | |
|      */
 | |
|     public Dimension maximumLayoutSize(Container target)
 | |
|     {
 | |
|       return preferredLayoutSize(target);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param target DOCUMENT ME!
 | |
|      *
 | |
|      * @return DOCUMENT ME!
 | |
|      */
 | |
|     public Dimension minimumLayoutSize(Container target)
 | |
|     {
 | |
|       return preferredLayoutSize(target);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param c DOCUMENT ME!
 | |
|      *
 | |
|      * @return DOCUMENT ME!
 | |
|      */
 | |
|     public Dimension preferredLayoutSize(Container c)
 | |
|     {
 | |
|       Dimension prefSize = new Dimension();
 | |
|       Insets i = getInsets();
 | |
|       prefSize = new Dimension(i.left + i.right, i.top + i.bottom);
 | |
|       Dimension contentPrefSize = getContentPane().getPreferredSize();
 | |
|       prefSize.width += contentPrefSize.width;
 | |
|       prefSize.height += contentPrefSize.height;
 | |
|       if (menuBar != null)
 | |
|         {
 | |
|           Dimension menuBarSize = menuBar.getPreferredSize();
 | |
|           if (menuBarSize.width > contentPrefSize.width)
 | |
|             prefSize.width += menuBarSize.width - contentPrefSize.width;
 | |
|           prefSize.height += menuBarSize.height;
 | |
|         }
 | |
|       return prefSize;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * DOCUMENT ME!
 | |
|      *
 | |
|      * @param comp DOCUMENT ME!
 | |
|      */
 | |
|     public void removeLayoutComponent(Component comp)
 | |
|     {
 | |
|       // Nothing to do here.
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   /** DOCUMENT ME! */
 | |
|   private static final long serialVersionUID = 8690748000348575668L;
 | |
| 
 | |
|   public static final int NONE = 0;
 | |
|   public static final int FRAME = 1;
 | |
|   public static final int PLAIN_DIALOG = 2;
 | |
|   public static final int INFORMATION_DIALOG = 3;
 | |
|   public static final int ERROR_DIALOG = 4;
 | |
|   public static final int COLOR_CHOOSER_DIALOG = 5;
 | |
|   public static final int FILE_CHOOSER_DIALOG = 6;
 | |
|   public static final int QUESTION_DIALOG = 7;
 | |
|   public static final int WARNING_DIALOG = 8;
 | |
| 
 | |
|   /** DOCUMENT ME! */
 | |
|   protected Component glassPane;
 | |
| 
 | |
|   /** DOCUMENT ME! */
 | |
|   protected JLayeredPane layeredPane;
 | |
| 
 | |
|   /** DOCUMENT ME! */
 | |
|   protected JMenuBar menuBar;
 | |
| 
 | |
|   /** DOCUMENT ME! */
 | |
|   protected Container contentPane;
 | |
| 
 | |
|   protected JButton defaultButton;
 | |
| 
 | |
|   /**
 | |
|    * This field is unused since JDK1.3. To override the default action you
 | |
|    * should modify the JRootPane's ActionMap.
 | |
|    *
 | |
|    * @deprecated since JDK1.3
 | |
|    *
 | |
|    * @specnote the specs indicate that the type of this field is
 | |
|    *           a package private inner class
 | |
|    *           javax.swing.JRootPane.DefaultAction. I assume that the closest
 | |
|    *           public superclass is javax.swing.Action.
 | |
|    */
 | |
|   protected Action defaultPressAction;
 | |
| 
 | |
|   /**
 | |
|    * This field is unused since JDK1.3. To override the default action you
 | |
|    * should modify the JRootPane's ActionMap.
 | |
|    *
 | |
|    * @deprecated since JDK1.3
 | |
|    *
 | |
|    * @specnote the specs indicate that the type of this field is
 | |
|    *           a package private inner class
 | |
|    *           javax.swing.JRootPane.DefaultAction. I assume that the closest
 | |
|    *           public superclass is javax.swing.Action.
 | |
|    */
 | |
|   protected Action defaultReleaseAction;
 | |
| 
 | |
|   /**
 | |
|    * @since 1.4
 | |
|    */
 | |
|   private int windowDecorationStyle = NONE;
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @param m DOCUMENT ME!
 | |
|    */
 | |
|   public void setJMenuBar(JMenuBar m)
 | |
|   {
 | |
|     JLayeredPane jlPane = getLayeredPane();
 | |
|     if (menuBar != null)
 | |
|       jlPane.remove(menuBar);
 | |
|     menuBar = m;
 | |
|     if (menuBar != null)
 | |
|       jlPane.add(menuBar, JLayeredPane.FRAME_CONTENT_LAYER);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @deprecated Replaced by <code>setJMenuBar()</code>
 | |
|    */
 | |
|   public void setMenuBar(JMenuBar m)
 | |
|   {
 | |
|     setJMenuBar(m);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public JMenuBar getJMenuBar()
 | |
|   {
 | |
|     return menuBar;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @deprecated Replaced by <code>getJMenuBar()</code>
 | |
|    */
 | |
|   public JMenuBar getMenuBar()
 | |
|   {
 | |
|     return getJMenuBar();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public boolean isValidateRoot()
 | |
|   {
 | |
|     return true;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public Container getContentPane()
 | |
|   {
 | |
|     if (contentPane == null)
 | |
|       setContentPane(createContentPane());
 | |
|     return contentPane;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Sets the JRootPane's content pane.  The content pane should typically be
 | |
|    * opaque for painting to work properly.  This method also
 | |
|    * removes the old content pane from the layered pane.
 | |
|    *
 | |
|    * @param p the Container that will be the content pane
 | |
|    * @throws IllegalComponentStateException if p is null
 | |
|    */
 | |
|   public void setContentPane(Container p)
 | |
|   {
 | |
|     if (p == null)
 | |
|       throw new IllegalComponentStateException ("cannot " +
 | |
|             "have a null content pane");
 | |
|     else
 | |
|       {
 | |
|         if (contentPane != null && contentPane.getParent() == layeredPane)
 | |
|           layeredPane.remove(contentPane);
 | |
|         contentPane = p;
 | |
|         getLayeredPane().add(contentPane, JLayeredPane.FRAME_CONTENT_LAYER);
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @param comp DOCUMENT ME!
 | |
|    * @param constraints DOCUMENT ME!
 | |
|    * @param index DOCUMENT ME!
 | |
|    */
 | |
|   protected void addImpl(Component comp, Object constraints, int index)
 | |
|   {
 | |
|     super.addImpl(comp, constraints, index);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public Component getGlassPane()
 | |
|   {
 | |
|     if (glassPane == null)
 | |
|       setGlassPane(createGlassPane());
 | |
|     return glassPane;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @param f DOCUMENT ME!
 | |
|    */
 | |
|   public void setGlassPane(Component f)
 | |
|   {
 | |
|     if (glassPane != null)
 | |
|       remove(glassPane);
 | |
| 
 | |
|     glassPane = f;
 | |
| 
 | |
|     glassPane.setVisible(false);
 | |
|     add(glassPane, 0);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public JLayeredPane getLayeredPane()
 | |
|   {
 | |
|     if (layeredPane == null)
 | |
|       setLayeredPane(createLayeredPane());
 | |
|     return layeredPane;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Set the layered pane for the root pane.
 | |
|    *
 | |
|    * @param f The JLayeredPane to be used.
 | |
|    *
 | |
|    * @throws IllegalComponentStateException if JLayeredPane
 | |
|    * parameter is null.
 | |
|    */
 | |
|   public void setLayeredPane(JLayeredPane f)
 | |
|   {
 | |
|     if (f == null)
 | |
|       throw new IllegalComponentStateException();
 | |
| 
 | |
|     if (layeredPane != null)
 | |
|       remove(layeredPane);
 | |
| 
 | |
|     layeredPane = f;
 | |
|     add(f, -1);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Creates a new <code>JRootPane</code> object.
 | |
|    */
 | |
|   public JRootPane()
 | |
|   {
 | |
|     setLayout(createRootLayout());
 | |
|     getGlassPane();
 | |
|     getLayeredPane();
 | |
|     getContentPane();
 | |
|     setOpaque(true);
 | |
|     updateUI();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   protected LayoutManager createRootLayout()
 | |
|   {
 | |
|     return new RootLayout();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   protected Container createContentPane()
 | |
|   {
 | |
|     JPanel p = new JPanel();
 | |
|     p.setName(this.getName() + ".contentPane");
 | |
|     p.setLayout(new BorderLayout());
 | |
|     return p;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   protected Component createGlassPane()
 | |
|   {
 | |
|     JPanel p = new JPanel();
 | |
|     p.setName(this.getName() + ".glassPane");
 | |
|     p.setVisible(false);
 | |
|     p.setOpaque(false);
 | |
|     return p;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   protected JLayeredPane createLayeredPane()
 | |
|   {
 | |
|     JLayeredPane l = new JLayeredPane();
 | |
|     l.setLayout(null);
 | |
|     return l;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public RootPaneUI getUI()
 | |
|   {
 | |
|     return (RootPaneUI) ui;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @param ui DOCUMENT ME!
 | |
|    */
 | |
|   public void setUI(RootPaneUI ui)
 | |
|   {
 | |
|     super.setUI(ui);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    */
 | |
|   public void updateUI()
 | |
|   {
 | |
|     setUI((RootPaneUI) UIManager.getUI(this));
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * DOCUMENT ME!
 | |
|    *
 | |
|    * @return DOCUMENT ME!
 | |
|    */
 | |
|   public String getUIClassID()
 | |
|   {
 | |
|     return "RootPaneUI";
 | |
|   }
 | |
| 
 | |
|   public JButton getDefaultButton()
 | |
|   {
 | |
|     return defaultButton;
 | |
|   }
 | |
| 
 | |
|   public void setDefaultButton(JButton newButton)
 | |
|   {
 | |
|     // We only change the default button if the new button is defaultCapable
 | |
|     // or null and the old and new button are different objects.
 | |
|     if (defaultButton != newButton
 | |
|         && (newButton == null || newButton.isDefaultCapable()))
 | |
|       {
 | |
|         JButton oldButton = defaultButton;
 | |
|         defaultButton = newButton;
 | |
|         firePropertyChange("defaultButton", oldButton, newButton);
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @since 1.4
 | |
|    */
 | |
|   public int getWindowDecorationStyle()
 | |
|   {
 | |
|     return windowDecorationStyle;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * @since 1.4
 | |
|    */
 | |
|   public void setWindowDecorationStyle(int style)
 | |
|   {
 | |
|     if (style != NONE
 | |
|         && style != FRAME
 | |
|         && style != INFORMATION_DIALOG
 | |
|         && style != ERROR_DIALOG
 | |
|         && style != COLOR_CHOOSER_DIALOG
 | |
|         && style != FILE_CHOOSER_DIALOG
 | |
|         && style != QUESTION_DIALOG
 | |
|         && style != WARNING_DIALOG
 | |
|         && style != PLAIN_DIALOG)
 | |
|       throw new IllegalArgumentException("invalid style");
 | |
| 
 | |
|     int oldStyle = windowDecorationStyle;
 | |
|     windowDecorationStyle = style;
 | |
|     firePropertyChange("windowDecorationStyle", oldStyle, style);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This returns <code>true</code> if the <code>glassPane</code> is not
 | |
|    * visible because then the root pane can guarantee to tile its children
 | |
|    * (the only other direct child is a JLayeredPane which must figure its
 | |
|    * <code>optimizeDrawingEnabled</code> state on its own).
 | |
|    *
 | |
|    * @return <code>true</code> if the <code>glassPane</code> is not
 | |
|    *         visible
 | |
|    */
 | |
|   public boolean isOptimizedDrawingEnable()
 | |
|   {
 | |
|     return ! glassPane.isVisible();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns the accessible context for this JRootPane. This will be
 | |
|    * an instance of {@link AccessibleJRootPane}.
 | |
|    *
 | |
|    * @return the accessible context for this JRootPane
 | |
|    */
 | |
|   public AccessibleContext getAccessibleContext()
 | |
|   {
 | |
|     if (accessibleContext == null)
 | |
|       accessibleContext = new AccessibleJRootPane();
 | |
|     return accessibleContext;
 | |
|   }
 | |
| }
 |