home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / CSIME.ARJ / CSIME.ZIP / csime / mug / app / ApplicationFrame.class (.txt) next >
Encoding:
Java Class File  |  1997-02-09  |  4.3 KB  |  184 lines

  1. package mug.app;
  2.  
  3. import java.awt.Event;
  4. import java.awt.FileDialog;
  5. import java.awt.Frame;
  6. import java.awt.Menu;
  7. import java.awt.MenuBar;
  8. import java.awt.MenuItem;
  9. import java.awt.Window;
  10. import java.io.File;
  11. import java.io.FilenameFilter;
  12.  
  13. public abstract class ApplicationFrame extends Frame {
  14.    private String _name;
  15.    private int _busyCount;
  16.  
  17.    public ApplicationFrame() {
  18.       MenuBar var1 = this.menuBar();
  19.       if (var1 != null) {
  20.          ((Frame)this).setMenuBar(var1);
  21.       }
  22.  
  23.    }
  24.  
  25.    public ApplicationFrame(String var1) {
  26.       super(var1);
  27.       this._name = var1;
  28.       MenuBar var2 = this.menuBar();
  29.       if (var2 != null) {
  30.          ((Frame)this).setMenuBar(var2);
  31.       }
  32.  
  33.    }
  34.  
  35.    public void setTitle(String var1) {
  36.       if (this._name != null) {
  37.          super.setTitle(this._name + ": " + (var1 != null ? var1 : "Untitled"));
  38.       } else {
  39.          super.setTitle(var1 != null ? var1 : "Untitled");
  40.       }
  41.    }
  42.  
  43.    public boolean handleEvent(Event var1) {
  44.       if (var1.id == 201) {
  45.          CommandMenuItem var2 = (CommandMenuItem)this.getMenuItem("File", "Quit");
  46.          if (var2 != null) {
  47.             var2.execute();
  48.          } else {
  49.             (new CloseCommand(this)).setNext(new QuitCommand()).execute();
  50.          }
  51.       } else {
  52.          if (var1.id != 1001 || !(var1.target instanceof CommandMenuItem)) {
  53.             return super.handleEvent(var1);
  54.          }
  55.  
  56.          ((CommandMenuItem)var1.target).execute();
  57.       }
  58.  
  59.       return true;
  60.    }
  61.  
  62.    public void setBusy(boolean var1) {
  63.       if (var1) {
  64.          if (this._busyCount == 0) {
  65.             ((Frame)this).setCursor(3);
  66.          }
  67.  
  68.          ++this._busyCount;
  69.       } else {
  70.          --this._busyCount;
  71.          if (this._busyCount == 0) {
  72.             ((Frame)this).setCursor(0);
  73.          }
  74.  
  75.       }
  76.    }
  77.  
  78.    public abstract Document emptyDocument();
  79.  
  80.    public abstract Document getDocument();
  81.  
  82.    public abstract void setDocument(Document var1);
  83.  
  84.    protected MenuBar menuBar() {
  85.       MenuBar var1 = new MenuBar();
  86.       CommandMenu var2 = new CommandMenu("File");
  87.       var2.add("New", (new CloseCommand(this)).setNext(new NewCommand(this)));
  88.       var2.add("Open...", (new CloseCommand(this)).setNext(new OpenCommand(this)));
  89.       var2.add("Save", new SaveCommand(this, false));
  90.       var2.add("Save As...", new SaveCommand(this, true));
  91.       ((Menu)var2).addSeparator();
  92.       var2.add("Quit", (new CloseCommand(this)).setNext(new QuitCommand()));
  93.       var1.add(var2);
  94.       return var1;
  95.    }
  96.  
  97.    public File showOpenFileDialog() {
  98.       return this.showFileDialog(this.openMessage(), 0, this.getFilenameFilter());
  99.    }
  100.  
  101.    public File showSaveFileDialog() {
  102.       return this.showFileDialog(this.saveMessage(), 1, this.getFilenameFilter());
  103.    }
  104.  
  105.    public File showFileDialog(String var1, int var2, FilenameFilter var3) {
  106.       FileDialog var4 = new FileDialog(this, var1, var2);
  107.       if (var3 != null) {
  108.          var4.setFilenameFilter(var3);
  109.       }
  110.  
  111.       ((Window)var4).show();
  112.       String var5 = var4.getDirectory();
  113.       String var6 = var4.getFile();
  114.       return var5 != null && var6 != null ? new File(var5, var6) : null;
  115.    }
  116.  
  117.    public Menu getMenu(String var1) {
  118.       MenuBar var2 = ((Frame)this).getMenuBar();
  119.  
  120.       for(int var3 = 0; var3 < var2.countMenus(); ++var3) {
  121.          Menu var4 = var2.getMenu(var3);
  122.          if (((MenuItem)var4).getLabel().equals(var1)) {
  123.             return var4;
  124.          }
  125.       }
  126.  
  127.       return null;
  128.    }
  129.  
  130.    public MenuItem getMenuItem(String var1, String var2) {
  131.       Menu var3 = this.getMenu(var1);
  132.       if (var3 != null) {
  133.          for(int var4 = 0; var4 < var3.countItems(); ++var4) {
  134.             MenuItem var5 = var3.getItem(var4);
  135.             if (var5.getLabel().equals(var2)) {
  136.                return var5;
  137.             }
  138.          }
  139.       }
  140.  
  141.       return null;
  142.    }
  143.  
  144.    public boolean enableMenuItem(String var1, String var2) {
  145.       MenuItem var3 = this.getMenuItem(var1, var2);
  146.       if (var3 != null) {
  147.          var3.enable();
  148.          return true;
  149.       } else {
  150.          return false;
  151.       }
  152.    }
  153.  
  154.    public boolean disableMenuItem(String var1, String var2) {
  155.       MenuItem var3 = this.getMenuItem(var1, var2);
  156.       if (var3 != null) {
  157.          var3.disable();
  158.          return true;
  159.       } else {
  160.          return false;
  161.       }
  162.    }
  163.  
  164.    protected String openMessage() {
  165.       return "Open File";
  166.    }
  167.  
  168.    protected String saveMessage() {
  169.       return "Save File";
  170.    }
  171.  
  172.    protected FilenameFilter getFilenameFilter() {
  173.       return null;
  174.    }
  175.  
  176.    protected String unsavedChangesMessage() {
  177.       return "You have unsaved changes.";
  178.    }
  179.  
  180.    protected String overwriteMessage() {
  181.       return "Overwrite existing file?";
  182.    }
  183. }
  184.