ada.project/src/org/netbeans/modules/ada/project/ui/properties/CustomizerBuild.java
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