Hi Dimitry,

the necessary refactoring to avoid doubling of pref reading is done in CVS now.
I would prefer, if you avoid doubling of code in the future, thanks,

Chris


Dimitry Polivaev schrieb:
Hi Chris,

  
what issue is exactly addressed by this change? Isn't it early enough to 
do it in FreeMind line 249?
    

I address the issue reported in [ freemind-Bugs-1967208 ] Localization 
of shortcuts in the menus doesn't work

http://sourceforge.net/tracker/?func=detail&atid=107118&aid=1967208&group_id=7118

In order to solve it Locale.setDefault should be called before any awt 
dependent class (e.g. FreeMind which is a JFrame) is initialized. (As a 
positive side-effect you do not have to supply names of buttons for the 
standard dialogs e.g. for the yes-no-cancel dialog appearing on closing 
of freemind and mnemonics for standard dialogs are also set 
automatically, and I have already changed ControllerAdapter in this sense).

I am afraid that the refactoring you propose is not really helpful. The 
actual problem is that FreeMind (which is a JFrame) contains a lot of 
application initialization code which generally should be done from the 
FreeMindStarter. I do not think that any refactorings should be done 
before the 0.9.0 is released. But if you feel very safe you still could 
do it yourself.

Dimitry

  
Observe, that you doubled the code to read the preferences and that they 
are read twice, now.
And, if this is really necessary, then I would propose to pass the read 
prefs to FreeMind.main such
that it is not read again.

Regards, Chris

Update of /cvsroot/freemind/freemind/freemind/main
In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv32635

Modified Files:
      Tag: fm_060405_integration
	FreeMindStarter.java 
Log Message:
Call Locale.setDefault(Locale) before awt.Toolkit is initialised 
for displaying of accelerator keys in selected language.

This solution is not perfect but just better than nothing.

Index: FreeMindStarter.java
===================================================================
RCS file: /cvsroot/freemind/freemind/freemind/main/Attic/FreeMindStarter.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -d -r1.1.2.1 -r1.1.2.2
*** FreeMindStarter.java	7 Jul 2006 04:26:26 -0000	1.1.2.1
--- FreeMindStarter.java	26 May 2008 20:50:25 -0000	1.1.2.2
***************
*** 23,26 ****
--- 23,33 ----
  package freemind.main;
  
+ import java.io.File;
+ import java.io.FileInputStream;
+ import java.io.InputStream;
+ import java.net.URL;
+ import java.util.Locale;
+ import java.util.Properties;
+ 
  import javax.swing.JOptionPane;
  
***************
*** 51,55 ****
--- 58,104 ----
  		// First check version of Java
  		FreeMindStarter.checkJavaVersion();
+ 		setDefaultLocale();
  		FreeMind.main(args);
  	}
+ 
+ 	/**
+ 	 */
+ 	private static void setDefaultLocale() {
+ 		String propsLoc = "freemind.properties";
+ 		URL defaultPropsURL = ClassLoader.getSystemResource(propsLoc);
+ 		Properties props = new Properties();
+ 		try {
+ 			InputStream in = null;
+ 			in = defaultPropsURL.openStream();
+ 			props.load(in);
+ 			in.close();
+ 			String freemindDirectory = System.getProperty("user.home") + File.separator +  props.getProperty("properties_folder");
+ 			File userPropertiesFolder = new File(freemindDirectory);
+ 			File autoPropertiesFile = new File(userPropertiesFolder, props.getProperty("autoproperties"));
+ 			in = new FileInputStream(autoPropertiesFile);
+ 			Properties auto = new Properties(props);
+ 			auto.load(in);
+ 			in.close();
+ 			String lang = auto.getProperty(FreeMindCommon.RESOURCE_LANGUAGE);
+ 			if(lang == null){
+ 				return;
+ 			}
+ 			Locale localeDef = null;
+ 			switch(lang.length()){
+ 			case 2:
+ 				localeDef = new Locale(lang);
+ 				break;
+ 			case 5:
+ 				localeDef =new Locale(lang.substring(0, 1), lang.substring(3, 4));
+ 				break;
+ 			default:
+ 				return;	
+ 			}
+ 			Locale.setDefault(localeDef);
+ 		} catch (Exception ex) {
+ 			ex.printStackTrace();
+ 			System.err
+ 					.println("Panic! Error while loading default properties.");
+ 		}
+ 		}
  }


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freemind-cvslog mailing list
Freemind-cvslog@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freemind-cvslog


------------------------------------------------------------------------

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/


------------------------------------------------------------------------

_______________________________________________
Freemind-developer mailing list
Freemind-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freemind-developer
    


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freemind-developer mailing list
Freemind-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freemind-developer