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.
324 lines
11 KiB
324 lines
11 KiB
package siprp;
|
|
|
|
import static siprp.ProcessoConstants.ESTADO_PROCESSO_BY_CODE;
|
|
import static siprp.ProcessoConstants.PROCESSO_ABERTO_CODE;
|
|
import static siprp.ProcessoConstants.PROCESSO_ABERTO_DESCRIPTION;
|
|
import static siprp.ProcessoConstants.PROCESSO_CANCELADO_CODE;
|
|
import static siprp.ProcessoConstants.PROCESSO_CANCELADO_DESCRIPTION;
|
|
import static siprp.ProcessoConstants.PROCESSO_FECHADO_CODE;
|
|
import static siprp.ProcessoConstants.PROCESSO_FECHADO_DESCRIPTION;
|
|
|
|
import java.awt.Color;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.InputStream;
|
|
import java.sql.SQLException;
|
|
import java.util.Date;
|
|
|
|
import javax.swing.JPanel;
|
|
import javax.swing.SwingUtilities;
|
|
import javax.swing.UIManager;
|
|
import javax.swing.plaf.ColorUIResource;
|
|
import javax.swing.tree.DefaultMutableTreeNode;
|
|
import javax.swing.tree.MutableTreeNode;
|
|
|
|
import org.apache.cayenne.access.DataDomain;
|
|
import org.apache.cayenne.access.DataNode;
|
|
import org.apache.cayenne.conf.DefaultConfiguration;
|
|
import org.apache.cayenne.conn.DriverDataSource;
|
|
import org.apache.cayenne.dba.AutoAdapter;
|
|
import org.apache.cayenne.map.DataMap;
|
|
|
|
import siprp.clientes.AvisosPanel;
|
|
import siprp.companydataloaders.SIPRPDataLoader;
|
|
import siprp.companydataloaders.SIPRPPropertiesLoader;
|
|
import siprp.initializer.SIPRPUIInitializer;
|
|
import siprp.lembretes.LembretesDemon;
|
|
import siprp.ui.SIPRPIcon;
|
|
import siprp.update.UpdateList;
|
|
|
|
import com.evolute.module.updater.Updater;
|
|
import com.evolute.project.ProjectTools;
|
|
import com.evolute.utils.Singleton;
|
|
import com.evolute.utils.db.DBException;
|
|
import com.evolute.utils.db.DBManager;
|
|
import com.evolute.utils.db.JDBCManager;
|
|
import com.evolute.utils.db.keyretrievers.JDBCAutoKeyRetriever;
|
|
import com.evolute.utils.error.ErrorLogger;
|
|
import com.evolute.utils.jdbc.DBStatementExecuter;
|
|
import com.evolute.utils.jdbc.StatementExecuterFactory;
|
|
import com.evolute.utils.sql.Insert;
|
|
import com.evolute.utils.strings.UnicodeChecker;
|
|
import com.evolute.utils.ui.DialogException;
|
|
import com.evolute.utils.ui.window.LoginWindow;
|
|
|
|
public class Main implements com.evolute.utils.ui.window.Connector
|
|
{
|
|
|
|
private static String dbase;
|
|
private SIPRPTracker siprpTracker;
|
|
private static LoginWindow loginWindow;
|
|
|
|
private static AvisosPanel avisos = null;
|
|
public static File fopConfigFile;
|
|
|
|
static
|
|
{
|
|
|
|
ESTADO_PROCESSO_BY_CODE.put( PROCESSO_ABERTO_CODE, PROCESSO_ABERTO_DESCRIPTION );
|
|
ESTADO_PROCESSO_BY_CODE.put( PROCESSO_FECHADO_CODE, PROCESSO_FECHADO_DESCRIPTION );
|
|
ESTADO_PROCESSO_BY_CODE.put( PROCESSO_CANCELADO_CODE, PROCESSO_CANCELADO_DESCRIPTION );
|
|
}
|
|
|
|
public static void main( String args[] ) throws Exception
|
|
{
|
|
UIManager.put( "TextField.inactiveForeground", ColorUIResource.BLACK );
|
|
UIManager.put( "TextField.foreground", ColorUIResource.RED.darker() );
|
|
|
|
UIManager.put( "TextArea.inactiveForeground", ColorUIResource.BLACK );
|
|
UIManager.put( "TextArea.foreground", ColorUIResource.RED.darker() );
|
|
|
|
UIManager.put( "ComboBox.disabledForeground", ColorUIResource.BLACK );
|
|
UIManager.put( "ComboBox.foreground", ColorUIResource.RED.darker() );
|
|
|
|
UIManager.put( "FormattedTextField.inactiveForeground", ColorUIResource.BLACK );
|
|
UIManager.put( "FormattedTextField.foreground", ColorUIResource.RED.darker() );
|
|
|
|
new SIPRPUIInitializer().doInit();
|
|
|
|
SIPRPPropertiesLoader.getInstance().load();
|
|
|
|
// Singleton.setInstance( SingletonConstants.COMPANY_NAME, "Centro Cl\u00ednico Avenida" );
|
|
// Singleton.setInstance( SingletonConstants.COMPANY_LOGO, "logo_evo.jpg" );
|
|
// Singleton.setInstance( SingletonConstants.WEB_AWARE, Boolean.FALSE );
|
|
// Singleton.setInstance( SingletonConstants.DB_NAME, "shst" );
|
|
|
|
// Singleton.setInstance( SingletonConstants.COMPANY_NAME, "SIPRP - Sociedade Ib\u00e9rica de Preven\u00e7\u00e3o de Riscos Profissionais" );
|
|
// Singleton.setInstance( SingletonConstants.COMPANY_LOGO, "logo_combo.jpg" );
|
|
// Singleton.setInstance( SingletonConstants.WEB_AWARE, Boolean.TRUE );
|
|
// Singleton.setInstance( SingletonConstants.LOCAL_DB_NAME, "siprp" );
|
|
new SIPRPDataLoader().load();
|
|
// new ClinicaAvenidaDataLoader().load();
|
|
// new IBookDataLoader().load();
|
|
|
|
dbase = (String) Singleton.getInstance( SingletonConstants.LOCAL_DB_NAME );
|
|
// dbase = "siprp_local3";
|
|
/* Calendar cal = Calendar.getInstance();
|
|
cal.set( 2004, 06, 14 );
|
|
if( cal.before( Calendar.getInstance() ) )
|
|
{
|
|
com.evolute.utils.ui.DialogException.showException( new RuntimeException( "Unknown error ocurred." ) );
|
|
}
|
|
else
|
|
{
|
|
*/ Insert.setDefaultKeyRetriever( JDBCAutoKeyRetriever.DEFAULT );
|
|
// String server = System.getProperty( "server.address" );
|
|
// if( server == null )
|
|
// {
|
|
// server = "ws_fpalma";
|
|
// }
|
|
//
|
|
// String user = "root";
|
|
// String passwd = "UNIXLuvsU";
|
|
//
|
|
// DBManager dbm = new JDBCManager( "jdbc:mysql://" + server + "/" + dbase,
|
|
// user, passwd , 10, 8, 8, null );
|
|
|
|
UnicodeChecker.setUseDoubleSlash( true );
|
|
// Singleton.setInstance( Singleton.DEFAULT_DBMANAGER, dbm );
|
|
|
|
// StatementExecuterFactory.initialize(
|
|
// new DBStatementExecuter( dbm.getSharedExecuter() ) );
|
|
// }
|
|
// FichaWindow window = new FichaWindow();
|
|
/* window.setLogo( new ImageIcon(
|
|
new Main().getClass().getClassLoader().getResource( "logo/logo_w400.png" )
|
|
).getImage() );*/
|
|
// window.show();
|
|
avisos = new AvisosPanel();
|
|
String logoFileName = ( String ) Singleton.getInstance( SingletonConstants.COMPANY_LOGO );
|
|
loginWindow = new LoginWindow( new Main(), /*"logo"+File.separator +*/ logoFileName,//"logo"+File.separator + "logo_w400.jpg",
|
|
new String[] { (String) Singleton.getInstance( SingletonConstants.SOFTWARE_NAME ) },
|
|
new String[] { "Vers\u00E3o " + ProjectTools.getInstance().getVersion(), "(EVOLUTE 2004-2010)" }, "",
|
|
(String)Singleton.getInstance( SingletonConstants.LOCAL_USER ),
|
|
(String)Singleton.getInstance( SingletonConstants.LOCAL_PASSWORD ), avisos, false );
|
|
loginWindow.setTitle( (String) Singleton.getInstance( SingletonConstants.SOFTWARE_NAME ) );
|
|
loginWindow.setIconImage( SIPRPIcon.LOGO.getImage() );
|
|
loginWindow.getButtOK().setEnabled( false );
|
|
JPanel left = loginWindow.getLeftPanel();
|
|
left.setBackground( Color.white );
|
|
// GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
|
|
loginWindow.setSize( 1024, 510 );
|
|
loginWindow.setExtendedState(loginWindow.getExtendedState() | LoginWindow.MAXIMIZED_BOTH);
|
|
loginWindow.setVisible( true );
|
|
SwingUtilities.invokeLater( new Runnable()
|
|
{
|
|
public void run()
|
|
{
|
|
loginWindow.expandAll();
|
|
}
|
|
} );
|
|
|
|
fopConfigFile = loadFopConfigFile();
|
|
|
|
}
|
|
|
|
|
|
private static File loadFopConfigFile() {
|
|
|
|
try {
|
|
InputStream is = ClassLoader.getSystemClassLoader()
|
|
.getResourceAsStream("siprp/util/fop/fop.xconf");
|
|
if (is != null) {
|
|
File tempFile = File.createTempFile("fop", ".xconf");
|
|
FileOutputStream fos = new FileOutputStream(tempFile);
|
|
byte[] buf = new byte[256];
|
|
int read = 0;
|
|
while ((read = is.read(buf)) > 0) {
|
|
fos.write(buf, 0, read);
|
|
}
|
|
return tempFile;
|
|
}
|
|
return null;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public boolean connect( String user, String passwd )
|
|
{
|
|
String url = null;
|
|
try
|
|
{
|
|
// run initialization SQL
|
|
// SQLQuery initQuery[] = new SQLQuery[] {};
|
|
// String server = System.getProperty( "server.address" );
|
|
String server = null;
|
|
if( server == null )
|
|
{
|
|
//server = "192.168.1.191";
|
|
server = (String)Singleton.getInstance( SingletonConstants.LOCAL_URL );
|
|
// server = "storage";
|
|
// server = "ws_fpalma";
|
|
}
|
|
String prefix = (String)Singleton.getInstance( SingletonConstants.LOCAL_URL_PREFIX );
|
|
url = prefix + server + "/" + dbase;
|
|
// System.out.println( "url: " + url + " user: " + user + " ps: " + passwd );
|
|
DBManager dbm = new JDBCManager( url, user, passwd , 10, 8, 8, null );
|
|
// UnicodeChecker.setUseDoubleSlash( true );
|
|
Singleton.setInstance( Singleton.DEFAULT_DBMANAGER, dbm );
|
|
|
|
StatementExecuterFactory.initialize(
|
|
new DBStatementExecuter( dbm.getSharedExecuter(this) ) );
|
|
|
|
Updater.getInstance().executeUpdate(true, true, UpdateList.UPDATE_LIST);
|
|
|
|
new ORMInitializer().initializeORM( url, user, passwd );
|
|
|
|
Singleton.setInstance( Singleton.TODAY, new Date() );
|
|
initializeCayenne( url, user, passwd);
|
|
|
|
//cleanData( dbm.getSharedExecuter() );
|
|
//msg( dbm.getSharedExecuter() );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "N\u00E3o foi poss\u00EDvel estabelecer"
|
|
+ " a liga\u00E7\u00E3o \u00E0 base de dados.\n(" +url+ ")", false );
|
|
return false;
|
|
}
|
|
Singleton.setInstance( Singleton.USERNAME, user );
|
|
try
|
|
{
|
|
ErrorLogger.initializeLogger( new SHSTLogger() );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ex.printStackTrace( System.out );
|
|
}
|
|
//Singleton.setInstance( Singleton.USERNAME, user );
|
|
siprpTracker = new SIPRPTracker( avisos );
|
|
|
|
avisos.refresh();
|
|
// new Exception().printStackTrace();
|
|
// try
|
|
// {
|
|
// Thread.sleep( 1000 );
|
|
// }
|
|
// catch( Exception ex ){}
|
|
// new Exception().printStackTrace();
|
|
LembretesDemon.go();
|
|
return true;
|
|
}
|
|
|
|
// public static void reconnectJDO()
|
|
// {
|
|
// PersistenceManagerFactory pmf = ( PersistenceManagerFactory ) Singleton.getInstance( Singleton.DEFAULT_PERSISTENCE_MANAGER_FACTORY );
|
|
// PersistenceManager pm = pmf.getPersistenceManager();
|
|
// Singleton.setInstance( SingletonConstants.PERSISTENCE_MANAGER, pm );
|
|
// com.evolute.utils.jdo.JDOObject.setPersistentManager( pm );
|
|
// }
|
|
|
|
public boolean disconnect()
|
|
{
|
|
if( siprpTracker.quit() )
|
|
{
|
|
siprpTracker = null;
|
|
try
|
|
{
|
|
( ( DBManager )Singleton.getInstance(
|
|
Singleton.DEFAULT_DBMANAGER ) ).close();
|
|
Singleton.clear();
|
|
}
|
|
catch( DBException ex )
|
|
{
|
|
DialogException.showException( ex );
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public void executeAction( DefaultMutableTreeNode node )
|
|
{
|
|
try
|
|
{
|
|
siprpTracker.openWindow( ( String )node.getUserObject() );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showException( ex );
|
|
}
|
|
|
|
}
|
|
|
|
public void exit()
|
|
{
|
|
if( siprpTracker == null || siprpTracker.quit() )
|
|
{
|
|
System.exit( 0 );
|
|
}
|
|
}
|
|
|
|
public MutableTreeNode getTree()
|
|
{
|
|
return siprpTracker.getRoot();
|
|
}
|
|
|
|
public void initializeCayenne(String url, String user, String password) throws SQLException
|
|
{
|
|
DataDomain domain = DefaultConfiguration.getSharedConfiguration().getDomain();
|
|
DataMap map = domain.getMap( "SIPRPMap" );
|
|
DriverDataSource dataSource = new DriverDataSource((String) Singleton.getInstance( SingletonConstants.LOCAL_DRIVER_NAME ), url, user, password );
|
|
DataNode node = new DataNode("SIPRPNode");
|
|
node.setDataSource( dataSource );
|
|
node.setAdapter( new AutoAdapter(dataSource) );
|
|
node.addDataMap( map );
|
|
node.setEntityResolver( domain.getEntityResolver() );
|
|
domain.reset();
|
|
domain.addNode( node );
|
|
}
|
|
|
|
}
|