ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java
branchrelease68
changeset 16367 d2820c029d3a
parent 15779 367c7fdb5d23
     1.1 --- a/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java	Wed Sep 23 02:06:44 2009 +0200
     1.2 +++ b/ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java	Sun Aug 22 23:37:11 2010 +0200
     1.3 @@ -48,7 +48,6 @@
     1.4  import org.netbeans.modules.ada.project.ui.Utils;
     1.5  import org.openide.filesystems.FileObject;
     1.6  import org.openide.filesystems.FileUtil;
     1.7 -import org.openide.filesystems.Repository;
     1.8  import org.openide.loaders.DataObject;
     1.9  import org.openide.loaders.InstanceDataObject;
    1.10  import org.openide.util.Exceptions;
    1.11 @@ -63,7 +62,8 @@
    1.12  
    1.13      private final AdaProjectProperties uiProperties;
    1.14      private final DocListener listener;
    1.15 -
    1.16 +    private final AdaPlatformManager manager;
    1.17 +    
    1.18      /** Creates new form CustomizerBuild */
    1.19      public CustomizerBuild(final AdaProjectProperties uiProperties) {
    1.20          assert uiProperties != null;
    1.21 @@ -78,15 +78,36 @@
    1.22  
    1.23          this.platforms.setRenderer(Utils.createPlatformRenderer());
    1.24          this.platforms.setModel(Utils.createPlatformModel());
    1.25 -        final AdaPlatformManager manager = AdaPlatformManager.getInstance();
    1.26 +        manager = AdaPlatformManager.getInstance();
    1.27          String pid = uiProperties.getActivePlatformId();
    1.28          if (pid == null) {
    1.29              pid = manager.getDefaultPlatform();
    1.30          }
    1.31 +
    1.32          final AdaPlatform activePlatform = manager.getPlatform(pid);
    1.33          if (activePlatform != null) {
    1.34              platforms.setSelectedItem(activePlatform);
    1.35          }
    1.36 +        
    1.37 +        if (activePlatform.getJvmGnatCompilerCommand() != null) {
    1.38 +            nativeFormat.setEnabled(true);
    1.39 +            jvmFormat.setEnabled(true);
    1.40 +            if (uiProperties.getOutputBuildFormat().equalsIgnoreCase(AdaProjectProperties.NATIVE_FORMAT)) {
    1.41 +                nativeFormat.setSelected(true);
    1.42 +                jvmFormat.setSelected(false);
    1.43 +            }
    1.44 +            else {
    1.45 +                nativeFormat.setSelected(false);
    1.46 +                jvmFormat.setSelected(true);
    1.47 +            }
    1.48 +        }
    1.49 +        else {
    1.50 +            nativeFormat.setSelected(true);
    1.51 +            jvmFormat.setSelected(false);
    1.52 +            nativeFormat.setEnabled(false);
    1.53 +            jvmFormat.setEnabled(false);
    1.54 +        }
    1.55 +        
    1.56      }
    1.57  
    1.58      public HelpCtx getHelpCtx() {
    1.59 @@ -108,6 +129,9 @@
    1.60          platforms = new javax.swing.JComboBox();
    1.61          jLabel2 = new javax.swing.JLabel();
    1.62          manage = new javax.swing.JButton();
    1.63 +        jLabel3 = new javax.swing.JLabel();
    1.64 +        nativeFormat = new javax.swing.JRadioButton();
    1.65 +        jvmFormat = new javax.swing.JRadioButton();
    1.66  
    1.67          jLabel1.setLabelFor(mainModule);
    1.68          org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerRun.mainModule.text")); // NOI18N
    1.69 @@ -137,6 +161,23 @@
    1.70              }
    1.71          });
    1.72  
    1.73 +        jLabel3.setLabelFor(mainModule);
    1.74 +        org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerBuild.jLabel3.text")); // NOI18N
    1.75 +
    1.76 +        nativeFormat.setText(org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerBuild.nativeFormat.text")); // NOI18N
    1.77 +        nativeFormat.addActionListener(new java.awt.event.ActionListener() {
    1.78 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
    1.79 +                nativeFormatActionPerformed(evt);
    1.80 +            }
    1.81 +        });
    1.82 +
    1.83 +        jvmFormat.setText(org.openide.util.NbBundle.getMessage(CustomizerBuild.class, "CustomizerBuild.jvmFormat.text")); // NOI18N
    1.84 +        jvmFormat.addActionListener(new java.awt.event.ActionListener() {
    1.85 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
    1.86 +                jvmFormatActionPerformed(evt);
    1.87 +            }
    1.88 +        });
    1.89 +
    1.90          org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
    1.91          this.setLayout(layout);
    1.92          layout.setHorizontalGroup(
    1.93 @@ -144,16 +185,24 @@
    1.94              .add(layout.createSequentialGroup()
    1.95                  .addContainerGap()
    1.96                  .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    1.97 -                    .add(jLabel1)
    1.98 -                    .add(jLabel2))
    1.99 -                .add(49, 49, 49)
   1.100 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.101 -                    .add(platforms, 0, 323, Short.MAX_VALUE)
   1.102 -                    .add(mainModule, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE))
   1.103 -                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.104 -                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
   1.105 -                    .add(org.jdesktop.layout.GroupLayout.TRAILING, browse, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
   1.106 -                    .add(org.jdesktop.layout.GroupLayout.TRAILING, manage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
   1.107 +                    .add(layout.createSequentialGroup()
   1.108 +                        .add(jLabel3)
   1.109 +                        .add(49, 49, 49)
   1.110 +                        .add(nativeFormat)
   1.111 +                        .add(18, 18, 18)
   1.112 +                        .add(jvmFormat))
   1.113 +                    .add(layout.createSequentialGroup()
   1.114 +                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.115 +                            .add(jLabel1)
   1.116 +                            .add(jLabel2))
   1.117 +                        .add(49, 49, 49)
   1.118 +                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
   1.119 +                            .add(platforms, 0, 323, Short.MAX_VALUE)
   1.120 +                            .add(mainModule, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE))
   1.121 +                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
   1.122 +                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
   1.123 +                            .add(org.jdesktop.layout.GroupLayout.TRAILING, browse, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
   1.124 +                            .add(org.jdesktop.layout.GroupLayout.TRAILING, manage, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
   1.125                  .addContainerGap())
   1.126          );
   1.127          layout.setVerticalGroup(
   1.128 @@ -169,7 +218,12 @@
   1.129                      .add(jLabel1)
   1.130                      .add(browse)
   1.131                      .add(mainModule, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
   1.132 -                .addContainerGap(224, Short.MAX_VALUE))
   1.133 +                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
   1.134 +                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
   1.135 +                    .add(jLabel3)
   1.136 +                    .add(nativeFormat)
   1.137 +                    .add(jvmFormat))
   1.138 +                .addContainerGap(194, Short.MAX_VALUE))
   1.139          );
   1.140      }// </editor-fold>//GEN-END:initComponents
   1.141  
   1.142 @@ -183,12 +237,32 @@
   1.143  private void platformsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_platformsActionPerformed
   1.144      uiProperties.setActivePlatformId(
   1.145              ((AdaPlatform) platforms.getSelectedItem()).getName());
   1.146 +
   1.147 +    final AdaPlatform activePlatform = manager.getPlatform(uiProperties.getActivePlatformId());
   1.148 +    
   1.149 +    if (activePlatform.getJvmGnatCompilerCommand() != null) {
   1.150 +        nativeFormat.setEnabled(true);
   1.151 +        jvmFormat.setEnabled(true);
   1.152 +        if (uiProperties.getOutputBuildFormat().equalsIgnoreCase(AdaProjectProperties.NATIVE_FORMAT)) {
   1.153 +            nativeFormat.setSelected(true);
   1.154 +            jvmFormat.setSelected(false);
   1.155 +        } else {
   1.156 +            nativeFormat.setSelected(false);
   1.157 +            jvmFormat.setSelected(true);
   1.158 +        }
   1.159 +    } else {
   1.160 +        nativeFormat.setSelected(true);
   1.161 +        jvmFormat.setSelected(false);
   1.162 +        nativeFormat.setEnabled(false);
   1.163 +        jvmFormat.setEnabled(false);
   1.164 +        uiProperties.setOutputBuildFormat(AdaProjectProperties.NATIVE_FORMAT);
   1.165 +    }
   1.166 +
   1.167  }//GEN-LAST:event_platformsActionPerformed
   1.168  
   1.169  private void manageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_manageActionPerformed
   1.170      // Workaround, Needs an API to display platform customizer
   1.171 -//    final FileObject fo = FileUtil.getConfigFile("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
   1.172 -    final FileObject fo = Repository.getDefault().getDefaultFileSystem().findResource("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
   1.173 +    final FileObject fo = FileUtil.getConfigFile("Actions/Ada/org-netbeans-modules-ada-platform-PlatformsCustomizerAction.instance");  //NOI18N
   1.174      if (fo != null) {
   1.175          try {
   1.176              InstanceDataObject ido = (InstanceDataObject) DataObject.find(fo);
   1.177 @@ -202,12 +276,26 @@
   1.178          }
   1.179      }
   1.180  }//GEN-LAST:event_manageActionPerformed
   1.181 +
   1.182 +private void nativeFormatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nativeFormatActionPerformed
   1.183 +    uiProperties.setOutputBuildFormat(AdaProjectProperties.NATIVE_FORMAT);
   1.184 +    jvmFormat.setSelected(false);
   1.185 +}//GEN-LAST:event_nativeFormatActionPerformed
   1.186 +
   1.187 +private void jvmFormatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jvmFormatActionPerformed
   1.188 +    uiProperties.setOutputBuildFormat(AdaProjectProperties.JVM_FORMAT);
   1.189 +    nativeFormat.setSelected(false);
   1.190 +}//GEN-LAST:event_jvmFormatActionPerformed
   1.191 +
   1.192      // Variables declaration - do not modify//GEN-BEGIN:variables
   1.193      private javax.swing.JButton browse;
   1.194      private javax.swing.JLabel jLabel1;
   1.195      private javax.swing.JLabel jLabel2;
   1.196 +    private javax.swing.JLabel jLabel3;
   1.197 +    private javax.swing.JRadioButton jvmFormat;
   1.198      private javax.swing.JTextField mainModule;
   1.199      private javax.swing.JButton manage;
   1.200 +    private javax.swing.JRadioButton nativeFormat;
   1.201      private javax.swing.JComboBox platforms;
   1.202      // End of variables declaration//GEN-END:variables
   1.203