forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							189 lines
						
					
					
						
							4.2 KiB
						
					
					
				
			
		
		
	
	
							189 lines
						
					
					
						
							4.2 KiB
						
					
					
				/*
 | 
						|
 * UpdateWindow.java
 | 
						|
 *
 | 
						|
 * Created on 26 de Setembro de 2006, 11:54
 | 
						|
 *
 | 
						|
 * To change this template, choose Tools | Template Manager
 | 
						|
 * and open the template in the editor.
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.update;
 | 
						|
 | 
						|
import java.awt.*;
 | 
						|
import java.awt.event.*;
 | 
						|
import javax.swing.*;
 | 
						|
import java.util.*;
 | 
						|
 | 
						|
import com.evolute.utils.*;
 | 
						|
import com.evolute.utils.date.*;
 | 
						|
import com.evolute.utils.db.*;
 | 
						|
import com.evolute.utils.sql.*;
 | 
						|
import com.evolute.utils.ui.*;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author fpalma
 | 
						|
 */
 | 
						|
public class UpdateWindow extends JFrame
 | 
						|
		implements ActionListener
 | 
						|
{
 | 
						|
	protected JTextArea logText;
 | 
						|
	protected JButton closeButton;	
 | 
						|
	
 | 
						|
	protected Update updates[];
 | 
						|
	protected String filename;
 | 
						|
	
 | 
						|
	public static void main( String args[] )
 | 
						|
	{
 | 
						|
		UpdateWindow updateWindow = new UpdateWindow();
 | 
						|
		updateWindow.update();
 | 
						|
	}
 | 
						|
	
 | 
						|
	/** Creates a new instance of UpdateWindow */
 | 
						|
	public UpdateWindow()
 | 
						|
	{
 | 
						|
		setupComponents();
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void setupComponents()
 | 
						|
	{
 | 
						|
		setTitle( "Actualiza\u00e7\u00e3o do Software" );
 | 
						|
		setSize( 800, 600 );
 | 
						|
		logText = new JTextArea();
 | 
						|
		logText.setLineWrap( true );
 | 
						|
		logText.setWrapStyleWord( true );
 | 
						|
		logText.setEditable( true );
 | 
						|
		JScrollPane scp = 
 | 
						|
				new JScrollPane( logText, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
 | 
						|
									JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
 | 
						|
		closeButton = new JButton( "Fechar" );
 | 
						|
		
 | 
						|
		setLayout( new BorderLayout() );
 | 
						|
		add( scp, BorderLayout.CENTER );
 | 
						|
		add( closeButton, BorderLayout.SOUTH );
 | 
						|
	
 | 
						|
		closeButton.setEnabled( false );
 | 
						|
		closeButton.addActionListener( this );
 | 
						|
		
 | 
						|
		setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void actionPerformed( ActionEvent e )
 | 
						|
	{
 | 
						|
		Object source = e.getSource();
 | 
						|
		if( source.equals( closeButton ) )
 | 
						|
		{
 | 
						|
			close();
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void close()
 | 
						|
	{
 | 
						|
		SwingUtilities.invokeLater( new Runnable(){
 | 
						|
			public void run()
 | 
						|
			{
 | 
						|
				setVisible( false );
 | 
						|
				dispose();
 | 
						|
			}
 | 
						|
		} );
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void update()
 | 
						|
	{
 | 
						|
		log( "A verificar a exist\u00eancia de actualiza\u00e7\u00f5es...\n" );
 | 
						|
		try
 | 
						|
		{
 | 
						|
			double version = UpdateList.getCurrentVersion();
 | 
						|
			log( "Vers\u00e3o actual: " + ( version < 6.1 ? 6.1 : version ) + "\n" );
 | 
						|
			updates = UpdateList.getUpdates();
 | 
						|
		}
 | 
						|
		catch( Exception ex )
 | 
						|
		{
 | 
						|
			setVisible( true );
 | 
						|
			log( "Erro a verificar actualiza\u00e7\u00f5es!!!" );
 | 
						|
			ex.printStackTrace();
 | 
						|
			updates = new Update[ 0 ];
 | 
						|
		}
 | 
						|
		if( updates.length > 0 )
 | 
						|
		{
 | 
						|
			setVisible( true );
 | 
						|
			log( "Existe " + ( updates.length >  1 ? "m " : " " ) + updates.length + 
 | 
						|
							" actualiza\u00e7" + ( updates.length >  1 ? "\u00f5es... " : "\u00e3o\n" ) );
 | 
						|
			boolean ok = doUpdates();
 | 
						|
			if( ok )
 | 
						|
			{
 | 
						|
				log( "**** Actualiza\u00e7\u00f5es terminadas ****\n" );
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				log( "**** Actualiza\u00e7\u00f5es abortadas ****\n" );
 | 
						|
				log( "\nPode favor contacte a EVOLUTE\n" );
 | 
						|
			}
 | 
						|
			
 | 
						|
		}
 | 
						|
		closeButton.setEnabled( true );
 | 
						|
	}
 | 
						|
	
 | 
						|
	protected void log( final String newLog )
 | 
						|
	{
 | 
						|
		SwingUtilities.invokeLater( new Runnable(){
 | 
						|
			public void run()
 | 
						|
			{
 | 
						|
				logText.append( newLog );
 | 
						|
			}
 | 
						|
		} );
 | 
						|
	}
 | 
						|
	
 | 
						|
	protected boolean doUpdates()
 | 
						|
	{
 | 
						|
		double last = 0.1;
 | 
						|
		log( "**** A realizar actualiza\u00e7\u00f5es... **** \n" );
 | 
						|
		for( int n = 0; n < updates.length; n++ )
 | 
						|
		{
 | 
						|
			last = updates[ n ].getEndVersion();
 | 
						|
			String msg = "  " + updates[ n ] + "... \n";
 | 
						|
			String changes[] = updates[ n ].listChanges();
 | 
						|
			for( int c = 0; c < changes.length; c++ )
 | 
						|
			{
 | 
						|
				msg += "     " + changes[ c ] + "\n";
 | 
						|
			}
 | 
						|
			log( msg );
 | 
						|
			try
 | 
						|
			{
 | 
						|
				updates[ n ].doUpdate();
 | 
						|
			}
 | 
						|
			catch( Exception ex )
 | 
						|
			{
 | 
						|
				log( "ERRO ! ! !\nA abortar actualiza\u00e7\u00f5es\n" );
 | 
						|
				ex.printStackTrace();
 | 
						|
				return false;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		try
 | 
						|
		{
 | 
						|
			DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
 | 
						|
			Executer executer = dbm.getSharedExecuter();
 | 
						|
			com.evolute.utils.sql.Update update = 
 | 
						|
					new com.evolute.utils.sql.Update( "version",
 | 
						|
							new Assignment[]{ 
 | 
						|
								new Assignment( new Field( "current_version" ), new Double( last ) ) },
 | 
						|
							null );
 | 
						|
			executer.executeQuery( update );
 | 
						|
			log( "Vers\u00e3o actualizada para: " + last + "\n" );
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
		catch( Exception ex )
 | 
						|
		{
 | 
						|
			log( "ERRO ! ! !\nA abortar actualiza\u00e7\u00f5es\n" );
 | 
						|
			ex.printStackTrace();
 | 
						|
			return false;
 | 
						|
		}	
 | 
						|
	}
 | 
						|
	
 | 
						|
	public int getUpdateCount()
 | 
						|
	{
 | 
						|
		return updates.length;
 | 
						|
	}
 | 
						|
}
 |