Back to index

wims  3.65+svn20090927
MainPanelError.java
Go to the documentation of this file.
00001 /*
00002 $Id: MainPanelError.java,v 1.3 2003/02/18 11:48:46 sander Exp $
00003 */
00004 
00005 
00006 /*
00007 Copyright (C) 2001-2002 Mainline Project (I3S - ESSI - CNRS -UNSA)
00008 
00009 This library is free software; you can redistribute it and/or
00010 modify it under the terms of the GNU Lesser General Public
00011 License as published by the Free Software Foundation; either
00012 version 2.1 of the License, or (at your option) any later version.
00013 
00014 This library is distributed in the hope that it will be useful,
00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017 Lesser General Public License for more details.
00018 
00019 You should have received a copy of the GNU Lesser General Public
00020 License along with this library; if not, write to the Free Software
00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00022 
00023 For further information on the GNU Lesser General Public License,
00024 see: http://www.gnu.org/copyleft/lesser.html
00025 For further information on this library, contact: mainline@essi.fr
00026 */
00027 
00028 
00029 package fr.ove.errordialog;
00030 
00031 import java.awt.*;
00032 import java.awt.event.*;
00033 import fr.ove.errordialog.*;
00034 //import fr.ove.utils.PanelImage;
00035 
00045 public class MainPanelError extends Panel {
00046        Panel panelError;
00047        
00048        Panel panelErrorName;
00049        PanelImage smileyL, smileyR;
00050        Label labelErrorName;
00051        
00052        Panel panelErrorMesgs;
00053        Label labelMesg1;
00054        Label labelMesg2;
00055        Label labelMesg3;
00056        
00057        Panel panelButton;
00058        Button buttonCloseWindow;
00059        Button buttonDetails;
00060        
00061        TextArea details;
00062        
00063        Window window;
00064     
00068        public MainPanelError (Window theWindow, String errorMessage)  {
00069            window = theWindow;
00070            
00071            Font commonFont = new Font("Dialog", Font.PLAIN, 14);
00072            
00073            // Le panel qui contient tout ce qui est information de l'erreur (le nom, les messages, ...)
00074               setLayout(new BorderLayout(0,0));
00075               panelError = new Panel();
00076               panelError.setLayout(new BorderLayout(0,0));
00077               add("North", panelError);
00078               
00079               // Le panel qui contient le nom de l'erreur (avec le smiley)
00080               panelErrorName = new Panel();
00081               panelErrorName.setLayout(new BorderLayout(0,0));
00082               panelErrorName.setBackground(Color.white);
00083               panelError.add("North", panelErrorName);
00084               
00085               try {
00086                   // Comme PanelImage est dans un autre package que le courant il faut que l'on donne
00087                   // le chemin de l'image à charger relativement au package de PanelImage.
00088                   // Donc :
00089                   //      PanelImage est dans le package fr.ove.utils
00090                   //      L'instance dans le package fr.ove.errordialog, répertoire ou se trouve smiley.gif
00091                   //      D'où le chemin ../errordialog/smiley.gif
00092               //smileyL = new PanelImage("../errordialog/smiley.gif");
00093               
00094               // Bon on verra cette histoire si on refait passer PanelImage dans fr.ove.utils et l'image
00095               // ailleurs
00096               
00097               smileyL = new PanelImage("smiley.gif");
00098               panelErrorName.add("West", smileyL);
00099        }
00100        catch(Exception e) {
00101            e.printStackTrace();
00102        }
00103               
00104               labelErrorName = new Label(errorMessage, Label.CENTER);
00105               labelErrorName.setFont(new Font("Dialog", Font.PLAIN, 20));
00106               panelErrorName.add("Center", labelErrorName);
00107               
00108               try {
00109               //smileyR = new PanelImage("../errordialog/smiley.gif");
00110               smileyR = new PanelImage("smiley.gif");
00111               panelErrorName.add("East", smileyR);
00112        }
00113        catch(Exception e) {
00114            e.printStackTrace();
00115        }
00116 
00117               // Le panel qui contient tous les messages et boutons de commande
00118               panelErrorMesgs = new Panel();
00119               panelErrorMesgs.setLayout(new GridLayout(4,1,0,0));
00120               panelError.add("Center", panelErrorMesgs);
00121               
00122               // Un message d'erreur
00123               labelMesg1 = new Label("",Label.CENTER);
00124               labelMesg1.setFont(commonFont);
00125               panelErrorMesgs.add(labelMesg1);
00126               
00127               // Un autre message d'erreur
00128               labelMesg2 = new Label("",Label.CENTER);
00129               labelMesg2.setFont(commonFont);
00130               panelErrorMesgs.add(labelMesg2);
00131               
00132               // Et le dernier
00133               labelMesg3 = new Label("",Label.CENTER);
00134               labelMesg3.setFont(commonFont);
00135               panelErrorMesgs.add(labelMesg3);
00136               
00137               // Le panel qui contient les boutons de commande
00138               panelButton = new Panel();
00139               panelButton.setLayout(new FlowLayout(FlowLayout.CENTER,80,5));
00140               panelErrorMesgs.add(panelButton);
00141 
00142               // On ferme la la fenêtre qui contient notre instance
00143               buttonCloseWindow = new Button();
00144               buttonCloseWindow.setLabel("Close Window");
00145               buttonCloseWindow.setFont(commonFont);
00146               panelButton.add(buttonCloseWindow);
00147               
00148               // On montre ou cache les détails
00149               buttonDetails = new Button();
00150               buttonDetails.setLabel("Show Details >>");
00151               buttonDetails.setFont(commonFont);
00152               panelButton.add(buttonDetails);
00153               
00154               // Les éventuels détails de l'erreur
00155               details = new TextArea();
00156               //add("Center", details);
00157         
00158         // La gestion des actions
00159         
00160         // On affiche ou on cache les détails de l'erreur
00161         buttonDetails.addActionListener(
00162             new ActionListener() {
00163                 public void actionPerformed(ActionEvent event) {
00164                     Button button = (Button) event.getSource();
00165                     String label = button.getLabel();
00166                     Dimension size = window.getSize();
00167                     
00168                     if (label.equals("Show Details >>")) {
00169                         button.setLabel("Hide Details <<");
00170                         MainPanelError.this.add("Center", details);
00171                         size.height += 250;
00172                     }
00173                     else {
00174                         button.setLabel("Show Details >>");
00175                         MainPanelError.this.remove(details);
00176                         size.height -= 250;
00177                     }
00178                     
00179                     window.setSize(size);
00180                     window.validate();
00181                 }
00182             }
00183         );
00184         
00185         // On ferme le fenêtre d'erreur
00186         buttonCloseWindow.addActionListener(
00187             new ActionListener() {
00188                 public void actionPerformed(ActionEvent event) {
00189                     window.setVisible(false);
00190                 }
00191             }
00192         );
00193     }
00194     
00199     public void setMesg1(String mesg) {
00200         labelMesg1.setText(mesg);
00201     }
00202     
00207     public void setMesg2(String mesg) {
00208         labelMesg2.setText(mesg);
00209     }
00210     
00215     public void setMesg3(String mesg) {
00216         labelMesg3.setText(mesg);
00217     }
00218     
00223     public void setDetails(String theDetails) {
00224         details.setText(theDetails);
00225     }
00226 }
00227