diff -r e53d59d23530 cnd.makeproject/nbproject/project.properties --- a/cnd.makeproject/nbproject/project.properties Wed Mar 24 17:01:00 2010 +0100 +++ b/cnd.makeproject/nbproject/project.properties Wed Mar 24 18:23:29 2010 -0400 @@ -3,4 +3,4 @@ sigtest.mail=cvs@cnd.netbeans.org -spec.version.base=1.10.0 +spec.version.base=1.10.1 diff -r e53d59d23530 cnd.makeproject/nbproject/project.xml --- a/cnd.makeproject/nbproject/project.xml Wed Mar 24 17:01:00 2010 +0100 +++ b/cnd.makeproject/nbproject/project.xml Wed Mar 24 18:23:29 2010 -0400 @@ -142,7 +142,7 @@ 1 - 1.13.1.5 + 1.41 diff -r e53d59d23530 cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/configurations/ui/ProjectPropPanel.java --- a/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/configurations/ui/ProjectPropPanel.java Wed Mar 24 17:01:00 2010 +0100 +++ b/cnd.makeproject/src/org/netbeans/modules/cnd/makeproject/configurations/ui/ProjectPropPanel.java Wed Mar 24 18:23:29 2010 -0400 @@ -40,21 +40,10 @@ */ package org.netbeans.modules.cnd.makeproject.configurations.ui; -import java.util.logging.Level; -import javax.swing.plaf.UIResource; -import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.IllegalCharsetNameException; import java.util.List; -import java.util.logging.Logger; -import javax.swing.DefaultComboBoxModel; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.ListCellRenderer; import org.netbeans.api.project.Project; import org.netbeans.modules.cnd.makeproject.MakeProject; import org.netbeans.modules.cnd.makeproject.api.MakeCustomizerProvider; @@ -62,6 +51,7 @@ import org.netbeans.modules.cnd.makeproject.api.configurations.MakeConfigurationDescriptor; import org.netbeans.modules.cnd.makeproject.ui.customizer.MakeContext; import org.netbeans.modules.cnd.makeproject.ui.utils.DirectoryChooserInnerPanel; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.filesystems.FileUtil; import org.openide.util.NbBundle; @@ -99,9 +89,8 @@ originalEncoding = Charset.defaultCharset().name(); } - encoding.setModel(new EncodingModel(this.originalEncoding)); - encoding.setRenderer(new EncodingRenderer()); - + encoding.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); + encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); encoding.addActionListener(new ActionListener() { @@ -133,86 +122,6 @@ makeConfigurationDescriptor.setFolderVisibilityQuery(ignoreFoldersTextField.getText()); } - private static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - - public EncodingRenderer() { - setOpaque(true); - } - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - setName("ComboBox.listRenderer"); // NOI18N - setText(((Charset) value).displayName()); - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - } - - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel(String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset(originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).log(Level.INFO, "IllegalCharsetName: {0}", originalEncoding); - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset(String name) { - super(name, new String[0]); - } - - @Override - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - @Override - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - @Override - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } - } - private static class SourceRootChooser extends DirectoryChooserInnerPanel { public SourceRootChooser(String baseDir, List feed) { diff -r e53d59d23530 j2ee.ejbjarproject/manifest.mf --- a/j2ee.ejbjarproject/manifest.mf Wed Mar 24 17:01:00 2010 +0100 +++ b/j2ee.ejbjarproject/manifest.mf Wed Mar 24 18:23:29 2010 -0400 @@ -2,6 +2,6 @@ OpenIDE-Module: org.netbeans.modules.j2ee.ejbjarproject OpenIDE-Module-Layer: org/netbeans/modules/j2ee/ejbjarproject/ui/resources/layer.xml OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/j2ee/ejbjarproject/Bundle.properties -OpenIDE-Module-Specification-Version: 1.21 +OpenIDE-Module-Specification-Version: 1.22 AutoUpdate-Show-In-Client: false diff -r e53d59d23530 j2ee.ejbjarproject/nbproject/project.xml --- a/j2ee.ejbjarproject/nbproject/project.xml Wed Mar 24 17:01:00 2010 +0100 +++ b/j2ee.ejbjarproject/nbproject/project.xml Wed Mar 24 18:23:29 2010 -0400 @@ -315,7 +315,7 @@ 1 - 1.31 + 1.41 diff -r e53d59d23530 j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/customizer/CustomizerSources.java --- a/j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/j2ee.ejbjarproject/src/org/netbeans/modules/j2ee/ejbjarproject/ui/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -70,6 +70,7 @@ import org.netbeans.modules.j2ee.ejbjarproject.EjbJarProject; import org.netbeans.spi.java.project.support.ui.IncludeExcludeVisualizer; import org.netbeans.spi.project.support.ant.PropertyUtils; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; @@ -144,8 +145,8 @@ this.originalEncoding = Charset.defaultCharset().name(); } - this.encoding.setModel(new EncodingModel(this.originalEncoding)); - this.encoding.setRenderer(new EncodingRenderer()); + this.encoding.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); + this.encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { // NOI18N encoding.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); // NOI18N diff -r e53d59d23530 java.j2seproject/nbproject/project.properties --- a/java.j2seproject/nbproject/project.properties Wed Mar 24 17:01:00 2010 +0100 +++ b/java.j2seproject/nbproject/project.properties Wed Mar 24 18:23:29 2010 -0400 @@ -39,7 +39,7 @@ javac.compilerargs=-Xlint -Xlint:-serial javac.source=1.6 -spec.version.base=1.36.0 +spec.version.base=1.36.1 javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml diff -r e53d59d23530 java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerSources.java --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -41,7 +41,6 @@ package org.netbeans.modules.java.j2seproject.ui.customizer; -import java.awt.Component; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; @@ -50,26 +49,18 @@ import java.awt.event.ComponentEvent; import java.io.File; import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.IllegalCharsetNameException; -import java.util.logging.Logger; import javax.swing.DefaultCellEditor; -import javax.swing.DefaultComboBoxModel; -import javax.swing.JLabel; -import javax.swing.JList; import javax.swing.JTable; import javax.swing.JTextField; -import javax.swing.ListCellRenderer; import javax.swing.ListSelectionModel; import javax.swing.UIManager; import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; -import javax.swing.plaf.UIResource; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import org.netbeans.modules.java.api.common.project.ui.customizer.SourceRootsUi; import org.netbeans.spi.java.project.support.ui.IncludeExcludeVisualizer; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; @@ -152,8 +143,8 @@ this.originalEncoding = Charset.defaultCharset().name(); } - this.encoding.setModel(new EncodingModel(this.originalEncoding)); - this.encoding.setRenderer(new EncodingRenderer()); + this.encoding.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); + this.encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { //NOI18N this.encoding.putClientProperty ("JComboBox.isTableCellEditor", Boolean.TRUE); //NOI18N @@ -243,84 +234,6 @@ this.sourceLevel.setEnabled(sourceLevel.getItemCount()>0); } - - private static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - - public EncodingRenderer() { - setOpaque(true); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - setName("ComboBox.listRenderer"); // NOI18N - setText(((Charset) value).displayName()); - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - - } - - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel (String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset (originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).info("IllegalCharsetName: " + originalEncoding); - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset (String name) { - super (name, new String[0]); - } - - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } -} - private static class ResizableRowHeightTable extends JTable { private boolean needResize = true; diff -r e53d59d23530 javacard.project/manifest.mf --- a/javacard.project/manifest.mf Wed Mar 24 17:01:00 2010 +0100 +++ b/javacard.project/manifest.mf Wed Mar 24 18:23:29 2010 -0400 @@ -4,6 +4,6 @@ OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/javacard/Bundle.properties OpenIDE-Module-Requires: org.openide.windows.IOProvider OpenIDE-Module-Provides: org.netbeans.modules.javacard.JavacardPlatform -OpenIDE-Module-Specification-Version: 1.17 +OpenIDE-Module-Specification-Version: 1.18 AutoUpdate-Show-In-Client: false diff -r e53d59d23530 javacard.project/nbproject/project.xml --- a/javacard.project/nbproject/project.xml Wed Mar 24 17:01:00 2010 +0100 +++ b/javacard.project/nbproject/project.xml Wed Mar 24 18:23:29 2010 -0400 @@ -196,7 +196,7 @@ 1 - 1.24.1.6 + 1.41 @@ -360,6 +360,9 @@ org.openide.util.lookup + + 8.2 + org.openide.windows diff -r e53d59d23530 javacard.project/src/org/netbeans/modules/javacard/project/customizer/CustomizerSources.java --- a/javacard.project/src/org/netbeans/modules/javacard/project/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/javacard.project/src/org/netbeans/modules/javacard/project/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -51,7 +51,6 @@ import org.openide.util.NbBundle; import javax.swing.*; -import javax.swing.plaf.UIResource; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import java.awt.*; @@ -61,14 +60,11 @@ import java.awt.event.ComponentEvent; import java.io.File; import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.IllegalCharsetNameException; import java.util.HashSet; import java.util.Set; -import java.util.logging.Logger; import javax.swing.table.DefaultTableModel; import org.netbeans.modules.javacard.common.GuiUtils; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; /** * Customizer panel "Sources": source roots, level, includes/excludes. @@ -115,8 +111,8 @@ this.originalEncoding = Charset.defaultCharset().name(); } - this.encoding.setModel(new EncodingModel(this.originalEncoding)); - this.encoding.setRenderer(new EncodingRenderer()); + this.encoding.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); + this.encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { //NOI18N this.encoding.putClientProperty ("JComboBox.isTableCellEditor", Boolean.TRUE); //NOI18N @@ -208,89 +204,7 @@ private void enableSourceLevel () { this.sourceLevel.setEnabled(sourceLevel.getItemCount()>0); } - - - private static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - public EncodingRenderer() { - setOpaque(true); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - setName("ComboBox.listRenderer"); // NOI18N - setText(((Charset) value).displayName()); - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - - } - - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel (String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset (originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).info( - "IllegalCharsetName: " + originalEncoding); //NOI18N - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset (String name) { - super (name, new String[0]); - } - - @Override - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - @Override - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - @Override - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } -} - private static class ResizableRowHeightTable extends JTable { private boolean needResize = true; diff -r e53d59d23530 maven/manifest.mf --- a/maven/manifest.mf Wed Mar 24 17:01:00 2010 +0100 +++ b/maven/manifest.mf Wed Mar 24 18:23:29 2010 -0400 @@ -1,7 +1,7 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.modules.maven/1 OpenIDE-Module-Requires: org.netbeans.api.javahelp.Help -OpenIDE-Module-Specification-Version: 1.6 +OpenIDE-Module-Specification-Version: 1.7 OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/maven/Bundle.properties OpenIDE-Module-Layer: org/netbeans/modules/maven/layer.xml OpenIDE-Module-Install: org/netbeans/modules/maven/ModInstall.class diff -r e53d59d23530 maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java --- a/maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java Wed Mar 24 17:01:00 2010 +0100 +++ b/maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java Wed Mar 24 18:23:29 2010 -0400 @@ -60,6 +60,7 @@ import org.netbeans.api.java.queries.SourceLevelQuery; import org.netbeans.api.queries.FileEncodingQuery; import org.netbeans.modules.maven.api.ModelUtils; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; @@ -115,8 +116,8 @@ } defaultEncoding = Charset.defaultCharset().toString(); - comEncoding.setModel(new EncodingModel(encoding)); - comEncoding.setRenderer(new EncodingRenderer()); + comEncoding.setModel(ProjectCustomizer.createEncodingModel(encoding)); + comEncoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); comSourceLevel.addActionListener(new ActionListener() { @Override @@ -163,68 +164,6 @@ } } - - - private static class EncodingRenderer extends DefaultListCellRenderer { - - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - return super.getListCellRendererComponent(list, ((Charset)value).displayName(), index, isSelected, cellHasFocus); - } - } - - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel (String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset (originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).info("IllegalCharsetName: " + originalEncoding); //NOI18N - } - } - if (defEnc == null) { - defEnc = FileEncodingQuery.getDefaultEncoding(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset (String name) { - super (name, new String[0]); - } - - @Override - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - @Override - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - @Override - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } -} - /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is diff -r e53d59d23530 php.project/manifest.mf --- a/php.project/manifest.mf Wed Mar 24 17:01:00 2010 +0100 +++ b/php.project/manifest.mf Wed Mar 24 18:23:29 2010 -0400 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 AutoUpdate-Show-In-Client: false -OpenIDE-Module-Specification-Version: 2.25 +OpenIDE-Module-Specification-Version: 2.26 OpenIDE-Module: org.netbeans.modules.php.project OpenIDE-Module-Layer: org/netbeans/modules/php/project/resources/layer.xml OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/php/project/resources/Bundle.properties diff -r e53d59d23530 php.project/nbproject/project.xml --- a/php.project/nbproject/project.xml Wed Mar 24 17:01:00 2010 +0100 +++ b/php.project/nbproject/project.xml Wed Mar 24 18:23:29 2010 -0400 @@ -201,7 +201,7 @@ 1 - 1.22 + 1.41 diff -r e53d59d23530 php.project/src/org/netbeans/modules/php/project/ui/Utils.java --- a/php.project/src/org/netbeans/modules/php/project/ui/Utils.java Wed Mar 24 17:01:00 2010 +0100 +++ b/php.project/src/org/netbeans/modules/php/project/ui/Utils.java Wed Mar 24 18:23:29 2010 -0400 @@ -617,92 +617,6 @@ return secure; } - public static class EncodingModel extends DefaultComboBoxModel { - private static final long serialVersionUID = -3139920099217726436L; - - public EncodingModel() { - this(null); - } - - public EncodingModel(String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null && originalEncoding != null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset(originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(EncodingModel.class.getName()).info("IllegalCharsetName: " + originalEncoding); - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - public static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - private static final long serialVersionUID = 3196531352192214602L; - - public EncodingRenderer() { - setOpaque(true); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, - boolean cellHasFocus) { - setName("ComboBox.listRenderer"); // NOI18N - // #175238 - if (value != null) { - assert value instanceof Charset; - setText(((Charset) value).displayName()); - } - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset(String name) { - super(name, new String[0]); - } - - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } - } - /** * Display Options dialog with PHP > General panel preselected. */ diff -r e53d59d23530 php.project/src/org/netbeans/modules/php/project/ui/customizer/CustomizerSources.java --- a/php.project/src/org/netbeans/modules/php/project/ui/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/php.project/src/org/netbeans/modules/php/project/ui/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -66,11 +66,10 @@ import org.netbeans.modules.php.project.ui.LocalServer; import org.netbeans.modules.php.project.ui.LocalServerController; import org.netbeans.modules.php.project.ui.Utils; -import org.netbeans.modules.php.project.ui.Utils.EncodingModel; -import org.netbeans.modules.php.project.ui.Utils.EncodingRenderer; import org.netbeans.modules.php.project.ui.Utils.PhpVersionComboBoxModel; import org.netbeans.modules.php.project.ui.SourcesFolderProvider; import org.netbeans.spi.project.support.ant.PropertyUtils; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.netbeans.spi.project.ui.support.ProjectCustomizer.Category; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; @@ -174,8 +173,8 @@ if (originalEncoding == null) { originalEncoding = Charset.defaultCharset().name(); } - encodingComboBox.setRenderer(new EncodingRenderer()); - encodingComboBox.setModel(new EncodingModel(originalEncoding)); + encodingComboBox.setRenderer(ProjectCustomizer.createEncodingRenderer()); + encodingComboBox.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { // NOI18N encodingComboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); // NOI18N diff -r e53d59d23530 php.project/src/org/netbeans/modules/php/project/ui/wizards/ConfigureExistingProjectPanelVisual.java --- a/php.project/src/org/netbeans/modules/php/project/ui/wizards/ConfigureExistingProjectPanelVisual.java Wed Mar 24 17:01:00 2010 +0100 +++ b/php.project/src/org/netbeans/modules/php/project/ui/wizards/ConfigureExistingProjectPanelVisual.java Wed Mar 24 18:23:29 2010 -0400 @@ -58,9 +58,8 @@ import org.netbeans.modules.php.project.ui.LastUsedFolders; import org.netbeans.modules.php.project.ui.LocalServer; import org.netbeans.modules.php.project.ui.Utils; -import org.netbeans.modules.php.project.ui.Utils.EncodingModel; -import org.netbeans.modules.php.project.ui.Utils.EncodingRenderer; import org.netbeans.modules.php.project.ui.Utils.PhpVersionComboBoxModel; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.awt.Mnemonics; import org.openide.util.NbBundle; @@ -82,8 +81,8 @@ phpVersionComboBox.setModel(new PhpVersionComboBoxModel()); - encodingComboBox.setModel(new EncodingModel()); - encodingComboBox.setRenderer(new EncodingRenderer()); + encodingComboBox.setModel(ProjectCustomizer.createEncodingModel(Charset.defaultCharset().name())); + encodingComboBox.setRenderer(ProjectCustomizer.createEncodingRenderer()); } @Override diff -r e53d59d23530 php.project/src/org/netbeans/modules/php/project/ui/wizards/ConfigureNewProjectPanelVisual.java --- a/php.project/src/org/netbeans/modules/php/project/ui/wizards/ConfigureNewProjectPanelVisual.java Wed Mar 24 17:01:00 2010 +0100 +++ b/php.project/src/org/netbeans/modules/php/project/ui/wizards/ConfigureNewProjectPanelVisual.java Wed Mar 24 18:23:29 2010 -0400 @@ -57,9 +57,8 @@ import org.netbeans.modules.php.project.ui.LastUsedFolders; import org.netbeans.modules.php.project.ui.LocalServer; import org.netbeans.modules.php.project.ui.LocalServerController; -import org.netbeans.modules.php.project.ui.Utils.EncodingModel; -import org.netbeans.modules.php.project.ui.Utils.EncodingRenderer; import org.netbeans.modules.php.project.ui.Utils.PhpVersionComboBoxModel; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.awt.Mnemonics; import org.openide.util.NbBundle; @@ -84,8 +83,8 @@ phpVersionComboBox.setModel(new PhpVersionComboBoxModel()); - encodingComboBox.setModel(new EncodingModel()); - encodingComboBox.setRenderer(new EncodingRenderer()); + encodingComboBox.setModel(ProjectCustomizer.createEncodingModel(Charset.defaultCharset().name())); + encodingComboBox.setRenderer(ProjectCustomizer.createEncodingRenderer()); } @Override diff -r e53d59d23530 projectuiapi/nbproject/project.properties --- a/projectuiapi/nbproject/project.properties Wed Mar 24 17:01:00 2010 +0100 +++ b/projectuiapi/nbproject/project.properties Wed Mar 24 18:23:29 2010 -0400 @@ -39,7 +39,7 @@ javac.compilerargs=-Xlint -Xlint:-serial javac.source=1.6 -spec.version.base=1.41.0 +spec.version.base=1.41.1 is.autoload=true javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml diff -r e53d59d23530 projectuiapi/src/org/netbeans/spi/project/ui/support/ProjectCustomizer.java --- a/projectuiapi/src/org/netbeans/spi/project/ui/support/ProjectCustomizer.java Wed Mar 24 17:01:00 2010 +0100 +++ b/projectuiapi/src/org/netbeans/spi/project/ui/support/ProjectCustomizer.java Wed Mar 24 18:23:29 2010 -0400 @@ -41,6 +41,7 @@ package org.netbeans.spi.project.ui.support; +import java.awt.Component; import java.awt.Dialog; import java.awt.Image; import java.awt.event.ActionListener; @@ -49,6 +50,10 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.IllegalCharsetNameException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -56,8 +61,13 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import javax.swing.ComboBoxModel; +import javax.swing.DefaultComboBoxModel; +import javax.swing.DefaultListCellRenderer; import javax.swing.JComponent; +import javax.swing.JList; import javax.swing.JPanel; +import javax.swing.ListCellRenderer; import org.netbeans.modules.project.uiapi.CategoryModel; import org.netbeans.modules.project.uiapi.CategoryView; @@ -774,4 +784,92 @@ return context; } } + + /** + * Create a new cell renderer for lists or combo boxes whose model + * object type is Charset. + * @return A renderer + */ + public static ListCellRenderer createEncodingRenderer() { + return new EncodingRenderer(); + } + + /** + * Create a new combo box model of all available Charsets + * whose initial selection is a Charset with the provided name. + * If the provided name is null or not a known character set, + * a dummy Charset instance will be used for the selection. + * + * @param initialCharset The initial character encoding, e.g. "UTF-8" or + * Charset.defaultCharset().name() + * @return A combo box model of all available character encodings + */ + public static ComboBoxModel createEncodingModel(String initialCharset) { + return new EncodingModel(initialCharset); + } + + private static final class EncodingRenderer extends DefaultListCellRenderer { + EncodingRenderer() { + //Needed for synth? + setName ("ComboBox.listRenderer"); //NOI18N + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean isLeadSelection) { + Object val = value == null ? "" : //NOI18N + value instanceof Charset ? ((Charset) value).displayName() : + value.toString(); + setText(val.toString()); + setIcon(null); + return this; + } + } + + private static final class EncodingModel extends DefaultComboBoxModel { + + EncodingModel (String originalEncoding) { + Charset defEnc = null; + for (Charset c : Charset.availableCharsets().values()) { + if (c.name().equals(originalEncoding)) { + defEnc = c; + } + addElement(c); + } + if (defEnc == null) { + //Create artificial Charset to keep the original value + //May happen when the project was set up on the platform + //which supports more encodings + try { + defEnc = new UnknownCharset (originalEncoding); + addElement(defEnc); + } catch (IllegalCharsetNameException e) { + //The source.encoding property is completely broken + Logger.getLogger(this.getClass().getName()).info("IllegalCharsetName: " + originalEncoding); + } + } + if (defEnc == null) { + defEnc = Charset.defaultCharset(); + } + setSelectedItem(defEnc); + } + + private static final class UnknownCharset extends Charset { + UnknownCharset (String name) { + super (name, new String[0]); + } + + public boolean contains(Charset c) { + return false; + } + + public CharsetDecoder newDecoder() { + throw new UnsupportedOperationException(); + } + + public CharsetEncoder newEncoder() { + throw new UnsupportedOperationException(); + } + } + } } diff -r e53d59d23530 python.project/manifest.mf --- a/python.project/manifest.mf Wed Mar 24 17:01:00 2010 +0100 +++ b/python.project/manifest.mf Wed Mar 24 18:23:29 2010 -0400 @@ -2,6 +2,6 @@ OpenIDE-Module: org.netbeans.modules.python.project OpenIDE-Module-Layer: org/netbeans/modules/python/project/layer.xml OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/python/project/Bundle.properties -OpenIDE-Module-Specification-Version: 0.1 +OpenIDE-Module-Specification-Version: 0.2 AutoUpdate-Show-In-Client: false diff -r e53d59d23530 python.project/nbproject/project.xml --- a/python.project/nbproject/project.xml Wed Mar 24 17:01:00 2010 +0100 +++ b/python.project/nbproject/project.xml Wed Mar 24 18:23:29 2010 -0400 @@ -73,7 +73,7 @@ 1 - 1.24.1.6 + 1.41.1.6 diff -r e53d59d23530 python.project/src/org/netbeans/modules/python/project/ui/customizer/CustomizerSources.java --- a/python.project/src/org/netbeans/modules/python/project/ui/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/python.project/src/org/netbeans/modules/python/project/ui/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -72,6 +72,7 @@ import javax.swing.table.TableModel; import org.netbeans.modules.python.project.ui.Utils; import org.netbeans.modules.python.project.util.Pair; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; import org.openide.filesystems.FileObject; @@ -140,8 +141,8 @@ this.originalEncoding = Charset.defaultCharset().name(); } - this.encoding.setModel(new EncodingModel(this.originalEncoding)); - this.encoding.setRenderer(new EncodingRenderer()); + this.encoding.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); + this.encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { //NOI18N this.encoding.putClientProperty ("JComboBox.isTableCellEditor", Boolean.TRUE); //NOI18N @@ -227,35 +228,6 @@ return new HelpCtx (CustomizerSources.class); } - private static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - - public EncodingRenderer() { - setOpaque(true); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - setName("ComboBox.listRenderer"); // NOI18N - setText(((Charset) value).displayName()); - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - - } - private class MediatorListener implements ChangeListener { public void stateChanged(ChangeEvent e) { @@ -280,54 +252,6 @@ } - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel (String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset (originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).info("IllegalCharsetName: " + originalEncoding); - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset (String name) { - super (name, new String[0]); - } - - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } -} - private static class ResizableRowHeightTable extends JTable { private boolean needResize = true; diff -r e53d59d23530 ruby.project/manifest.mf --- a/ruby.project/manifest.mf Wed Mar 24 17:01:00 2010 +0100 +++ b/ruby.project/manifest.mf Wed Mar 24 18:23:29 2010 -0400 @@ -4,5 +4,5 @@ OpenIDE-Module-Install: org/netbeans/modules/ruby/rubyproject/RubyProjectModuleInstaller.class OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/ruby/rubyproject/Bundle.properties OpenIDE-Module-Needs: javax.script.ScriptEngine.freemarker -OpenIDE-Module-Specification-Version: 1.23 +OpenIDE-Module-Specification-Version: 1.24 AutoUpdate-Show-In-Client: false diff -r e53d59d23530 ruby.project/nbproject/project.xml --- a/ruby.project/nbproject/project.xml Wed Mar 24 17:01:00 2010 +0100 +++ b/ruby.project/nbproject/project.xml Wed Mar 24 18:23:29 2010 -0400 @@ -136,7 +136,7 @@ 1 - 1.31 + 1.41 diff -r e53d59d23530 ruby.project/src/org/netbeans/modules/ruby/rubyproject/ui/customizer/CustomizerSources.java --- a/ruby.project/src/org/netbeans/modules/ruby/rubyproject/ui/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/ruby.project/src/org/netbeans/modules/ruby/rubyproject/ui/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -58,6 +58,7 @@ import javax.swing.JPanel; import javax.swing.UIManager; import org.netbeans.modules.ruby.rubyproject.RubyProject; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; import org.openide.filesystems.FileObject; @@ -119,7 +120,7 @@ } this.encoding.setModel(new EncodingModel(this.originalEncoding)); - this.encoding.setRenderer(new EncodingRenderer()); + this.encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { //NOI18N @@ -160,85 +161,7 @@ public HelpCtx getHelpCtx() { return new HelpCtx (CustomizerSources.class); - } - - private static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - - public EncodingRenderer() { - setOpaque(true); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - setName("ComboBox.listRenderer"); // NOI18N - setText(((Charset) value).displayName()); - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - - } - - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel (String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset (originalEncoding); - addElement(defEnc); - } catch (IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).info("IllegalCharsetName: " + originalEncoding); - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset (String name) { - super (name, new String[0]); - } - - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } -} - + } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is diff -r e53d59d23530 web.project/nbproject/project.properties --- a/web.project/nbproject/project.properties Wed Mar 24 17:01:00 2010 +0100 +++ b/web.project/nbproject/project.properties Wed Mar 24 18:23:29 2010 -0400 @@ -53,7 +53,7 @@ javac.compilerargs=-Xlint:unchecked javadoc.arch=${basedir}/arch.xml -spec.version.base=1.23.0 +spec.version.base=1.23.1 # needed for the TestUtil class test.unit.cp.extra= diff -r e53d59d23530 web.project/src/org/netbeans/modules/web/project/ui/customizer/CustomizerSources.java --- a/web.project/src/org/netbeans/modules/web/project/ui/customizer/CustomizerSources.java Wed Mar 24 17:01:00 2010 +0100 +++ b/web.project/src/org/netbeans/modules/web/project/ui/customizer/CustomizerSources.java Wed Mar 24 18:23:29 2010 -0400 @@ -74,6 +74,7 @@ import org.netbeans.spi.project.support.ant.PropertyUtils; import org.netbeans.modules.web.project.WebProject; import org.netbeans.spi.java.project.support.ui.IncludeExcludeVisualizer; +import org.netbeans.spi.project.ui.support.ProjectCustomizer; import org.openide.DialogDescriptor; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; @@ -154,8 +155,8 @@ this.originalEncoding = Charset.defaultCharset().name(); } - this.encoding.setModel(new EncodingModel(this.originalEncoding)); - this.encoding.setRenderer(new EncodingRenderer()); + this.encoding.setModel(ProjectCustomizer.createEncodingModel(originalEncoding)); + this.encoding.setRenderer(ProjectCustomizer.createEncodingRenderer()); final String lafid = UIManager.getLookAndFeel().getID(); if (!"Aqua".equals(lafid)) { // NOI18N encoding.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); // NOI18N @@ -640,81 +641,4 @@ private javax.swing.JLabel webInfLabel; private javax.swing.JTextField webInfTextField; // End of variables declaration//GEN-END:variables - - private static class EncodingRenderer extends JLabel implements ListCellRenderer, UIResource { - - public EncodingRenderer() { - setOpaque(true); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - assert value instanceof Charset; - setName("ComboBox.listRenderer"); // NOI18N - setText(((Charset) value).displayName()); - setIcon(null); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } else { - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - return this; - } - - @Override - public String getName() { - String name = super.getName(); - return name == null ? "ComboBox.renderer" : name; // NOI18N - } - - } - - private static class EncodingModel extends DefaultComboBoxModel { - - public EncodingModel(String originalEncoding) { - Charset defEnc = null; - for (Charset c : Charset.availableCharsets().values()) { - if (c.name().equals(originalEncoding)) { - defEnc = c; - } - addElement(c); - } - if (defEnc == null) { - //Create artificial Charset to keep the original value - //May happen when the project was set up on the platform - //which supports more encodings - try { - defEnc = new UnknownCharset(originalEncoding); - addElement(defEnc); - } catch (java.nio.charset.IllegalCharsetNameException e) { - //The source.encoding property is completely broken - Logger.getLogger(this.getClass().getName()).info("IllegalCharsetName: " + originalEncoding); - } - } - if (defEnc == null) { - defEnc = Charset.defaultCharset(); - } - setSelectedItem(defEnc); - } - } - - private static class UnknownCharset extends Charset { - - UnknownCharset(String name) { - super(name, new String[0]); - } - - public boolean contains(Charset c) { - throw new UnsupportedOperationException(); - } - - public CharsetDecoder newDecoder() { - throw new UnsupportedOperationException(); - } - - public CharsetEncoder newEncoder() { - throw new UnsupportedOperationException(); - } - } }