1*d127360fSAndrew Rist /**************************************************************
2*d127360fSAndrew Rist  *
3*d127360fSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*d127360fSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*d127360fSAndrew Rist  * distributed with this work for additional information
6*d127360fSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*d127360fSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*d127360fSAndrew Rist  * "License"); you may not use this file except in compliance
9*d127360fSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*d127360fSAndrew Rist  *
11*d127360fSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*d127360fSAndrew Rist  *
13*d127360fSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*d127360fSAndrew Rist  * software distributed under the License is distributed on an
15*d127360fSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d127360fSAndrew Rist  * KIND, either express or implied.  See the License for the
17*d127360fSAndrew Rist  * specific language governing permissions and limitations
18*d127360fSAndrew Rist  * under the License.
19*d127360fSAndrew Rist  *
20*d127360fSAndrew Rist  *************************************************************/
21*d127360fSAndrew Rist 
22cdf0e10cSrcweir package transex3.controller;
23cdf0e10cSrcweir 
24cdf0e10cSrcweir import java.awt.event.ActionEvent;
25cdf0e10cSrcweir import java.awt.event.ActionListener;
26cdf0e10cSrcweir import java.awt.event.*;
27cdf0e10cSrcweir import java.awt.event.WindowAdapter;
28cdf0e10cSrcweir import java.awt.event.WindowEvent;
29cdf0e10cSrcweir import java.io.BufferedReader;
30cdf0e10cSrcweir import java.io.File;
31cdf0e10cSrcweir import java.io.FileNotFoundException;
32cdf0e10cSrcweir import java.io.IOException;
33cdf0e10cSrcweir import java.io.InputStreamReader;
34cdf0e10cSrcweir import java.lang.Runtime;
35cdf0e10cSrcweir import java.util.*;
36cdf0e10cSrcweir 
37cdf0e10cSrcweir import javax.swing.ListSelectionModel;
38cdf0e10cSrcweir import javax.swing.WindowConstants;
39cdf0e10cSrcweir import javax.swing.event.*;
40cdf0e10cSrcweir 
41cdf0e10cSrcweir import transex3.model.*;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir import java.io.*;
44cdf0e10cSrcweir import javax.swing.*;
45cdf0e10cSrcweir //import transex3.model.*;
46cdf0e10cSrcweir public class EditorController {
47cdf0e10cSrcweir 	public final String[] RESTYPES = { ".src",".hrc",".xcu",".xrm",".xhp" };
48cdf0e10cSrcweir 	public final String   RECFILE  =   ".recommand";
49cdf0e10cSrcweir 	// Editor View
50cdf0e10cSrcweir 	static transex3.view.Editor	aEditor					= null;
51cdf0e10cSrcweir 	// Editor Model
52cdf0e10cSrcweir 	static Vector	sdfstrings					= new Vector();
53cdf0e10cSrcweir 	static HashMap hashedsdfstrings			= new HashMap();
54cdf0e10cSrcweir 	int oldindex = 0;
55cdf0e10cSrcweir 	//HashMap hashedfilenames				= new HashMap();
56cdf0e10cSrcweir 	// Search for source Strings
fetchSourceStrings( String rootdir )57cdf0e10cSrcweir 	public String fetchSourceStrings( String rootdir ){
58cdf0e10cSrcweir 
59cdf0e10cSrcweir         //String outputfile = "h:\\workspace\\recommandEditor\\null2";
60cdf0e10cSrcweir 		File tempfile = null;
61cdf0e10cSrcweir 
62cdf0e10cSrcweir 		try {
63cdf0e10cSrcweir 			tempfile = File.createTempFile( "receditor" , "tmp" );
64cdf0e10cSrcweir 		} catch (IOException e1) {
65cdf0e10cSrcweir 			// TODO Auto-generated catch block
66cdf0e10cSrcweir 			System.err.println("Can not create temp file\n");
67cdf0e10cSrcweir 			e1.printStackTrace();
68cdf0e10cSrcweir 		}
69cdf0e10cSrcweir 
70cdf0e10cSrcweir 		String outputfile = tempfile.getAbsolutePath();
71cdf0e10cSrcweir 		try
72cdf0e10cSrcweir 		{
73cdf0e10cSrcweir 			//System.out.println("localize_sl -QQ -skip_links -e -l en-US -f "+outputfile+" -d "+rootdir);
74cdf0e10cSrcweir             System.out.println("localize_sl -QQ -skip_links -e -l en-US -f "+outputfile );
75cdf0e10cSrcweir             java.lang.Process aProc = Runtime.getRuntime().exec("localize_sl -QQ -skip_links -e -l en-US -f "+outputfile);
76cdf0e10cSrcweir 
77cdf0e10cSrcweir             //java.lang.Process aProc = Runtime.getRuntime().exec("localize_sl -QQ -e -l en-US -f "+outputfile+" -d "+rootdir);
78cdf0e10cSrcweir             BufferedReader aBR = new BufferedReader( new InputStreamReader( aProc.getInputStream() ) );
79cdf0e10cSrcweir 			String line = aBR.readLine();
80cdf0e10cSrcweir 			while( line != null && line.length() > 0 ){
81cdf0e10cSrcweir 				//System.out.print( line );
82cdf0e10cSrcweir 				line = aBR.readLine();
83cdf0e10cSrcweir 			}
84cdf0e10cSrcweir 
85cdf0e10cSrcweir 		} catch (IOException e) {
86cdf0e10cSrcweir 		// TODO Auto-generated catch block
87cdf0e10cSrcweir 		e.printStackTrace();
88cdf0e10cSrcweir 		}
89cdf0e10cSrcweir 		return outputfile;
90cdf0e10cSrcweir 	}
91cdf0e10cSrcweir 	// Search for recommand files
findRecommandFiles( File rootdir , Vector list )92cdf0e10cSrcweir 	public void findRecommandFiles( File rootdir , Vector list ){
93cdf0e10cSrcweir 		System.out.print(".");
94cdf0e10cSrcweir         System.out.flush();
95cdf0e10cSrcweir 		File[] aFileArray = rootdir.listFiles();
96cdf0e10cSrcweir 	    if( aFileArray != null ){
97cdf0e10cSrcweir 			for( int cnt = 0; aFileArray.length > cnt ; cnt++ ){
98cdf0e10cSrcweir 				if( aFileArray[ cnt ].isDirectory() && !aFileArray[ cnt ].getAbsolutePath().endsWith(".lnk") )
99cdf0e10cSrcweir 					findRecommandFiles( aFileArray[ cnt ] , list);
100cdf0e10cSrcweir 				else if( aFileArray[ cnt ].isFile() && isRecommandFile( aFileArray[ cnt ] ) )
101cdf0e10cSrcweir 					list.add( aFileArray[ cnt ]);
102cdf0e10cSrcweir 			}
103cdf0e10cSrcweir 	    }
104cdf0e10cSrcweir 	}
isResourceType( File aFile )105cdf0e10cSrcweir 	private boolean isResourceType( File aFile ){
106cdf0e10cSrcweir 		String filename 	= aFile.getName();
107cdf0e10cSrcweir 		boolean isResType 	= false;
108cdf0e10cSrcweir 		for(int cnt = 0; cnt < RESTYPES.length ; cnt++){
109cdf0e10cSrcweir 			if( filename.endsWith( RESTYPES[ cnt ] ) )
110cdf0e10cSrcweir 					isResType = true;
111cdf0e10cSrcweir 		}
112cdf0e10cSrcweir 		return isResType;
113cdf0e10cSrcweir 	}
isRecommandFile( File aFile )114cdf0e10cSrcweir 	private boolean isRecommandFile( File aFile ){
115cdf0e10cSrcweir 		return aFile.getName().endsWith( RECFILE );
116cdf0e10cSrcweir 	}
clearAllRows( JTable aTable )117cdf0e10cSrcweir 	public void clearAllRows( JTable aTable ){
118cdf0e10cSrcweir 		for ( int n = 0; n < aTable.getRowCount() ; n++ ){
119cdf0e10cSrcweir 			aTable.setValueAt( null , n , 0 );
120cdf0e10cSrcweir 			aTable.setValueAt( null , n , 1 );
121cdf0e10cSrcweir 			aTable.setValueAt( null , n , 2 );
122cdf0e10cSrcweir 			aTable.setValueAt( null , n , 3 );
123cdf0e10cSrcweir 			aTable.setValueAt( null , n , 4 );
124cdf0e10cSrcweir 		}
125cdf0e10cSrcweir 	}
126cdf0e10cSrcweir 	// Add all data to view
updateData()127cdf0e10cSrcweir     void updateData(){
128cdf0e10cSrcweir         JTable recTable =transex3.controller.EditorController.aEditor.getRectable();
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 		SdfString aSdfString = (SdfString) sdfstrings.get( oldindex );
131cdf0e10cSrcweir 		Vector newStrings = new Vector();
132cdf0e10cSrcweir 		for ( int n = 1; n < recTable.getRowCount() ; n++ ){
133cdf0e10cSrcweir 			String lang 	= (String) recTable.getValueAt(n , 0 );
134cdf0e10cSrcweir 			String text 	= (String) recTable.getValueAt(n , 1 );
135cdf0e10cSrcweir 			String htext	= (String) recTable.getValueAt(n , 2 );
136cdf0e10cSrcweir 			String qhtext 	= (String) recTable.getValueAt(n , 3 );
137cdf0e10cSrcweir 		    String ttext 	= (String) recTable.getValueAt(n , 4 );
138cdf0e10cSrcweir 			if( lang != null && text != null ){
139cdf0e10cSrcweir 				//System.out.println("Data "+ lang + " " + text );
140cdf0e10cSrcweir 			    SdfEntity aSdfEntity = new SdfEntity();
141cdf0e10cSrcweir 			    aSdfEntity.setLangid( lang );
142cdf0e10cSrcweir 			    aSdfEntity.setText(  text );
143cdf0e10cSrcweir 			    aSdfEntity.setHelptext( htext );
144cdf0e10cSrcweir 			    aSdfEntity.setQuickhelptext( qhtext );
145cdf0e10cSrcweir 			    aSdfEntity.setTitle( ttext );
146cdf0e10cSrcweir 			    newStrings.add( aSdfEntity );
147cdf0e10cSrcweir 			    aSdfString.setLanguageStrings( newStrings );
148cdf0e10cSrcweir 			}
149cdf0e10cSrcweir 		}
150cdf0e10cSrcweir     }
151cdf0e10cSrcweir 
initView()152cdf0e10cSrcweir     public void initView(){
153cdf0e10cSrcweir 	    Object[][]	sourceStringData = new Object[ sdfstrings.size() ][ 4 ];
154cdf0e10cSrcweir 	    Object[][] firstData = new Object[100][5];
155cdf0e10cSrcweir 	    // Set the files
156cdf0e10cSrcweir 	    Iterator aIter = sdfstrings.iterator();
157cdf0e10cSrcweir 	    int counter = 0;
158cdf0e10cSrcweir 	    while( aIter.hasNext() ){
159cdf0e10cSrcweir 	    	SdfString aSdfString = (SdfString) aIter.next();
160cdf0e10cSrcweir 	    	sourceStringData[ counter ][ 0 ] = aSdfString.getSourceString().getProject()+"\\"+aSdfString.getSourceString().getSource_file();
161cdf0e10cSrcweir 	    	sourceStringData[ counter ][ 1 ] = aSdfString.getSourceString().getGid();
162cdf0e10cSrcweir 	    	sourceStringData[ counter ][ 2 ] = aSdfString.getSourceString().getLid();
163cdf0e10cSrcweir 	    	sourceStringData[ counter ][ 3 ] = aSdfString.getSourceString().getText();
164cdf0e10cSrcweir 	    	if( counter == 0 ){
165cdf0e10cSrcweir 	    		firstData[ 0 ][ 0 ] = "en-US";
166cdf0e10cSrcweir 	    		firstData[ 0 ][ 1 ] = aSdfString.getSourceString().getText();
167cdf0e10cSrcweir 	    		firstData[ 0 ][ 2 ] = aSdfString.getSourceString().getHelptext();
168cdf0e10cSrcweir 	    		firstData[ 0 ][ 3 ] = aSdfString.getSourceString().getQuickhelptext();
169cdf0e10cSrcweir 	    		firstData[ 0 ][ 4 ] = aSdfString.getSourceString().getTitle();
170cdf0e10cSrcweir 	    		aSdfString = (SdfString) sdfstrings.get( 0 );
171cdf0e10cSrcweir 	    		Vector values = aSdfString.getLanguageStrings();
172cdf0e10cSrcweir 	    		for( int n = 0; n < values.size() ; n++ )
173cdf0e10cSrcweir 	    		{
174cdf0e10cSrcweir 	    			SdfEntity aEntity = (SdfEntity) values.get( n );
175cdf0e10cSrcweir 	    			firstData[ n+1 ][ 0 ] = aEntity.getLangid();
176cdf0e10cSrcweir 	    			firstData[ n+1 ][ 1 ] = aEntity.getText();
177cdf0e10cSrcweir 	    			firstData[ n+1 ][ 2 ] = aEntity.getHelptext();
178cdf0e10cSrcweir 	    			firstData[ n+1 ][ 3 ] = aEntity.getQuickhelptext();
179cdf0e10cSrcweir 	    			firstData[ n+1 ][ 4 ] = aEntity.getTitle();
180cdf0e10cSrcweir 	    		}
181cdf0e10cSrcweir 	    	}
182cdf0e10cSrcweir 	    	counter++;
183cdf0e10cSrcweir 	    }
184cdf0e10cSrcweir 		// Set the source srtings
185cdf0e10cSrcweir 
186cdf0e10cSrcweir 
187cdf0e10cSrcweir 		//aEditor = new transex3.view.Editor( sourceStringData , filedata.toArray() );
188cdf0e10cSrcweir 	    aEditor = new transex3.view.Editor( sourceStringData , firstData );
189cdf0e10cSrcweir 
190cdf0e10cSrcweir 		aEditor.setBounds(100,100,800,900);
191cdf0e10cSrcweir 		aEditor.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
192cdf0e10cSrcweir 		aEditor.setVisible(true);
193cdf0e10cSrcweir 		aEditor.repaint();
194cdf0e10cSrcweir 		aEditor.addWindowListener( new WindowAdapter(){
195cdf0e10cSrcweir 			public void windowClosed(WindowEvent e ){
196cdf0e10cSrcweir 				System.exit( 0 );
197cdf0e10cSrcweir 			}
198cdf0e10cSrcweir 		});
199cdf0e10cSrcweir 
200cdf0e10cSrcweir 		aEditor.getMiExit().addActionListener( new ActionListener(){
201cdf0e10cSrcweir 			public void actionPerformed( ActionEvent e ){
202cdf0e10cSrcweir 				System.exit( 0 );
203cdf0e10cSrcweir 			}
204cdf0e10cSrcweir 		});
205cdf0e10cSrcweir 
206cdf0e10cSrcweir 		aEditor.getMiSave().addActionListener( new ActionListener(){
207cdf0e10cSrcweir 			public void actionPerformed( ActionEvent e ){
208cdf0e10cSrcweir                 Iterator aIter = sdfstrings.iterator();
209cdf0e10cSrcweir 				String lastFile="";
210cdf0e10cSrcweir 				while( aIter.hasNext() )
211cdf0e10cSrcweir 				{
212cdf0e10cSrcweir 					SdfString aSdfString = (SdfString )aIter.next();
213cdf0e10cSrcweir 					if( aSdfString.getFileId().compareTo( lastFile ) !=  0 ){
214cdf0e10cSrcweir 						//aSdfString.removeFile();
215cdf0e10cSrcweir 					}
216cdf0e10cSrcweir 					aSdfString.writeString();
217cdf0e10cSrcweir 					lastFile = aSdfString.getFileId();
218cdf0e10cSrcweir 				}
219cdf0e10cSrcweir 			}
220cdf0e10cSrcweir 		});
221cdf0e10cSrcweir 
222cdf0e10cSrcweir 		//aEditor.getRectable().putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
223cdf0e10cSrcweir         aEditor.getRectable().addFocusListener( new FocusListener(){
224cdf0e10cSrcweir             public void focusLost(FocusEvent e){
225cdf0e10cSrcweir                 //super.focusLost( e );
226cdf0e10cSrcweir                 //System.out.println("focus lost");
227cdf0e10cSrcweir                 JTable aTable = aEditor.getRectable();
228cdf0e10cSrcweir                 if(  aTable.getSelectedRow() != -1 && aTable.getSelectedColumn() != -1 )
229cdf0e10cSrcweir                     aTable.getCellEditor( aTable.getSelectedRow(), aTable.getSelectedColumn() ).stopCellEditing();
230cdf0e10cSrcweir                 updateData();
231cdf0e10cSrcweir             }
232cdf0e10cSrcweir             public void focusGained( FocusEvent e){
233cdf0e10cSrcweir                 //super.focusGained( e );
234cdf0e10cSrcweir                 //System.out.println("focus gained");
235cdf0e10cSrcweir             }
236cdf0e10cSrcweir         });
237cdf0e10cSrcweir         //setDefaultEditor(Object.class, new transex3.view.FocusCellEditor(new JTextField()));
238cdf0e10cSrcweir 
239cdf0e10cSrcweir         aEditor.getRectable().getModel().addTableModelListener( new TableModelListener() {
240cdf0e10cSrcweir             public void tableChanged( TableModelEvent e ){
241cdf0e10cSrcweir                 //System.out.println( e );
242cdf0e10cSrcweir             }});
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 
245cdf0e10cSrcweir         aEditor.getRectable().getSelectionModel().addListSelectionListener( new  ListSelectionListener(){
246cdf0e10cSrcweir 			public void valueChanged( ListSelectionEvent e ){
247cdf0e10cSrcweir                 JTable aTable = aEditor.getRectable();
248cdf0e10cSrcweir                 //if(  aTable.getSelectedRow() != -1 && aTable.getSelectedColumn() != -1 )
249cdf0e10cSrcweir                     //aTable.getCellEditor( aTable.getSelectedRow(), aTable.getSelectedColumn() ).stopCellEditing();
250cdf0e10cSrcweir 
251cdf0e10cSrcweir                 updateData();
252cdf0e10cSrcweir 			}
253cdf0e10cSrcweir 		});
254cdf0e10cSrcweir 
255cdf0e10cSrcweir 		aEditor.getTable().setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
256cdf0e10cSrcweir 		aEditor.getTable().getSelectionModel().addListSelectionListener( new  ListSelectionListener(){
257cdf0e10cSrcweir 			public void valueChanged( ListSelectionEvent e ){
258cdf0e10cSrcweir 				//System.out.println("Selected = " +e.getFirstIndex()+"\n");
259cdf0e10cSrcweir 				JTable table =transex3.controller.EditorController.aEditor.getTable();
260cdf0e10cSrcweir 				JTable recTable =transex3.controller.EditorController.aEditor.getRectable();
261cdf0e10cSrcweir 			    SdfString aSdfString;
262cdf0e10cSrcweir 	            JTable aTable = aEditor.getRectable();
263cdf0e10cSrcweir                 if(  aTable.getSelectedRow() != -1 && aTable.getSelectedColumn() != -1 )
264cdf0e10cSrcweir                     aTable.getCellEditor( aTable.getSelectedRow(), aTable.getSelectedColumn() ).stopCellEditing();
265cdf0e10cSrcweir 
266cdf0e10cSrcweir                 updateData();
267cdf0e10cSrcweir 				clearAllRows( recTable );
268cdf0e10cSrcweir 
269cdf0e10cSrcweir 				aSdfString = (SdfString) sdfstrings.get( table.getSelectedRow() );
270cdf0e10cSrcweir 				recTable.setValueAt( "en-US" , 0, 0 );
271cdf0e10cSrcweir 	    		recTable.setValueAt( aSdfString.getSourceString().getText() 		 , 0, 1 );
272cdf0e10cSrcweir 	    		recTable.setValueAt( aSdfString.getSourceString().getHelptext()      , 0, 2 );
273cdf0e10cSrcweir 	    		recTable.setValueAt( aSdfString.getSourceString().getQuickhelptext() , 0, 3 );
274cdf0e10cSrcweir 	    		recTable.setValueAt( aSdfString.getSourceString().getTitle() 		 , 0, 4 );
275cdf0e10cSrcweir 	    		Vector values = aSdfString.getLanguageStrings();
276cdf0e10cSrcweir 	    		for( int n = 0; n < values.size() ; n++ )
277cdf0e10cSrcweir 	    		{
278cdf0e10cSrcweir 	    			SdfEntity aEntity = (SdfEntity) values.get( n );
279cdf0e10cSrcweir 	    			recTable.setValueAt( aEntity.getLangid() 		, n+1 , 0 );
280cdf0e10cSrcweir 	    			recTable.setValueAt( aEntity.getText()   		, n+1 , 1 );
281cdf0e10cSrcweir 	    			recTable.setValueAt( aEntity.getHelptext()		, n+1 , 2 );
282cdf0e10cSrcweir 	    			recTable.setValueAt( aEntity.getQuickhelptext()	, n+1 , 3 );
283cdf0e10cSrcweir 	    			recTable.setValueAt( aEntity.getTitle()  		, n+1 , 4 );
284cdf0e10cSrcweir 	    		}
285cdf0e10cSrcweir 	    	    oldindex = table.getSelectedRow();
286cdf0e10cSrcweir 			}
287cdf0e10cSrcweir 		});
288cdf0e10cSrcweir         //System.out.println("initView successfully");
289cdf0e10cSrcweir 	}
initInitialStrings()290cdf0e10cSrcweir 	public void initInitialStrings(){
291cdf0e10cSrcweir 		String rootdir = java.lang.System.getProperty("SOLARSRC");
292cdf0e10cSrcweir 		String sourcestringsfile = null;
293cdf0e10cSrcweir 		Vector recList = new Vector();
294cdf0e10cSrcweir 		sourcestringsfile = fetchSourceStrings( rootdir );
295cdf0e10cSrcweir 		//findRecommandFiles( new File( rootdir )  , recList );
296cdf0e10cSrcweir 		readStrings( sourcestringsfile , recList );
297cdf0e10cSrcweir 		File sfile = new File ( sourcestringsfile );
298cdf0e10cSrcweir 		sfile.delete();
299cdf0e10cSrcweir 		initView();
300cdf0e10cSrcweir         aEditor.repaint();
301cdf0e10cSrcweir 	}
302cdf0e10cSrcweir 	// Connect recommand strings with source strings
readStrings( String sourcefiles , Vector recfiles )303cdf0e10cSrcweir 	public void readStrings( String sourcefiles , Vector recfiles ) {
304cdf0e10cSrcweir 		BufferedReader aBR 				= null;
305cdf0e10cSrcweir 		try {
306cdf0e10cSrcweir 			//System.out.println("DBG: sourcefiles = " +sourcefiles);
307cdf0e10cSrcweir 			aBR = new BufferedReader( new FileReader( sourcefiles ) );
308cdf0e10cSrcweir 			String current = aBR.readLine();
309cdf0e10cSrcweir 			SdfString aSdfString	 		= null;
310cdf0e10cSrcweir 			SdfEntity aSdfEntity 			= null;
311cdf0e10cSrcweir 			while( current != null ){
312cdf0e10cSrcweir 				aSdfEntity = new SdfEntity();
313cdf0e10cSrcweir 				aSdfEntity.setProperties( current );
314cdf0e10cSrcweir 				aSdfString = new SdfString();
315cdf0e10cSrcweir 				aSdfString.addSourceString( aSdfEntity );
316cdf0e10cSrcweir 				hashedsdfstrings.put( aSdfString.getId() , aSdfString );
317cdf0e10cSrcweir 				//System.out.println("Put ID '"+aSdfString.getId()+"'");
318cdf0e10cSrcweir 				sdfstrings.add( aSdfString );
319cdf0e10cSrcweir 				current = aBR.readLine();
320cdf0e10cSrcweir 
321cdf0e10cSrcweir 			}
322cdf0e10cSrcweir 			Iterator aIter=recfiles.iterator();
323cdf0e10cSrcweir 			File aFile;
324cdf0e10cSrcweir 			BufferedReader aBR2				= null;
325cdf0e10cSrcweir 			//System.out.println("Connecting strings");
326cdf0e10cSrcweir 			while( aIter.hasNext() ){
327cdf0e10cSrcweir 				aFile = (File) aIter.next();
328cdf0e10cSrcweir 				aBR2 = new BufferedReader( new FileReader( aFile ) ) ;
329cdf0e10cSrcweir 				String current2 = aBR2.readLine();
330cdf0e10cSrcweir 
331cdf0e10cSrcweir 				while ( current2 != null ){
332cdf0e10cSrcweir 					SdfEntity aEntity = new SdfEntity();
333cdf0e10cSrcweir 					aEntity.setProperties( current2 );
334cdf0e10cSrcweir 
335cdf0e10cSrcweir 					if( hashedsdfstrings.containsKey( aEntity.getId() ) )
336cdf0e10cSrcweir 					{
337cdf0e10cSrcweir 						aSdfString = (SdfString) hashedsdfstrings.get( aEntity.getId() );
338cdf0e10cSrcweir 						aSdfString.addLanguageString( aEntity );
339cdf0e10cSrcweir 					}
340cdf0e10cSrcweir 					else
341cdf0e10cSrcweir 					{
342cdf0e10cSrcweir 						System.out.println("DBG: Can't find source string '"+aEntity.getId()+"'" );
343cdf0e10cSrcweir 					}
344cdf0e10cSrcweir 					current2 = aBR2.readLine();
345cdf0e10cSrcweir 				}
346cdf0e10cSrcweir 			}
347cdf0e10cSrcweir 		} catch (FileNotFoundException e) {
348cdf0e10cSrcweir 			// TODO Auto-generated catch block
349cdf0e10cSrcweir 			e.printStackTrace();
350cdf0e10cSrcweir 		} catch ( IOException e){
351cdf0e10cSrcweir 			e.printStackTrace();
352cdf0e10cSrcweir 		}
353cdf0e10cSrcweir 
354cdf0e10cSrcweir 	}
355cdf0e10cSrcweir }
356