--- a/java.j2seproject/apichanges.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/apichanges.xml Tue Mar 12 17:44:14 2013 +0100 @@ -107,6 +107,22 @@ + + + + + + + + + J2SECategoryExtensionProvider so far restricted the possibility to extend + panels in Project Properties dialog to Run and Package panels only. Now it is possible + to extend also Application panel. + + + + + --- a/java.j2seproject/nbproject/project.properties Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/nbproject/project.properties Tue Mar 12 17:44:14 2013 +0100 @@ -42,7 +42,7 @@ javac.compilerargs=-Xlint -Xlint:-serial javac.source=1.6 -spec.version.base=1.58.0 +spec.version.base=1.59.0 javadoc.arch=${basedir}/arch.xml javadoc.apichanges=${basedir}/apichanges.xml --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProvider.java Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProvider.java Tue Mar 12 17:44:14 2013 +0100 @@ -64,7 +64,7 @@ /** * Enumeration of categories for which extension is currently allowed */ - enum ExtensibleCategory { PACKAGING, RUN } + enum ExtensibleCategory { PACKAGING, RUN, APPLICATION } /** * Provides identifier of category whose panel should be extended by this component provider --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/Bundle.properties Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/Bundle.properties Tue Mar 12 17:44:14 2013 +0100 @@ -537,17 +537,6 @@ CustomizerRun.input.empty=Configuration name cannot be empty. TXT_Encoding=&Encoding\: -CustomizerApplication.titleLabel.text=&Title\: -CustomizerApplication.vendorLabel.text=&Vendor\: -CustomizerApplication.panelDescLabel.text=Common Application Properties -CustomizerApplication.descLabel.text=&Description\: -CustomizerApplication.homepageLabel.text=Homepa&ge\: -CustomizerApplication.splashLabel.text=S&plash Screen\: -CustomizerApplication.titleTextField.text= -CustomizerApplication.vendorTextField.text= -CustomizerApplication.homepageTextField.text= -CustomizerApplication.splashTextField.text= -CustomizerApplication.browseButton.text=&Browse ... LBL_Select_Splash_Image=Select Splash Image TXT_SplashImageFiles=Splash image files @@ -632,3 +621,14 @@ LBL_Profile=&Profile: AN_Profile=Profile: AD_Profile=JDK 8 Compact Profile +CustomizerApplication.panelDescLabel.text=Common Application Properties +CustomizerApplication.titleLabel.text=&Title: +CustomizerApplication.vendorLabel.text=&Vendor: +CustomizerApplication.descLabel.text=&Description: +CustomizerApplication.homepageLabel.text=Homepa&ge: +CustomizerApplication.splashLabel.text=S&plash Screen: +CustomizerApplication.titleTextField.text= +CustomizerApplication.vendorTextField.text= +CustomizerApplication.homepageTextField.text= +CustomizerApplication.splashTextField.text= +CustomizerApplication.browseButton.text=&Browse ... --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerApplication.form Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerApplication.form Tue Mar 12 17:44:14 2013 +0100 @@ -1,4 +1,4 @@ - +
@@ -15,271 +15,198 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - - + + + - - - + + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerApplication.java Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/customizer/CustomizerApplication.java Tue Mar 12 17:44:14 2013 +0100 @@ -44,9 +44,18 @@ package org.netbeans.modules.java.j2seproject.ui.customizer; +import java.awt.Dimension; import java.io.File; +import java.util.LinkedList; +import java.util.Map; +import javax.swing.Box; +import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; +import org.netbeans.api.project.Project; +import org.netbeans.modules.java.j2seproject.J2SEProject; +import org.netbeans.modules.java.j2seproject.api.J2SECategoryExtensionProvider; +import org.netbeans.modules.java.j2seproject.api.J2SERunConfigProvider; import org.openide.filesystems.FileUtil; import org.openide.util.HelpCtx; import org.openide.util.NbBundle; @@ -60,15 +69,30 @@ public class CustomizerApplication extends javax.swing.JPanel implements HelpCtx.Provider { private File lastImageFolder; + private J2SEProject project; + + private java.util.List compProviders = new LinkedList(); + private int nextExtensionYPos; /** Creates new form CustomizerApplication */ public CustomizerApplication(J2SEProjectProperties props) { initComponents(); titleTextField.setDocument(props.APPLICATION_TITLE_DOC); vendorTextField.setDocument(props.APPLICATION_VENDOR_DOC); - descTextArea.setDocument(props.APPLICATION_DESC_DOC); + descTextArea1.setDocument(props.APPLICATION_DESC_DOC); homepageTextField.setDocument(props.APPLICATION_HOMEPAGE_DOC); splashTextField.setDocument(props.APPLICATION_SPLASH_DOC); + + this.project = props.getProject(); + for (J2SECategoryExtensionProvider compProvider : project.getLookup().lookupAll(J2SECategoryExtensionProvider.class)) { + if( compProvider.getCategory() == J2SECategoryExtensionProvider.ExtensibleCategory.APPLICATION ) { + if( addExtPanel(project,compProvider,nextExtensionYPos) ) { + compProviders.add(compProvider); + nextExtensionYPos++; + } + } + } + addPanelFiller(nextExtensionYPos); } /** This method is called from within the constructor to @@ -80,6 +104,7 @@ private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; + mainPanel = new javax.swing.JPanel(); panelDescLabel = new javax.swing.JLabel(); titleLabel = new javax.swing.JLabel(); vendorLabel = new javax.swing.JLabel(); @@ -91,11 +116,14 @@ homepageTextField = new javax.swing.JTextField(); splashTextField = new javax.swing.JTextField(); browseButton = new javax.swing.JButton(); - jScrollPane1 = new javax.swing.JScrollPane(); - descTextArea = new javax.swing.JTextArea(); + jScrollPane = new javax.swing.JScrollPane(); + descTextArea1 = new javax.swing.JTextArea(); + extPanel = new javax.swing.JPanel(); setLayout(new java.awt.GridBagLayout()); + mainPanel.setLayout(new java.awt.GridBagLayout()); + org.openide.awt.Mnemonics.setLocalizedText(panelDescLabel, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.panelDescLabel.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; @@ -104,9 +132,7 @@ gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 0); - add(panelDescLabel, gridBagConstraints); - panelDescLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_CommonAppProps_Label")); // NOI18N - panelDescLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_CommonAppProps_Label")); // NOI18N + mainPanel.add(panelDescLabel, gridBagConstraints); titleLabel.setLabelFor(titleTextField); org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.titleLabel.text")); // NOI18N @@ -115,9 +141,7 @@ gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(9, 0, 0, 0); - add(titleLabel, gridBagConstraints); - titleLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Title_Label")); // NOI18N - titleLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Title_Label")); // NOI18N + mainPanel.add(titleLabel, gridBagConstraints); vendorLabel.setLabelFor(vendorTextField); org.openide.awt.Mnemonics.setLocalizedText(vendorLabel, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.vendorLabel.text")); // NOI18N @@ -126,20 +150,15 @@ gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(7, 0, 0, 0); - add(vendorLabel, gridBagConstraints); - vendorLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Vendor_Label")); // NOI18N - vendorLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Vendor_Label")); // NOI18N + mainPanel.add(vendorLabel, gridBagConstraints); - descLabel.setLabelFor(descTextArea); org.openide.awt.Mnemonics.setLocalizedText(descLabel, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.descLabel.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(7, 0, 0, 0); - add(descLabel, gridBagConstraints); - descLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Description_Label")); // NOI18N - descLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Description_Label")); // NOI18N + mainPanel.add(descLabel, gridBagConstraints); homepageLabel.setLabelFor(homepageTextField); org.openide.awt.Mnemonics.setLocalizedText(homepageLabel, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.homepageLabel.text")); // NOI18N @@ -148,22 +167,16 @@ gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(8, 0, 0, 0); - add(homepageLabel, gridBagConstraints); - homepageLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Homepage_Label")); // NOI18N - homepageLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Homepage_Label")); // NOI18N + mainPanel.add(homepageLabel, gridBagConstraints); splashLabel.setLabelFor(splashTextField); org.openide.awt.Mnemonics.setLocalizedText(splashLabel, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.splashLabel.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; - gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; - gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(8, 0, 0, 0); - add(splashLabel, gridBagConstraints); - splashLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_SplashScreen_Label")); // NOI18N - splashLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_SplashScreen_Label")); // NOI18N + mainPanel.add(splashLabel, gridBagConstraints); titleTextField.setText(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.titleTextField.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); @@ -173,9 +186,7 @@ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 0); - add(titleTextField, gridBagConstraints); - titleTextField.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Title_TextField")); // NOI18N - titleTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Title_TextField")); // NOI18N + mainPanel.add(titleTextField, gridBagConstraints); vendorTextField.setText(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.vendorTextField.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); @@ -185,9 +196,7 @@ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0); - add(vendorTextField, gridBagConstraints); - vendorTextField.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Vendor_TextField")); // NOI18N - vendorTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Vendor_TextField")); // NOI18N + mainPanel.add(vendorTextField, gridBagConstraints); homepageTextField.setText(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.homepageTextField.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); @@ -197,23 +206,17 @@ gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0); - add(homepageTextField, gridBagConstraints); - homepageTextField.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Homepage_TextField")); // NOI18N - homepageTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Homepage_TextField")); // NOI18N + mainPanel.add(homepageTextField, gridBagConstraints); splashTextField.setText(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.splashTextField.text")); // NOI18N gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; - gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.weightx = 1.0; - gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0); - add(splashTextField, gridBagConstraints); - splashTextField.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_SplashScreen_TextField")); // NOI18N - splashTextField.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_SplashScreen_TextField")); // NOI18N + mainPanel.add(splashTextField, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText(browseButton, org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "CustomizerApplication.browseButton.text")); // NOI18N browseButton.addActionListener(new java.awt.event.ActionListener() { @@ -225,19 +228,13 @@ gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; - gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; - gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(3, 6, 0, 0); - add(browseButton, gridBagConstraints); - browseButton.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Browse_Button")); // NOI18N - browseButton.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Browse_Button")); // NOI18N + mainPanel.add(browseButton, gridBagConstraints); - descTextArea.setColumns(8); - descTextArea.setRows(4); - jScrollPane1.setViewportView(descTextArea); - descTextArea.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSN_Description_TextArea")); // NOI18N - descTextArea.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(CustomizerApplication.class, "ACSD_Description_TextArea")); // NOI18N + descTextArea1.setColumns(8); + descTextArea1.setRows(4); + jScrollPane.setViewportView(descTextArea1); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; @@ -246,26 +243,29 @@ gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(6, 6, 0, 0); - add(jScrollPane1, gridBagConstraints); + mainPanel.add(jScrollPane, gridBagConstraints); + + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START; + add(mainPanel, gridBagConstraints); + + extPanel.setLayout(new java.awt.GridBagLayout()); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 1; + gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.gridheight = java.awt.GridBagConstraints.REMAINDER; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.weightx = 0.1; + gridBagConstraints.weighty = 0.1; + add(extPanel, gridBagConstraints); }// //GEN-END:initComponents private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed - JFileChooser chooser = new JFileChooser(); - FileUtil.preventFileChooserSymlinkTraversal(chooser, null); - chooser.setFileSelectionMode (JFileChooser.FILES_ONLY); - chooser.setMultiSelectionEnabled(false); - chooser.setFileFilter(new SplashFileFilter()); - if (lastImageFolder != null) { - chooser.setSelectedFile(lastImageFolder); - } else { - // ??? - } - chooser.setDialogTitle(NbBundle.getMessage(CustomizerApplication.class, "LBL_Select_Splash_Image")); - if (JFileChooser.APPROVE_OPTION == chooser.showOpenDialog(this)) { - File file = FileUtil.normalizeFile(chooser.getSelectedFile()); - splashTextField.setText(file.getAbsolutePath()); - lastImageFolder = file.getParentFile(); - } + // TODO add your handling code here: }//GEN-LAST:event_browseButtonActionPerformed private static class SplashFileFilter extends FileFilter { @@ -295,10 +295,12 @@ // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton browseButton; private javax.swing.JLabel descLabel; - private javax.swing.JTextArea descTextArea; + private javax.swing.JTextArea descTextArea1; + private javax.swing.JPanel extPanel; private javax.swing.JLabel homepageLabel; private javax.swing.JTextField homepageTextField; - private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JScrollPane jScrollPane; + private javax.swing.JPanel mainPanel; private javax.swing.JLabel panelDescLabel; private javax.swing.JLabel splashLabel; private javax.swing.JTextField splashTextField; @@ -312,4 +314,38 @@ return new HelpCtx(CustomizerApplication.class); } + private boolean addExtPanel(Project p, J2SECategoryExtensionProvider compProvider, int gridY) { + if (compProvider != null) { + J2SECategoryExtensionProvider.ConfigChangeListener ccl = new J2SECategoryExtensionProvider.ConfigChangeListener() { + public void propertiesChanged(Map updates) { + } + }; + JComponent comp = compProvider.createComponent(p, ccl); + if (comp != null) { + java.awt.GridBagConstraints constraints = new java.awt.GridBagConstraints(); + constraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + constraints.gridx = 0; + constraints.gridy = gridY; + constraints.weightx = 1.0; + extPanel.add(comp, constraints); + return true; + } + } + return false; + } + + private void addPanelFiller(int gridY) { + java.awt.GridBagConstraints constraints = new java.awt.GridBagConstraints(); + constraints.anchor = java.awt.GridBagConstraints.NORTHWEST; + constraints.gridx = 0; + constraints.gridy = gridY; + constraints.weightx = 1.0; + constraints.weighty = 1.0; + extPanel.add( new Box.Filler( + new Dimension(), + new Dimension(), + new Dimension(10000,10000) ), + constraints); + } + } --- a/java.j2seproject/test/unit/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProviderTest.java Tue Mar 12 13:08:24 2013 +0100 +++ a/java.j2seproject/test/unit/src/org/netbeans/modules/java/j2seproject/api/J2SECategoryExtensionProviderTest.java Tue Mar 12 17:44:14 2013 +0100 @@ -66,7 +66,7 @@ @BeforeClass public static void setUpClass() throws Exception { - MockServices.setServices(J2SEMockRunProvider1.class, J2SEMockPackagingProvider.class, J2SEMockRunProvider2.class); + MockServices.setServices(J2SEMockRunProvider1.class, J2SEMockPackagingProvider.class, J2SEMockRunProvider2.class, J2SEMockApplicationProvider.class); } private Map properties = new TreeMap(); @@ -77,7 +77,7 @@ @Test public void testCustomizerExtension() { System.out.println("testCustomizerExtension():"); - assertEquals(Lookup.getDefault().lookupAll(J2SECategoryExtensionProvider.class).size(), 3); + assertEquals(Lookup.getDefault().lookupAll(J2SECategoryExtensionProvider.class).size(), 4); java.util.List compProviders = new LinkedList(); JPanel pane = new JPanel(); @@ -103,6 +103,7 @@ assertNull(properties.get("MockupRunExtender1")); assertNull(properties.get("MockupRunExtender2")); assertNull(properties.get("MockupPackagingExtender")); + assertNull(properties.get("MockupApplicationExtender")); System.out.println("OK"); System.out.println("simulate event generated by user using the extension component"); @@ -113,6 +114,7 @@ assertEquals(properties.get("MockupRunExtender1"), "true"); assertNull(properties.get("MockupRunExtender2")); assertNull(properties.get("MockupPackagingExtender")); + assertNull(properties.get("MockupApplicationExtender")); System.out.println("OK"); System.out.println("simulate event from outside the extension component"); @@ -245,6 +247,38 @@ } } + public static final class J2SEMockApplicationProvider implements J2SECategoryExtensionProvider { + + MockupComponent extender; + + @Override + public ExtensibleCategory getCategory() { + return ExtensibleCategory.APPLICATION; + } + + @Override + public JComponent createComponent(Project proj, ConfigChangeListener listener) { + extender = new MockupComponent("MockupApplicationExtender"); + extender.setState(false); + extender.addListener(listener); + return extender; + } + + @Override + public void configUpdated(Map props) { + String value = props.get("MockupApplicationExtender"); + if(value != null) { + if( "true".equals(value)) { + extender.setState(true); + } else { + if( "false".equals(value)) { + extender.setState(false); + } + } + } + } + } + public static final class MockupComponent extends JComponent implements ActionListener { public boolean state; --- a/javafx2.project/src/org/netbeans/modules/javafx2/project/JFXProjectProperties.java Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.project/src/org/netbeans/modules/javafx2/project/JFXProjectProperties.java Tue Mar 12 17:44:14 2013 +0100 @@ -87,6 +87,7 @@ import org.netbeans.modules.java.api.common.project.ProjectProperties; import org.netbeans.modules.java.j2seproject.api.J2SEPropertyEvaluator; import org.netbeans.modules.javafx2.platform.api.JavaFXPlatformUtils; +import org.netbeans.modules.javafx2.project.ui.JFXApplicationPanel; import org.netbeans.modules.javafx2.project.ui.JFXPackagingPanel; import org.netbeans.spi.project.support.ant.AntProjectHelper; import org.netbeans.spi.project.support.ant.EditableProperties; @@ -206,7 +207,11 @@ // Deployment - callbacks public static final String JAVASCRIPT_CALLBACK_PREFIX = "javafx.jscallback."; // NOI18N - + + // Application + public static final String IMPLEMENTATION_VERSION = "javafx.application.implementation.version"; // NOI18N + public static final String IMPLEMENTATION_VERSION_DEFAULT = "1.0"; // NOI18N + // folders and files public static final String PROJECT_CONFIGS_DIR = JFXProjectConfigurations.PROJECT_CONFIGS_DIR; public static final String PROJECT_PRIVATE_CONFIGS_DIR = JFXProjectConfigurations.PROJECT_PRIVATE_CONFIGS_DIR; @@ -233,6 +238,14 @@ return packagingPanel; } + private JFXApplicationPanel applicationPanel = null; + public JFXApplicationPanel getApplicationPanel() { + if(applicationPanel == null) { + applicationPanel = new JFXApplicationPanel(this); + } + return applicationPanel; + } + // CustomizerRun private JFXConfigs CONFIGS = null; public JFXConfigs getConfigs() { @@ -473,6 +486,15 @@ public void setJSCallbacksChanged(boolean changed) { jsCallbacksChanged = changed; } + + // Application + String implVersion; + public String getImplementationVersion() { + return implVersion; + } + public void setImplementationVersion(String implVer) { + implVersion = implVer; + } // Project related references private J2SEPropertyEvaluator j2sePropEval; @@ -610,7 +632,7 @@ installPermanently = fxPropGroup.createToggleButtonModel(evaluator, INSTALL_PERMANENTLY); addDesktopShortcut = fxPropGroup.createToggleButtonModel(evaluator, ADD_DESKTOP_SHORTCUT); addStartMenuShortcut = fxPropGroup.createToggleButtonModel(evaluator, ADD_STARTMENU_SHORTCUT); - + // CustomizerRun CONFIGS = new JFXConfigs(); CONFIGS.read(); @@ -618,6 +640,7 @@ CONFIGS.setActive(evaluator.getProperty(ProjectProperties.PROP_PROJECT_CONFIGURATION_CONFIG)); preloaderClassModel = new PreloaderClassComboBoxModel(); + initVersion(evaluator); initIcons(evaluator); initSigning(evaluator); initNativeBundling(evaluator); @@ -1139,6 +1162,8 @@ } private void storeRest(@NonNull EditableProperties editableProps, @NonNull EditableProperties privProps) { + // store implementation version + setOrRemove(editableProps, IMPLEMENTATION_VERSION, implVersion); // store signing info editableProps.setProperty(JAVAFX_SIGNING_ENABLED, signingEnabled ? "true" : "false"); //NOI18N editableProps.setProperty(JAVAFX_SIGNING_TYPE, signingType.getString()); @@ -1258,6 +1283,13 @@ } } + private void initVersion(PropertyEvaluator eval) { + implVersion = eval.getProperty(IMPLEMENTATION_VERSION); + if(implVersion == null) { + implVersion = IMPLEMENTATION_VERSION_DEFAULT; + } + } + private void initIcons(PropertyEvaluator eval) { wsIconPath = eval.getProperty(ICON_FILE); splashImagePath = eval.getProperty(SPLASH_IMAGE_FILE); --- a/javafx2.project/src/org/netbeans/modules/javafx2/project/templates/jfx-impl.xml_ Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.project/src/org/netbeans/modules/javafx2/project/templates/jfx-impl.xml_ Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.project/src/org/netbeans/modules/javafx2/project/ui/Bundle.properties Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.project/src/org/netbeans/modules/javafx2/project/ui/Bundle.properties Tue Mar 12 17:44:14 2013 +0100 @@ -315,3 +315,5 @@ AD_JFXApplicationParametersPanel.buttonDefault.text=N/A JFXApplicationMultiPropertyPanel.labelRemark.text=(For unnamed parameter leave Value empty) JFXApplicationMultiPropertyPanel.buttonDefault.text=&Default +JFXApplicationPanel.labelVer.text=Implementation Version: +JFXApplicationPanel.textFieldVer.text=n/a --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 2c21fe2d19b2 Tue Mar 12 17:44:14 2013 +0100 @@ -0,0 +1,81 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2013 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + * + * Portions Copyrighted 2013 Sun Microsystems, Inc. + */ +package org.netbeans.modules.javafx2.project.ui; + +import java.util.Map; +import javax.swing.JComponent; +import org.netbeans.api.project.Project; +import org.netbeans.modules.java.j2seproject.api.J2SECategoryExtensionProvider; +import org.netbeans.modules.java.j2seproject.api.J2SEPropertyEvaluator; +import org.netbeans.modules.javafx2.project.JFXProjectProperties; +import org.netbeans.spi.project.ProjectServiceProvider; + +/** + * + * @author psomol + */ +@ProjectServiceProvider(service=J2SECategoryExtensionProvider.class, projectType="org-netbeans-modules-java-j2seproject") +public class JFXApplicationCategoryProvider implements J2SECategoryExtensionProvider { + + public JFXApplicationCategoryProvider() {} + + @Override + public ExtensibleCategory getCategory() { + return ExtensibleCategory.APPLICATION; + } + + @Override + public JComponent createComponent(Project p, ConfigChangeListener listener) { + boolean fxDisabled = false; + if (p != null) { + final J2SEPropertyEvaluator j2sepe = p.getLookup().lookup(J2SEPropertyEvaluator.class); + fxDisabled = !JFXProjectProperties.isTrue(j2sepe.evaluator().getProperty(JFXProjectProperties.JAVAFX_ENABLED)) + || JFXProjectProperties.isTrue(j2sepe.evaluator().getProperty(JFXProjectProperties.JAVAFX_SWING)); + } + return fxDisabled ? null : JFXProjectProperties.getInstance(p.getLookup()).getApplicationPanel(); + } + + @Override + public void configUpdated(Map props) { + } + +} --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 2c21fe2d19b2 Tue Mar 12 17:44:14 2013 +0100 @@ -0,0 +1,47 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ 2c21fe2d19b2 Tue Mar 12 17:44:14 2013 +0100 @@ -0,0 +1,129 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright 2013 Oracle and/or its affiliates. All rights reserved. + * + * Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common + * Development and Distribution License("CDDL") (collectively, the + * "License"). You may not use this file except in compliance with the + * License. You can obtain a copy of the License at + * http://www.netbeans.org/cddl-gplv2.html + * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the + * specific language governing permissions and limitations under the + * License. When distributing the software, include this License Header + * Notice in each file and include the License file at + * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the GPL Version 2 section of the License file that + * accompanied this code. If applicable, add the following below the + * License Header, with the fields enclosed by brackets [] replaced by + * your own identifying information: + * "Portions Copyrighted [year] [name of copyright owner]" + * + * If you wish your version of this file to be governed by only the CDDL + * or only the GPL Version 2, indicate your decision by adding + * "[Contributor] elects to include this software in this distribution + * under the [CDDL or GPL Version 2] license." If you do not indicate a + * single choice of license, a recipient has the option to distribute + * your version of this file under either the CDDL, the GPL Version 2 or + * to extend the choice of license to its licensees as provided above. + * However, if you add GPL Version 2 code and therefore, elected the GPL + * Version 2 license, then the option applies only if the new code is + * made subject to such option by the copyright holder. + * + * Contributor(s): + * + * Portions Copyrighted 2013 Sun Microsystems, Inc. + */ +package org.netbeans.modules.javafx2.project.ui; + +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import org.netbeans.modules.javafx2.project.JFXProjectProperties; + +/** + * + * @author psomol + */ +public class JFXApplicationPanel extends javax.swing.JPanel { + + private static JFXProjectProperties jfxProps = null; + + /** + * Creates new form JFXApplicationPanel + */ + public JFXApplicationPanel(JFXProjectProperties properties) { + initComponents(); + jfxProps = properties; + textFieldVer.getDocument().addDocumentListener(new DocumentListener() { + @Override + public void insertUpdate(DocumentEvent e) { + changed(); + } + @Override + public void removeUpdate(DocumentEvent e) { + changed(); + } + @Override + public void changedUpdate(DocumentEvent e) {} + void changed() { + String v = textFieldVer.getText(); + jfxProps.setImplementationVersion(v); + } + }); + String ver = jfxProps.getImplementationVersion(); + textFieldVer.setText(ver); + } + + /** + * 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. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + java.awt.GridBagConstraints gridBagConstraints; + + labelVer = new javax.swing.JLabel(); + textFieldVer = new javax.swing.JTextField(); + + setLayout(new java.awt.GridBagLayout()); + + org.openide.awt.Mnemonics.setLocalizedText(labelVer, org.openide.util.NbBundle.getMessage(JFXApplicationPanel.class, "JFXApplicationPanel.labelVer.text")); // NOI18N + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 0; + gridBagConstraints.anchor = java.awt.GridBagConstraints.BASELINE_LEADING; + gridBagConstraints.insets = new java.awt.Insets(14, 1, 10, 0); + add(labelVer, gridBagConstraints); + + textFieldVer.setText(org.openide.util.NbBundle.getMessage(JFXApplicationPanel.class, "JFXApplicationPanel.textFieldVer.text")); // NOI18N + textFieldVer.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + textFieldVerActionPerformed(evt); + } + }); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 1; + gridBagConstraints.gridy = 0; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + gridBagConstraints.ipadx = 180; + gridBagConstraints.anchor = java.awt.GridBagConstraints.BASELINE_LEADING; + gridBagConstraints.insets = new java.awt.Insets(0, 7, 0, 5); + add(textFieldVer, gridBagConstraints); + }// //GEN-END:initComponents + + private void textFieldVerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textFieldVerActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_textFieldVerActionPerformed + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel labelVer; + private javax.swing.JTextField textFieldVer; + // End of variables declaration//GEN-END:variables +} --- a/javafx2.samples/AdvancedMedia/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/AdvancedMedia/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/AudioVisualizer3D/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/AudioVisualizer3D/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/BrickBreaker/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/BrickBreaker/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChangeListener/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChangeListener/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAdvancedArea/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAdvancedArea/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAdvancedBar/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAdvancedBar/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAdvancedPie/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAdvancedPie/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAdvancedScatter/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAdvancedScatter/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAdvancedScatterLive/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAdvancedScatterLive/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAdvancedStockLine/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAdvancedStockLine/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAudioArea/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAudioArea/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartAudioBar/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartAudioBar/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ChartLine/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ChartLine/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ColorPicker/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ColorPicker/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/ColorfulCircles/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/ColorfulCircles/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/CreateAdvancedStage/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/CreateAdvancedStage/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/Cube3D/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/Cube3D/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/CubeSystem3D/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/CubeSystem3D/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/DigitalClock/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/DigitalClock/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/DisplayShelf/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/DisplayShelf/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/FXML-LoginDemo/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/FXML-LoginDemo/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/Fireworks/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/Fireworks/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/HTMLEditorApp/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/HTMLEditorApp/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/KeyStrokeMotion/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/KeyStrokeMotion/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/MouseEvents/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/MouseEvents/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/PaginationDemo/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/PaginationDemo/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/PuzzlePieces/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/PuzzlePieces/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/StopWatch/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/StopWatch/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/SwingInterop/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/SwingInterop/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/TimelineEvents/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/TimelineEvents/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/TimelineInterpolator/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/TimelineInterpolator/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/TransitionPath/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/TransitionPath/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/TransitionRotate/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/TransitionRotate/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/WebViewBrowser/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/WebViewBrowser/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys(); --- a/javafx2.samples/Xylophone/nbproject/jfx-impl.xml Tue Mar 12 13:08:24 2013 +0100 +++ a/javafx2.samples/Xylophone/nbproject/jfx-impl.xml Tue Mar 12 17:44:14 2013 +0100 @@ -1753,9 +1753,14 @@ a2.setName("Implementation-Title"); a2.setValue(a2val); man.addConfiguredAttribute(a2); + var a3val = project.getProperty("javafx.application.implementation.version"); var a3 = new org.apache.tools.ant.taskdefs.Manifest.Attribute(); a3.setName("Implementation-Version"); - a3.setValue("1.0"); + if(a3val != null) { + a3.setValue(a3val); + } else { + a3.setValue("1.0"); + } man.addConfiguredAttribute(a3); // custom manifest entries var searchManifestHides = project.getProperties().keys();