home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.AbstractButton;
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JButton;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.JInternalFrame;
- import com.sun.java.swing.JMenu;
- import com.sun.java.swing.JMenuBar;
- import com.sun.java.swing.JMenuItem;
- import com.sun.java.swing.JSeparator;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.event.InternalFrameEvent;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.LayoutManager;
- import java.awt.Toolkit;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.beans.PropertyChangeEvent;
- import java.beans.PropertyChangeListener;
- import java.beans.PropertyVetoException;
- import java.util.EventObject;
-
- public class BasicInternalFrameTitlePane extends JComponent implements LayoutManager, ActionListener, PropertyChangeListener {
- JMenuBar menuBar;
- JButton iconButton;
- JButton maxButton;
- JButton closeButton;
- Icon maxIcon = UIManager.getIcon("InternalFrame.maximizeIcon");
- Icon minIcon = UIManager.getIcon("InternalFrame.minimizeIcon");
- Icon iconIcon = UIManager.getIcon("InternalFrame.iconifyIcon");
- Icon closeIcon = UIManager.getIcon("InternalFrame.closeIcon");
- JMenu windowMenu;
- JInternalFrame frame;
- private static Color selectedTitleColor = new Color(0, 0, 128);
- private static Color selectedTextColor = new Color(255, 255, 255);
- private static Color notSelectedTitleColor = new Color(128, 128, 128);
- private static Color notSelectedTextColor = new Color(192, 192, 192);
- final int RESTORE_MENU_ITEM;
- final int MOVE_MENU_ITEM = 1;
- final int SIZE_MENU_ITEM = 2;
- final int MINIMIZE_MENU_ITEM = 3;
- final int MAXIMIZE_MENU_ITEM = 4;
- final int SEPARATOR_MENU_ITEM = 5;
- final int CLOSE_MENU_ITEM = 6;
- // $FF: synthetic field
- static Class class$com$sun$java$swing$JInternalFrame;
-
- public BasicInternalFrameTitlePane(JInternalFrame var1) {
- this.frame = var1;
- ((JComponent)this).setPreferredSize(new Dimension(100, 18));
- this.menuBar = new 1(this);
- this.menuBar.setBorderPainted(false);
- this.windowMenu = this.menuBar.add(new 2(this, " "));
- JMenuItem var2 = this.windowMenu.add(new JMenuItem("Restore"));
- var2.setEnabled(false);
- ((AbstractButton)var2).addActionListener(this);
- var2 = this.windowMenu.add(new JMenuItem("Move"));
- var2.setEnabled(false);
- ((AbstractButton)var2).addActionListener(this);
- var2 = this.windowMenu.add(new JMenuItem("Size"));
- var2.setEnabled(false);
- ((AbstractButton)var2).addActionListener(this);
- var2 = this.windowMenu.add(new JMenuItem("Minimize"));
- ((AbstractButton)var2).addActionListener(this);
- var2 = this.windowMenu.add(new JMenuItem("Maximize"));
- ((AbstractButton)var2).addActionListener(this);
- this.windowMenu.add(new JSeparator());
- var2 = this.windowMenu.add(new JMenuItem("Close"));
- ((AbstractButton)var2).addActionListener(this);
- this.iconButton = new NoFocusButton(this);
- this.iconButton.setFocusPainted(false);
- this.iconButton.addActionListener(this);
- this.iconButton.setActionCommand("Iconify");
- this.maxButton = new NoFocusButton(this);
- this.maxButton.setFocusPainted(false);
- this.maxButton.addActionListener(this);
- this.maxButton.setActionCommand("Maximize");
- this.setButtonIcons();
- this.closeButton = new NoFocusButton(this);
- this.closeButton.setIcon(this.closeIcon);
- this.closeButton.setFocusPainted(false);
- this.closeButton.addActionListener(this);
- this.closeButton.setActionCommand("Close");
- ((Container)this).setLayout(this);
- ((Container)this).add(this.menuBar);
- ((Container)this).add(this.iconButton);
- ((Container)this).add(this.maxButton);
- ((Container)this).add(this.closeButton);
- this.frame.addPropertyChangeListener(this);
- }
-
- protected void setButtonIcons() {
- if (this.frame.isIcon()) {
- this.iconButton.setIcon(this.minIcon);
- this.maxButton.setIcon(this.maxIcon);
- } else if (this.frame.isMaximum()) {
- this.iconButton.setIcon(this.iconIcon);
- this.maxButton.setIcon(this.minIcon);
- } else {
- this.iconButton.setIcon(this.iconIcon);
- this.maxButton.setIcon(this.maxIcon);
- }
- }
-
- public void paint(Graphics var1) {
- boolean var2 = this.frame.isSelected();
- Color var3 = var1.getColor();
- if (var2) {
- var1.setColor(selectedTitleColor);
- } else {
- var1.setColor(notSelectedTitleColor);
- }
-
- var1.fillRect(0, 0, ((JComponent)this).getWidth(), ((JComponent)this).getHeight());
- if (this.frame.getTitle() != null) {
- Font var4 = var1.getFont();
- var1.setFont(UIManager.getFont("InternalFrame.titleFont"));
- if (var2) {
- var1.setColor(selectedTextColor);
- } else {
- var1.setColor(notSelectedTextColor);
- }
-
- FontMetrics var5 = var1.getFontMetrics();
- int var6 = var5.getHeight() - var5.getLeading();
- int var7 = (18 - var6) / 2 + var5.getAscent() + var5.getLeading();
- var1.drawString(this.frame.getTitle(), this.menuBar.getX() + this.menuBar.getWidth() + 2, var7);
- var1.setFont(var4);
- }
-
- var1.setColor(var3);
- super.paint(var1);
- }
-
- void postClosingEvent(JInternalFrame var1) {
- InternalFrameEvent var2 = new InternalFrameEvent(var1, 25550);
- if ((class$com$sun$java$swing$JInternalFrame != null ? class$com$sun$java$swing$JInternalFrame : (class$com$sun$java$swing$JInternalFrame = class$("com.sun.java.swing.JInternalFrame"))).getClassLoader() == null) {
- try {
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(var2);
- return;
- } catch (SecurityException var3) {
- }
- }
-
- ((Component)this).dispatchEvent(var2);
- }
-
- public void actionPerformed(ActionEvent var1) {
- if ("Close".equals(var1.getActionCommand()) && this.frame.isClosable()) {
- this.postClosingEvent(this.frame);
- } else {
- if ("Iconify".equals(var1.getActionCommand()) && this.frame.isIconifiable()) {
- if (!this.frame.isIcon()) {
- try {
- this.frame.setIcon(true);
- return;
- } catch (PropertyVetoException var2) {
- return;
- }
- }
-
- try {
- this.frame.setIcon(false);
- if (this.frame.isMaximizable() && this.frame.isMaximum()) {
- this.frame.setMaximum(false);
- return;
- }
- } catch (PropertyVetoException var8) {
- return;
- }
- } else {
- if ("Minimize".equals(var1.getActionCommand()) && this.frame.isIconifiable()) {
- try {
- this.frame.setIcon(true);
- return;
- } catch (PropertyVetoException var3) {
- return;
- }
- }
-
- if ("Maximize".equals(var1.getActionCommand()) && this.frame.isMaximizable()) {
- if (!this.frame.isMaximum()) {
- try {
- this.frame.setMaximum(true);
- return;
- } catch (PropertyVetoException var4) {
- return;
- }
- }
-
- try {
- this.frame.setMaximum(false);
- if (this.frame.isIconifiable() && this.frame.isIcon()) {
- this.frame.setIcon(false);
- return;
- }
- } catch (PropertyVetoException var7) {
- return;
- }
- } else {
- if ("Restore".equals(var1.getActionCommand()) && this.frame.isMaximizable() && this.frame.isMaximum()) {
- try {
- this.frame.setMaximum(false);
- return;
- } catch (PropertyVetoException var5) {
- return;
- }
- }
-
- if ("Restore".equals(var1.getActionCommand()) && this.frame.isIconifiable() && this.frame.isIcon()) {
- try {
- this.frame.setIcon(false);
- return;
- } catch (PropertyVetoException var6) {
- return;
- }
- }
- }
- }
-
- }
- }
-
- public void propertyChange(PropertyChangeEvent var1) {
- String var2 = var1.getPropertyName();
- JInternalFrame var10000 = (JInternalFrame)((EventObject)var1).getSource();
- boolean var3 = false;
- if ("isSelected".equals(var2)) {
- ((Component)this).repaint();
- } else if ("isMaximum".equals(var2)) {
- var3 = (Boolean)var1.getNewValue();
- this.setButtonIcons();
- this.windowMenu.getItem(0).setEnabled(var3);
- this.windowMenu.getItem(4).setEnabled(!var3);
- } else {
- if ("isIcon".equals(var2)) {
- var3 = (Boolean)var1.getNewValue();
- this.setButtonIcons();
- this.windowMenu.getItem(0).setEnabled(var3);
- this.windowMenu.getItem(4).setEnabled(!var3);
- this.windowMenu.getItem(3).setEnabled(!var3);
- }
-
- }
- }
-
- public void addLayoutComponent(String var1, Component var2) {
- }
-
- public void removeLayoutComponent(Component var1) {
- }
-
- public Dimension preferredLayoutSize(Container var1) {
- return new Dimension(((Component)var1).getSize().width, 18);
- }
-
- public Dimension minimumLayoutSize(Container var1) {
- return new Dimension(((Component)var1).getSize().width, 18);
- }
-
- public void layoutContainer(Container var1) {
- int var2 = ((JComponent)this).getWidth();
- int var3 = var2 - 16 - 2;
- this.menuBar.setBounds(2, 1, 16, 16);
- if (this.frame.isClosable()) {
- this.closeButton.setBounds(var3, 2, 16, 14);
- var3 -= 16;
- } else if (this.closeButton.getParent() != null) {
- this.closeButton.getParent().remove(this.closeButton);
- }
-
- if (this.frame.isMaximizable()) {
- this.maxButton.setBounds(var3 - 2, 2, 16, 14);
- var3 -= 18;
- } else if (this.maxButton.getParent() != null) {
- this.maxButton.getParent().remove(this.maxButton);
- }
-
- if (this.frame.isIconifiable()) {
- this.iconButton.setBounds(var3, 2, 16, 14);
- } else {
- if (this.iconButton.getParent() != null) {
- this.iconButton.getParent().remove(this.iconButton);
- }
-
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-