home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.metal;
-
- import com.sun.java.swing.ButtonModel;
- 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.JMenuBar;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.border.Border;
- import com.sun.java.swing.border.EmptyBorder;
- import com.sun.java.swing.event.InternalFrameEvent;
- import com.sun.java.swing.plaf.ColorUIResource;
- 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;
-
- class MetalInternalFrameTitlePane extends JComponent implements LayoutManager, ActionListener, PropertyChangeListener {
- protected JMenuBar menuBar;
- protected boolean isPalette = false;
- JInternalFrame frame;
- protected JButton iconButton;
- protected JButton maxButton;
- protected JButton closeButton;
- private static final Border handyEmptyBorder = new EmptyBorder(0, 0, 0, 0);
- Icon maxIcon;
- Icon altMaxIcon;
- Icon iconIcon;
- Icon closeIcon;
- int riseWidth;
- int interButtonSpacing = 3;
- MetalBumps activeBumps = new MetalBumps(0, 0, MetalLookAndFeel.getPrimaryControlHighlight(), MetalLookAndFeel.getPrimaryControlDarkShadow(), MetalLookAndFeel.getPrimaryControl());
- MetalBumps inactiveBumps = new MetalBumps(0, 0, MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow(), MetalLookAndFeel.getControl());
- // $FF: synthetic field
- static Class class$com$sun$java$swing$JInternalFrame;
-
- public MetalInternalFrameTitlePane(JInternalFrame var1) {
- this.frame = var1;
- ((Component)this).setFont(UIManager.getFont("InternalFrameTitlePane.font"));
- this.maxIcon = (Icon)UIManager.get("InternalFrameTitlePane.maximizeIcon");
- this.altMaxIcon = (Icon)UIManager.get("InternalFrameTitlePane.altMaximizeIcon");
- this.iconIcon = (Icon)UIManager.get("InternalFrameTitlePane.iconizeIcon");
- this.closeIcon = (Icon)UIManager.get("InternalFrameTitlePane.closeIcon");
- this.iconButton = new JButton(this.iconIcon);
- this.iconButton.putClientProperty("paintActive", Boolean.TRUE);
- this.iconButton.setFocusPainted(false);
- this.iconButton.setBorder(handyEmptyBorder);
- this.iconButton.setOpaque(false);
- this.iconButton.addActionListener(this);
- this.iconButton.setActionCommand("Iconify");
- this.maxButton = new JButton(this.maxIcon);
- this.maxButton.putClientProperty("paintActive", Boolean.TRUE);
- this.maxButton.setBorder(handyEmptyBorder);
- this.maxButton.setOpaque(false);
- this.maxButton.setFocusPainted(false);
- this.maxButton.addActionListener(this);
- this.maxButton.setActionCommand("Maximize");
- this.closeButton = new JButton(this.closeIcon);
- this.closeButton.putClientProperty("paintActive", Boolean.TRUE);
- this.closeButton.setBorder(handyEmptyBorder);
- this.closeButton.setOpaque(false);
- this.closeButton.setFocusPainted(false);
- this.closeButton.addActionListener(this);
- this.closeButton.setActionCommand("Close");
- ((Container)this).setLayout(this);
- ((Container)this).add(this.iconButton);
- ((Container)this).add(this.maxButton);
- ((Container)this).add(this.closeButton);
- this.frame.addPropertyChangeListener(this);
- }
-
- public void paint(Graphics var1) {
- boolean var2 = this.frame.isSelected();
- int var3 = ((JComponent)this).getWidth();
- int var4 = ((JComponent)this).getHeight();
- Color var11 = ((JInternalFrame)((Component)this).getParent()).getContentPane().getBackground();
- ColorUIResource var5;
- ColorUIResource var6;
- ColorUIResource var7;
- ColorUIResource var8;
- ColorUIResource var9;
- MetalBumps var10;
- if (var2) {
- var5 = MetalLookAndFeel.getWindowTitleBackground();
- var6 = MetalLookAndFeel.getWindowTitleForeground();
- var7 = MetalLookAndFeel.getPrimaryControlShadow();
- var8 = MetalLookAndFeel.getPrimaryControlDarkShadow();
- var9 = MetalLookAndFeel.getPrimaryControlHighlight();
- var10 = this.activeBumps;
- } else {
- var5 = MetalLookAndFeel.getWindowTitleInactiveBackground();
- var6 = MetalLookAndFeel.getWindowTitleInactiveForeground();
- var7 = MetalLookAndFeel.getControlShadow();
- var8 = MetalLookAndFeel.getControlDarkShadow();
- var9 = MetalLookAndFeel.getControlHighlight();
- var10 = this.inactiveBumps;
- }
-
- var1.setColor(var5);
- var1.fillRect(0, 0, var3, var4);
- var1.setColor(var9);
- var1.drawRect(0, 0, var3 - 1, var3 - 1);
- var1.fillRect(0, 0, 2, 2);
- var1.setColor(var7);
- var1.drawLine(1, var4 - 2, var3 - 2, var4 - 2);
- var1.drawLine(var3 - 1, 1, var3 - 1, var4 - 2);
- var1.setColor(var8);
- var1.drawLine(0, var4 - 1, var3, var4 - 1);
- var1.drawLine(0, 0, 0, 0);
- var1.drawLine(var3 - 1, 0, var3 - 1, 0);
- int var12 = 0;
- int var13 = 5;
- if (this.frame.getTitle() != null) {
- Font var14 = ((Component)this).getFont();
- var1.setFont(var14);
- FontMetrics var15 = var1.getFontMetrics();
- var15.getHeight();
- Icon var16 = this.frame.getFrameIcon();
- if (var16 != null) {
- int var17 = var4 / 2 - var16.getIconHeight() / 2 - 1;
- var16.paintIcon(this.frame, var1, var13, var17);
- var13 += var16.getIconWidth() + 2;
- }
-
- var1.setColor(var6);
- int var22 = var4 / 4 + 2;
- var1.drawString(this.frame.getTitle(), var13, ((JComponent)this).getHeight() - var22);
- var12 = var15.stringWidth(this.frame.getTitle());
- }
-
- var13 += var12 + this.interButtonSpacing;
- int var20 = ((JComponent)this).getWidth() - (var13 + this.riseWidth + this.interButtonSpacing);
- int var21 = ((JComponent)this).getHeight() - 2 * this.interButtonSpacing - 2;
- var10.setBumpArea(var20, var21);
- var10.paintIcon(this, var1, var13, this.interButtonSpacing);
- if (this.riseWidth != 0) {
- var13 += var20 - 1;
- var1.setColor(var5);
- var1.fillRect(var13 - 1, var4 - 7, 7, 3);
- var1.setColor(var8);
- var1.drawLine(var13, var4 - 2, var13 + 1, var4 - 2);
- var1.drawLine(var13 + 2, var4 - 3, var13 + 2, var4 - 3);
- var1.drawLine(var13 + 3, var4 - 4, var13 + 4, var4 - 4);
- var1.drawLine(var13 + 5, var4 - 5, var3, var4 - 5);
- var1.setColor(var7);
- var1.drawLine(var13 - 1, var4 - 3, var13 + 1, var4 - 3);
- var1.drawLine(var13 + 1, var4 - 4, var13 + 2, var4 - 4);
- var1.drawLine(var13 + 2, var4 - 5, var13 + 4, var4 - 5);
- var1.drawLine(var13 + 4, var4 - 6, var3, var4 - 6);
- var1.setColor(var11);
- var1.drawLine(var13, var4 - 1, var3, var4 - 1);
- var1.drawLine(var13 + 2, var4 - 2, var3, var4 - 2);
- var1.drawLine(var13 + 3, var4 - 3, var3, var4 - 3);
- var1.drawLine(var13 + 5, var4 - 4, var3, var4 - 4);
- }
-
- ((JComponent)this).paintChildren(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);
- } catch (PropertyVetoException var9) {
- }
- } else {
- try {
- this.frame.setIcon(false);
- } catch (PropertyVetoException var8) {
- }
- }
-
- ButtonModel var2 = this.iconButton.getModel();
- if (var2 != null) {
- var2.setRollover(false);
- return;
- }
- } else {
- if ("Minimize".equals(var1.getActionCommand()) && this.frame.isMaximizable()) {
- 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);
- return;
- } catch (PropertyVetoException var5) {
- return;
- }
- }
-
- if ("Restore".equals(var1.getActionCommand()) && this.frame.isMaximizable() && this.frame.isMaximum()) {
- try {
- this.frame.setMaximum(false);
- return;
- } catch (PropertyVetoException var6) {
- return;
- }
- }
-
- if ("Restore".equals(var1.getActionCommand()) && this.frame.isIconifiable() && this.frame.isIcon()) {
- try {
- this.frame.setIcon(false);
- return;
- } catch (PropertyVetoException var7) {
- return;
- }
- }
- }
-
- }
- }
-
- public void propertyChange(PropertyChangeEvent var1) {
- String var2 = var1.getPropertyName();
- JInternalFrame var10000 = (JInternalFrame)((EventObject)var1).getSource();
- boolean var3 = false;
- if (this.frame.isSelected()) {
- this.iconButton.putClientProperty("paintActive", Boolean.TRUE);
- this.closeButton.putClientProperty("paintActive", Boolean.TRUE);
- this.maxButton.putClientProperty("paintActive", Boolean.TRUE);
- ((Component)this).repaint();
- } else {
- this.iconButton.putClientProperty("paintActive", Boolean.FALSE);
- this.closeButton.putClientProperty("paintActive", Boolean.FALSE);
- this.maxButton.putClientProperty("paintActive", Boolean.FALSE);
- ((Component)this).repaint();
- }
-
- if ("isSelected".equals(var2)) {
- ((Component)this).repaint();
- } else if ("isMaximum".equals(var2)) {
- var3 = (Boolean)var1.getNewValue();
- if (var3) {
- this.maxButton.setIcon(this.altMaxIcon);
- } else {
- this.maxButton.setIcon(this.maxIcon);
- }
- } else {
- if ("isIcon".equals(var2)) {
- var3 = (Boolean)var1.getNewValue();
- if (var3) {
- this.iconButton.setIcon(this.iconIcon);
- return;
- }
-
- this.iconButton.setIcon(this.iconIcon);
- }
-
- }
- }
-
- public void addLayoutComponent(String var1, Component var2) {
- }
-
- public void removeLayoutComponent(Component var1) {
- }
-
- public Dimension preferredLayoutSize(Container var1) {
- return this.getPreferredSize(var1);
- }
-
- public Dimension getPreferredSize(Container var1) {
- return new Dimension(((Component)var1).getSize().width, this.computeHeight());
- }
-
- public Dimension minimumLayoutSize(Container var1) {
- return this.preferredLayoutSize(var1);
- }
-
- protected int computeHeight() {
- FontMetrics var1 = Toolkit.getDefaultToolkit().getFontMetrics(((Component)this).getFont());
- int var2 = var1.getHeight();
- var2 = (int)((double)var2 * (double)1.5F);
- ++var2;
- return var2;
- }
-
- public void layoutContainer(Container var1) {
- int var2 = ((JComponent)this).getWidth();
- byte var3 = 12;
- byte var4 = 12;
- int var5 = var2;
- if (this.frame.isClosable()) {
- var5 = var2 - (var4 + this.interButtonSpacing);
- this.closeButton.setBounds(var5, this.interButtonSpacing, var4, var3);
- } else if (this.closeButton.getParent() != null) {
- this.closeButton.getParent().remove(this.closeButton);
- }
-
- if (this.frame.isMaximizable()) {
- var5 -= var4 + this.interButtonSpacing;
- this.maxButton.setBounds(var5, this.interButtonSpacing, var4, var3);
- } else if (this.maxButton.getParent() != null) {
- this.maxButton.getParent().remove(this.maxButton);
- }
-
- if (this.frame.isIconifiable()) {
- var5 -= var4 + this.interButtonSpacing;
- this.iconButton.setBounds(var5, this.interButtonSpacing, var4, var3);
- } else if (this.iconButton.getParent() != null) {
- this.iconButton.getParent().remove(this.iconButton);
- }
-
- this.riseWidth = var2 - var5;
- }
-
- public void setPalette(boolean var1) {
- this.isPalette = var1;
- ((Component)this).repaint();
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-