home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / awt / demo / wrtest.java < prev   
Text File  |  1995-08-11  |  7KB  |  278 lines

  1. /*
  2.  * @(#)WRTest.java    1.25 95/03/20 Sami Shaio
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19. package awt.demo;
  20.  
  21. import awt.*;
  22. import java.io.*;
  23. import java.lang.*;
  24. import java.util.*;
  25.  
  26. class OpenItem extends MenuItem {
  27.     public OpenItem(Menu m, Window w) {
  28.     super("Open...", m);
  29.     fileDialog = new FileDialog("Open File...", w.getFrame());
  30.     }
  31.     
  32.     public void selected() {
  33.     String file = fileDialog.chooseFile(null);
  34.  
  35.     if (file != null) {
  36.         System.out.println("Chose file " + file);
  37.     }
  38.     }
  39.  
  40.     private FileDialog fileDialog;
  41. }
  42.  
  43. class TextItem {
  44.     public TextItem(Window p, String label, Font f, int x, int y) {
  45.     parent = p; 
  46.     pLabel = label;
  47.     font = f;
  48.     px = x;
  49.     py = y;
  50.     height = f.height;
  51.     width = f.stringWidth(pLabel);
  52.     }
  53.     public void paint() {
  54.     parent.setFont(font);
  55.     parent.drawString(pLabel, px, py);
  56.     }
  57.     public void moveTo(int x, int y) {
  58.     parent.clearRect(px, py-height, width, height);
  59.     px = x;
  60.     py = y;
  61.     paint();
  62.     }
  63.  
  64.     private Window parent;
  65.     private String pLabel;
  66.     private Font font;
  67.     private int px;
  68.     private int py;
  69.     private int height;
  70.     private int width;
  71. }
  72.     
  73.     
  74. class FileMenu extends Menu {
  75.     public FileMenu(MenuBar mbar, Window w) {
  76.     super("File", mbar);
  77.  
  78.     MenuItem    item;
  79.  
  80.     new MenuItem("New", this);
  81.     new OpenItem(this, w);
  82.     item = new MenuItem("Save", this);
  83.     item.disable();
  84.     new MenuItem("Save As...", this);
  85.     new MenuItem("Quit", this);
  86.     enabled = true;
  87.     }
  88.     public void selected(int index) {
  89.     int    height;
  90.     int    width;
  91.  
  92.     if (index == 0) {
  93.         aw = new WRTest();
  94.     }
  95.     }
  96.  
  97.     private WRTest    aw;
  98.     private boolean enabled;
  99. };
  100.  
  101. class OptionsMenu extends Menu {
  102.     public OptionsMenu(MenuBar mbar) {
  103.     super("Options", mbar);
  104.  
  105.     MenuItem    item;
  106.  
  107.     new MenuItem("Font", this);
  108.     new MenuItem("Color", this);
  109.     }
  110.     public void selected(int index) {
  111.     }
  112. };
  113.  
  114. class NavigateMenu extends Menu {
  115.     public NavigateMenu(MenuBar mbar) {
  116.     super("Navigate", mbar);
  117.  
  118.     MenuItem    item;
  119.  
  120.     new MenuItem("Forward", this);
  121.     new MenuItem("Back", this);
  122.     new MenuItem("Home", this);
  123.     }
  124.     public void selected(int index) {
  125.     }
  126. };
  127.  
  128. class AnnotateMenu extends Menu {
  129.     public AnnotateMenu(MenuBar mbar) {
  130.     super("Annotate", mbar);
  131.  
  132.     MenuItem    item;
  133.  
  134.     new MenuItem("Add Private Annotation", this);
  135.     new MenuItem("Add Public Annotation", this);
  136.     new MenuItem("Delete Annotation", this);
  137.     new MenuItem("Show Annotations", this);
  138.     new MenuItem("Hide Annotations", this);
  139.     }
  140.     public void selected(int index) {
  141.     }
  142. };
  143.  
  144. class HelpMenu extends Menu {
  145.     public HelpMenu(MenuBar mbar) {
  146.     super("Help", mbar);
  147.  
  148.     MenuItem    item;
  149.  
  150.     new MenuItem("About HotJava", this);
  151.     }
  152.     public void selected(int index) {
  153.     }
  154. };
  155.     
  156. class InfoWindow extends Window {
  157.     public InfoWindow(Frame f) {
  158.     super(f, "North", f.background, 500, 100);
  159.  
  160.     int h;
  161.     RowColLayout    r;
  162.     Font label_font = WRTest.ws.fonts.getFont("Helvetica:bold:14");
  163.     Font input_font = WRTest.ws.fonts.getFont("DialogInput:bold:12");
  164.  
  165.     r = new RowColLayout(0, 2);
  166.     r.setGaps(4,4,4,4);
  167.     setLayout(r);
  168.     docTitle = new Label("Document Title:", "docTitle", this);
  169.     //docTitle.setFont(label_font);
  170.     docTitle.setColor(WRTest.blue);
  171.     titleField = new TextField("LiveJava Home Page",
  172.                    "titleField",
  173.                    this,
  174.                    false);
  175.     //titleField.setFont(input_font);
  176.     titleField.setColor(Color.black);
  177.     urlTitle = new Label("Document URL:", "urlTitle", this);
  178.     //urlTitle.setFont(label_font);
  179.     urlTitle.setColor(WRTest.blue);
  180.     urlField = new TextField("http://www",
  181.                  "urlField",
  182.                  this,
  183.                  true);
  184.     urlField.setColor(Color.black);
  185.     //urlField.setFont(label_font);
  186.     }
  187.  
  188.     Label    docTitle;
  189.     Label    urlTitle;
  190.     TextField    titleField;
  191.     TextField    urlField;
  192. }
  193.  
  194. class StatusWindow extends Window {
  195.     public StatusWindow(Frame f) {
  196.     super(f, "South", f.background, 500, 30);
  197.  
  198.     Label    st;
  199.  
  200.     fg = Color.black;
  201.  
  202.     st=new Label("Data transfer complete.", "status", this);
  203.     st.setColor(WRTest.blue);
  204.     //st.setHFill(true);
  205.     new Button("Back", "",this);
  206.     new Button("Forward", "", this);
  207.     new Button("Home", "", this);
  208.     new Button("Reload", "", this);
  209.     new Button("Open...", "", this);
  210.     new Button("Save As...", "", this);
  211.     new Button("Clone...", "", this);
  212.     new Button("New Window", "", this);
  213.     new Button("Close Window", "",this);
  214.     }
  215.  
  216.     Color    fg;
  217. }
  218. class DocWindow extends Window {
  219.     public DocWindow(Frame f) {
  220.     super(f,"Center", f.background, 500, 400);
  221.     setLayout(BorderLayout.defaultLayout);
  222.     setMargin(2);
  223.     new Scrollbar(this, "",Scrollbar.VERTICAL, true);
  224.     new Window(this, "North", Color.red, 100, 100);
  225.     new Window(this, "West", Color.green, 100, 100);
  226.     new Window(this, "East", Color.yellow, 100, 100);
  227.     new Window(this, "South", Color.blue, 100, 100);
  228.     new Window(this, "Center", Color.white, 100, 100);
  229.     }
  230.     public void paint() {
  231.     }
  232. }
  233.  
  234. class WRTest {
  235.     public WRTest() {
  236.     f  = new Frame(WRTest.ws, true, null, 660, 750,
  237.                Color.lightGray);
  238.     f.setTitle("HotJava demo demo " + nFrames++);
  239.     mbar = new MenuBar(f);
  240.     infoWindow = new InfoWindow(f);
  241.     contentWindow = new DocWindow(f);
  242.     statusWindow = new StatusWindow(f);
  243.     new FileMenu(mbar, contentWindow);
  244.     new OptionsMenu(mbar);
  245.     new NavigateMenu(mbar);
  246.     new AnnotateMenu(mbar);
  247.     new HelpMenu(mbar);
  248.     //f.setMinSize();
  249.     f.layout();
  250.     f.map();
  251.     }
  252.  
  253.     public static void main(String args[]) {
  254.     WRTest        a1;
  255.  
  256.     WRTest.nFrames = 1;
  257.     ws = new WServer();
  258.         ws.start();
  259.     blue = new Color(ws, 29,21,91);
  260.     boldFont = WRTest.ws.fonts.getFont("Helvetica:bold:14");
  261.     normalFont = WRTest.ws.fonts.getFont("DialogInput:roman:12");
  262.     a1 = new WRTest();
  263.     //ws.run();
  264.     }
  265.  
  266.     public static Font    boldFont;
  267.     public static Font    normalFont;
  268.     public static    int nFrames;
  269.     public static WServer    ws;
  270.     public static Color blue;
  271.     Frame        f;
  272.     MenuBar        mbar;
  273.     Window        infoWindow;
  274.     Window        contentWindow;
  275.     Window        statusWindow;
  276. };
  277.  
  278.