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;
|
|
}
|
|
}
|