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

  1. package com.ibm.ivb.sguides;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.util.Vector;
  6. import javax.swing.JComponent;
  7. import javax.swing.SwingUtilities;
  8. import javax.swing.UIManager;
  9. import javax.swing.event.ChangeEvent;
  10. import javax.swing.event.ChangeListener;
  11. import javax.swing.event.EventListenerList;
  12.  
  13. public class SmartGuideNotebook extends JComponent {
  14.    private static final String kCBIBMCopyright = "(c) Copyright IBM Corporation 1998";
  15.    protected EventListenerList listenerList = new EventListenerList();
  16.    protected transient ChangeEvent changeEvent;
  17.    private int currentPage = -1;
  18.    private Vector pages = new Vector();
  19.    private boolean navVisible = true;
  20.    SmartGuide guide;
  21.    // $FF: synthetic field
  22.    static Class class$javax$swing$event$ChangeListener;
  23.    // $FF: synthetic field
  24.    static Class class$com$ibm$ivb$sguides$MultiLineListener;
  25.  
  26.    public SmartGuideNotebook(SmartGuide var1) {
  27.       this.guide = var1;
  28.       this.updateUI();
  29.    }
  30.  
  31.    public void addChangeListener(ChangeListener var1) {
  32.       this.listenerList.add(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
  33.    }
  34.  
  35.    public void addHyperlinkListener(MultiLineListener var1) {
  36.       this.listenerList.add(class$com$ibm$ivb$sguides$MultiLineListener != null ? class$com$ibm$ivb$sguides$MultiLineListener : (class$com$ibm$ivb$sguides$MultiLineListener = class$("com.ibm.ivb.sguides.MultiLineListener")), var1);
  37.    }
  38.  
  39.    public void addLastPage(SmartGuidePage var1) {
  40.       this.addPage(var1);
  41.    }
  42.  
  43.    public void addPage(SmartGuidePage var1) {
  44.       this.pages.addElement(var1);
  45.       this.pageAdded(var1);
  46.    }
  47.  
  48.    public void addPageAfter(SmartGuidePage var1, SmartGuidePage var2) {
  49.       int var3 = this.pages.indexOf(var2);
  50.       if (var3 != -1) {
  51.          this.pages.insertElementAt(var1, var3 + 1);
  52.       } else {
  53.          this.pages.addElement(var1);
  54.       }
  55.  
  56.       this.pageAdded(var1);
  57.    }
  58.  
  59.    public void addPageBefore(SmartGuidePage var1, SmartGuidePage var2) {
  60.       int var3 = this.pages.indexOf(var2);
  61.       if (var3 != -1) {
  62.          this.pages.insertElementAt(var1, var3);
  63.       } else {
  64.          this.pages.addElement(var1);
  65.       }
  66.  
  67.       this.pageAdded(var1);
  68.    }
  69.  
  70.    private void conserveFocus(SmartGuidePage var1) {
  71.       if (var1 != null) {
  72.          Component var2 = var1.getClient();
  73.          if (var2 != null && var2.getParent() != null) {
  74.             Component var3 = SwingUtilities.findFocusOwner(var2);
  75.             if (var3 != null) {
  76.                var1.setFocusComponent(var3);
  77.             }
  78.  
  79.          }
  80.       }
  81.    }
  82.  
  83.    public void fireHyperlinkChanged(MultiLineEvent var1) {
  84.       Object[] var2 = this.listenerList.getListenerList();
  85.  
  86.       for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
  87.          if (var2[var3] == (class$com$ibm$ivb$sguides$MultiLineListener != null ? class$com$ibm$ivb$sguides$MultiLineListener : (class$com$ibm$ivb$sguides$MultiLineListener = class$("com.ibm.ivb.sguides.MultiLineListener")))) {
  88.             ((MultiLineListener)var2[var3 + 1]).linkStateChanged(var1);
  89.          }
  90.       }
  91.  
  92.    }
  93.  
  94.    protected void fireStateChanged() {
  95.       Object[] var1 = this.listenerList.getListenerList();
  96.  
  97.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  98.          if (var1[var2] == (class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")))) {
  99.             if (this.changeEvent == null) {
  100.                this.changeEvent = new ChangeEvent(this);
  101.             }
  102.  
  103.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
  104.          }
  105.       }
  106.  
  107.    }
  108.  
  109.    public SmartGuidePage getCurrentPage() {
  110.       if (this.pages.size() == 0) {
  111.          return null;
  112.       } else {
  113.          return this.currentPage > -1 ? (SmartGuidePage)this.pages.elementAt(this.currentPage) : null;
  114.       }
  115.    }
  116.  
  117.    public int getCurrentPageNumber() {
  118.       return this.currentPage;
  119.    }
  120.  
  121.    SmartGuidePage getNextPage(SmartGuidePage var1) {
  122.       int var2 = this.getPageIndex(var1);
  123.       if (var2 == -1) {
  124.          return null;
  125.       } else {
  126.          return var2 == this.getPageCount() - 1 ? null : this.getPageAt(var2 + 1);
  127.       }
  128.    }
  129.  
  130.    public SmartGuidePage getPageAt(int var1) {
  131.       return (SmartGuidePage)this.pages.elementAt(var1);
  132.    }
  133.  
  134.    public int getPageCount() {
  135.       return this.pages.size();
  136.    }
  137.  
  138.    public int getPageIndex(SmartGuidePage var1) {
  139.       return this.pages == null ? -1 : this.pages.indexOf(var1);
  140.    }
  141.  
  142.    SmartGuidePage getPreviousPage(SmartGuidePage var1) {
  143.       int var2 = this.getPageIndex(var1);
  144.       return var2 < 1 ? null : this.getPageAt(var2 - 1);
  145.    }
  146.  
  147.    public SmartGuide getSmartGuide() {
  148.       return this.guide;
  149.    }
  150.  
  151.    public String getUIClassID() {
  152.       return "SmartGuideNotebookUI";
  153.    }
  154.  
  155.    public boolean isNavigationButtonVisible() {
  156.       return this.navVisible;
  157.    }
  158.  
  159.    void pageAdded(SmartGuidePage var1) {
  160.       var1.setSmartGuide(this.guide);
  161.       var1.setAdded(true);
  162.       var1.setNavigationButtonVisible(this.navVisible);
  163.       ((SmartGuideNotebookUI)super.ui).pageAdded(this, var1);
  164.       if (this.getPageCount() == 0) {
  165.          this.turnToPage(var1);
  166.       }
  167.  
  168.    }
  169.  
  170.    void pageRemoved(SmartGuidePage var1) {
  171.       var1.setAdded(false);
  172.       ((SmartGuideNotebookUI)super.ui).pageRemoved(this, var1);
  173.    }
  174.  
  175.    public void removeChangeListener(ChangeListener var1) {
  176.       this.listenerList.remove(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
  177.    }
  178.  
  179.    public void removeHyperlinkListener(MultiLineListener var1) {
  180.       this.listenerList.remove(class$com$ibm$ivb$sguides$MultiLineListener != null ? class$com$ibm$ivb$sguides$MultiLineListener : (class$com$ibm$ivb$sguides$MultiLineListener = class$("com.ibm.ivb.sguides.MultiLineListener")), var1);
  181.    }
  182.  
  183.    public void removePage(SmartGuidePage var1) {
  184.       SmartGuidePage var2 = this.getCurrentPage();
  185.       if (var2 == var1) {
  186.          System.out.println("Removing the current page!!!");
  187.          SmartGuidePage var3 = var1.getPreviousPage();
  188.          if (var3 == null) {
  189.             var3 = var1.getNextPage();
  190.          }
  191.  
  192.          if (var3 == null) {
  193.             this.currentPage = -1;
  194.             this.fireStateChanged();
  195.             var2 = null;
  196.          } else {
  197.             this.turnToPage(var3);
  198.             var2 = var3;
  199.          }
  200.       }
  201.  
  202.       this.pages.removeElement(var1);
  203.  
  204.       for(int var4 = 0; var4 < this.getPageCount(); ++var4) {
  205.          if (this.getPageAt(var4) == var2) {
  206.             this.currentPage = var4;
  207.             break;
  208.          }
  209.       }
  210.  
  211.       this.pageRemoved(var1);
  212.    }
  213.  
  214.    public void setNavigationButtonVisible(boolean var1) {
  215.       this.navVisible = var1;
  216.  
  217.       for(int var2 = 0; var2 < this.pages.size(); ++var2) {
  218.          SmartGuidePage var3 = (SmartGuidePage)this.pages.elementAt(var2);
  219.          var3.setNavigationButtonVisible(var1);
  220.       }
  221.  
  222.    }
  223.  
  224.    public void turnToPage(SmartGuidePage var1) {
  225.       this.turnToPage(var1.toString());
  226.    }
  227.  
  228.    public void turnToPage(String var1) {
  229.       if (this.getPageCount() >= 1) {
  230.          SmartGuidePage var2 = null;
  231.          boolean var3 = false;
  232.          this.conserveFocus(this.getCurrentPage());
  233.          int var4 = -1;
  234.  
  235.          for(var4 = 0; var4 < this.pages.size(); ++var4) {
  236.             var2 = (SmartGuidePage)this.pages.elementAt(var4);
  237.             if (var1.equals(var2.toString())) {
  238.                var3 = true;
  239.                break;
  240.             }
  241.  
  242.             if (!this.guide.verifyPage(var2)) {
  243.                return;
  244.             }
  245.          }
  246.  
  247.          if (var3) {
  248.             this.currentPage = var4;
  249.             var2.setSelected();
  250.             this.fireStateChanged();
  251.             var2.updateFocusComponent();
  252.             if (var2.getFocusComponent() != null) {
  253.                var2.getFocusComponent().requestFocus();
  254.             }
  255.  
  256.          }
  257.       }
  258.    }
  259.  
  260.    public void updateUI() {
  261.       ((JComponent)this).setUI(UIManager.getUI(this));
  262.       ((Container)this).invalidate();
  263.    }
  264.  
  265.    // $FF: synthetic method
  266.    static Class class$(String var0) {
  267.       try {
  268.          return Class.forName(var0);
  269.       } catch (ClassNotFoundException var2) {
  270.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  271.       }
  272.    }
  273. }
  274.