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