109436 I18N - sql project encoding property is not present persist_103381_root
authornkunchar@netbeans.org
Fri, 21 Sep 2007 11:12:12 +0000
changeset 1224c96ecfba64b9
parent 1223 c5c6c8cca22b
child 1225 4709cf5802f5
109436 I18N - sql project encoding property is not present
sql.project/src/org/netbeans/modules/sql/project/IcanproLogicalViewProvider.java
sql.project/src/org/netbeans/modules/sql/project/IcanproViews.java
sql.project/src/org/netbeans/modules/sql/project/SQLproProject.java
sql.project/src/org/netbeans/modules/sql/project/SQLproProjectGenerator.java
sql.project/src/org/netbeans/modules/sql/project/ui/wizards/PanelOptionsVisual.java
     1.1 --- a/sql.project/src/org/netbeans/modules/sql/project/IcanproLogicalViewProvider.java	Fri Sep 21 05:00:16 2007 +0000
     1.2 +++ b/sql.project/src/org/netbeans/modules/sql/project/IcanproLogicalViewProvider.java	Fri Sep 21 11:12:12 2007 +0000
     1.3 @@ -66,7 +66,8 @@
     1.4  import org.netbeans.spi.project.ui.support.ProjectSensitiveActions;
     1.5  import org.netbeans.modules.sql.project.SQLproConstants;
     1.6  import org.netbeans.modules.sql.project.IcanproViews;
     1.7 -import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
     1.8 +//import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
     1.9 +import org.netbeans.modules.compapp.projects.base.ui.customizer.IcanproProjectProperties;
    1.10  import org.openide.loaders.DataFolder;
    1.11  import org.openide.util.lookup.Lookups;
    1.12  
     2.1 --- a/sql.project/src/org/netbeans/modules/sql/project/IcanproViews.java	Fri Sep 21 05:00:16 2007 +0000
     2.2 +++ b/sql.project/src/org/netbeans/modules/sql/project/IcanproViews.java	Fri Sep 21 11:12:12 2007 +0000
     2.3 @@ -62,7 +62,8 @@
     2.4  
     2.5  import org.netbeans.modules.sql.project.IcanproProject;
     2.6  import org.netbeans.modules.sql.project.ui.PackageView;
     2.7 -import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
     2.8 +//import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
     2.9 +import org.netbeans.modules.compapp.projects.base.ui.customizer.IcanproProjectProperties;
    2.10  import org.openide.filesystems.FileChangeListener;
    2.11  
    2.12  public class IcanproViews {
     3.1 --- a/sql.project/src/org/netbeans/modules/sql/project/SQLproProject.java	Fri Sep 21 05:00:16 2007 +0000
     3.2 +++ b/sql.project/src/org/netbeans/modules/sql/project/SQLproProject.java	Fri Sep 21 11:12:12 2007 +0000
     3.3 @@ -55,9 +55,10 @@
     3.4  package org.netbeans.modules.sql.project;
     3.5  
     3.6  import org.netbeans.modules.sql.project.spi.JbiArtifactProvider;
     3.7 -import org.netbeans.modules.sql.project.ui.IcanproCustomizerProvider;
     3.8 -import org.netbeans.modules.sql.project.IcanproLogicalViewProvider;
     3.9 -import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
    3.10 +import org.netbeans.modules.compapp.projects.base.ui.IcanproCustomizerProvider;
    3.11 +//import org.netbeans.modules.sql.project.IcanproLogicalViewProvider;
    3.12 +import org.netbeans.modules.compapp.projects.base.ui.customizer.IcanproProjectProperties;
    3.13 +import org.netbeans.modules.compapp.projects.base.queries.IcanproProjectEncodingQueryImpl;
    3.14  import org.netbeans.modules.sql.project.SQLproConstants;
    3.15  import org.netbeans.modules.sql.project.ui.SQLproLogicalViewProvider;
    3.16  import java.beans.PropertyChangeListener;
    3.17 @@ -99,7 +100,11 @@
    3.18  import org.w3c.dom.Node;
    3.19  import org.w3c.dom.NodeList;
    3.20  import org.w3c.dom.Text;
    3.21 -
    3.22 +import java.nio.charset.Charset;
    3.23 +import java.nio.charset.IllegalCharsetNameException;
    3.24 +import java.nio.charset.UnsupportedCharsetException;
    3.25 +import java.util.logging.Logger;
    3.26 +import org.netbeans.api.queries.FileEncodingQuery;
    3.27  
    3.28  
    3.29  
    3.30 @@ -116,6 +121,7 @@
    3.31      public static final String MODULE_INSTALL_NAME = "modules/org-netbeans-modules-sql-project.jar";
    3.32      public static final String MODULE_INSTALL_CBN = "org.netbeans.modules.sql.project";
    3.33      public static final String MODULE_INSTALL_DIR = "module.install.dir";
    3.34 +	    private static final Logger LOG = Logger.getLogger(SQLproProject.class.getName());
    3.35  
    3.36      private final AntProjectHelper helper;
    3.37      private final PropertyEvaluator eval;
    3.38 @@ -196,6 +202,7 @@
    3.39              fileBuilt,
    3.40              new RecommendedTemplatesImpl(),
    3.41              refHelper,
    3.42 +			new IcanproProjectEncodingQueryImpl(evaluator()),
    3.43              sourcesHelper.createSources(),
    3.44              helper.createSharabilityQuery(evaluator(),
    3.45                  new String[] {"${"+IcanproProjectProperties.SOURCE_ROOT+"}"},
    3.46 @@ -365,6 +372,18 @@
    3.47                      }
    3.48  
    3.49                      helper.putProperties(AntProjectHelper.PRIVATE_PROPERTIES_PATH, ep);
    3.50 +					EditableProperties projectEP = helper.getProperties(
    3.51 +                    AntProjectHelper.PROJECT_PROPERTIES_PATH);
    3.52 +                    if (projectEP.getProperty(IcanproProjectProperties.SOURCE_ENCODING) == null) {
    3.53 +                        projectEP.setProperty(IcanproProjectProperties.SOURCE_ENCODING,
    3.54 +                                // FIXME: maybe we should use Charset.defaultCharset() instead?
    3.55 +                                // See comments in IcanproProjectEncodingQueryImpl.java
    3.56 +                                FileEncodingQuery.getDefaultEncoding().name());
    3.57 +                    }            
    3.58 +                    helper.putProperties(
    3.59 +                            AntProjectHelper.PROJECT_PROPERTIES_PATH, projectEP);
    3.60 +
    3.61 +
    3.62                      try {
    3.63                          ProjectManager.getDefault().saveProject(SQLproProject.this);
    3.64                      } catch (IOException e) {
    3.65 @@ -376,8 +395,29 @@
    3.66              if (IcanproLogicalViewProvider.hasBrokenLinks(helper, refHelper)) {
    3.67                  BrokenReferencesSupport.showAlert();
    3.68              }
    3.69 +			checkEncoding();
    3.70          }
    3.71  
    3.72 +		private void checkEncoding() {
    3.73 +            // TODO m
    3.74 +            // Should we show ErrorManager dialog to inform user in case wrong encoding parameter ?
    3.75 +            String prop = eval.getProperty(IcanproProjectProperties.SOURCE_ENCODING);
    3.76 +            if (prop != null) {
    3.77 +                try {
    3.78 +                    Charset c = Charset.forName(prop);
    3.79 +                } catch (IllegalCharsetNameException e) {
    3.80 +                    //Broken property, log & ignore
    3.81 +                    LOG.warning("Illegal charset: " + prop+ " in project: " + // NOI18N
    3.82 +                            getProjectDirectory()); 
    3.83 +                } catch (UnsupportedCharsetException e) {
    3.84 +                    //todo: Needs UI notification like broken references.
    3.85 +                    LOG.warning("Unsupported charset: " + prop+ " in project: " + // NOI18N
    3.86 +                            getProjectDirectory()); 
    3.87 +                }
    3.88 +            }            
    3.89 +         }
    3.90 +
    3.91 +
    3.92          protected void projectClosed() {
    3.93              // Probably unnecessary, but just in case:
    3.94              try {
     4.1 --- a/sql.project/src/org/netbeans/modules/sql/project/SQLproProjectGenerator.java	Fri Sep 21 05:00:16 2007 +0000
     4.2 +++ b/sql.project/src/org/netbeans/modules/sql/project/SQLproProjectGenerator.java	Fri Sep 21 11:12:12 2007 +0000
     4.3 @@ -54,6 +54,8 @@
     4.4  import org.openide.filesystems.Repository;
     4.5  import org.w3c.dom.Document;
     4.6  import org.w3c.dom.Element;
     4.7 +import java.nio.charset.Charset;
     4.8 +import org.netbeans.api.queries.FileEncodingQuery;
     4.9  
    4.10  /**
    4.11   * Create a fresh EjbProject from scratch or by importing and exisitng web module 
    4.12 @@ -157,6 +159,8 @@
    4.13          ep.setProperty(IcanproProjectProperties.DIST_JAVADOC_DIR, "${"+IcanproProjectProperties.DIST_DIR+"}/javadoc");
    4.14          ep.setProperty(IcanproProjectProperties.JAVA_PLATFORM, "default_platform");
    4.15          ep.setProperty(IcanproProjectProperties.DEBUG_CLASSPATH, "${"+IcanproProjectProperties.JAVAC_CLASSPATH+"}:${"+IcanproProjectProperties.BUILD_CLASSES_DIR+"}");
    4.16 +		Charset enc = FileEncodingQuery.getDefaultEncoding();
    4.17 +        ep.setProperty(IcanproProjectProperties.SOURCE_ENCODING, enc.name());
    4.18  
    4.19          //============= Start of IcanPro========================================//
    4.20          ep.setProperty(IcanproProjectProperties.JBI_SETYPE_PREFIX, "sun-sql-engine"); // NOI18N
     5.1 --- a/sql.project/src/org/netbeans/modules/sql/project/ui/wizards/PanelOptionsVisual.java	Fri Sep 21 05:00:16 2007 +0000
     5.2 +++ b/sql.project/src/org/netbeans/modules/sql/project/ui/wizards/PanelOptionsVisual.java	Fri Sep 21 11:12:12 2007 +0000
     5.3 @@ -50,7 +50,8 @@
     5.4  import java.text.MessageFormat;
     5.5  import javax.swing.event.DocumentEvent;
     5.6  import javax.swing.event.DocumentListener;
     5.7 -import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
     5.8 +//import org.netbeans.modules.sql.project.ui.customizer.IcanproProjectProperties;
     5.9 +import org.netbeans.modules.compapp.projects.base.ui.customizer.IcanproProjectProperties;
    5.10  import org.openide.WizardDescriptor;
    5.11  import org.openide.util.NbBundle;
    5.12