diff src/samer/core_/util/heavy/Dialog.java @ 0:bf79fb79ee13

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