191 lines
6.6 KiB
Java
191 lines
6.6 KiB
Java
package com.tarisan.chipcard.tpvvs.webservicetrayicon;
|
|
|
|
|
|
import javax.swing.JDialog;
|
|
|
|
import com.tarisan.chipcard.gui.*;
|
|
|
|
import javax.swing.*;
|
|
import java.util.*;
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
|
|
/**
|
|
* @author jjrider
|
|
*
|
|
* To change the template for this generated type comment go to
|
|
* Window>Preferences>Java>Code Generation>Code and Comments
|
|
*/
|
|
public class AutomaticCloseDialog extends JDialog implements ActionListener,Runnable {
|
|
|
|
private int intNumeroSegundos=5;
|
|
private Thread objThread=null;
|
|
private Window objWindow=this;
|
|
private ActionListener externActionListener=null;
|
|
private int intTypeOfMessage=-1;
|
|
JPanel pnl=new JPanel();
|
|
|
|
public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos){
|
|
this(strTitle,strMensaje,intNumeroSegundos,null);
|
|
}
|
|
|
|
public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame){
|
|
this(strTitle,strMensaje,intNumeroSegundos,parentFrame,JOptionPane.INFORMATION_MESSAGE);
|
|
}
|
|
|
|
public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage){
|
|
this(strTitle,strMensaje,intNumeroSegundos,parentFrame,intTypeOfMessage,true);
|
|
}
|
|
|
|
public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage,ActionListener listener){
|
|
this(strTitle,strMensaje,intNumeroSegundos,parentFrame,intTypeOfMessage,true,listener);
|
|
}
|
|
|
|
public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage, boolean blnModal){
|
|
this(strTitle, strMensaje, intNumeroSegundos, parentFrame, intTypeOfMessage, blnModal,null);
|
|
}
|
|
|
|
public AutomaticCloseDialog(String strTitle,String strMensaje,int intNumeroSegundos,JFrame parentFrame, int intTypeOfMessage, boolean blnModal,ActionListener listener){
|
|
super(parentFrame);
|
|
setUndecorated(false);
|
|
this.setModal(true);
|
|
this.intNumeroSegundos=intNumeroSegundos;
|
|
this.intTypeOfMessage=intTypeOfMessage;
|
|
setTitle(strTitle);
|
|
|
|
setContentPane(pnl);
|
|
getContentPane().setLayout(new GridBagLayout());
|
|
int columna=0;
|
|
int fila=0;
|
|
externActionListener=listener;
|
|
|
|
//getContentPane().setLayout(new BorderLayout());
|
|
JPanel panel=new JPanel();
|
|
panel.setLayout(new BorderLayout());
|
|
//Un tamaño por defecto...
|
|
setSize(300,200);
|
|
|
|
|
|
JLabel label=null;
|
|
Icon icon=getIconForType(intTypeOfMessage);
|
|
if(icon!=null){
|
|
label=new JLabel(icon);
|
|
label.setBounds(10,40,20,20);
|
|
getContentPane().add(label, new java.awt.GridBagConstraints(columna,fila,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.NONE,new Insets(10,10,10,10),0,0));
|
|
columna++;
|
|
}
|
|
JPanel panelLabels=new JPanel();
|
|
panelLabels.setLayout(new GridBagLayout());
|
|
StringTokenizer st=new StringTokenizer(strMensaje,"\n");
|
|
int intNumLabels=0;
|
|
while(st.hasMoreTokens()) {
|
|
intNumLabels++;
|
|
label=new JLabel(st.nextToken());
|
|
panelLabels.add(label, new java.awt.GridBagConstraints(0,intNumLabels,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.NONE,new Insets(00,00,00,00),0,0));
|
|
}
|
|
|
|
//label.setBounds(40,40,300,20);
|
|
//panel.add(label,BorderLayout.CENTER);
|
|
getContentPane().add(panelLabels, new java.awt.GridBagConstraints(columna,fila,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.HORIZONTAL,new Insets(10,10,10,10),0,0));
|
|
columna=0;
|
|
fila++;
|
|
|
|
/*panelTemp=new JPanel();
|
|
getContentPane().add(panelTemp, new java.awt.GridBagConstraints(columna,fila,1,1,1.0,1.0,java.awt.GridBagConstraints.WEST,java.awt.GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
|
|
fila++;*/
|
|
String strOKText="Aceptar";
|
|
if(intTypeOfMessage==JOptionPane.QUESTION_MESSAGE)
|
|
strOKText="Si";
|
|
JButton btnAceptar=new JButton(strOKText);
|
|
btnAceptar.setActionCommand("Aceptar");
|
|
btnAceptar.addActionListener(this);
|
|
btnAceptar.setPreferredSize(new Dimension(90,20));
|
|
btnAceptar.setMaximumSize(new Dimension(90,20));
|
|
if(externActionListener==null){
|
|
getContentPane().add(btnAceptar, new java.awt.GridBagConstraints(columna,fila,2,1,1.0,1.0,java.awt.GridBagConstraints.CENTER,java.awt.GridBagConstraints.NONE,new Insets(10,0,10,0),0,0));
|
|
}else{
|
|
JPanel panelButtons=new JPanel();
|
|
panelButtons.setLayout(new FlowLayout());
|
|
panelButtons.add(btnAceptar);
|
|
String strCancelText="Cancelar";
|
|
if(intTypeOfMessage==JOptionPane.QUESTION_MESSAGE)
|
|
strCancelText="No";
|
|
JButton btnCancelar=new JButton(strCancelText);
|
|
btnCancelar.setActionCommand("Cancelar");
|
|
btnCancelar.addActionListener(this);
|
|
btnCancelar.setPreferredSize(new Dimension(90,20));
|
|
btnCancelar.setMaximumSize(new Dimension(90,20));
|
|
panelButtons.add(btnCancelar);
|
|
getContentPane().add(panelButtons, new java.awt.GridBagConstraints(columna,fila,2,1,1.0,1.0,java.awt.GridBagConstraints.CENTER,java.awt.GridBagConstraints.NONE,new Insets(10,0,10,0),0,0));
|
|
if(this.intNumeroSegundos<30)
|
|
this.intNumeroSegundos=30;
|
|
}
|
|
|
|
|
|
validate();
|
|
pack();
|
|
centerOn(objWindow,parentFrame);
|
|
if(this.intNumeroSegundos>0){
|
|
objThread=new Thread(this);
|
|
objThread.start();
|
|
}
|
|
objWindow.show();
|
|
objWindow.requestFocus();
|
|
objWindow.toFront();
|
|
}
|
|
|
|
public void actionPerformed(ActionEvent e){
|
|
objWindow.hide();
|
|
try{objThread.stop();}catch(Exception err){}
|
|
if(externActionListener!=null){
|
|
externActionListener.actionPerformed(e);
|
|
}
|
|
|
|
}
|
|
|
|
public static void centerOn(Window dialog,JFrame frame){
|
|
if(dialog==null)
|
|
return;
|
|
Dimension dimFrame=null;
|
|
if(frame==null)
|
|
UtilGUI.centerOnScreen(dialog);
|
|
else
|
|
UtilGUI.centerOnWindow(dialog,frame);
|
|
}
|
|
|
|
public void run(){
|
|
if(intNumeroSegundos>0){
|
|
try{
|
|
while(!objWindow.isShowing()){
|
|
objThread.sleep(100);
|
|
}
|
|
for(int i=0;i<intNumeroSegundos;i++)
|
|
objThread.sleep(1000);
|
|
}catch(Exception err){
|
|
}
|
|
objWindow.hide();
|
|
}
|
|
|
|
}
|
|
|
|
public static Icon getIconForType(int iconType) {
|
|
try{
|
|
switch (iconType) {
|
|
case JOptionPane.ERROR_MESSAGE:
|
|
return UIManager.getIcon("OptionPane.errorIcon");
|
|
case JOptionPane.INFORMATION_MESSAGE:
|
|
return UIManager.getIcon("OptionPane.informationIcon");
|
|
case JOptionPane.WARNING_MESSAGE:
|
|
return UIManager.getIcon("OptionPane.warningIcon");
|
|
case JOptionPane.QUESTION_MESSAGE:
|
|
return UIManager.getIcon("OptionPane.questionIcon");
|
|
}
|
|
}catch(Exception err){}
|
|
return null;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|