You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2022/02/21 19:49:55 UTC

[netbeans] branch master updated: Larger icon sizes missing in platform branding UI #3544

This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 83a929c  Larger icon sizes missing in platform branding UI #3544
     new 76be2da  Merge pull request #3551 from aldobrucale/branding-larger-icons
83a929c is described below

commit 83a929c1310440c38846d421acefd8b17d37ddcb
Author: Aldo Brucale <al...@imavis.com>
AuthorDate: Mon Jan 31 20:33:15 2022 +0100

    Larger icon sizes missing in platform branding UI #3544
---
 .../apisupport/project/spi/BrandingModel.java      |  44 ++-
 .../project/ui/branding/BasicBrandingPanel.form    | 250 +++++--------
 .../project/ui/branding/BasicBrandingPanel.java    | 390 +++++++++------------
 .../project/ui/branding/Bundle.properties          |   3 -
 4 files changed, 300 insertions(+), 387 deletions(-)

diff --git a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/spi/BrandingModel.java b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/spi/BrandingModel.java
index 936225f..7f438dc 100644
--- a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/spi/BrandingModel.java
+++ b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/spi/BrandingModel.java
@@ -68,6 +68,9 @@ public abstract class BrandingModel {
     private @NullAllowed BrandingSupport.BrandedFile icon48 = null;
     private BrandingSupport.BrandedFile icon16 = null;
     private BrandingSupport.BrandedFile icon32 = null;
+    private BrandingSupport.BrandedFile icon256 = null;
+    private BrandingSupport.BrandedFile icon512 = null;
+    private BrandingSupport.BrandedFile icon1024 = null;
     
     /** representation of bundle keys depending on app.title */
     private BrandingSupport.BundleKey productInformation = null;
@@ -195,6 +198,12 @@ public abstract class BrandingModel {
                 return icon32 != null ? icon32.getBrandingSource() : null;
             case 48:
                 return icon48 != null ? icon48.getBrandingSource() : null;
+            case 256:
+                return icon256 != null ? icon256.getBrandingSource() : null;
+            case 512:
+                return icon512 != null ? icon512.getBrandingSource() : null;
+            case 1024:
+                return icon1024 != null ? icon1024.getBrandingSource() : null;
         }
         throw new IllegalArgumentException("Invalid icon size: " + size);
     }
@@ -212,6 +221,15 @@ public abstract class BrandingModel {
                 case 48:
                     icon = icon48;
                     break;
+                case 256:
+                    icon = icon256;
+                    break;
+                case 512:
+                    icon = icon512;
+                    break;
+                case 1024:
+                    icon = icon1024;
+                    break;
                 default:
                     throw new IllegalArgumentException("Invalid icon size: " + size);
             }
@@ -258,6 +276,18 @@ public abstract class BrandingModel {
             if (icon32 != null) {
                 getBranding().brandFile(icon32, getScaleAndStoreIconTask(icon32, 32, 32));
             }
+
+            if (icon256 != null) {
+                getBranding().brandFile(icon256, getScaleAndStoreIconTask(icon256, 256, 256));
+            }
+
+            if (icon512 != null) {
+                getBranding().brandFile(icon512, getScaleAndStoreIconTask(icon512, 512, 512));
+            }
+            
+            if (icon1024 != null) {
+                getBranding().brandFile(icon1024, getScaleAndStoreIconTask(icon1024, 1024, 1024));
+            }
                                     
             getBranding().brandBundleKeys(splashKeys);
             if (splash != null) {
@@ -444,6 +474,18 @@ public abstract class BrandingModel {
         icon32 = getBranding().getBrandedFile(
                 "org.netbeans.core.startup",//NOI18N
                 "org/netbeans/core/startup/frame32.gif");//NOI18N
+        
+        icon256 = getBranding().getBrandedFile(
+                "org.netbeans.core.startup",//NOI18N
+                "org/netbeans/core/startup/frame256.png");//NOI18N
+        
+        icon512 = getBranding().getBrandedFile(
+                "org.netbeans.core.startup",//NOI18N
+                "org/netbeans/core/startup/frame512.png");//NOI18N
+        
+        icon1024 = getBranding().getBrandedFile(
+                "org.netbeans.core.startup",//NOI18N
+                "org/netbeans/core/startup/frame1024.png");//NOI18N
 
         splash = getBranding().getBrandedFile(
                 "org.netbeans.core.startup",//NOI18N
@@ -657,7 +699,7 @@ public abstract class BrandingModel {
         generalResourceBundleKeys.clear();
         
         internationalizedResourceBundleKeys.clear();
-}
+    }
 
     private String backslashesToSlashes (String text) {
         return text.replace('\\', '/'); // NOI18N
diff --git a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.form b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.form
index f15f67a..57b301d 100644
--- a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.form
+++ b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.form
@@ -1,4 +1,4 @@
-<?xml version="1.1" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
 
 <!--
 
@@ -22,201 +22,143 @@
 -->
 
 <Form version="1.2" maxVersion="1.2" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
-  <NonVisualComponents>
-    <Component class="javax.swing.ButtonGroup" name="buttonGroup1">
-    </Component>
-  </NonVisualComponents>
   <AuxValues>
     <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
     <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
     <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
     <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
     <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
     <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
     <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
     <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
-    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
   </AuxValues>
 
-  <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace min="-2" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="title" min="-2" pref="170" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="titleValue" max="32767" attributes="0"/>
+                  </Group>
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="listScrollPane" min="-2" pref="264" max="-2" attributes="0"/>
+                      <EmptySpace min="-2" max="-2" attributes="0"/>
+                      <Group type="103" groupAlignment="0" attributes="0">
+                          <Component id="browse" alignment="0" min="-2" max="-2" attributes="0"/>
+                          <Component id="previewScrollPane" alignment="0" pref="319" max="32767" attributes="0"/>
+                      </Group>
+                  </Group>
+              </Group>
+              <EmptySpace min="-2" max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <Group type="102" alignment="0" attributes="0">
+              <EmptySpace max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="3" attributes="0">
+                  <Component id="title" alignment="3" min="-2" max="-2" attributes="0"/>
+                  <Component id="titleValue" alignment="3" min="-2" max="-2" attributes="0"/>
+              </Group>
+              <EmptySpace type="unrelated" max="-2" attributes="0"/>
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <Group type="102" alignment="0" attributes="0">
+                      <Component id="browse" min="-2" max="-2" attributes="0"/>
+                      <EmptySpace max="-2" attributes="0"/>
+                      <Component id="previewScrollPane" pref="389" max="32767" attributes="0"/>
+                  </Group>
+                  <Component id="listScrollPane" alignment="0" max="32767" attributes="0"/>
+              </Group>
+              <EmptySpace max="-2" attributes="0"/>
+          </Group>
+      </Group>
+    </DimensionLayout>
+  </Layout>
   <SubComponents>
     <Component class="javax.swing.JLabel" name="title">
       <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="titleValue"/>
-        </Property>
         <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
           <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="LBL_AppTitle" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
         </Property>
       </Properties>
       <AccessibilityProperties>
         <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="ACS_Title" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
+          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="ACS_Title" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
         </Property>
       </AccessibilityProperties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="10" insetsLeft="10" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
     </Component>
     <Component class="javax.swing.JTextField" name="titleValue">
       <Properties>
         <Property name="columns" type="int" value="20"/>
       </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="1" gridY="0" gridWidth="2" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="10" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
     </Component>
-    <Component class="javax.swing.JLabel" name="iconPreview48">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="iconPreview48"/>
-        </Property>
-      </Properties>
+    <Container class="javax.swing.JScrollPane" name="listScrollPane">
       <AuxValues>
-        <AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ImagePreview(48,48);"/>
+        <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
+        <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
+        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
       </AuxValues>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="1" gridY="3" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="0" insetsBottom="0" insetsRight="12" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JButton" name="browse48">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="CTL_Browse" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <AccessibilityProperties>
-        <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="ACS_Browse" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
-        </Property>
-      </AccessibilityProperties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browse48ActionPerformed"/>
-      </Events>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="3" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="icon48">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="LBL_AppIcon48" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="10" insetsBottom="0" insetsRight="12" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="icon16">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="LBL_AppIcon16" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="23" insetsLeft="10" insetsBottom="0" insetsRight="12" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="iconPreview16">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="iconPreview48"/>
-        </Property>
-      </Properties>
-      <AuxValues>
-        <AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ImagePreview(16,16);"/>
-      </AuxValues>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="23" insetsLeft="0" insetsBottom="0" insetsRight="12" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JButton" name="browse16">
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Component class="javax.swing.JList" name="sizeList">
+          <Events>
+            <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="sizeListValueChanged"/>
+          </Events>
+          <AuxValues>
+            <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;Map.Entry&lt;Integer, URL&gt;&gt;"/>
+          </AuxValues>
+        </Component>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JButton" name="browse">
       <Properties>
         <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="CTL_Browse" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
+          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="CTL_Browse" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
         </Property>
       </Properties>
       <AccessibilityProperties>
         <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="ACS_Browse" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
+          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="ACS_Browse" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
         </Property>
       </AccessibilityProperties>
       <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browse16ActionPerformed"/>
+        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browseActionPerformed"/>
       </Events>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="1" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="23" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="icon32">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="LBL_AppIcon32" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="10" insetsBottom="0" insetsRight="12" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
     </Component>
-    <Component class="javax.swing.JLabel" name="iconPreview32">
-      <Properties>
-        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
-          <ComponentRef name="iconPreview48"/>
-        </Property>
-      </Properties>
+    <Container class="javax.swing.JScrollPane" name="previewScrollPane">
       <AuxValues>
-        <AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ImagePreview(32,32);"/>
+        <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
+        <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
       </AuxValues>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="1" gridY="2" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="0" insetsBottom="0" insetsRight="12" anchor="17" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JButton" name="browse32">
-      <Properties>
-        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="CTL_Browse" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
-        </Property>
-      </Properties>
-      <AccessibilityProperties>
-        <Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
-          <ResourceString bundle="org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties" key="ACS_Browse" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
-        </Property>
-      </AccessibilityProperties>
-      <Events>
-        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="browse32ActionPerformed"/>
-      </Events>
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="5" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
-    <Component class="javax.swing.JLabel" name="lblSpacer">
-      <Constraints>
-        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
-          <GridBagConstraints gridX="3" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="10" insetsRight="10" anchor="10" weightX="1.0" weightY="1.0"/>
-        </Constraint>
-      </Constraints>
-    </Component>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+      <SubComponents>
+        <Container class="javax.swing.JPanel" name="preview">
+          <AuxValues>
+            <AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new ImagePreview()"/>
+          </AuxValues>
+
+          <Layout>
+            <DimensionLayout dim="0">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="1058" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+            <DimensionLayout dim="1">
+              <Group type="103" groupAlignment="0" attributes="0">
+                  <EmptySpace min="0" pref="1898" max="32767" attributes="0"/>
+              </Group>
+            </DimensionLayout>
+          </Layout>
+        </Container>
+      </SubComponents>
+    </Container>
   </SubComponents>
 </Form>
diff --git a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.java b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.java
index 4c713c1..11233d4 100644
--- a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.java
+++ b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/BasicBrandingPanel.java
@@ -16,20 +16,29 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.netbeans.modules.apisupport.project.ui.branding;
 
 import org.netbeans.modules.apisupport.project.spi.BrandingModel;
-import java.awt.AlphaComposite;
+import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Graphics;
-import java.awt.Graphics2D;
+import java.awt.image.BufferedImage;
 import java.io.File;
+import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import javax.swing.ImageIcon;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import static java.util.stream.Collectors.toMap;
+import java.util.stream.IntStream;
+import javax.imageio.ImageIO;
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.DefaultListModel;
 import javax.swing.JFileChooser;
 import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 import org.netbeans.modules.apisupport.project.api.UIUtil;
@@ -42,18 +51,33 @@ import org.openide.util.Utilities;
  *
  * @author Radek Matous, S. Aubrecht
  */
-final class BasicBrandingPanel extends AbstractBrandingPanel  {
-    
-    private URL iconSource48;
-    private URL iconSource32;
-    private URL iconSource16;
+final class BasicBrandingPanel extends AbstractBrandingPanel {
 
+    private final SortedMap<Integer, URL> iconSources;
     private boolean titleValueModified;
 
     public BasicBrandingPanel(BrandingModel model) {
         super(NbBundle.getMessage(BasicBrandingPanel.class, "LBL_BasicTab"), model); //NOI18N
-        initComponents();        
-        refresh(); 
+        this.iconSources = IntStream.of(16, 32, 48, 256, 512, 1024).boxed()
+                .collect(toMap(size -> size, model::getIconSource,
+                        (a, b) -> a, TreeMap::new));
+
+        initComponents();
+        final DefaultListModel<Map.Entry<Integer, URL>> listModel = new DefaultListModel<>();
+        iconSources.entrySet().forEach(listModel::addElement);
+        sizeList.setModel(listModel);
+        sizeList.setCellRenderer(new DefaultListCellRenderer() {
+            @Override
+            public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+                final JLabel ret = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+                final Integer size = ((Map.Entry<Integer, URL>) value).getKey();
+                ret.setText(String.format("Application Icon (%dx%d)", size, size));
+                return ret;
+            }
+        });
+        sizeList.setSelectedIndex(0);
+
+        refresh();
         checkValidity();
         DocumentListener textFieldChangeListener = new UIUtil.DocumentAdapter() {
             @Override
@@ -66,243 +90,165 @@ final class BasicBrandingPanel extends AbstractBrandingPanel  {
         titleValue.getDocument().addDocumentListener(textFieldChangeListener);
         titleValueModified = false;
     }
-    
+
     protected void checkValidity() {
         boolean panelValid = true;
-        
+
         if (panelValid && titleValue.getText().trim().length() == 0) {
             setErrorMessage(NbBundle.getMessage(BasicBrandingPanel.class, "ERR_EmptyTitle"));//NOI18N
             panelValid = false;
-        }        
-        
-        if (panelValid) {        
+        }
+
+        if (panelValid) {
             setErrorMessage(null);
         }
         setValid(panelValid);
     }
-    
+
     void refresh() {
         BrandingModel model = getBranding();
         model.brandingEnabledRefresh();
         model.initTitle(true);
         titleValue.setText(model.getTitle());
-        iconSource48 = model.getIconSource(48);
-        if (iconSource48 != null) {
-            ((ImagePreview)iconPreview48).setImage(new ImageIcon(iconSource48));
-        }
-        iconSource32 = model.getIconSource(32);
-        if (iconSource32 != null) {
-            ((ImagePreview)iconPreview32).setImage(new ImageIcon(iconSource32));
-        }
-        iconSource16 = model.getIconSource(16);
-        if (iconSource16 != null) {
-            ((ImagePreview)iconPreview16).setImage(new ImageIcon(iconSource16));
-        }
-        browse16.setEnabled(null != iconSource16 && model.isBrandingEnabled());
-        browse32.setEnabled(null != iconSource32 && model.isBrandingEnabled());
-        browse48.setEnabled(null != iconSource48 && model.isBrandingEnabled());
+        browse.setEnabled(model.isBrandingEnabled());
         titleValue.setEnabled(model.isBrandingEnabled());
     }
-    
-    public @Override void store() {
-        if (titleValueModified)
+
+    public @Override
+    void store() {
+        if (titleValueModified) {
             getBranding().setTitle(titleValue.getText());
-        getBranding().setIconSource(48, iconSource48);
-        getBranding().setIconSource(32, iconSource32);
-        getBranding().setIconSource(16, iconSource16);
+        }
+
+        iconSources.entrySet()
+                .forEach(e -> getBranding().setIconSource(e.getKey(), e.getValue()));
     }
-    
-    /** This method is called from within the constructor to
-     * initialize the form.
-     * WARNING: Do NOT modify this code. The content of this method is
-     * always regenerated by the Form Editor.
+
+    private void setPreview(final URL res) {
+        try {
+            final BufferedImage img = ImageIO.read(res);
+            ((ImagePreview) preview).setImage(img);
+        } catch (IOException ex) {
+            Exceptions.printStackTrace(ex);
+        }
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
      */
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
-        java.awt.GridBagConstraints gridBagConstraints;
 
-        buttonGroup1 = new javax.swing.ButtonGroup();
         title = new javax.swing.JLabel();
         titleValue = new javax.swing.JTextField();
-        iconPreview48 = new ImagePreview(48,48);
-        browse48 = new javax.swing.JButton();
-        icon48 = new javax.swing.JLabel();
-        icon16 = new javax.swing.JLabel();
-        iconPreview16 = new ImagePreview(16,16);
-        browse16 = new javax.swing.JButton();
-        icon32 = new javax.swing.JLabel();
-        iconPreview32 = new ImagePreview(32,32);
-        browse32 = new javax.swing.JButton();
-        lblSpacer = new javax.swing.JLabel();
-
-        setLayout(new java.awt.GridBagLayout());
-
-        title.setLabelFor(titleValue);
+        javax.swing.JScrollPane listScrollPane = new javax.swing.JScrollPane();
+        sizeList = new javax.swing.JList<>();
+        browse = new javax.swing.JButton();
+        javax.swing.JScrollPane previewScrollPane = new javax.swing.JScrollPane();
+        preview = new ImagePreview();
+
         java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/netbeans/modules/apisupport/project/ui/branding/Bundle"); // NOI18N
         org.openide.awt.Mnemonics.setLocalizedText(title, bundle.getString("LBL_AppTitle")); // NOI18N
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 0;
-        gridBagConstraints.gridy = 0;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0);
-        add(title, gridBagConstraints);
-        title.getAccessibleContext().setAccessibleDescription(bundle.getString("ACS_Title")); // NOI18N
 
         titleValue.setColumns(20);
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 1;
-        gridBagConstraints.gridy = 0;
-        gridBagConstraints.gridwidth = 2;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
-        add(titleValue, gridBagConstraints);
-
-        iconPreview48.setLabelFor(iconPreview48);
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 1;
-        gridBagConstraints.gridy = 3;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 12);
-        add(iconPreview48, gridBagConstraints);
-
-        org.openide.awt.Mnemonics.setLocalizedText(browse48, bundle.getString("CTL_Browse")); // NOI18N
-        browse48.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                browse48ActionPerformed(evt);
-            }
-        });
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 3;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
-        gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
-        add(browse48, gridBagConstraints);
-        browse48.getAccessibleContext().setAccessibleDescription(bundle.getString("ACS_Browse")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(icon48, bundle.getString("LBL_AppIcon48")); // NOI18N
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 0;
-        gridBagConstraints.gridy = 3;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 12);
-        add(icon48, gridBagConstraints);
-
-        org.openide.awt.Mnemonics.setLocalizedText(icon16, bundle.getString("LBL_AppIcon16")); // NOI18N
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 0;
-        gridBagConstraints.gridy = 1;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(23, 10, 0, 12);
-        add(icon16, gridBagConstraints);
-
-        iconPreview16.setLabelFor(iconPreview48);
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 1;
-        gridBagConstraints.gridy = 1;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(23, 0, 0, 12);
-        add(iconPreview16, gridBagConstraints);
-
-        org.openide.awt.Mnemonics.setLocalizedText(browse16, bundle.getString("CTL_Browse")); // NOI18N
-        browse16.addActionListener(new java.awt.event.ActionListener() {
-            public void actionPerformed(java.awt.event.ActionEvent evt) {
-                browse16ActionPerformed(evt);
+
+        sizeList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
+            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
+                sizeListValueChanged(evt);
             }
         });
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 1;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
-        gridBagConstraints.insets = new java.awt.Insets(23, 0, 0, 0);
-        add(browse16, gridBagConstraints);
-        browse16.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(BasicBrandingPanel.class, "ACS_Browse")); // NOI18N
-
-        org.openide.awt.Mnemonics.setLocalizedText(icon32, bundle.getString("LBL_AppIcon32")); // NOI18N
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 0;
-        gridBagConstraints.gridy = 2;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(5, 10, 0, 12);
-        add(icon32, gridBagConstraints);
-
-        iconPreview32.setLabelFor(iconPreview48);
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 1;
-        gridBagConstraints.gridy = 2;
-        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
-        gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 12);
-        add(iconPreview32, gridBagConstraints);
-
-        org.openide.awt.Mnemonics.setLocalizedText(browse32, bundle.getString("CTL_Browse")); // NOI18N
-        browse32.addActionListener(new java.awt.event.ActionListener() {
+        listScrollPane.setViewportView(sizeList);
+
+        org.openide.awt.Mnemonics.setLocalizedText(browse, org.openide.util.NbBundle.getMessage(BasicBrandingPanel.class, "CTL_Browse")); // NOI18N
+        browse.addActionListener(new java.awt.event.ActionListener() {
             public void actionPerformed(java.awt.event.ActionEvent evt) {
-                browse32ActionPerformed(evt);
+                browseActionPerformed(evt);
             }
         });
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 2;
-        gridBagConstraints.gridy = 2;
-        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
-        gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
-        add(browse32, gridBagConstraints);
-        browse32.getAccessibleContext().setAccessibleDescription(NbBundle.getMessage(BasicBrandingPanel.class, "ACS_Browse")); // NOI18N
-
-        gridBagConstraints = new java.awt.GridBagConstraints();
-        gridBagConstraints.gridx = 3;
-        gridBagConstraints.gridy = 4;
-        gridBagConstraints.weightx = 1.0;
-        gridBagConstraints.weighty = 1.0;
-        gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 10);
-        add(lblSpacer, gridBagConstraints);
+
+        javax.swing.GroupLayout previewLayout = new javax.swing.GroupLayout(preview);
+        preview.setLayout(previewLayout);
+        previewLayout.setHorizontalGroup(
+            previewLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 1058, Short.MAX_VALUE)
+        );
+        previewLayout.setVerticalGroup(
+            previewLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 1898, Short.MAX_VALUE)
+        );
+
+        previewScrollPane.setViewportView(preview);
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+        this.setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(title, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(titleValue))
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(listScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 264, javax.swing.GroupLayout.PREFERRED_SIZE)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                            .addComponent(browse)
+                            .addComponent(previewScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE))))
+                .addContainerGap())
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(layout.createSequentialGroup()
+                .addContainerGap()
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+                    .addComponent(title)
+                    .addComponent(titleValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addGroup(layout.createSequentialGroup()
+                        .addComponent(browse)
+                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                        .addComponent(previewScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 389, Short.MAX_VALUE))
+                    .addComponent(listScrollPane))
+                .addContainerGap())
+        );
+
+        title.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(BasicBrandingPanel.class, "ACS_Title")); // NOI18N
+        browse.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(BasicBrandingPanel.class, "ACS_Browse")); // NOI18N
     }// </editor-fold>//GEN-END:initComponents
-    
-    private void browse48ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browse48ActionPerformed
-        iconSource48 = browseIcon( (ImagePreview) iconPreview48);
-    }//GEN-LAST:event_browse48ActionPerformed
-
-    private void browse16ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browse16ActionPerformed
-        iconSource16 = browseIcon( (ImagePreview) iconPreview16);
-    }//GEN-LAST:event_browse16ActionPerformed
-
-    private void browse32ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browse32ActionPerformed
-        iconSource32 = browseIcon( (ImagePreview) iconPreview32);
-    }//GEN-LAST:event_browse32ActionPerformed
-        
-    
+
+    private void sizeListValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_sizeListValueChanged
+        setPreview(sizeList.getSelectedValue().getValue());
+    }//GEN-LAST:event_sizeListValueChanged
+
+    private void browseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseActionPerformed
+        final URL res = browseIcon();
+        setPreview(res);
+        setModified();
+        sizeList.getSelectedValue().setValue(res);
+    }//GEN-LAST:event_browseActionPerformed
+
+
     // Variables declaration - do not modify//GEN-BEGIN:variables
-    private javax.swing.JButton browse16;
-    private javax.swing.JButton browse32;
-    private javax.swing.JButton browse48;
-    private javax.swing.ButtonGroup buttonGroup1;
-    private javax.swing.JLabel icon16;
-    private javax.swing.JLabel icon32;
-    private javax.swing.JLabel icon48;
-    private javax.swing.JLabel iconPreview16;
-    private javax.swing.JLabel iconPreview32;
-    private javax.swing.JLabel iconPreview48;
-    private javax.swing.JLabel lblSpacer;
+    private javax.swing.JButton browse;
+    private javax.swing.JPanel preview;
+    private javax.swing.JList<Map.Entry<Integer, URL>> sizeList;
     private javax.swing.JLabel title;
     private javax.swing.JTextField titleValue;
     // End of variables declaration//GEN-END:variables
 
-    private URL browseIcon( ImagePreview preview ) {
+    private URL browseIcon() {
         URL res = null;
         JFileChooser chooser = UIUtil.getIconFileChooser();
         int ret = chooser.showDialog(this, NbBundle.getMessage(getClass(), "LBL_Select")); // NOI18N
         if (ret == JFileChooser.APPROVE_OPTION) {
-            File file =  chooser.getSelectedFile();
+            File file = chooser.getSelectedFile();
             try {
                 res = Utilities.toURI(file).toURL();
-                preview.setImage(new ImageIcon(res));
-                setModified();
             } catch (MalformedURLException ex) {
                 Exceptions.printStackTrace(ex);
             }
@@ -310,40 +256,26 @@ final class BasicBrandingPanel extends AbstractBrandingPanel  {
         return res;
     }
 
-    static class ImagePreview extends JLabel {
-        private ImageIcon image = null;
-        private int width;
-        private int height;
-        ImagePreview(int width, int height){
-            this.width = width;
-            this.height = height;            
-        }
-        
+    private static class ImagePreview extends JPanel {
+
+        private BufferedImage image = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
+
         @Override
-        public void paint(Graphics g) {
-            super.paint(g);
-            Graphics2D g2d = (Graphics2D)g;
-            
-            if (!isEnabled()) {
-                g2d.setComposite(AlphaComposite.getInstance(
-                        AlphaComposite.SRC_OVER, 0.3f));
-            }
-            
-            if ((getWidth() >= width) && (getHeight() >= height) && image != null) {
-                int x = 0;//(getWidth()/2)-(width/2);
-                int y = 0;//(getHeight()/2)-(height/2);
-                g.drawImage(image.getImage(),x, y, width, height, this.getBackground(),null);
-            }
+        protected void paintComponent(Graphics g) {
+            super.paintComponent(g);
+            g.clearRect(0, 0, getWidth(), getHeight());
+            g.drawImage(this.image, 0, 0, image.getWidth(), image.getHeight(), this);
         }
-        
-        private void setImage(ImageIcon image) {
+
+        public void setImage(BufferedImage image) {
             this.image = image;
+            revalidate();
             repaint();
         }
 
         @Override
         public Dimension getPreferredSize() {
-            return new Dimension(width, height);
+            return new Dimension(image.getWidth(), image.getHeight());
         }
     }
 }
diff --git a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties
index 048b6c4..49b9b54 100644
--- a/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties
+++ b/apisupport/apisupport.project/src/org/netbeans/modules/apisupport/project/ui/branding/Bundle.properties
@@ -89,9 +89,6 @@ SuiteCustomizerWindowSystemBranding.cbEnableSliding.AccessibleContext.accessible
 SuiteCustomizerWindowSystemBranding.cbEnableMaximization.AccessibleContext.accessibleName=Maximized Windows
 SuiteCustomizerWindowSystemBranding.AccessibleContext.accessibleName=Window System Features
 SuiteCustomizerWindowSystemBranding.jLabel1.AccessibleContext.accessibleDescription=List of enabled features
-LBL_AppIcon16=Application Icon (16x16):
-LBL_AppIcon32=Application Icon (32x32):
-LBL_AppIcon48=Application Icon (48x48):
 LBL_BasicTab=Basic
 LBL_SplashTab=Splash Screen
 LBL_WindowSystemTab=Window System

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists