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

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


The following commit(s) were added to refs/heads/master by this push:
     new a6ed963  [NETBEANS-1342] Hide the panel for iOS in the Mobile 
Platforms Options (#953)
a6ed963 is described below

commit a6ed9637ccadbd6e47fd2bac34a0d2b73c9d6371
Author: Junichi Yamamoto <junichi0...@gmail.com>
AuthorDate: Sun Oct 28 21:47:49 2018 +0900

    [NETBEANS-1342] Hide the panel for iOS in the Mobile Platforms Options 
(#953)
    
    * [NETBEANS-1342] Hide the panel for iOS in the Mobile Platforms Options
    
    Just hide the panel because the cordova.platforms.ios module is not 
available (see #856)
    
    * Prevent NPE
    
    Just check whether PlatformManager.getPlatform(PlatformManager.IOS_TYPE) is 
null
    
    * Hide iOSPanel in the CordovaPanel
---
 .../netbeans/modules/cordova/CordovaPerformer.java   | 20 +++++++++++---------
 .../cordova/options/MobilePlatformsPanel.java        | 19 +++++++++++++------
 .../modules/cordova/project/CordovaPanel.java        |  6 ++++++
 .../cordova/wizard/CordovaProjectExtender.java       |  7 +++++--
 .../clientproject/cordova/AndroidPlatformTest.java   |  6 ++++--
 5 files changed, 39 insertions(+), 19 deletions(-)

diff --git 
a/webcommon/cordova/src/org/netbeans/modules/cordova/CordovaPerformer.java 
b/webcommon/cordova/src/org/netbeans/modules/cordova/CordovaPerformer.java
index cd976f3..132a7f8 100644
--- a/webcommon/cordova/src/org/netbeans/modules/cordova/CordovaPerformer.java
+++ b/webcommon/cordova/src/org/netbeans/modules/cordova/CordovaPerformer.java
@@ -171,6 +171,7 @@ public class CordovaPerformer implements BuildPerformer {
         if (provider != null &&
                 "ios_1".equals(provider.getActiveBrowser().getId()) && 
                 (target.equals(BuildPerformer.RUN_IOS) || 
target.equals(BuildPerformer.BUILD_IOS)) &&
+                PlatformManager.getPlatform(PlatformManager.IOS_TYPE) != null 
&&
                 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE).getProvisioningProfilePath()
 == null
                 ) {
             throw new IllegalStateException(Bundle.ERR_NO_Provisioning());
@@ -324,15 +325,16 @@ public class CordovaPerformer implements BuildPerformer {
         props.put(PROP_ANDROID_PROJECT_ACTIVITY, activity);//NOI18N
         
         MobilePlatform iosPlatform = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
+        if (iosPlatform != null) {
+            final String provisioningProfilePath = 
iosPlatform.getProvisioningProfilePath();
+            if (provisioningProfilePath != null) {
+                props.put(PROP_PROVISIONING_PROFILE, provisioningProfilePath);
+            }
+            final String codeSignIdentity = iosPlatform.getCodeSignIdentity();
 
-        final String provisioningProfilePath = 
iosPlatform.getProvisioningProfilePath();
-        if (provisioningProfilePath != null) {
-            props.put(PROP_PROVISIONING_PROFILE, provisioningProfilePath);
-        }
-        final String codeSignIdentity = iosPlatform.getCodeSignIdentity();
-
-        if (codeSignIdentity != null) {
-            props.put(PROP_CERTIFICATE_NAME, codeSignIdentity);
+            if (codeSignIdentity != null) {
+                props.put(PROP_CERTIFICATE_NAME, codeSignIdentity);
+            }
         }
 
         //workaround for some strange behavior of ant execution in netbeans
@@ -349,7 +351,7 @@ public class CordovaPerformer implements BuildPerformer {
 
             props.put(PROP_CONFIG, mobileConfig.getId());
             mobileConfig.getDevice().addProperties(props);
-            if (mobileConfig.getId().equals("ios")) { // NOI18N
+            if (mobileConfig.getId().equals("ios") && iosPlatform != null) { 
// NOI18N
                 boolean sdkVerified = false;
                 try {
                     for (SDK sdk:iosPlatform.getSDKs()) {
diff --git 
a/webcommon/cordova/src/org/netbeans/modules/cordova/options/MobilePlatformsPanel.java
 
b/webcommon/cordova/src/org/netbeans/modules/cordova/options/MobilePlatformsPanel.java
index 6f23352..66b586d 100644
--- 
a/webcommon/cordova/src/org/netbeans/modules/cordova/options/MobilePlatformsPanel.java
+++ 
b/webcommon/cordova/src/org/netbeans/modules/cordova/options/MobilePlatformsPanel.java
@@ -24,6 +24,7 @@ import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Collection;
+import java.util.Collections;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JLabel;
 import javax.swing.SwingUtilities;
@@ -49,7 +50,7 @@ final class MobilePlatformsPanel extends javax.swing.JPanel {
     private final MobilePlatformsOptionsPanelController controller;
     private DocumentListener documentL;
     private String codeSignIdentity;
-    private Collection<? extends ProvisioningProfile> provisioningProfiles;
+    private Collection<? extends ProvisioningProfile> provisioningProfiles = 
Collections.emptyList();
     private String provisioningProfilePath;
     private boolean inited = false;
     private RequestProcessor.Task versionTask;
@@ -273,9 +274,11 @@ final class MobilePlatformsPanel extends 
javax.swing.JPanel {
 
     void load() {
         final MobilePlatform iosPlatform = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
-        codeSignIdentity = iosPlatform.getCodeSignIdentity();
-        provisioningProfiles = iosPlatform.getProvisioningProfiles();
-        provisioningProfilePath = iosPlatform.getProvisioningProfilePath();
+        if (iosPlatform != null) {
+            codeSignIdentity = iosPlatform.getCodeSignIdentity();
+            provisioningProfiles = iosPlatform.getProvisioningProfiles();
+            provisioningProfilePath = iosPlatform.getProvisioningProfilePath();
+        }
         SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
@@ -309,8 +312,12 @@ final class MobilePlatformsPanel extends 
javax.swing.JPanel {
     void setupComponenets() {
         if (!inited) {
             removeAll();
-            initComponents();            
-            
+            initComponents();
+            MobilePlatform iosPlatform = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
+            if (iosPlatform == null) {
+                iOSPanel.setVisible(false);
+            }
+
             cordovaPathField.getDocument().addDocumentListener(new 
DocumentListener() {
                 @Override
                 public void insertUpdate(DocumentEvent e) {
diff --git 
a/webcommon/cordova/src/org/netbeans/modules/cordova/project/CordovaPanel.java 
b/webcommon/cordova/src/org/netbeans/modules/cordova/project/CordovaPanel.java
index 4eab675..2053510 100644
--- 
a/webcommon/cordova/src/org/netbeans/modules/cordova/project/CordovaPanel.java
+++ 
b/webcommon/cordova/src/org/netbeans/modules/cordova/project/CordovaPanel.java
@@ -22,6 +22,8 @@ import java.io.IOException;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 import org.netbeans.modules.cordova.CordovaPerformer;
+import org.netbeans.modules.cordova.platforms.api.PlatformManager;
+import org.netbeans.modules.cordova.platforms.spi.MobilePlatform;
 import org.netbeans.modules.cordova.updatetask.SourceConfig;
 import org.netbeans.modules.cordova.wizard.CordovaTemplate;
 import org.openide.util.NbBundle;
@@ -71,6 +73,10 @@ public class CordovaPanel extends javax.swing.JPanel {
     public CordovaPanel() {
         this(null);
         platformsPane.setVisible(true);
+        MobilePlatform iosPlatform = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
+        if (iosPlatform == null) {
+            iOSPanel.setVisible(false);
+        }
     }
     
     public void setControlsEnabled(boolean enabled) {
diff --git 
a/webcommon/cordova/src/org/netbeans/modules/cordova/wizard/CordovaProjectExtender.java
 
b/webcommon/cordova/src/org/netbeans/modules/cordova/wizard/CordovaProjectExtender.java
index 2087a91..c520f7b 100644
--- 
a/webcommon/cordova/src/org/netbeans/modules/cordova/wizard/CordovaProjectExtender.java
+++ 
b/webcommon/cordova/src/org/netbeans/modules/cordova/wizard/CordovaProjectExtender.java
@@ -22,6 +22,7 @@ import 
org.netbeans.modules.cordova.platforms.api.PlatformManager;
 import org.netbeans.modules.cordova.platforms.spi.Device;
 import java.io.File;
 import java.io.IOException;
+import org.netbeans.modules.cordova.platforms.spi.MobilePlatform;
 import org.netbeans.modules.cordova.project.ConfigUtils;
 import org.netbeans.modules.web.clientproject.api.ClientSideModule;
 import org.netbeans.modules.web.clientproject.spi.ClientProjectExtender;
@@ -67,7 +68,8 @@ public class CordovaProjectExtender implements 
ClientProjectExtender {
             ios.put(ConfigUtils.DISPLAY_NAME_PROP, 
Bundle.LBL_iPhoneSimulator());
             ios.put(Device.TYPE_PROP, PlatformManager.IOS_TYPE);
             ios.put(Device.DEVICE_PROP, Device.EMULATOR);
-            ios.put("ios.build.sdk", 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE).getPrefferedTarget().getIdentifier());
 // NOI18N
+            MobilePlatform iosPlatform = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
+            ios.put("ios.build.sdk", iosPlatform == null ? "" : 
iosPlatform.getPrefferedTarget().getIdentifier()); // NOI18N
             ios.put("ios.build.arch", "i386"); // NOI18N
 
             ConfigUtils.createConfigFile(projectRoot, 
PlatformManager.IOS_TYPE, ios);//NOI18N
@@ -82,7 +84,8 @@ public class CordovaProjectExtender implements 
ClientProjectExtender {
             iosdev.put(ConfigUtils.DISPLAY_NAME_PROP, 
Bundle.LBL_iPhoneDevice());
             iosdev.put(Device.TYPE_PROP, PlatformManager.IOS_TYPE);
             iosdev.put(Device.DEVICE_PROP, Device.DEVICE);
-            String sim = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE).getPrefferedTarget().getIdentifier();
+            MobilePlatform iosPlatform = 
PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
+            String sim = iosPlatform == null ? "" : 
iosPlatform.getPrefferedTarget().getIdentifier();
             iosdev.put("ios.build.sdk", sim.replace("iphonesimulator", 
"iphoneos")); // NOI18N
             iosdev.put("ios.build.arch", 
sim.startsWith("iphonesimulator6")?"armv6 armv7":"armv7 armv7s"); // NOI18N
 
diff --git 
a/webcommon/cordova/test/unit/src/org/netbeans/modules/web/clientproject/cordova/AndroidPlatformTest.java
 
b/webcommon/cordova/test/unit/src/org/netbeans/modules/web/clientproject/cordova/AndroidPlatformTest.java
index 039c886..a360983 100644
--- 
a/webcommon/cordova/test/unit/src/org/netbeans/modules/web/clientproject/cordova/AndroidPlatformTest.java
+++ 
b/webcommon/cordova/test/unit/src/org/netbeans/modules/web/clientproject/cordova/AndroidPlatformTest.java
@@ -180,8 +180,10 @@ public SyncPipe(InputStream istrm, OutputStream ostrm) {
     @Test
     public void testListSdks() throws Exception {
         MobilePlatform instance = 
org.netbeans.modules.cordova.platforms.api.PlatformManager.getPlatform(PlatformManager.IOS_TYPE);
-        for (SDK sdks: instance.getSDKs()) {
-            System.out.println(sdks);
+        if (instance != null) {
+            for (SDK sdks : instance.getSDKs()) {
+                System.out.println(sdks);
+            }
         }
     }
     


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

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

Reply via email to