|  |  |  | @ -56,6 +56,9 @@ public class FichaWindow extends TabbedWindow | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	private static FichaWindow window = null; | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	private Integer imposedTrabalhadorID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 	private SaveExameListener exameListener = null; | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	/** Creates a new instance of FichaWindow */ | 
			
		
	
		
			
				
					|  |  |  |  | 	private FichaWindow() | 
			
		
	
		
			
				
					|  |  |  |  | 		throws Exception | 
			
		
	
	
		
			
				
					|  |  |  | @ -311,7 +314,6 @@ public class FichaWindow extends TabbedWindow | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				iex.printStackTrace(); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | //			
 | 
			
		
	
		
			
				
					|  |  |  |  | //			createPDF( exame );
 | 
			
		
	
		
			
				
					|  |  |  |  | //			print();
 | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
	
		
			
				
					|  |  |  | @ -320,70 +322,90 @@ public class FichaWindow extends TabbedWindow | 
			
		
	
		
			
				
					|  |  |  |  | 			DialogException.showExceptionMessage( ex, "Erro a guardar", true ); | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		if( exameListener != null ) | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			exameListener.exameSaved( trabalhadorID, ( Integer )exame.get( ExameData.ID ) ); | 
			
		
	
		
			
				
					|  |  |  |  | 			exameListener = null; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return true; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	public boolean newItem( int index ) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		fdpProvider.setSearch( FichaDataProvider.SEARCH_EMPRESAS ); | 
			
		
	
		
			
				
					|  |  |  |  | 		SearchDialog search; | 
			
		
	
		
			
				
					|  |  |  |  | 		Integer oldID = empresaID; | 
			
		
	
		
			
				
					|  |  |  |  | 		exameListener = null; | 
			
		
	
		
			
				
					|  |  |  |  | 		if( imposedTrabalhadorID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			fdpProvider.setSearch( FichaDataProvider.SEARCH_EMPRESAS ); | 
			
		
	
		
			
				
					|  |  |  |  | 			SearchDialog search; | 
			
		
	
		
			
				
					|  |  |  |  | 			Integer oldID = empresaID; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		search = new SearchDialog( fdpProvider, null, false, null, true ); | 
			
		
	
		
			
				
					|  |  |  |  | 		empresaID = (  Integer )search.getSelected(); | 
			
		
	
		
			
				
					|  |  |  |  | 			search = new SearchDialog( fdpProvider, null, false, null, true ); | 
			
		
	
		
			
				
					|  |  |  |  | 			empresaID = (  Integer )search.getSelected(); | 
			
		
	
		
			
				
					|  |  |  |  | 		 | 
			
		
	
		
			
				
					|  |  |  |  | 		if( empresaID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			if( search.getIsNew() ) | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				estabelecimentoID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 				trabalhadorID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 				clear( 0 ); | 
			
		
	
		
			
				
					|  |  |  |  | 				return true; | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			else | 
			
		
	
		
			
				
					|  |  |  |  | 			if( empresaID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				return false; | 
			
		
	
		
			
				
					|  |  |  |  | 				if( search.getIsNew() ) | 
			
		
	
		
			
				
					|  |  |  |  | 				{ | 
			
		
	
		
			
				
					|  |  |  |  | 					estabelecimentoID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 					trabalhadorID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 					clear( 0 ); | 
			
		
	
		
			
				
					|  |  |  |  | 					return true; | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 				else | 
			
		
	
		
			
				
					|  |  |  |  | 				{ | 
			
		
	
		
			
				
					|  |  |  |  | 					return false; | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		fdpProvider.setSearch( FichaDataProvider.SEARCH_ESTABELECIMENTOS ); | 
			
		
	
		
			
				
					|  |  |  |  | 		fdpProvider.setSearchID( FichaDataProvider.SEARCH_EMPRESAS, empresaID.intValue() ); | 
			
		
	
		
			
				
					|  |  |  |  | 			fdpProvider.setSearch( FichaDataProvider.SEARCH_ESTABELECIMENTOS ); | 
			
		
	
		
			
				
					|  |  |  |  | 			fdpProvider.setSearchID( FichaDataProvider.SEARCH_EMPRESAS, empresaID.intValue() ); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		search = new SearchDialog( fdpProvider, null, false, null, true ); | 
			
		
	
		
			
				
					|  |  |  |  | 		estabelecimentoID = ( Integer )search.getSelected(); | 
			
		
	
		
			
				
					|  |  |  |  | 			search = new SearchDialog( fdpProvider, null, false, null, true ); | 
			
		
	
		
			
				
					|  |  |  |  | 			estabelecimentoID = ( Integer )search.getSelected(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if( estabelecimentoID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			if( search.getIsNew() ) | 
			
		
	
		
			
				
					|  |  |  |  | 			if( estabelecimentoID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				trabalhadorID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 				reload(0); | 
			
		
	
		
			
				
					|  |  |  |  | 				return true; | 
			
		
	
		
			
				
					|  |  |  |  | 				if( search.getIsNew() ) | 
			
		
	
		
			
				
					|  |  |  |  | 				{ | 
			
		
	
		
			
				
					|  |  |  |  | 					trabalhadorID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 					reload(0); | 
			
		
	
		
			
				
					|  |  |  |  | 					return true; | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 				else | 
			
		
	
		
			
				
					|  |  |  |  | 				{ | 
			
		
	
		
			
				
					|  |  |  |  | 					return false; | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			else | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			fdpProvider.setSearch( FichaDataProvider.SEARCH_TRABALHADORES ); | 
			
		
	
		
			
				
					|  |  |  |  | 			fdpProvider.setSearchID( FichaDataProvider.SEARCH_ESTABELECIMENTOS, estabelecimentoID.intValue() ); | 
			
		
	
		
			
				
					|  |  |  |  | 			search = new SearchDialog( fdpProvider, null, false, null, true ); | 
			
		
	
		
			
				
					|  |  |  |  | 			trabalhadorID = ( Integer )search.getSelected(); | 
			
		
	
		
			
				
					|  |  |  |  | 			if( trabalhadorID == null && search.getIsNew() ) | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				return false; | 
			
		
	
		
			
				
					|  |  |  |  | 				reload(0); | 
			
		
	
		
			
				
					|  |  |  |  | 				return true; | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		fdpProvider.setSearch( FichaDataProvider.SEARCH_TRABALHADORES ); | 
			
		
	
		
			
				
					|  |  |  |  | 		fdpProvider.setSearchID( FichaDataProvider.SEARCH_ESTABELECIMENTOS, estabelecimentoID.intValue() ); | 
			
		
	
		
			
				
					|  |  |  |  | 		search = new SearchDialog( fdpProvider, null, false, null, true ); | 
			
		
	
		
			
				
					|  |  |  |  | 		trabalhadorID = ( Integer )search.getSelected(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if( trabalhadorID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 		else | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			if( search.getIsNew() ) | 
			
		
	
		
			
				
					|  |  |  |  | 			trabalhadorID = imposedTrabalhadorID; | 
			
		
	
		
			
				
					|  |  |  |  | 			imposedTrabalhadorID = null; | 
			
		
	
		
			
				
					|  |  |  |  | 			try | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				reload(0); | 
			
		
	
		
			
				
					|  |  |  |  | 				return true; | 
			
		
	
		
			
				
					|  |  |  |  | 				estabelecimentoID = fdpProvider.getEstabelecimentoIDForTrabalhador( trabalhadorID ); | 
			
		
	
		
			
				
					|  |  |  |  | 				empresaID = fdpProvider.getEmpresaIDForEstabelecimento( estabelecimentoID ); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			else | 
			
		
	
		
			
				
					|  |  |  |  | 			catch( Exception ex ) | 
			
		
	
		
			
				
					|  |  |  |  | 			{ | 
			
		
	
		
			
				
					|  |  |  |  | 				DialogException.showExceptionMessage( ex, "Erro a carregar dados.", true ); | 
			
		
	
		
			
				
					|  |  |  |  | 				return false; | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		if( trabalhadorID == null ) | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			return false; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		reload(0); | 
			
		
	
		
			
				
					|  |  |  |  | 		return true; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
	
		
			
				
					|  |  |  | @ -810,5 +832,20 @@ public class FichaWindow extends TabbedWindow | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	public void editTrabalhador( Integer trabalhadorID, SaveExameListener listener ) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | System.out.println( "edit trabalhador: " + trabalhadorID ); | 
			
		
	
		
			
				
					|  |  |  |  | 		 | 
			
		
	
		
			
				
					|  |  |  |  | 		if( isVisible() ) | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			toFront(); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		else | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			setVisible( true ); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		imposedTrabalhadorID = trabalhadorID; | 
			
		
	
		
			
				
					|  |  |  |  | 		executeAction( NEW_INDEX ); | 
			
		
	
		
			
				
					|  |  |  |  | 		exameListener = listener; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |