samer@0: /* samer@0: * Dialog.java samer@0: * samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.core.util.heavy; samer@0: import samer.core.*; samer@0: import java.awt.*; samer@0: import java.awt.event.*; samer@0: samer@0: public class Dialog extends java.awt.Dialog implements ActionListener, Shell.Dialog samer@0: { samer@0: String result; samer@0: Container panel; samer@0: Panel buttons; samer@0: samer@0: public Dialog( java.awt.Frame owner, String nm, boolean modal) samer@0: { samer@0: super(owner,nm,modal); samer@0: samer@0: panel = new JPanel(Border.create(Border.NONE)); samer@0: panel.setLayout(new GridLayout(0,1)); samer@0: buttons=new Panel(); // JPanel(Border.create(Border.NONE)); samer@0: buttons.setLayout( new FlowLayout(FlowLayout.RIGHT,6,2)); samer@0: samer@0: setFont(X.font(Shell.datum("dialog.font"),null)); samer@0: setLayout( new BorderLayout()); samer@0: add( panel, "Center"); samer@0: add( buttons, "South"); samer@0: addWindowListener( new WindowAdapter() { samer@0: public void windowClosing(WindowEvent e) { samer@0: result = "close"; samer@0: setVisible(false); samer@0: } samer@0: } ); samer@0: } samer@0: samer@0: protected void finalize() { Shell.trace("Dialog finalizing"); } samer@0: samer@0: public void actionPerformed(ActionEvent e) samer@0: { samer@0: result=e.getActionCommand(); samer@0: setVisible(false); samer@0: samer@0: //String cmd=e.getActionCommand(); samer@0: //if (cmd=="ok") { result=cmd; setVisible(false); } samer@0: //else if (cmd=="cancel") { result=cmd; setVisible(false); } samer@0: } samer@0: samer@0: public Container container() { return panel; } samer@0: public String result() { return result; } samer@0: public void expose() { pack(); centre(); setVisible(true); toFront(); } samer@0: samer@0: public void centre() samer@0: { samer@0: Dimension d=getSize(); samer@0: setLocation( (SX-d.width)/2, (SY-d.height)/2); samer@0: } samer@0: samer@0: public void addAction(String label) samer@0: { samer@0: Button btn=new Button(label); samer@0: btn.addActionListener(this); samer@0: buttons.add(btn); samer@0: } samer@0: samer@0: private static int SX, SY; // screen width and height samer@0: static { samer@0: Dimension s=Toolkit.getDefaultToolkit().getScreenSize(); samer@0: SX=s.width; samer@0: SY=s.height; samer@0: } samer@0: } samer@0: