View Javadoc

1   package uk.ac.roe.antigen.dialogs;
2   
3   import java.awt.BorderLayout;
4   import java.awt.Dimension;
5   import java.awt.Toolkit;
6   import java.awt.event.ActionEvent;
7   import java.awt.event.ActionListener;
8   import java.awt.event.WindowAdapter;
9   import java.awt.event.WindowEvent;
10  import java.util.logging.Level;
11  import java.util.logging.Logger;
12  
13  import javax.swing.BorderFactory;
14  import javax.swing.ImageIcon;
15  import javax.swing.JButton;
16  import javax.swing.JPanel;
17  import javax.swing.JTextArea;
18  import javax.swing.border.BevelBorder;
19  import javax.swing.border.TitledBorder;
20  
21  import uk.ac.roe.antigen.utils.Config;
22  
23  public class AbortDialog extends javax.swing.JDialog {
24      /***
25       * Logger for this class
26       */
27      private static final Logger logger = Logger.getLogger(AbortDialog.class.getName());
28  
29  	private JPanel jPanel1;
30  	private JTextArea errorMessageLabel;
31  	private JButton okBtn;
32  	private String message="Large red error message";
33  
34  	/***
35  	* Auto-generated main method to display this JDialog
36  	*/
37  	public static void main(String[] args) {
38          if (logger.isLoggable(Level.FINER)) {
39              logger.finer("start");
40          }
41  
42  		BuildLoggerFrame frame = new BuildLoggerFrame();
43  		AbortDialog inst = new AbortDialog(frame,"Something went wrong!");
44  		BorderLayout instLayout = new BorderLayout();
45  		inst.getContentPane().setLayout(instLayout);
46  		inst.setVisible(true);
47  
48          if (logger.isLoggable(Level.FINER)) {
49              logger.finer("end");
50          }
51  	}
52  	
53  	public AbortDialog(BuildLoggerFrame frame, String message) {
54  		super(frame);
55          if (logger.isLoggable(Level.FINER)) {
56              logger.finer("start");
57          }
58  
59          this.frame=frame;
60          this.message=message;
61          
62  		initGUI();
63  
64          if (logger.isLoggable(Level.FINER)) {
65              logger.finer("end");
66          }
67  	}
68  	
69      private BuildLoggerFrame frame;
70      
71  	private void initGUI() {
72          if (logger.isLoggable(Level.FINER)) {
73              logger.finer("start");
74          }
75  
76  		try {
77  			setSize(400, 250);
78  
79              this.addWindowListener(new WindowAdapter() {
80                  public void windowClosing(WindowEvent arg0) {
81                   frame.shutDown();
82                  }
83              });
84  			{
85  				jPanel1 = new JPanel();
86  				this.getContentPane().add(jPanel1, BorderLayout.SOUTH);
87  				{
88  					okBtn = new JButton();
89  					jPanel1.add(okBtn);
90  					okBtn.setText("OK");
91  					okBtn.setBounds(175, 235, 60, 30);
92  					okBtn.setIcon(new ImageIcon(getClass().getClassLoader().getResource("img/stop.png")));
93  
94                      okBtn.addActionListener(new ActionListener() {
95                              public void actionPerformed(ActionEvent evt) {
96                                  setVisible(false);
97                                  frame.shutDown();
98                              }
99                          });
100 				}
101 			}
102 			{
103 				errorMessageLabel = new JTextArea();
104 				this.getContentPane().add(errorMessageLabel, BorderLayout.CENTER);
105 				errorMessageLabel.setFont(new java.awt.Font("Dialog",0,14));
106 				errorMessageLabel.setForeground(new java.awt.Color(255,0,0));
107 				String borderTitle = Config.getProperty("antigen.dialog.bordertitle","antigen");
108                 errorMessageLabel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(BevelBorder.RAISED, null, null), borderTitle, TitledBorder.LEADING, TitledBorder.TOP, new java.awt.Font("Eurostile",0,12), new java.awt.Color(0,0,255)));
109                 errorMessageLabel.setLineWrap(true);
110                 errorMessageLabel.setWrapStyleWord(true);
111                 errorMessageLabel.setText(message);
112 			}
113 		} catch (Exception e) {
114             logger.warning("exception: " + e);
115 
116 			e.printStackTrace();
117 		}
118         this.setLocation(getDialogLocation().width, getDialogLocation().height);
119 
120         if (logger.isLoggable(Level.FINER)) {
121             logger.finer("end");
122         }
123     }
124 
125 
126     /***
127      * Calculates the desired location of the dialog on the screen. By default
128      * it is in the center of the screen.
129      * 
130      * @return the desired location of the dialog on the screen
131      */
132     private Dimension getDialogLocation() {
133         if (logger.isLoggable(Level.FINER)) {
134             logger.finer("start");
135         }
136 
137         Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
138         Dimension dlgInputDim = this.getSize();
139         int dlgInputX = (int) ((screenDim.getWidth() - dlgInputDim.getWidth()) / 2);
140         int dlgInputY = (int) ((screenDim.getHeight() - dlgInputDim.getHeight()) / 2);
141 
142         if (logger.isLoggable(Level.FINER)) {
143             logger.finer("end");
144         }
145         return new Dimension(dlgInputX, dlgInputY);
146     }
147 }