home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 24 / CDACTUAL24.iso / corel / BARISTA / VTOOLBAR.CLASS (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-01  |  11.2 KB  |  476 lines

  1. import corel.af.util.BToolPix;
  2. import java.awt.Choice;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dimension;
  7. import java.awt.Event;
  8. import java.awt.FlowLayout;
  9. import java.awt.Graphics;
  10. import java.awt.Image;
  11. import java.awt.MediaTracker;
  12. import java.awt.Panel;
  13. import java.awt.Point;
  14. import java.awt.Rectangle;
  15. import java.awt.TextField;
  16. import java.awt.image.CropImageFilter;
  17. import java.awt.image.FilteredImageSource;
  18. import java.awt.image.MemoryImageSource;
  19. import java.net.MalformedURLException;
  20. import java.net.URL;
  21.  
  22. public class VToolbar extends Panel {
  23.    private VDoc m_Document;
  24.    private Barista m_Applet;
  25.    private Image m_ToolBarImg;
  26.    private String ToolBarGifName = "tools.gif";
  27.    private ToolBarBtn CorelButton;
  28.    private ToolBarBtn FirstPgButton;
  29.    private ToolBarBtn PrevPgButton;
  30.    private ToolBarBtn NextPgButton;
  31.    private ToolBarBtn LastPgButton;
  32.    private ToolBarBtn PViewButton;
  33.    private ToolBarBtn StartTButton;
  34.    private ToolBarBtn StopTButton;
  35.    private ToolBarBtn MinimizeButton;
  36.    private Choice m_cChoice;
  37.    private Rectangle m_cChoiceRect;
  38.    private BToolTip TextLabel;
  39.    private int m_nNumOfPages;
  40.    private int m_ToolBarLoc;
  41.    static int TOOLBAR_LOCATION_TOP = 1;
  42.    static int TOOLBAR_LOCATION_BOT = 2;
  43.    public static final Dimension DEFAULT_BUTTON_SIZE = new Dimension(22, 22);
  44.    public static final Dimension DEFAULT_BUTTON_IMAGE_SIZE = new Dimension(20, 20);
  45.    static Dimension NumDefaultButtons = new Dimension(4, 4);
  46.    static String[][] m_DefaultButtonMap;
  47.    public ToolBarBtn PrevButton;
  48.    public ToolBarBtn NextButton;
  49.    public static final String IdCorel = "Corel";
  50.    public static final String IdTransition = "Transition";
  51.    public static final String IdStop = "TransitionStop";
  52.    public static final String IdStart = "TransitionStart";
  53.    public static final String IdBarHelp = "CorelBaristaHelp";
  54.    public static final String IdBarAbout = "AboutCorelBarista";
  55.    public static final String IdPView = "previousview";
  56.    public static final String IdFirstPage = "Gotothefirstpage";
  57.    public static final String IdLastPage = "Gotothelastpage";
  58.    public static final String IdPrevPage = "Previous Page";
  59.    public static final String IdNextPage = "Next Page";
  60.    public static final String IdFind = "Findtext";
  61.    public static final String IdMinimize = "MinimizeToolBar";
  62.    public static final String IdCopy = "Copy";
  63.    public static final String IdPrint = "Print...";
  64.  
  65.    public boolean init(VDoc var1, int var2) {
  66.       this.m_ToolBarLoc = var2;
  67.       this.m_Document = var1;
  68.       this.m_Applet = this.m_Document.m_Applet;
  69.       this.m_nNumOfPages = this.m_Document.m_nNumOfPages;
  70.       this.m_ToolBarImg = this.loadImage(this.ToolBarGifName);
  71.       if (this.m_ToolBarImg == null) {
  72.          this.m_ToolBarImg = this.loadToolbarBitmapClass();
  73.       }
  74.  
  75.       if (this.m_ToolBarImg == null) {
  76.          return false;
  77.       } else {
  78.          initDefaultButtonMap();
  79.          ((Component)this).setBackground(Color.lightGray);
  80.          ((Container)this).setLayout(new FlowLayout(0, 2, 2));
  81.          if (this.m_ToolBarLoc == TOOLBAR_LOCATION_TOP) {
  82.             this.CorelButton = this.CreateNewButton("Corel", this.m_Applet.m_BaristaLoc.IdCorelTip);
  83.             if (this.m_Document.m_bIsMultiPage) {
  84.                this.FirstPgButton = this.CreateNewButton("Gotothefirstpage", this.m_Applet.m_BaristaLoc.IdFirstPageTip);
  85.                this.PrevPgButton = this.CreateNewButton("Previous Page", this.m_Applet.m_BaristaLoc.IdPrevPageTip);
  86.                this.NextPgButton = this.CreateNewButton("Next Page", this.m_Applet.m_BaristaLoc.IdNextPageTip);
  87.                this.LastPgButton = this.CreateNewButton("Gotothelastpage", this.m_Applet.m_BaristaLoc.IdLastPageTip);
  88.                this.PViewButton = this.CreateNewButton("previousview", this.m_Applet.m_BaristaLoc.IdPViewTip);
  89.                this.m_cChoice = this.CreatePageChoice();
  90.                if (this.m_Document.AutoScrollEnabled()) {
  91.                   this.StartTButton = this.CreateNewButton("TransitionStart", this.m_Applet.m_BaristaLoc.IdStartTip);
  92.                   this.StopTButton = this.CreateNewButton("TransitionStop", this.m_Applet.m_BaristaLoc.IdStopTip);
  93.                }
  94.             }
  95.  
  96.             this.MinimizeButton = this.CreateNewButton("MinimizeToolBar", this.m_Applet.m_BaristaLoc.IdMinimizeTip);
  97.          } else {
  98.             this.FirstPgButton = this.CreateNewButton("Gotothefirstpage", this.m_Applet.m_BaristaLoc.IdFirstPageTip);
  99.             this.PrevPgButton = this.CreateNewButton("Previous Page", this.m_Applet.m_BaristaLoc.IdPrevPageTip);
  100.             this.NextPgButton = this.CreateNewButton("Next Page", this.m_Applet.m_BaristaLoc.IdNextPageTip);
  101.             this.LastPgButton = this.CreateNewButton("Gotothelastpage", this.m_Applet.m_BaristaLoc.IdLastPageTip);
  102.             this.m_cChoice = this.CreatePageChoice();
  103.          }
  104.  
  105.          this.TextLabel = this.CreateTipWindow();
  106.          if (this.m_Document.m_bIsMultiPage) {
  107.             this.UpdateButtons(this.m_Document.m_iCurrPage);
  108.          }
  109.  
  110.          return true;
  111.       }
  112.    }
  113.  
  114.    public ToolBarBtn CreateNewButton(String var1, String var2) {
  115.       ToolBarBtn var3 = new ToolBarBtn();
  116.       var3.init(var1, var2, this);
  117.       ((Container)this).add(var3);
  118.       return var3;
  119.    }
  120.  
  121.    public Choice CreatePageChoice() {
  122.       Choice var1 = new Choice();
  123.  
  124.       for(int var2 = 1; var2 <= this.m_nNumOfPages; ++var2) {
  125.          var1.addItem(var2 + " of " + this.m_nNumOfPages);
  126.       }
  127.  
  128.       var1.select(this.m_Document.m_iCurrPage - 1);
  129.       ((Component)var1).setBackground(Color.lightGray);
  130.       ((Container)this).add(var1);
  131.       return var1;
  132.    }
  133.  
  134.    public BToolTip CreateTipWindow() {
  135.       Dimension var1 = this.m_Applet.size();
  136.       Dimension var2 = ((Container)this).minimumSize();
  137.       BToolTip var3 = new BToolTip();
  138.       var3.init("");
  139.       ((Component)var3).resize(5, 22);
  140.       ((Container)this).add(var3);
  141.       return var3;
  142.    }
  143.  
  144.    private Image loadToolbarBitmapClass() {
  145.       BToolPix var1 = new BToolPix();
  146.       MemoryImageSource var2 = new MemoryImageSource(var1.width, var1.height, var1.PixArray, 0, var1.width);
  147.       return this.m_Applet.createImage(var2);
  148.    }
  149.  
  150.    public void clearTip(String var1) {
  151.       this.TextLabel.clearText(var1);
  152.    }
  153.  
  154.    public void setTip(String var1) {
  155.       this.TextLabel.setText(var1);
  156.    }
  157.  
  158.    public boolean mouseExit(Event var1, int var2, int var3) {
  159.       this.setTip(" ");
  160.       return true;
  161.    }
  162.  
  163.    public void paint(Graphics var1) {
  164.       Dimension var2 = ((Component)this).size();
  165.       if (this.m_cChoiceRect == null) {
  166.          Dimension var3 = ((Container)this).minimumSize();
  167.          int var4 = var2.width - var3.width;
  168.          this.TextLabel.resize(var4 + 4, 22);
  169.          if (this.m_cChoice != null) {
  170.             this.m_cChoiceRect = this.m_cChoice.bounds();
  171.          } else {
  172.             this.m_cChoiceRect = new Rectangle();
  173.          }
  174.       }
  175.  
  176.       this.drawFrame(var1, var2.width, var2.height, false);
  177.    }
  178.  
  179.    void drawFrame(Graphics var1, int var2, int var3, boolean var4) {
  180.       if (var4) {
  181.          var1.setColor(Color.darkGray);
  182.       } else {
  183.          var1.setColor(Color.white);
  184.       }
  185.  
  186.       var1.drawLine(0, 0, var2 - 1, 0);
  187.       var1.drawLine(0, 0, 0, var3 - 1);
  188.       if (var4) {
  189.          var1.setColor(Color.white);
  190.       } else {
  191.          var1.setColor(Color.darkGray);
  192.       }
  193.  
  194.       var1.drawLine(0, var3 - 1, var2, var3 - 1);
  195.       var1.drawLine(var2 - 1, 0, var2 - 1, var3);
  196.    }
  197.  
  198.    void UpdateButtons(int var1) {
  199.       if (this.m_ToolBarLoc == TOOLBAR_LOCATION_TOP && this.m_Document.AutoScrollEnabled()) {
  200.          if (this.m_Document.AutoScrollStatus(1)) {
  201.             this.StartTButton.enable();
  202.             this.StopTButton.disable();
  203.          } else {
  204.             this.StartTButton.disable();
  205.             this.StopTButton.enable();
  206.          }
  207.       }
  208.  
  209.       if (var1 > 1) {
  210.          this.PrevPgButton.enable();
  211.          if (this.FirstPgButton != null) {
  212.             this.FirstPgButton.enable();
  213.          }
  214.       } else {
  215.          this.PrevPgButton.disable();
  216.          if (this.FirstPgButton != null) {
  217.             this.FirstPgButton.disable();
  218.          }
  219.       }
  220.  
  221.       if (var1 < this.m_nNumOfPages) {
  222.          this.NextPgButton.enable();
  223.          if (this.LastPgButton != null) {
  224.             this.LastPgButton.enable();
  225.          }
  226.       } else {
  227.          this.NextPgButton.disable();
  228.          if (this.LastPgButton != null) {
  229.             this.LastPgButton.disable();
  230.          }
  231.       }
  232.  
  233.       this.m_cChoice.select(var1 - 1);
  234.       this.m_cChoice.hide();
  235.       this.m_cChoice.show();
  236.    }
  237.  
  238.    private static void initDefaultButtonMap() {
  239.       if (NumDefaultButtons.width != 0 && NumDefaultButtons.height != 0) {
  240.          m_DefaultButtonMap = new String[NumDefaultButtons.width][NumDefaultButtons.height];
  241.          m_DefaultButtonMap[0][0] = "CorelBaristaHelp";
  242.          m_DefaultButtonMap[0][1] = "AboutCorelBarista";
  243.          m_DefaultButtonMap[0][2] = "Corel";
  244.          m_DefaultButtonMap[0][3] = "previousview";
  245.          m_DefaultButtonMap[1][0] = "Previous Page";
  246.          m_DefaultButtonMap[1][1] = "Next Page";
  247.          m_DefaultButtonMap[1][2] = "Gotothefirstpage";
  248.          m_DefaultButtonMap[1][3] = "Gotothelastpage";
  249.          m_DefaultButtonMap[2][0] = "MinimizeToolBar";
  250.          m_DefaultButtonMap[2][1] = "Transition";
  251.          m_DefaultButtonMap[2][2] = "TransitionStop";
  252.          m_DefaultButtonMap[2][3] = "TransitionStart";
  253.          m_DefaultButtonMap[3][0] = "Findtext";
  254.          m_DefaultButtonMap[3][1] = "Copy";
  255.          m_DefaultButtonMap[3][2] = "Print...";
  256.          m_DefaultButtonMap[3][3] = "";
  257.       }
  258.    }
  259.  
  260.    public Image getButtonImage(String var1) {
  261.       Point var2 = getDefaultButtonImageIndex(var1);
  262.       return var2 != null && this.m_ToolBarImg != null ? this.getSubImage(var2.y * DEFAULT_BUTTON_IMAGE_SIZE.width, var2.x * DEFAULT_BUTTON_IMAGE_SIZE.height, DEFAULT_BUTTON_IMAGE_SIZE.width, DEFAULT_BUTTON_IMAGE_SIZE.height) : null;
  263.    }
  264.  
  265.    private static Point getDefaultButtonImageIndex(String var0) {
  266.       for(int var2 = 0; var2 < NumDefaultButtons.width; ++var2) {
  267.          for(int var3 = 0; var3 < NumDefaultButtons.height; ++var3) {
  268.             String var1 = m_DefaultButtonMap[var2][var3];
  269.             if (var1 == null) {
  270.                break;
  271.             }
  272.  
  273.             if (var1.equals(var0)) {
  274.                return new Point(var2, var3);
  275.             }
  276.          }
  277.       }
  278.  
  279.       return null;
  280.    }
  281.  
  282.    public final Image getSubImage(int var1, int var2, int var3, int var4) {
  283.       Image var6 = null;
  284.       if (var3 == this.m_ToolBarImg.getWidth(this) && var4 == this.m_ToolBarImg.getHeight(this)) {
  285.          return this.m_ToolBarImg;
  286.       } else {
  287.          CropImageFilter var5 = new CropImageFilter(var1, var2, var3, var4);
  288.  
  289.          try {
  290.             var6 = ((Component)this).createImage(new FilteredImageSource(this.m_ToolBarImg.getSource(), var5));
  291.             ((Component)this).prepareImage(var6, this);
  292.          } catch (Exception var7) {
  293.          }
  294.  
  295.          return var6;
  296.       }
  297.    }
  298.  
  299.    public final Image loadImage(String var1) {
  300.       MediaTracker var2 = new MediaTracker(this);
  301.       Object var3 = null;
  302.  
  303.       try {
  304.          var7 = this.m_Applet.getImage(this.m_Applet.getDocumentBase(), var1);
  305.       } catch (Exception var6) {
  306.          System.out.println("Unable to load image : " + var6);
  307.          return null;
  308.       }
  309.  
  310.       if (var7 == null) {
  311.          return null;
  312.       } else {
  313.          var2.addImage(var7, 0);
  314.  
  315.          try {
  316.             var2.waitForID(0);
  317.          } catch (InterruptedException var5) {
  318.             System.out.println("tracker.addImage(image, 0);" + var5);
  319.          }
  320.  
  321.          if ((var2.statusID(0, true) & 4) != 0) {
  322.             var7.flush();
  323.             var7 = null;
  324.          }
  325.  
  326.          return var7;
  327.       }
  328.    }
  329.  
  330.    public synchronized boolean handleEvent(Event var1) {
  331.       boolean var2 = false;
  332.       if (var1.target instanceof TextField) {
  333.          return false;
  334.       } else {
  335.          switch (var1.id) {
  336.             case 1001:
  337.                if (var1.target == this.m_cChoice) {
  338.                   int var3 = this.m_cChoice.getSelectedIndex();
  339.                   this.m_Document.GoToPage(var3 + 1);
  340.                   var2 = true;
  341.                } else if (var1.target == this.PrevPgButton) {
  342.                   this.m_Document.PrevPage();
  343.                   var2 = true;
  344.                } else if (var1.target == this.NextPgButton) {
  345.                   this.m_Document.NextPage();
  346.                   var2 = true;
  347.                }
  348.             default:
  349.                if (!var2) {
  350.                   if (var1.id == 201) {
  351.                      var2 = this.OnClose();
  352.                   }
  353.  
  354.                   if (!var2) {
  355.                      var2 = super.handleEvent(var1);
  356.                   }
  357.                }
  358.  
  359.                return var2;
  360.          }
  361.       }
  362.    }
  363.  
  364.    public boolean action(Event var1, Object var2) {
  365.       boolean var3 = false;
  366.       String var4 = (String)var2;
  367.       if (var4.equals("Corel")) {
  368.          try {
  369.             URL var5 = new URL("http://www.corel.com/internet/barista.htm");
  370.             this.m_Applet.getAppletContext().showDocument(var5);
  371.          } catch (MalformedURLException var6) {
  372.          }
  373.  
  374.          var3 = true;
  375.       } else if (var4.equals("Print...")) {
  376.          var3 = this.OnPrint();
  377.       } else if (var4.equals("AboutCorelBarista")) {
  378.          var3 = this.OnAbout();
  379.       } else if (var4.equals("Gotothefirstpage")) {
  380.          var3 = this.OnFirstPage();
  381.       } else if (var4.equals("Previous Page")) {
  382.          var3 = this.OnPrevPage();
  383.       } else if (var4.equals("Next Page")) {
  384.          var3 = this.OnNextPage();
  385.       } else if (var4.equals("Gotothelastpage")) {
  386.          var3 = this.OnLastPage();
  387.       } else if (var4.equals("previousview")) {
  388.          var3 = this.OnPView();
  389.       } else if (var4.equals("TransitionStop")) {
  390.          var3 = this.OnStartStopTransition(false);
  391.       } else if (var4.equals("TransitionStart")) {
  392.          var3 = this.OnStartStopTransition(true);
  393.       } else if (var4.equals("MinimizeToolBar")) {
  394.          var3 = this.OnMinimize();
  395.       }
  396.  
  397.       return var3;
  398.    }
  399.  
  400.    public boolean OnMinimize() {
  401.       Event var1 = new Event(this, 1001, "DoMinimize");
  402.       ((Component)this).postEvent(var1);
  403.       return true;
  404.    }
  405.  
  406.    public boolean OnPrint() {
  407.       return true;
  408.    }
  409.  
  410.    private boolean OnFirstPage() {
  411.       if (this.m_Applet.m_Document.m_iCurrPage != 1) {
  412.          this.m_Applet.m_Document.PrevView(this.m_Applet.m_Document.m_iCurrPage);
  413.          this.m_Applet.m_Document.GoToPage(1);
  414.       }
  415.  
  416.       return true;
  417.    }
  418.  
  419.    private boolean OnLastPage() {
  420.       if (this.m_Applet.m_Document.m_iCurrPage != this.m_Applet.m_Document.m_nNumOfPages) {
  421.          this.m_Applet.m_Document.PrevView(this.m_Applet.m_Document.m_iCurrPage);
  422.          this.m_Applet.m_Document.GoToPage(this.m_Applet.m_Document.m_nNumOfPages);
  423.       }
  424.  
  425.       return true;
  426.    }
  427.  
  428.    private boolean OnNextPage() {
  429.       this.m_Applet.m_Document.NextPage();
  430.       return true;
  431.    }
  432.  
  433.    private boolean OnPrevPage() {
  434.       this.m_Applet.m_Document.PrevPage();
  435.       return true;
  436.    }
  437.  
  438.    private boolean OnPView() {
  439.       int var1 = this.m_Applet.m_Document.m_iCurrPage;
  440.       this.m_Applet.m_Document.GoToPage(this.m_Applet.m_Document.m_nPrevPage);
  441.       this.m_Applet.m_Document.PrevView(var1);
  442.       return true;
  443.    }
  444.  
  445.    private boolean OnAbout() {
  446.       try {
  447.          URL var1 = new URL("http://missionimprobable.com/barista/all.html");
  448.          this.m_Applet.getAppletContext().showDocument(var1);
  449.       } catch (MalformedURLException var2) {
  450.       }
  451.  
  452.       return true;
  453.    }
  454.  
  455.    public boolean OnClose() {
  456.       ((Component)this).hide();
  457.       ((Container)this).removeAll();
  458.       System.exit(0);
  459.       return true;
  460.    }
  461.  
  462.    private final boolean OnStartStopTransition(boolean var1) {
  463.       boolean var2 = this.m_Applet.GetDocument().AutoScrollStatus(1);
  464.       if (var1) {
  465.          if (!var2) {
  466.             return true;
  467.          }
  468.       } else if (var2) {
  469.          return true;
  470.       }
  471.  
  472.       this.m_Applet.GetDocument().StartAutoScroll(false, true, true, true);
  473.       return true;
  474.    }
  475. }
  476.