# This patch file was generated by NetBeans IDE # Following Index: paths are relative to: E:\sources\netbeans\trunk\core\src # This patch can be applied using context Tools: Patch action on respective folder. # It uses platform neutral UTF-8 encoding and \n newlines. # Above lines and this line are ignored by the patching process. Index: org/netbeans/core/ui/ProductInformationPanel.form *** E:\sources\netbeans\trunk\core\src\org\netbeans\core\ui\ProductInformationPanel.form Base (1.13) --- E:\sources\netbeans\trunk\core\src\org\netbeans\core\ui\ProductInformationPanel.form Locally Modified (Based On 1.13) *************** *** 52,58 **** ! --- 52,58 ---- ! *************** *** 67,73 **** ! --- 67,73 ---- ! *************** *** 82,88 **** ! --- 82,88 ---- ! *************** *** 97,103 **** ! --- 97,103 ---- ! *************** *** 112,118 **** ! --- 112,118 ---- ! *************** *** 127,133 **** ! --- 127,133 ---- ! *************** *** 142,148 **** ! --- 142,148 ---- ! *************** *** 157,163 **** ! --- 157,163 ---- ! *************** *** 172,178 **** ! --- 172,178 ---- ! *************** *** 187,193 **** ! --- 187,193 ---- ! *************** *** 194,200 **** ! --- 194,200 ---- ! *************** *** 215,229 **** ! - - - --- 215,264 ---- ! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + *************** *** 230,387 **** ! - - - ! ! - - - ! ! - - - ! ! - - - ! ! - - - ! ! - - - ! ! - - - ! ! - - - ! ! ! ! - - - - - - - - - - - - - - - --- 262,396 ---- ! + + ! ! + + ! ! + + ! ! + + ! ! + + ! ! + + ! ! + + ! ! + + ! ! ! ! Index: org/netbeans/core/resources/copy.gif *** E:\sources\netbeans\trunk\core\src\org\netbeans\core\resources\copy.gif No Base Revision --- E:\sources\netbeans\trunk\core\src\org\netbeans\core\resources\copy.gif Locally New *************** *** 1,0 **** --- 1,1 ---- + [Binary File Locally New] Index: org/netbeans/core/ui/ProductInformationPanel.java *** E:\sources\netbeans\trunk\core\src\org\netbeans\core\ui\ProductInformationPanel.java Base (1.28) --- E:\sources\netbeans\trunk\core\src\org\netbeans\core\ui\ProductInformationPanel.java Locally Modified (Based On 1.28) *************** *** 18,23 **** --- 18,26 ---- import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; + import java.awt.Toolkit; + import java.awt.datatransfer.Clipboard; + import java.awt.datatransfer.StringSelection; import java.awt.event.FocusEvent; import java.io.File; import java.text.MessageFormat; *************** *** 30,43 **** import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.UIManager; - import org.netbeans.core.startup.TopLogging; import org.openide.filesystems.FileUtil; import org.openide.util.Enumerations; import org.openide.util.NbBundle; import org.openide.util.Utilities; public class ProductInformationPanel extends JPanel { --- 33,46 ---- import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.UIManager; import org.openide.filesystems.FileUtil; import org.openide.util.Enumerations; + import org.openide.util.HelpCtx; + import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.Utilities; + import org.openide.util.actions.CallableSystemAction; + import org.openide.util.datatransfer.ExClipboard; public class ProductInformationPanel extends JPanel { *************** *** 44,49 **** --- 50,57 ---- private static Dialog dialog; + private Clipboard clipboard; + public ProductInformationPanel() { dialog = null; initComponents(); *************** *** 100,116 **** userDirLabel = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); productInformationLabel = new FocusableLabel(); - productVersionValueLabel = new FocusableLabel(); - operatingSystemValueLabel = new FocusableLabel(); - javaValueLabel = new FocusableLabel(); - vmValueLabel = new FocusableLabel(); - vendorValueLabel = new FocusableLabel(); - javaHomeValueLabel = new FocusableLabel(); - systemLocaleValueLabel = new FocusableLabel(); - homeDirValueLabel = new FocusableLabel(); - currentDirValueLabel = new FocusableLabel(); ideInstallValueField = new javax.swing.JTextArea(); ! userDirValueLabel = new FocusableLabel(); setLayout(new java.awt.GridBagLayout()); --- 108,125 ---- userDirLabel = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); productInformationLabel = new FocusableLabel(); ideInstallValueField = new javax.swing.JTextArea(); ! copyButton = new javax.swing.JButton(); ! productVersionValueLabel = new javax.swing.JTextArea(); ! operatingSystemValueLabel = new javax.swing.JTextArea(); ! javaValueLabel = new javax.swing.JTextArea(); ! vmValueLabel = new javax.swing.JTextArea(); ! vendorValueLabel = new javax.swing.JTextArea(); ! javaHomeValueLabel = new javax.swing.JTextArea(); ! systemLocaleValueLabel = new javax.swing.JTextArea(); ! homeDirValueLabel = new javax.swing.JTextArea(); ! currentDirValueLabel = new javax.swing.JTextArea(); ! userDirValueLabel = new javax.swing.JTextArea(); setLayout(new java.awt.GridBagLayout()); *************** *** 136,142 **** operatingSystemLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_OperationgSystem")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(operatingSystemLabel, gridBagConstraints); --- 145,151 ---- operatingSystemLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_OperationgSystem")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(operatingSystemLabel, gridBagConstraints); *************** *** 145,151 **** javaLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_Java")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(javaLabel, gridBagConstraints); --- 154,160 ---- javaLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_Java")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(javaLabel, gridBagConstraints); *************** *** 154,160 **** vmLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_VM")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(vmLabel, gridBagConstraints); --- 163,169 ---- vmLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_VM")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(vmLabel, gridBagConstraints); *************** *** 163,169 **** vendorLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_Vendor")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(vendorLabel, gridBagConstraints); --- 172,178 ---- vendorLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_Vendor")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(vendorLabel, gridBagConstraints); *************** *** 172,178 **** javaHomeLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_JavaHome")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(javaHomeLabel, gridBagConstraints); --- 181,187 ---- javaHomeLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_JavaHome")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(javaHomeLabel, gridBagConstraints); *************** *** 181,187 **** systemLocaleLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_SystemLocale")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 8; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(systemLocaleLabel, gridBagConstraints); --- 190,196 ---- systemLocaleLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_SystemLocale")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(systemLocaleLabel, gridBagConstraints); *************** *** 190,196 **** homeDirLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_HomeDir")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 9; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(homeDirLabel, gridBagConstraints); --- 199,205 ---- homeDirLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_HomeDir")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 8; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(homeDirLabel, gridBagConstraints); *************** *** 199,205 **** currentDirLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_CurrentDir")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(currentDirLabel, gridBagConstraints); --- 208,214 ---- currentDirLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_CurrentDir")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 9; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(currentDirLabel, gridBagConstraints); *************** *** 208,218 **** ideInstallLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_IDEInstall")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 12; gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE; gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; ! gridBagConstraints.insets = new java.awt.Insets(6, 12, 11, 0); add(ideInstallLabel, gridBagConstraints); userDirLabel.setLabelFor(userDirValueLabel); --- 217,227 ---- ideInstallLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_IDEInstall")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 11; gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE; gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; ! gridBagConstraints.insets = new java.awt.Insets(6, 12, 5, 0); add(ideInstallLabel, gridBagConstraints); userDirLabel.setLabelFor(userDirValueLabel); *************** *** 219,225 **** userDirLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_UserDir")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 11; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(userDirLabel, gridBagConstraints); --- 228,234 ---- userDirLabel.setText(org.openide.util.NbBundle.getMessage(ProductInformationPanel.class, "LBL_UserDir")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 0); add(userDirLabel, gridBagConstraints); *************** *** 226,233 **** gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 16; ! gridBagConstraints.gridwidth = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; --- 235,242 ---- gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; ! gridBagConstraints.gridy = 15; ! gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; *************** *** 240,246 **** --- 249,279 ---- gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 11); add(productInformationLabel, gridBagConstraints); + ideInstallValueField.setEditable(false); + ideInstallValueField.setText(getIDEInstallValue ()); + ideInstallValueField.setOpaque(false); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 2; + gridBagConstraints.gridy = 11; + gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE; + gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; + gridBagConstraints.insets = new java.awt.Insets(6, 12, 5, 11); + add(ideInstallValueField, gridBagConstraints); + + copyButton.setAction(new CopyProductInfoAction()); + copyButton.setBorder(null); + copyButton.setContentAreaFilled(false); + copyButton.setMargin(new java.awt.Insets(0, 0, 0, 0)); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 15; + gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST; + gridBagConstraints.insets = new java.awt.Insets(0, 2, 2, 0); + add(copyButton, gridBagConstraints); + + productVersionValueLabel.setEditable(false); productVersionValueLabel.setText(getProductVersionValue()); + productVersionValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; gridBagConstraints.gridy = 1; *************** *** 248,367 **** gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 11); add(productVersionValueLabel, gridBagConstraints); operatingSystemValueLabel.setText(getOperatingSystemValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(operatingSystemValueLabel, gridBagConstraints); javaValueLabel.setText(getJavaValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(javaValueLabel, gridBagConstraints); vmValueLabel.setText(getVMValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(vmValueLabel, gridBagConstraints); vendorValueLabel.setText(getVendorValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(vendorValueLabel, gridBagConstraints); javaHomeValueLabel.setText(getJavaHomeValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(javaHomeValueLabel, gridBagConstraints); systemLocaleValueLabel.setText(getSystemLocaleValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 8; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(systemLocaleValueLabel, gridBagConstraints); homeDirValueLabel.setText(getHomeDirValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 9; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(homeDirValueLabel, gridBagConstraints); currentDirValueLabel.setText(getCurrentDirValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(currentDirValueLabel, gridBagConstraints); ! ideInstallValueField.setEditable(false); ! ideInstallValueField.setText(getIDEInstallValue () ! ! ); ! ideInstallValueField.setOpaque(false); ! gridBagConstraints = new java.awt.GridBagConstraints(); ! gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 12; ! gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE; ! gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; ! gridBagConstraints.insets = new java.awt.Insets(6, 12, 11, 11); ! add(ideInstallValueField, gridBagConstraints); ! userDirValueLabel.setText(getUserDirValue()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 11; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(userDirValueLabel, gridBagConstraints); ! } ! // //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel currentDirLabel; ! private javax.swing.JLabel currentDirValueLabel; private javax.swing.JLabel homeDirLabel; ! private javax.swing.JLabel homeDirValueLabel; private javax.swing.JLabel ideImageLabel; private javax.swing.JLabel ideInstallLabel; private javax.swing.JTextArea ideInstallValueField; private javax.swing.JPanel jPanel1; private javax.swing.JLabel javaHomeLabel; ! private javax.swing.JLabel javaHomeValueLabel; private javax.swing.JLabel javaLabel; ! private javax.swing.JLabel javaValueLabel; private javax.swing.JLabel operatingSystemLabel; ! private javax.swing.JLabel operatingSystemValueLabel; private javax.swing.JLabel productInformationLabel; private javax.swing.JLabel productVersionLabel; ! private javax.swing.JLabel productVersionValueLabel; private javax.swing.JLabel systemLocaleLabel; ! private javax.swing.JLabel systemLocaleValueLabel; private javax.swing.JLabel userDirLabel; ! private javax.swing.JLabel userDirValueLabel; private javax.swing.JLabel vendorLabel; ! private javax.swing.JLabel vendorValueLabel; private javax.swing.JLabel vmLabel; ! private javax.swing.JLabel vmValueLabel; // End of variables declaration//GEN-END:variables private String fromBundle (String bundleString) { --- 281,405 ---- gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 11); add(productVersionValueLabel, gridBagConstraints); + operatingSystemValueLabel.setEditable(false); operatingSystemValueLabel.setText(getOperatingSystemValue()); + operatingSystemValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(operatingSystemValueLabel, gridBagConstraints); + javaValueLabel.setEditable(false); javaValueLabel.setText(getJavaValue()); + javaValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(javaValueLabel, gridBagConstraints); + vmValueLabel.setEditable(false); vmValueLabel.setText(getVMValue()); + vmValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 4; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(vmValueLabel, gridBagConstraints); + vendorValueLabel.setEditable(false); vendorValueLabel.setText(getVendorValue()); + vendorValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 5; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(vendorValueLabel, gridBagConstraints); + javaHomeValueLabel.setEditable(false); javaHomeValueLabel.setText(getJavaHomeValue()); + javaHomeValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 6; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(javaHomeValueLabel, gridBagConstraints); + systemLocaleValueLabel.setEditable(false); systemLocaleValueLabel.setText(getSystemLocaleValue()); + systemLocaleValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 7; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(systemLocaleValueLabel, gridBagConstraints); + homeDirValueLabel.setEditable(false); homeDirValueLabel.setText(getHomeDirValue()); + homeDirValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 8; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(homeDirValueLabel, gridBagConstraints); + currentDirValueLabel.setEditable(false); currentDirValueLabel.setText(getCurrentDirValue()); + currentDirValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 9; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(currentDirValueLabel, gridBagConstraints); ! userDirValueLabel.setEditable(false); userDirValueLabel.setText(getUserDirValue()); + userDirValueLabel.setOpaque(false); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 2; ! gridBagConstraints.gridy = 10; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(6, 12, 0, 11); add(userDirValueLabel, gridBagConstraints); ! }// //GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton copyButton; private javax.swing.JLabel currentDirLabel; ! private javax.swing.JTextArea currentDirValueLabel; private javax.swing.JLabel homeDirLabel; ! private javax.swing.JTextArea homeDirValueLabel; private javax.swing.JLabel ideImageLabel; private javax.swing.JLabel ideInstallLabel; private javax.swing.JTextArea ideInstallValueField; private javax.swing.JPanel jPanel1; private javax.swing.JLabel javaHomeLabel; ! private javax.swing.JTextArea javaHomeValueLabel; private javax.swing.JLabel javaLabel; ! private javax.swing.JTextArea javaValueLabel; private javax.swing.JLabel operatingSystemLabel; ! private javax.swing.JTextArea operatingSystemValueLabel; private javax.swing.JLabel productInformationLabel; private javax.swing.JLabel productVersionLabel; ! private javax.swing.JTextArea productVersionValueLabel; private javax.swing.JLabel systemLocaleLabel; ! private javax.swing.JTextArea systemLocaleValueLabel; private javax.swing.JLabel userDirLabel; ! private javax.swing.JTextArea userDirValueLabel; private javax.swing.JLabel vendorLabel; ! private javax.swing.JTextArea vendorValueLabel; private javax.swing.JLabel vmLabel; ! private javax.swing.JTextArea vmValueLabel; // End of variables declaration//GEN-END:variables private String fromBundle (String bundleString) { *************** *** 484,489 **** --- 522,588 ---- return System.getProperty("netbeans.user"); } + private String getEncodingValue() { + return System.getProperty("file.encoding", "unknown"); + } + + private Clipboard getExClipboard() { + if (clipboard == null) { + clipboard = (ExClipboard) Lookup.getDefault().lookup(ExClipboard.class); + if (clipboard == null) { + clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + } + } + return clipboard; + } + + private class CopyProductInfoAction extends CallableSystemAction { + + public void performAction() { + StringBuffer sb = new StringBuffer(); + sb.append(getProductVersionValue()); + sb.append("\n"); + sb.append(getJavaValue()); + sb.append("; "); + sb.append(getVMValue()); + sb.append("\n"); + sb.append(getOperatingSystemValue()); + sb.append("\n"); + sb.append(getSystemLocaleValue()); + sb.append("; "); + sb.append(getEncodingValue()); + StringSelection stringSel = new StringSelection(sb.toString()); + Clipboard cb = getExClipboard(); + if (cb != null) { + cb.setContents(stringSel, null); + } + } + + public String getName() { + return null; + } + + public HelpCtx getHelpCtx() { + return HelpCtx.DEFAULT_HELP; + } + + protected String iconResource() { + return "org/netbeans/core/resources/copy.gif"; // NOI18N + } + + protected void initialize() { + super.initialize(); + String tooltip = NbBundle.getMessage(ProductInformationPanel.class, + "CTL_CopyButton_tooltip"); // NOI18N + putValue(javax.swing.Action.SHORT_DESCRIPTION, tooltip); + } + + protected boolean asynchronous() { + return false; + } + + } + /** */ static class FocusableLabel extends JLabel { *************** *** 507,513 **** getAccessibleContext().setAccessibleName(getText()); } ! public boolean isFocusTraversable() { return (true); } --- 606,612 ---- getAccessibleContext().setAccessibleName(getText()); } ! public boolean isFocusable() { return (true); } *************** *** 538,553 **** //java.util.ResourceBundle bundle; //bundle = org.openide.util.NbBundle.getBundle(this.getClass()); ! productVersionValueLabel.getAccessibleContext().setAccessibleName(productVersionLabel.getText() + productVersionValueLabel.getText()); ! operatingSystemValueLabel.getAccessibleContext().setAccessibleName(operatingSystemLabel.getText() + operatingSystemValueLabel.getText()); ! javaValueLabel.getAccessibleContext().setAccessibleName(javaLabel.getText() + vmValueLabel.getText()); ! vmValueLabel.getAccessibleContext().setAccessibleName(vmLabel.getText() + vmValueLabel.getText()); ! vendorValueLabel.getAccessibleContext().setAccessibleName(vendorLabel.getText() + vendorValueLabel.getText()); ! javaHomeValueLabel.getAccessibleContext().setAccessibleName(javaHomeLabel.getText() + javaHomeValueLabel.getText()); ! systemLocaleValueLabel.getAccessibleContext().setAccessibleName(systemLocaleLabel.getText() + systemLocaleValueLabel.getText()); ! homeDirValueLabel.getAccessibleContext().setAccessibleName(homeDirLabel.getText() + homeDirValueLabel.getText()); ! currentDirValueLabel.getAccessibleContext().setAccessibleName(currentDirLabel.getText() + currentDirValueLabel.getText()); ! ideInstallValueField.getAccessibleContext().setAccessibleName(ideInstallLabel.getText() + ideInstallValueField.getText()); ! userDirValueLabel.getAccessibleContext().setAccessibleName(userDirLabel.getText() + userDirValueLabel.getText()); } } --- 637,673 ---- //java.util.ResourceBundle bundle; //bundle = org.openide.util.NbBundle.getBundle(this.getClass()); ! productVersionValueLabel.getAccessibleContext().setAccessibleName(productVersionLabel.getText() + " " + productVersionValueLabel.getText()); ! productVersionValueLabel.getAccessibleContext().setAccessibleDescription(productVersionValueLabel.getText()); ! ! operatingSystemValueLabel.getAccessibleContext().setAccessibleName(operatingSystemLabel.getText() + " " + operatingSystemValueLabel.getText()); ! operatingSystemValueLabel.getAccessibleContext().setAccessibleDescription(operatingSystemValueLabel.getText()); ! ! javaValueLabel.getAccessibleContext().setAccessibleName(javaLabel.getText() + " " + javaValueLabel.getText()); ! javaValueLabel.getAccessibleContext().setAccessibleDescription(javaValueLabel.getText()); ! ! vmValueLabel.getAccessibleContext().setAccessibleName(vmLabel.getText() + " " + vmValueLabel.getText()); ! vmValueLabel.getAccessibleContext().setAccessibleDescription(vmValueLabel.getText()); ! ! vendorValueLabel.getAccessibleContext().setAccessibleName(vendorLabel.getText() + " " + vendorValueLabel.getText()); ! vendorValueLabel.getAccessibleContext().setAccessibleDescription(vendorValueLabel.getText()); ! ! javaHomeValueLabel.getAccessibleContext().setAccessibleName(javaHomeLabel.getText() + " " + javaHomeValueLabel.getText()); ! javaHomeValueLabel.getAccessibleContext().setAccessibleDescription(javaHomeValueLabel.getText()); ! ! systemLocaleValueLabel.getAccessibleContext().setAccessibleName(systemLocaleLabel.getText() + " " + systemLocaleValueLabel.getText()); ! systemLocaleValueLabel.getAccessibleContext().setAccessibleDescription(systemLocaleValueLabel.getText()); ! ! homeDirValueLabel.getAccessibleContext().setAccessibleName(homeDirLabel.getText() + " " + homeDirValueLabel.getText()); ! homeDirValueLabel.getAccessibleContext().setAccessibleDescription(homeDirValueLabel.getText()); ! ! currentDirValueLabel.getAccessibleContext().setAccessibleName(currentDirLabel.getText() + " " + currentDirValueLabel.getText()); ! currentDirValueLabel.getAccessibleContext().setAccessibleDescription(currentDirValueLabel.getText()); ! ! ideInstallValueField.getAccessibleContext().setAccessibleName(ideInstallLabel.getText() + " " + ideInstallValueField.getText()); ! ideInstallValueField.getAccessibleContext().setAccessibleDescription(ideInstallValueField.getText()); ! ! userDirValueLabel.getAccessibleContext().setAccessibleName(userDirLabel.getText() + " " + userDirValueLabel.getText()); ! userDirValueLabel.getAccessibleContext().setAccessibleDescription(userDirValueLabel.getText()); } } Index: org/netbeans/core/ui/Bundle.properties *** E:\sources\netbeans\trunk\core\src\org\netbeans\core\ui\Bundle.properties Base (1.80) --- E:\sources\netbeans\trunk\core\src\org\netbeans\core\ui\Bundle.properties Locally Modified (Based On 1.80) *************** *** 23,28 **** --- 23,29 ---- LBL_IDEInstall=Install Dirs: LBL_UserDir=User Dir: Format_OperatingSystem_Value={0} version {1} running on {2} + CTL_CopyButton_tooltip=Copy NetBeans Product Information to clipboard #SwingBrowser LBL_SwingBrowserDescription=Simple HTML Browser based on a Swing component