home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / app / DialogFactory.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  12.2 KB  |  356 lines

  1. package com.extensibility.app;
  2.  
  3. import com.extensibility.print.PageFormatDialog;
  4. import com.extensibility.rock.Platform;
  5. import com.extensibility.rock.Screen;
  6. import com.extensibility.util.ProgressDialog;
  7. import com.extensibility.util.ProgressTask;
  8. import com.extensibility.util.StringEnumeration;
  9. import com.extensibility.util.StringUtilities;
  10. import com.extensibility.xml.ParserException;
  11. import com.extensibility.xml.URI;
  12. import java.awt.Component;
  13. import java.awt.Dialog;
  14. import java.awt.FileDialog;
  15. import java.awt.Frame;
  16. import java.awt.Window;
  17. import java.io.ByteArrayOutputStream;
  18. import java.io.File;
  19. import java.io.PrintWriter;
  20. import java.util.Enumeration;
  21. import javax.swing.Icon;
  22. import javax.swing.JFrame;
  23. import javax.swing.UIManager;
  24.  
  25. public class DialogFactory {
  26.    protected static String fileDirectory = BaseApplication.getHomePath().getAbsolutePath();
  27.    private static DialogFactory instance = null;
  28.  
  29.    public static String askPrefix(Component var0) {
  30.       BasicDialog var1 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.prefix.title"), UIManager.getIcon("OptionPane.questionIcon"), "", new String[]{UI.getString("dialog.prefix.prompt")}, new String[]{""}, new String[]{UI.getString("dialog.prefix.prepend"), UI.getString("dialog.cancel")});
  31.       ((Dialog)var1).show();
  32.       return var1.getDismissalButton() != 0 ? null : var1.getField(0);
  33.    }
  34.  
  35.    public static String askFind(Component var0, String var1) {
  36.       BasicDialog var2 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.find.title"), UIManager.getIcon("OptionPane.questionIcon"), "", new String[]{UI.getString("dialog.find.prompt")}, new String[]{var1}, new String[]{UI.getString("dialog.find"), UI.getString("dialog.cancel")});
  37.       ((Dialog)var2).show();
  38.       return var2.getDismissalButton() == 0 && var2.getField(0).length() != 0 ? var2.getField(0) : null;
  39.    }
  40.  
  41.    public static String[] askReplace(Component var0, String var1, String var2) {
  42.       BasicDialog var3 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.replace.title"), UIManager.getIcon("OptionPane.questionIcon"), "", new String[]{UI.getString("dialog.find.prompt"), UI.getString("dialog.replace.prompt")}, new String[]{var1, var2}, new String[]{UI.getString("dialog.find"), UI.getString("dialog.cancel")});
  43.       ((Dialog)var3).show();
  44.       return var3.getDismissalButton() == 0 && var3.getField(0).length() != 0 ? new String[]{var3.getField(0), var3.getField(1)} : null;
  45.    }
  46.  
  47.    public static void showDebugException(Exception var0) {
  48.       if (BaseApplication.isDebug()) {
  49.          showException((Component)null, 0, var0, (String)null);
  50.       } else {
  51.          stop((Component)null, UI.getString("stop.debug.exception", ((Throwable)var0).toString()));
  52.       }
  53.  
  54.    }
  55.  
  56.    public static void showException(Component var0, int var1, Object var2) {
  57.       showException(var0, var1, var2, (String)null);
  58.    }
  59.  
  60.    public static void showException(Component var0, int var1, Object var2, String var3) {
  61.       String var4 = String.valueOf(String.valueOf(String.valueOf(var3 != null ? UI.getErrorSituation(var1, var3) : UI.getErrorSituation(var1)).concat(String.valueOf(System.getProperty("line.separator")))).concat(String.valueOf(System.getProperty("line.separator")))).concat(String.valueOf(var2 instanceof Exception ? UI.getExceptionName((Exception)var2) : var2.toString()));
  62.       if (!BaseApplication.isDebug()) {
  63.          stop(var0, var4);
  64.          Desktop.ensureWindow();
  65.       } else {
  66.          Frame var5 = Desktop.getDialogParent(var0);
  67.          if (var5 == null) {
  68.             var5 = new Frame();
  69.          }
  70.  
  71.          BasicDialog var6 = new BasicDialog(var5, UI.getString("dialog.exception.title"), UIManager.getIcon("OptionPane.errorIcon"), var4, new String[0], new String[0], new String[]{UI.getString("dialog.exit"), UI.getString("dialog.continue"), var2 instanceof Throwable ? UI.getString("dialog.exception.trace") : null});
  72.          ((Dialog)var6).show();
  73.          if (var6.getDismissalButton() == 0) {
  74.             System.exit(0);
  75.          } else if (var6.getDismissalButton() == 2) {
  76.             ByteArrayOutputStream var7 = new ByteArrayOutputStream();
  77.             PrintWriter var8 = new PrintWriter(var7);
  78.             ((Throwable)var2).printStackTrace(var8);
  79.             var8.flush();
  80.             var8.close();
  81.             String var9 = var7.toString();
  82.             showException(var0, var1, var9, var3);
  83.          }
  84.  
  85.          if (var2 instanceof Throwable) {
  86.             ((Throwable)var2).printStackTrace();
  87.          }
  88.  
  89.          if (var2 instanceof ParserException) {
  90.             ((ParserException)var2).setBeenReported(true);
  91.          }
  92.  
  93.          if (var5 != Desktop.getDialogParent(var0)) {
  94.             var5.dispose();
  95.          }
  96.  
  97.          Desktop.ensureWindow();
  98.       }
  99.    }
  100.  
  101.    public static boolean showValidation(Component var0, String var1) {
  102.       return showValidation(var0, var1, true);
  103.    }
  104.  
  105.    public static boolean showValidation(Component var0, String var1, boolean var2) {
  106.       BasicDialog var3 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("validation.title"), UIManager.getIcon("OptionPane.errorIcon"), String.valueOf(String.valueOf(String.valueOf(var1).concat(String.valueOf(System.getProperty("line.separator")))).concat(String.valueOf(System.getProperty("line.separator")))).concat(String.valueOf(UI.getString("validation.post.prompt"))), new String[0], new String[0], new String[]{UI.getString("validation.ok"), var2 ? UI.getString("validation.revert") : null});
  107.       ((Dialog)var3).show();
  108.       return var3.getDismissalButton() == 0;
  109.    }
  110.  
  111.    public static void note(Component var0, String var1) {
  112.       BasicDialog var2 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.title.note"), UIManager.getIcon("OptionPane.informationIcon"), var1, new String[0], new String[0], new String[]{UI.getString("dialog.ok")});
  113.       ((Dialog)var2).show();
  114.    }
  115.  
  116.    public static void caution(Component var0, String var1) {
  117.       BasicDialog var2 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.title.caution"), UIManager.getIcon("OptionPane.cautionIcon"), var1, new String[0], new String[0], new String[]{UI.getString("dialog.ok")});
  118.       ((Dialog)var2).show();
  119.    }
  120.  
  121.    public static void stop(Component var0, String var1) {
  122.       BasicDialog var2 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.title.stop"), UIManager.getIcon("OptionPane.errorIcon"), var1, new String[0], new String[0], new String[]{UI.getString("dialog.ok")});
  123.       ((Dialog)var2).show();
  124.    }
  125.  
  126.    public static void showPurchase(Component var0) {
  127.       BasicDialog var1 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.purchase.title"), UI.getIcon("ity32.gif"), UI.getString("dialog.purchase.msg"), new String[0], new String[0], new String[]{UI.getString("dialog.ok")});
  128.       ((Dialog)var1).show();
  129.    }
  130.  
  131.    public static boolean showConfirm(Component var0, String var1, String var2) {
  132.       BasicDialog var3 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.confirm.title"), UIManager.getIcon("OptionPane.questionIcon"), var1, new String[0], new String[0], new String[]{var2, UI.getString("dialog.cancel")});
  133.       ((Dialog)var3).show();
  134.       return var3.getDismissalButton() == 0;
  135.    }
  136.  
  137.    public static int saveChanges(Component var0, String[] var1) {
  138.       String var2 = System.getProperty("line.separator");
  139.       String var3 = "    ";
  140.       String var4 = StringUtilities.concat(new StringEnumeration(var1), String.valueOf(String.valueOf(var2).concat(String.valueOf(var2))).concat(String.valueOf(var3)), String.valueOf(var2).concat(String.valueOf(var3)), String.valueOf(var2).concat(String.valueOf(var2)));
  141.       BasicDialog var5 = new BasicDialog(Desktop.getDialogParent(var0), UI.getString("dialog.save.title"), UIManager.getIcon("OptionPane.questionIcon"), var1.length == 1 ? UI.getString("dialog.save.msg", var1[0]) : UI.getString("dialog.save.many.msg", var4), new String[0], new String[0], new String[]{UI.getString("save.ok"), UI.getString("save.no"), UI.getString("dialog.cancel")});
  142.       ((Dialog)var5).show();
  143.       if (var5.getDismissalButton() == 0) {
  144.          return 0;
  145.       } else {
  146.          return var5.getDismissalButton() == 1 ? 1 : 2;
  147.       }
  148.    }
  149.  
  150.    public static File askFile(Component var0, String var1) {
  151.       return askFile(var0, (String)null, var1 == null ? null : new String[]{var1});
  152.    }
  153.  
  154.    public static File askFile(Component var0, String var1, String[] var2) {
  155.       return getInstance().doAskFile(var0, var1, var2, (String)null);
  156.    }
  157.  
  158.    public static File askFile(Component var0, String var1, String[] var2, String var3) {
  159.       return getInstance().doAskFile(var0, var1, var2, var3);
  160.    }
  161.  
  162.    protected File doAskFile(Component var1, String var2, String[] var3, String var4) {
  163.       FileDialog var5;
  164.       if (var3 == null) {
  165.          var5 = createOpenDialog(Desktop.getDialogParent(var1));
  166.       } else {
  167.          var5 = createOpenDialog(Desktop.getDialogParent(var1), var3[0]);
  168.       }
  169.  
  170.       if (var4 != null) {
  171.          var5.setDirectory(var4);
  172.       }
  173.  
  174.       if (var2 != null) {
  175.          ((Dialog)var5).setTitle(var2);
  176.       }
  177.  
  178.       ((Component)var5).setVisible(true);
  179.       if (var5.getDirectory() != null && var5.getFile() != null) {
  180.          updateOpenDialog(var5);
  181.          return new File(var5.getDirectory(), var5.getFile());
  182.       } else {
  183.          return null;
  184.       }
  185.    }
  186.  
  187.    public static String askName(Component var0, String var1, String var2, String var3, Enumeration var4) {
  188.       BasicDialog var5 = new BasicDialog(Desktop.getDialogParent(var0), var1, UIManager.getIcon("OptionPane.questionIcon"), "", new String[]{var2}, new String[]{var3}, new String[]{UI.getString("dialog.ok"), UI.getString("dialog.cancel")});
  189.       if (var4 != null) {
  190.          var5.setAutoComplete(0, var4);
  191.       }
  192.  
  193.       ((Dialog)var5).show();
  194.       return var5.getDismissalButton() == 0 ? var5.getField(0) : null;
  195.    }
  196.  
  197.    public static String askString(Component var0, String var1, String var2) {
  198.       String var3 = UI.getString(String.valueOf("dialog.").concat(String.valueOf(var1)));
  199.       String var4 = UI.getString(String.valueOf(String.valueOf("dialog.").concat(String.valueOf(var1))).concat(String.valueOf(".title")));
  200.       BasicDialog var5 = new BasicDialog(Desktop.getDialogParent(var0), var4, UIManager.getIcon("OptionPane.questionIcon"), "", new String[]{var3}, new String[]{var2}, new String[]{UI.getString("dialog.ok"), UI.getString("dialog.cancel")});
  201.       ((Dialog)var5).show();
  202.       return var5.getDismissalButton() == 0 ? var5.getField(0) : null;
  203.    }
  204.  
  205.    public static int askInt(Component var0, String var1, String var2, boolean var3) {
  206.       String var5 = UI.getString(String.valueOf("dialog.").concat(String.valueOf(var1)));
  207.       String var6 = UI.getString(String.valueOf(String.valueOf("dialog.").concat(String.valueOf(var1))).concat(String.valueOf(".title")));
  208.       1 var7 = new 1(var3, Desktop.getDialogParent(var0), var6, UIManager.getIcon("OptionPane.questionIcon"), "", new String[]{var5}, new String[]{var2}, new String[]{UI.getString("dialog.ok"), UI.getString("dialog.cancel")});
  209.       ((Dialog)var7).show();
  210.       return ((BasicDialog)var7).getDismissalButton() == 0 ? Integer.parseInt(((BasicDialog)var7).getField(0)) : -1;
  211.    }
  212.  
  213.    public static File askNewFile(Component var0, String[] var1, String var2) {
  214.       return getInstance().doAskNewFile(var0, (String[])var1, var2, (String)null);
  215.    }
  216.  
  217.    public static File askNewFile(Component var0, String[] var1, String var2, String var3) {
  218.       return getInstance().doAskNewFile(var0, var1, var2, var3);
  219.    }
  220.  
  221.    protected File doAskNewFile(Component var1, String[] var2, String var3, String var4) {
  222.       String var5;
  223.       if (var2 == null) {
  224.          var5 = BaseApplication.getPreferences().getDefaultFileType();
  225.       } else if (var2.length == 1) {
  226.          var5 = var2[0];
  227.       } else {
  228.          var5 = SaveTypeDialog.chooseFileType((JFrame)Desktop.getDialogParent(var1), var2);
  229.          if (var5 == null) {
  230.             return null;
  231.          }
  232.       }
  233.  
  234.       return this.doAskNewFile(var1, var5, var3, var4);
  235.    }
  236.  
  237.    public static File askNewFile(Component var0, String var1, String var2) {
  238.       return getInstance().doAskNewFile(var0, (String)var1, var2, (String)null);
  239.    }
  240.  
  241.    protected File doAskNewFile(Component var1, String var2, String var3, String var4) {
  242.       FileDialog var6 = createSaveDialog(var2, var3);
  243.       if (var4 != null) {
  244.          var6.setDirectory(var4);
  245.       }
  246.  
  247.       ((Component)var6).setVisible(true);
  248.       if (var6.getFile() == null) {
  249.          return null;
  250.       } else {
  251.          updateSaveDialog(var6);
  252.          File var5 = new File(var6.getDirectory(), var6.getFile());
  253.          if (var5.exists()) {
  254.             var5.delete();
  255.          }
  256.  
  257.          return var5;
  258.       }
  259.    }
  260.  
  261.    public static PageFormatDialog askPageSetup(Component var0) {
  262.       PageFormatDialog var1 = createPageFormatDialog(Desktop.getDialogParent(var0));
  263.       ((Component)var1).setVisible(true);
  264.       return var1;
  265.    }
  266.  
  267.    public static URI saveURI(Component var0, URI var1, String[] var2) {
  268.       SaveURIDialog var3 = new SaveURIDialog(Desktop.getDialogParent(var0), var1);
  269.       var3.show();
  270.       return var3.getURI();
  271.    }
  272.  
  273.    public static URI openURI(Component var0, URI var1, String[] var2) {
  274.       OpenURIDialog var3 = new OpenURIDialog(Desktop.getDialogParent(var0), var1, var2);
  275.       ((SaveURIDialog)var3).show();
  276.       return var3.uri;
  277.    }
  278.  
  279.    public static URI openURI(Component var0, URI var1, String[] var2, String var3) {
  280.       OpenURIDialog var4 = new OpenURIDialog(Desktop.getDialogParent(var0), var1, var2, var3);
  281.       ((SaveURIDialog)var4).show();
  282.       return var4.uri;
  283.    }
  284.  
  285.    public static URI askURI(Component var0, URI var1, String[] var2, String var3, String var4) {
  286.       OpenURIDialog var5 = new OpenURIDialog(Desktop.getDialogParent(var0), var1, var2);
  287.       ((SaveURIDialog)var5).setPrompt(var4);
  288.       ((SaveURIDialog)var5).setDefault(var3);
  289.       ((SaveURIDialog)var5).show();
  290.       return var5.uri;
  291.    }
  292.  
  293.    public static void setFileDirectory(String var0) {
  294.       fileDirectory = var0;
  295.    }
  296.  
  297.    protected static FileDialog createOpenDialog(Frame var0) {
  298.       FileDialog var1 = new FileDialog(var0);
  299.       var1.setDirectory(fileDirectory);
  300.       var1.setMode(0);
  301.       Screen.centerInScreen(var1);
  302.       return var1;
  303.    }
  304.  
  305.    protected static FileDialog createOpenDialog(Frame var0, String var1) {
  306.       FileDialog var2 = createOpenDialog(Desktop.getWelcome());
  307.       ((Dialog)var2).setTitle(UI.getString(String.valueOf(var1).concat(String.valueOf(".openDialog.title"))));
  308.       Screen.centerInScreen(var2);
  309.       return var2;
  310.    }
  311.  
  312.    protected static FileDialog createSaveDialog(String var0, String var1) {
  313.       FileDialog var2 = new FileDialog(Desktop.getWelcome());
  314.       var2.setDirectory(fileDirectory);
  315.       var2.setMode(1);
  316.       if (var1 == null) {
  317.          var1 = UI.getString("dialog.open.title", UI.getFileTypeName(var0));
  318.       }
  319.  
  320.       ((Dialog)var2).setTitle(var1);
  321.       Screen.centerInScreen(var2);
  322.       return var2;
  323.    }
  324.  
  325.    protected static PageFormatDialog createPageFormatDialog(Frame var0) {
  326.       PageFormatDialog var1 = new PageFormatDialog(var0);
  327.       Screen.centerInScreen(var1);
  328.       return var1;
  329.    }
  330.  
  331.    protected static void updateOpenDialog(FileDialog var0) {
  332.       fileDirectory = var0.getDirectory();
  333.       ((Window)var0).dispose();
  334.    }
  335.  
  336.    protected static void updateSaveDialog(FileDialog var0) {
  337.       fileDirectory = var0.getDirectory();
  338.       ((Window)var0).dispose();
  339.    }
  340.  
  341.    public static ProgressDialog createProgressDialog(ProgressTask var0, Icon var1, String var2, int var3) {
  342.       ProgressDialog var4 = new ProgressDialog(var0, var1, var2, var3);
  343.       Screen.centerInScreen(var4);
  344.       ((Frame)var4).setIconImage(UI.getImage("ity.gif"));
  345.       return var4;
  346.    }
  347.  
  348.    private static DialogFactory getInstance() {
  349.       if (instance == null) {
  350.          instance = Platform.makeDialogFactory();
  351.       }
  352.  
  353.       return instance;
  354.    }
  355. }
  356.