home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / IBM VisualAge for Java Enterprise v4.0 Retail / ivj40 / setup / IDE.Cab / F77811_VAJava2SmartGuideNotebookUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-25  |  5.5 KB  |  183 lines

  1. package com.ibm.ivb.sguides.vajava2;
  2.  
  3. import com.ibm.ivb.sguides.SmartGuidePage;
  4. import com.ibm.ivb.sguides.basic.BasicSmartGuideNotebookUI;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dimension;
  8. import java.awt.Font;
  9. import java.awt.Graphics;
  10. import java.awt.Image;
  11. import java.awt.Insets;
  12. import java.awt.LayoutManager;
  13. import java.awt.MediaTracker;
  14. import java.awt.Rectangle;
  15. import java.awt.image.ImageObserver;
  16. import java.util.Hashtable;
  17. import javax.swing.Icon;
  18. import javax.swing.ImageIcon;
  19. import javax.swing.JComponent;
  20. import javax.swing.SwingUtilities;
  21. import javax.swing.border.Border;
  22. import javax.swing.plaf.ComponentUI;
  23.  
  24. public class VAJava2SmartGuideNotebookUI extends BasicSmartGuideNotebookUI implements LayoutManager {
  25.    private static final String kCBIBMCopyright = "(c) Copyright IBM Corporation 1998";
  26.    int theight = 28;
  27.    static Component sharedC = new 1();
  28.    static MediaTracker tracker;
  29.    Hashtable scaledImages;
  30.  
  31.    public VAJava2SmartGuideNotebookUI() {
  32.       super.titleEnabled = true;
  33.       super.descEnabled = false;
  34.    }
  35.  
  36.    protected Dimension calculateSize() {
  37.       Dimension var1 = new Dimension(0, 0);
  38.       Dimension var2 = new Dimension(0, 0);
  39.  
  40.       for(int var3 = 0; var3 < super.sgbook.getPageCount(); ++var3) {
  41.          SmartGuidePage var4 = super.sgbook.getPageAt(var3);
  42.          Component var5 = var4.getClient();
  43.          if (var5 != null) {
  44.             Dimension var6 = var5.getPreferredSize();
  45.             var1.width = Math.max(var1.width, var6.width);
  46.             var1.height = Math.max(var1.height, var6.height);
  47.          }
  48.  
  49.          Icon var10 = var4.getIcon();
  50.          if (var10 != null && var4.getIconMode()) {
  51.             var5.getPreferredSize();
  52.             var2.width = Math.max(var2.width, var10.getIconWidth());
  53.             var2.height = Math.max(var2.height, var10.getIconHeight());
  54.          }
  55.       }
  56.  
  57.       var1.width = Math.max(var1.width, BasicSmartGuideNotebookUI.mcsize.width);
  58.       var1.height = Math.max(var1.height, BasicSmartGuideNotebookUI.mcsize.height);
  59.       int var8 = BasicSmartGuideNotebookUI.cinsets.left + var1.width + BasicSmartGuideNotebookUI.cinsets.right;
  60.       int var9 = BasicSmartGuideNotebookUI.cinsets.top + var1.height + BasicSmartGuideNotebookUI.cinsets.bottom;
  61.       int var7 = var9 + this.theight;
  62.       return new Dimension(var8, var7);
  63.    }
  64.  
  65.    public static ComponentUI createUI(JComponent var0) {
  66.       return new VAJava2SmartGuideNotebookUI();
  67.    }
  68.  
  69.    Image getImageThatFitsTheTitle(Image var1) {
  70.       if (var1.getHeight((ImageObserver)null) <= this.theight) {
  71.          return var1;
  72.       } else {
  73.          if (this.scaledImages != null) {
  74.             Image var2 = (Image)this.scaledImages.get(var1);
  75.             if (var2 != null) {
  76.                return var2;
  77.             }
  78.          }
  79.  
  80.          int var5 = this.theight * 2;
  81.          Image var3 = var1.getScaledInstance(var5, this.theight, 4);
  82.          if (tracker == null) {
  83.             tracker = new MediaTracker(sharedC);
  84.          }
  85.  
  86.          tracker.addImage(var3, 0);
  87.  
  88.          try {
  89.             tracker.waitForID(0);
  90.          } catch (InterruptedException var4) {
  91.             return null;
  92.          }
  93.  
  94.          tracker.removeImage(var3);
  95.          if (this.scaledImages == null) {
  96.             this.scaledImages = new Hashtable();
  97.          }
  98.  
  99.          this.scaledImages.put(var1, var3);
  100.          return var3;
  101.       }
  102.    }
  103.  
  104.    protected Font getTitleFont() {
  105.       return new Font("SansSerif", 1, 12);
  106.    }
  107.  
  108.    public void installUI(JComponent var1) {
  109.       super.installUI(var1);
  110.       var1.setBorder((Border)null);
  111.       BasicSmartGuideNotebookUI.cinsets.top = 10;
  112.       BasicSmartGuideNotebookUI.cinsets.left = 10;
  113.       BasicSmartGuideNotebookUI.cinsets.bottom = 10;
  114.       BasicSmartGuideNotebookUI.cinsets.right = 10;
  115.       BasicSmartGuideNotebookUI.mcsize.width = 530;
  116.    }
  117.  
  118.    public void layoutContainer(Container var1) {
  119.       Dimension var2 = ((Component)var1).getSize();
  120.       Rectangle var3 = new Rectangle(var2);
  121.       Insets var4 = var1.getInsets();
  122.       var3.x += var4.left;
  123.       var3.y += var4.top;
  124.       var3.width -= var4.right + var3.x;
  125.       var3.height -= var4.bottom + var3.y;
  126.       boolean var5 = false;
  127.       Component var6 = super.prevPage != null ? super.prevPage.getClient() : null;
  128.       Component var7 = super.currPage != null ? super.currPage.getClient() : null;
  129.       if (var6 != null && var6.getParent() == null && var7 != null && SwingUtilities.findFocusOwner(var6) != null) {
  130.          var5 = true;
  131.       }
  132.  
  133.       Dimension var8 = super.title.getPreferredSize();
  134.       super.title.setLocation(BasicSmartGuideNotebookUI.cinsets.left, this.theight / 2 - var8.height / 2 + 1);
  135.       super.title.setSize(var3.width, var8.height);
  136.       int var9 = var3.y + this.theight + BasicSmartGuideNotebookUI.cinsets.top;
  137.       if (var7 != null) {
  138.          var7.setLocation(var3.x + BasicSmartGuideNotebookUI.cinsets.left, var9 + BasicSmartGuideNotebookUI.cinsets.top);
  139.          var7.setSize(var3.width - BasicSmartGuideNotebookUI.cinsets.left - BasicSmartGuideNotebookUI.cinsets.right, var3.height - (var9 - var3.y) - BasicSmartGuideNotebookUI.cinsets.top - BasicSmartGuideNotebookUI.cinsets.bottom);
  140.          var7.setVisible(true);
  141.          var7.validate();
  142.          if (var5) {
  143.             ((BasicSmartGuideNotebookUI)this).transferFocusTo(var7);
  144.          }
  145.       }
  146.  
  147.    }
  148.  
  149.    public void paint(Graphics var1, JComponent var2) {
  150.       var1.setColor(VAJava2LookAndFeel.getDark1());
  151.       var1.fillRect(0, 1, var2.getWidth() - 1, this.theight - 1);
  152.       var1.setColor(VAJava2LookAndFeel.getDark2());
  153.       var1.drawLine(0, this.theight - 2, var2.getWidth() - 2, this.theight - 2);
  154.       var1.setColor(VAJava2LookAndFeel.getLight());
  155.       var1.drawLine(0, this.theight - 1, var2.getWidth() - 2, this.theight - 1);
  156.       SmartGuidePage var3 = super.sgbook.getCurrentPage();
  157.       if (var3 != null) {
  158.          Icon var4 = var3.getIcon();
  159.          if (var4 != null && var4 instanceof ImageIcon) {
  160.             Image var5 = ((ImageIcon)var4).getImage();
  161.             Image var6 = this.getImageThatFitsTheTitle(var5);
  162.             if (var6 == null) {
  163.                return;
  164.             }
  165.  
  166.             int var7 = var2.getWidth() - var6.getWidth((ImageObserver)null) - 1;
  167.             byte var8 = 0;
  168.             var1.drawImage(var6, var7, var8, (ImageObserver)null);
  169.          }
  170.  
  171.       }
  172.    }
  173.  
  174.    public void paintClientRectangle(Graphics var1, Rectangle var2) {
  175.       var1.setColor(super.sgbook.getBackground());
  176.       var1.fillRect(var2.x, var2.y, var2.width, var2.height);
  177.    }
  178.  
  179.    public void uninstallUI(JComponent var1) {
  180.       super.uninstallUI(var1);
  181.    }
  182. }
  183.