home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 4 / Macwelt DVD 4.cdr / Entwickler / Mac-OS / oxygen / oxygen.app / Contents / Resources / Java / jh.jar / javax / help / DefaultHelpModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-06-24  |  7.0 KB  |  275 lines

  1. package javax.help;
  2.  
  3. import java.beans.PropertyChangeListener;
  4. import java.beans.PropertyChangeSupport;
  5. import java.io.Serializable;
  6. import java.net.URL;
  7. import java.util.Vector;
  8. import javax.help.event.EventListenerList;
  9. import javax.help.event.HelpModelEvent;
  10. import javax.help.event.HelpModelListener;
  11. import javax.help.event.TextHelpModelEvent;
  12. import javax.help.event.TextHelpModelListener;
  13.  
  14. public class DefaultHelpModel implements TextHelpModel, Serializable {
  15.    private HelpSet helpset;
  16.    private Map.ID currentID;
  17.    private URL currentURL;
  18.    private String navID;
  19.    private Vector highlights = new Vector();
  20.    private String title;
  21.    protected EventListenerList listenerList = new EventListenerList();
  22.    protected EventListenerList textListenerList = new EventListenerList();
  23.    protected PropertyChangeSupport changes = new PropertyChangeSupport(this);
  24.    private static boolean debug = false;
  25.    // $FF: synthetic field
  26.    static Class class$javax$help$event$HelpModelListener;
  27.    // $FF: synthetic field
  28.    static Class class$javax$help$event$TextHelpModelListener;
  29.  
  30.    public DefaultHelpModel(HelpSet var1) {
  31.       this.helpset = var1;
  32.    }
  33.  
  34.    public void setHelpSet(HelpSet var1) {
  35.       HelpSet var2 = this.helpset;
  36.       this.helpset = var1;
  37.       this.changes.firePropertyChange("helpSet", var2, var1);
  38.    }
  39.  
  40.    public HelpSet getHelpSet() {
  41.       return this.helpset;
  42.    }
  43.  
  44.    public void setCurrentID(Map.ID var1) throws InvalidHelpSetContextException {
  45.       if (var1 == null) {
  46.          var1 = this.helpset.getHomeID();
  47.       }
  48.  
  49.       if (var1 != null && !var1.equals(this.currentID)) {
  50.          String var2 = var1.id;
  51.          HelpSet var3 = var1.hs;
  52.          if (!this.helpset.contains(var3)) {
  53.             throw new InvalidHelpSetContextException("Wrong context", this.helpset, var3);
  54.          } else {
  55.             Map var4 = this.helpset.getCombinedMap();
  56.             this.currentID = var1;
  57.  
  58.             try {
  59.                URL var6;
  60.                if (var3 == this.helpset) {
  61.                   var6 = var4.getURLFromID(var1);
  62.                } else {
  63.                   Map var7 = var3.getLocalMap();
  64.                   var6 = var7.getURLFromID(var1);
  65.                }
  66.  
  67.                if (this.currentURL != null && this.currentURL.equals(var6)) {
  68.                   String var10 = this.currentURL.getRef();
  69.                   String var8 = var6.getRef();
  70.                   if (var10 == null && var8 == null) {
  71.                      return;
  72.                   }
  73.  
  74.                   if (var10 != null && var8 != null && var10.compareTo(var8) == 0) {
  75.                      return;
  76.                   }
  77.                }
  78.  
  79.                this.currentURL = var6;
  80.             } catch (Exception var9) {
  81.                this.currentURL = null;
  82.             }
  83.  
  84.             this.highlights.setSize(0);
  85.             this.fireIDChanged(this, this.currentID, this.currentURL);
  86.          }
  87.       }
  88.    }
  89.  
  90.    public Map.ID getCurrentID() {
  91.       return this.currentID;
  92.    }
  93.  
  94.    public void setCurrentURL(URL var1) {
  95.       boolean var2 = false;
  96.       if (this.currentURL == null) {
  97.          if (this.currentURL != var1) {
  98.             this.currentURL = var1;
  99.             var2 = true;
  100.          }
  101.       } else if (!this.currentURL.equals(var1)) {
  102.          this.currentURL = var1;
  103.          var2 = true;
  104.       }
  105.  
  106.       if (this.currentURL == null) {
  107.          if (this.currentID != null) {
  108.             this.currentID = null;
  109.             var2 = true;
  110.          }
  111.       } else {
  112.          Map.ID var3 = this.helpset.getCombinedMap().getIDFromURL(this.currentURL);
  113.          if (this.currentID == null) {
  114.             if (this.currentID != var3) {
  115.                this.currentID = var3;
  116.                var2 = true;
  117.             }
  118.          } else if (!this.currentID.equals(var3)) {
  119.             this.currentID = var3;
  120.             var2 = true;
  121.          }
  122.       }
  123.  
  124.       if (var2) {
  125.          this.highlights.setSize(0);
  126.          this.fireIDChanged(this, this.currentID, this.currentURL);
  127.       }
  128.  
  129.    }
  130.  
  131.    public URL getCurrentURL() {
  132.       return this.currentURL;
  133.    }
  134.  
  135.    public void addHighlight(int var1, int var2) {
  136.       debug("addHighlight(" + var1 + ", " + var2 + ")");
  137.       this.highlights.addElement(new DefaultHighlight(var1, var2));
  138.       this.fireHighlightsChanged(this);
  139.    }
  140.  
  141.    public void removeAllHighlights() {
  142.       debug("removeAllHighlights");
  143.       this.highlights.setSize(0);
  144.       this.fireHighlightsChanged(this);
  145.    }
  146.  
  147.    public void setHighlights(TextHelpModel.Highlight[] var1) {
  148.       this.highlights.setSize(0);
  149.       if (var1 != null) {
  150.          for(int var2 = 0; var2 < var1.length; ++var2) {
  151.             this.highlights.addElement(new DefaultHighlight(var1[var2].getStartOffset(), var1[var2].getEndOffset()));
  152.          }
  153.  
  154.          if (this.highlights.size() > 0) {
  155.             this.fireHighlightsChanged(this);
  156.          }
  157.  
  158.       }
  159.    }
  160.  
  161.    public TextHelpModel.Highlight[] getHighlights() {
  162.       DefaultHighlight[] var1 = new DefaultHighlight[this.highlights.size()];
  163.       this.highlights.copyInto(var1);
  164.       return var1;
  165.    }
  166.  
  167.    public void addHelpModelListener(HelpModelListener var1) {
  168.       debug("addHelpModelListener: ");
  169.       debug("  l:" + var1);
  170.       if (debug) {
  171.          try {
  172.             throw new Exception("");
  173.          } catch (Exception var3) {
  174.             var3.printStackTrace();
  175.          }
  176.       }
  177.  
  178.       this.listenerList.add(class$javax$help$event$HelpModelListener == null ? (class$javax$help$event$HelpModelListener = class$("javax.help.event.HelpModelListener")) : class$javax$help$event$HelpModelListener, var1);
  179.    }
  180.  
  181.    public void removeHelpModelListener(HelpModelListener var1) {
  182.       this.listenerList.remove(class$javax$help$event$HelpModelListener == null ? (class$javax$help$event$HelpModelListener = class$("javax.help.event.HelpModelListener")) : class$javax$help$event$HelpModelListener, var1);
  183.    }
  184.  
  185.    public void addTextHelpModelListener(TextHelpModelListener var1) {
  186.       debug("addTextHelpModelListener: ");
  187.       debug("  l:" + var1);
  188.       if (debug) {
  189.          try {
  190.             throw new Exception("");
  191.          } catch (Exception var3) {
  192.             var3.printStackTrace();
  193.          }
  194.       }
  195.  
  196.       this.textListenerList.add(class$javax$help$event$TextHelpModelListener == null ? (class$javax$help$event$TextHelpModelListener = class$("javax.help.event.TextHelpModelListener")) : class$javax$help$event$TextHelpModelListener, var1);
  197.    }
  198.  
  199.    public void removeTextHelpModelListener(TextHelpModelListener var1) {
  200.       this.textListenerList.remove(class$javax$help$event$TextHelpModelListener == null ? (class$javax$help$event$TextHelpModelListener = class$("javax.help.event.TextHelpModelListener")) : class$javax$help$event$TextHelpModelListener, var1);
  201.    }
  202.  
  203.    public void addPropertyChangeListener(PropertyChangeListener var1) {
  204.       this.changes.addPropertyChangeListener(var1);
  205.    }
  206.  
  207.    public void removePropertyChangeListener(PropertyChangeListener var1) {
  208.       this.changes.removePropertyChangeListener(var1);
  209.    }
  210.  
  211.    public void setDocumentTitle(String var1) {
  212.       String var2 = this.title;
  213.       this.title = var1;
  214.       this.changes.firePropertyChange("documentTitle", var2, var1);
  215.    }
  216.  
  217.    public String getDocumentTitle() {
  218.       return this.title;
  219.    }
  220.  
  221.    protected void fireIDChanged(Object var1, Map.ID var2, URL var3) {
  222.       Object[] var4 = this.listenerList.getListenerList();
  223.       HelpModelEvent var5 = null;
  224.  
  225.       for(int var6 = var4.length - 2; var6 >= 0; var6 -= 2) {
  226.          if (var4[var6] == (class$javax$help$event$HelpModelListener == null ? (class$javax$help$event$HelpModelListener = class$("javax.help.event.HelpModelListener")) : class$javax$help$event$HelpModelListener)) {
  227.             if (var5 == null) {
  228.                var5 = new HelpModelEvent(var1, var2, var3);
  229.             }
  230.  
  231.             debug("fireIDChanged: ");
  232.             debug("  " + var4[var6 + 1]);
  233.             debug("  id=" + var5.getID() + " url=" + var5.getURL());
  234.             ((HelpModelListener)var4[var6 + 1]).idChanged(var5);
  235.          }
  236.       }
  237.  
  238.    }
  239.  
  240.    protected void fireHighlightsChanged(Object var1) {
  241.       Object[] var2 = this.textListenerList.getListenerList();
  242.       TextHelpModelEvent var3 = null;
  243.  
  244.       for(int var4 = var2.length - 2; var4 >= 0; var4 -= 2) {
  245.          if (var2[var4] == (class$javax$help$event$TextHelpModelListener == null ? (class$javax$help$event$TextHelpModelListener = class$("javax.help.event.TextHelpModelListener")) : class$javax$help$event$TextHelpModelListener)) {
  246.             if (var3 == null) {
  247.                var3 = new TextHelpModelEvent(var1);
  248.             }
  249.  
  250.             debug("fireHighlightsChanged: ");
  251.             debug("  " + var2[var4 + 1]);
  252.             debug("  " + var3);
  253.             ((TextHelpModelListener)var2[var4 + 1]).highlightsChanged(var3);
  254.          }
  255.       }
  256.  
  257.    }
  258.  
  259.    private static void debug(String var0) {
  260.       if (debug) {
  261.          System.err.println("DefaultHelpModel: " + var0);
  262.       }
  263.  
  264.    }
  265.  
  266.    // $FF: synthetic method
  267.    static Class class$(String var0) {
  268.       try {
  269.          return Class.forName(var0);
  270.       } catch (ClassNotFoundException var2) {
  271.          throw new NoClassDefFoundError(var2.getMessage());
  272.       }
  273.    }
  274. }
  275.