home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / WDETOUR.BIN / AmazingTour.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-27  |  9.7 KB  |  303 lines

  1. import java.awt.Button;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.FileDialog;
  6. import java.awt.Font;
  7. import java.awt.Frame;
  8. import java.awt.Label;
  9. import java.awt.LayoutManager;
  10. import java.awt.Menu;
  11. import java.awt.MenuBar;
  12. import java.awt.MenuItem;
  13. import java.awt.Point;
  14. import java.awt.Rectangle;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.event.WindowEvent;
  17. import java.beans.PropertyVetoException;
  18. import java.io.DataInputStream;
  19. import java.io.FileInputStream;
  20. import java.io.FileNotFoundException;
  21. import java.io.FilterInputStream;
  22. import java.io.IOException;
  23. import java.net.MalformedURLException;
  24. import java.net.URL;
  25. import symantec.itools.awt.WrappingLabel;
  26. import symantec.itools.multimedia.ImageViewer;
  27. import symantec.itools.multimedia.SlideShow;
  28. import symantec.itools.net.RelativeURL;
  29.  
  30. public class AmazingTour extends Frame {
  31.    int dayCount;
  32.    String fileName;
  33.    Rectangle slideShowBounds;
  34.    boolean fComponentsAdjusted;
  35.    FileDialog openFileDialog1;
  36.    WrappingLabel wrappingLabelStart;
  37.    WrappingLabel wrappingLabelTop;
  38.    WrappingLabel wrappingLabelPeople;
  39.    ImageViewer imageViewerLogo;
  40.    SlideShow slideShowItinerary;
  41.    Label labelDay;
  42.    Button buttonNext;
  43.    Button buttonPrevious;
  44.    WrappingLabel wrappingLabelDesc;
  45.    AmazingTour$Action glAction;
  46.    MenuBar mainMenuBar;
  47.    Menu menu1;
  48.    MenuItem miOpen;
  49.    MenuItem miExit;
  50.    Menu menu3;
  51.    MenuItem miAbout;
  52.  
  53.    void miAbout_Action(ActionEvent event) {
  54.       (new AboutDialog(this, true)).show();
  55.    }
  56.  
  57.    void miExit_Action(ActionEvent event) {
  58.       (new QuitDialog(this, true)).show();
  59.    }
  60.  
  61.    void miOpen_Action(ActionEvent event) {
  62.       this.openFileDialog1.show();
  63.       String tempFileName = this.openFileDialog1.getDirectory() + this.openFileDialog1.getFile();
  64.       if ((this.fileName != null || tempFileName.endsWith(".dat")) && tempFileName.endsWith(".dat")) {
  65.          if (this.fileName == null) {
  66.             this.wrappingLabelStart.hide();
  67.          }
  68.  
  69.          this.fileName = tempFileName;
  70.          if (this.slideShowItinerary != null) {
  71.             ((Container)this).remove(this.slideShowItinerary);
  72.          }
  73.  
  74.          this.dayCount = 1;
  75.          if (this.slideShowItinerary != null) {
  76.             this.slideShowItinerary.removeActionListener(this.glAction);
  77.          }
  78.  
  79.          this.slideShowItinerary = new SlideShow();
  80.          this.slideShowItinerary.addActionListener(this.glAction);
  81.          this.slideShowItinerary.reshape(((Container)this).insets().left + this.slideShowBounds.x, ((Container)this).insets().top + this.slideShowBounds.y, this.slideShowBounds.width, this.slideShowBounds.height);
  82.          ((Container)this).add(this.slideShowItinerary);
  83.          this.getEntries(this.openFileDialog1.getDirectory(), this.fileName);
  84.          this.buttonNext.show();
  85.          this.buttonPrevious.show();
  86.  
  87.          try {
  88.             this.wrappingLabelTop.setText("Custom Itinerary for");
  89.          } catch (PropertyVetoException var4) {
  90.          }
  91.  
  92.          this.labelDay.setText("Day " + this.dayCount);
  93.  
  94.          try {
  95.             this.wrappingLabelDesc.setText(this.slideShowItinerary.getDescription(this.slideShowItinerary.getCurrentImageIndex()));
  96.          } catch (PropertyVetoException var3) {
  97.          }
  98.  
  99.          this.buttonPrevious.disable();
  100.          if (this.slideShowItinerary.isAtLastImage()) {
  101.             this.buttonNext.disable();
  102.          } else {
  103.             this.buttonNext.enable();
  104.          }
  105.  
  106.       }
  107.    }
  108.  
  109.    void Frame1_WindowClosing(WindowEvent event) {
  110.       ((Component)this).hide();
  111.       ((Frame)this).dispose();
  112.       System.exit(0);
  113.    }
  114.  
  115.    public AmazingTour() {
  116.       this.dayCount = 1;
  117.       this.fComponentsAdjusted = false;
  118.       ((Container)this).setLayout((LayoutManager)null);
  119.       ((Component)this).setVisible(false);
  120.       ((Component)this).setSize(((Container)this).insets().left + ((Container)this).insets().right + 600, ((Container)this).insets().top + ((Container)this).insets().bottom + 530);
  121.       ((Component)this).setFont(new Font("Dialog", 0, 12));
  122.       ((Component)this).setForeground(new Color(0));
  123.       ((Component)this).setBackground(new Color(16777215));
  124.       this.openFileDialog1 = new FileDialog(this);
  125.       this.openFileDialog1.setMode(0);
  126.       this.openFileDialog1.setTitle("Open");
  127.       this.wrappingLabelStart = new WrappingLabel();
  128.  
  129.       try {
  130.          this.wrappingLabelStart.setText("To start, choose Open from the File menu and open your data file. Your .dat file and the graphics files must be in the same directory.");
  131.       } catch (PropertyVetoException var8) {
  132.       }
  133.  
  134.       this.wrappingLabelStart.setBounds(((Container)this).insets().left + 5, ((Container)this).insets().top + 16, 247, 179);
  135.       this.wrappingLabelStart.setFont(new Font("Dialog", 1, 16));
  136.       ((Container)this).add(this.wrappingLabelStart);
  137.       this.wrappingLabelTop = new WrappingLabel();
  138.  
  139.       try {
  140.          this.wrappingLabelTop.setText("Custom itinerary for");
  141.       } catch (PropertyVetoException var7) {
  142.       }
  143.  
  144.       try {
  145.          this.wrappingLabelTop.setAlignStyle(1);
  146.       } catch (PropertyVetoException var6) {
  147.       }
  148.  
  149.       this.wrappingLabelTop.setBounds(((Container)this).insets().left + 7, ((Container)this).insets().top + 18, 244, 52);
  150.       this.wrappingLabelTop.setFont(new Font("Dialog", 1, 16));
  151.       ((Container)this).add(this.wrappingLabelTop);
  152.       this.wrappingLabelPeople = new WrappingLabel();
  153.  
  154.       try {
  155.          this.wrappingLabelPeople.setAlignStyle(1);
  156.       } catch (PropertyVetoException var5) {
  157.       }
  158.  
  159.       this.wrappingLabelPeople.setBounds(((Container)this).insets().left + 7, ((Container)this).insets().top + 75, 244, 109);
  160.       this.wrappingLabelPeople.setFont(new Font("Dialog", 1, 24));
  161.       ((Container)this).add(this.wrappingLabelPeople);
  162.       this.imageViewerLogo = new ImageViewer();
  163.  
  164.       try {
  165.          this.imageViewerLogo.setURL(RelativeURL.getURL("Images/Logo.gif"));
  166.       } catch (MalformedURLException var3) {
  167.       } catch (PropertyVetoException var4) {
  168.       }
  169.  
  170.       this.imageViewerLogo.setBounds(((Container)this).insets().left + 268, ((Container)this).insets().top + 2, 311, 203);
  171.       ((Container)this).add(this.imageViewerLogo);
  172.       this.slideShowItinerary = new SlideShow();
  173.       this.slideShowItinerary.setBounds(((Container)this).insets().left + 254, ((Container)this).insets().top + 232, 340, 235);
  174.       ((Container)this).add(this.slideShowItinerary);
  175.       this.labelDay = new Label("", 1);
  176.       this.labelDay.setBounds(((Container)this).insets().left + 65, ((Container)this).insets().top + 199, 108, 32);
  177.       this.labelDay.setFont(new Font("Dialog", 2, 16));
  178.       ((Container)this).add(this.labelDay);
  179.       this.buttonNext = new Button();
  180.       this.buttonNext.setActionCommand("button");
  181.       this.buttonNext.setLabel("Next");
  182.       this.buttonNext.setVisible(false);
  183.       this.buttonNext.setBounds(((Container)this).insets().left + 431, ((Container)this).insets().top + 470, 80, 31);
  184.       ((Container)this).add(this.buttonNext);
  185.       this.buttonPrevious = new Button();
  186.       this.buttonPrevious.setActionCommand("button");
  187.       this.buttonPrevious.setLabel("Previous");
  188.       this.buttonPrevious.setVisible(false);
  189.       this.buttonPrevious.setBounds(((Container)this).insets().left + 341, ((Container)this).insets().top + 470, 80, 31);
  190.       ((Container)this).add(this.buttonPrevious);
  191.       this.wrappingLabelDesc = new WrappingLabel();
  192.       this.wrappingLabelDesc.setBounds(((Container)this).insets().left + 8, ((Container)this).insets().top + 236, 240, 265);
  193.       this.wrappingLabelDesc.setFont(new Font("Dialog", 0, 14));
  194.       ((Container)this).add(this.wrappingLabelDesc);
  195.       ((Frame)this).setTitle("Amazing Adventures Travel - Custom Itinerary Application");
  196.       this.slideShowBounds = this.slideShowItinerary.bounds();
  197.       this.mainMenuBar = new MenuBar();
  198.       this.menu1 = new Menu("File");
  199.       this.miOpen = new MenuItem("Open...");
  200.       this.menu1.add(this.miOpen);
  201.       this.menu1.addSeparator();
  202.       this.miExit = new MenuItem("Exit");
  203.       this.menu1.add(this.miExit);
  204.       this.mainMenuBar.add(this.menu1);
  205.       this.menu3 = new Menu("Help");
  206.       this.mainMenuBar.setHelpMenu(this.menu3);
  207.       this.miAbout = new MenuItem("About..");
  208.       this.menu3.add(this.miAbout);
  209.       this.mainMenuBar.add(this.menu3);
  210.       ((Frame)this).setMenuBar(this.mainMenuBar);
  211.       AmazingTour$Window lWindow = new AmazingTour$Window(this);
  212.       ((java.awt.Window)this).addWindowListener(lWindow);
  213.       AmazingTour$Action lAction = new AmazingTour$Action(this);
  214.       this.miOpen.addActionListener(lAction);
  215.       this.miAbout.addActionListener(lAction);
  216.       this.miExit.addActionListener(lAction);
  217.       this.buttonPrevious.addActionListener(lAction);
  218.       this.buttonNext.addActionListener(lAction);
  219.       this.slideShowItinerary.addActionListener(lAction);
  220.       this.glAction = lAction;
  221.    }
  222.  
  223.    public AmazingTour(String title) {
  224.       this();
  225.       ((Frame)this).setTitle(title);
  226.    }
  227.  
  228.    public synchronized void show() {
  229.       ((Component)this).move(50, 50);
  230.       super.show();
  231.    }
  232.  
  233.    public static void main(String[] args) {
  234.       (new AmazingTour()).show();
  235.    }
  236.  
  237.    public void addNotify() {
  238.       super.addNotify();
  239.       if (!this.fComponentsAdjusted) {
  240.          ((Component)this).setSize(((Container)this).insets().left + ((Container)this).insets().right + ((Component)this).getSize().width, ((Container)this).insets().top + ((Container)this).insets().bottom + ((Component)this).getSize().height);
  241.          Component[] components = ((Container)this).getComponents();
  242.  
  243.          for(int i = 0; i < components.length; ++i) {
  244.             Point p = components[i].getLocation();
  245.             p.translate(((Container)this).insets().left, ((Container)this).insets().top);
  246.             components[i].setLocation(p);
  247.          }
  248.  
  249.          this.fComponentsAdjusted = true;
  250.       }
  251.    }
  252.  
  253.    private void getEntries(String dir, String filename) {
  254.       try {
  255.          DataInputStream in = new DataInputStream(new FileInputStream(filename));
  256.  
  257.          try {
  258.             this.wrappingLabelPeople.setText(in.readLine());
  259.          } catch (PropertyVetoException var8) {
  260.          }
  261.  
  262.          int numEntries = Integer.parseInt(in.readLine());
  263.          dir = "file:/" + dir.substring(0, dir.lastIndexOf(92));
  264.  
  265.          for(int i = 0; i < numEntries; ++i) {
  266.             String s1 = dir + "/" + in.readLine();
  267.             String s2 = in.readLine();
  268.             this.slideShowItinerary.addImageAndDescription(new URL(s1), s2);
  269.          }
  270.  
  271.          ((FilterInputStream)in).close();
  272.          ((Container)this).invalidate();
  273.          ((Container)this).validate();
  274.       } catch (FileNotFoundException var9) {
  275.          System.err.println("Can't open " + filename);
  276.       } catch (IOException var10) {
  277.          System.err.println("Error reading " + filename);
  278.       }
  279.  
  280.    }
  281.  
  282.    void buttonPrevious_Action(ActionEvent event) {
  283.       this.slideShowItinerary.previousImage();
  284.       this.labelDay.setText("Day " + --this.dayCount);
  285.    }
  286.  
  287.    void buttonNext_Action(ActionEvent event) {
  288.       this.slideShowItinerary.nextImage();
  289.       this.labelDay.setText("Day " + ++this.dayCount);
  290.    }
  291.  
  292.    void slideShowItinerary_SlideChanged(ActionEvent event) {
  293.       this.buttonNext.setEnabled(!this.slideShowItinerary.isAtLastImage());
  294.       this.buttonPrevious.setEnabled(!this.slideShowItinerary.isAtFirstImage());
  295.  
  296.       try {
  297.          this.wrappingLabelDesc.setText(this.slideShowItinerary.getDescription(this.slideShowItinerary.getCurrentImageIndex()));
  298.       } catch (PropertyVetoException var2) {
  299.       }
  300.  
  301.    }
  302. }
  303.