/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.netbeans.modules.qa; import java.awt.Component; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.ListCellRenderer; import org.openide.util.NbPreferences; final class QAToolsPanel extends javax.swing.JPanel { private class MyCellRenderer implements ListCellRenderer { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { return new JPanel() { return new JPanel() { public void paintComponent(Graphics g) { super.paintComponent(g); Font font = (Font) value; String text = font.getFamily(); FontMetrics fm = g.getFontMetrics(font); g.setColor(isSelected ? list.getSelectionBackground() : list .getBackground()); g.fillRect(0, 0, getWidth(), getHeight()); g.setColor(isSelected ? list.getSelectionForeground() : list .getForeground()); g.setFont(font); g.drawString(text, 0, fm.getAscent()); } public Dimension getPreferredSize() { Font font = (Font) value; String text = font.getFamily(); Graphics g = getGraphics(); FontMetrics fm = g.getFontMetrics(font); return new Dimension(fm.stringWidth(text), fm.getHeight()); } }; } } } private final QAToolsOptionsPanelController controller; QAToolsPanel(QAToolsOptionsPanelController controller) { this.controller = controller; initComponents(); // TODO listen to changes in form fields and call controller.changed() } /** 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. */ // private void initComponents() { prefix = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); jList1 = new javax.swing.JList(); jButton1 = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); prefix.setText(org.openide.util.NbBundle.getMessage(QAToolsPanel.class, "QAToolsPanel.prefix.text")); // NOI18N prefix.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { prefixActionPerformed(evt); } }); jScrollPane1.setViewportView(jList1); org.openide.awt.Mnemonics.setLocalizedText(jButton1, org.openide.util.NbBundle.getMessage(QAToolsPanel.class, "QAToolsPanel.jButton1.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(QAToolsPanel.class, "QAToolsPanel.jLabel1.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jButton2, org.openide.util.NbBundle.getMessage(QAToolsPanel.class, "QAToolsPanel.jButton2.text")); // NOI18N jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); org.openide.awt.Mnemonics.setLocalizedText(jButton3, org.openide.util.NbBundle.getMessage(QAToolsPanel.class, "QAToolsPanel.jButton3.text")); // NOI18N jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 270, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(prefix, javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(jButton2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jButton3))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(prefix, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jButton1)) .addGap(101, 101, 101)) ); }// private void prefixActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } void load() { NbPreferences. } void store() { // TODO store modified settings // Example: // Preferences.userNodeForPackage(QAToolsPanel.class).putBoolean("someFlag", someCheckBox.isSelected()); // or for org.openide.util with API spec. version >= 7.4: // NbPreferences.forModule(QAToolsPanel.class).putBoolean("someFlag", someCheckBox.isSelected()); // or: // SomeSystemOption.getDefault().setSomeStringProperty(someTextField.getText()); } boolean valid() { // TODO check whether form is consistent and complete return true; } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JList jList1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField prefix; // End of variables declaration } ----- Classpath: --------------------------------------------- bootPath: /space/jdks/jdk1.6.0_11/jre/lib/resources.jar:/space/jdks/jdk1.6.0_11/jre/lib/rt.jar:/space/jdks/jdk1.6.0_11/jre/lib/sunrsasign.jar:/space/jdks/jdk1.6.0_11/jre/lib/jsse.jar:/space/jdks/jdk1.6.0_11/jre/lib/jce.jar:/space/jdks/jdk1.6.0_11/jre/lib/charsets.jar:/space/jdks/jdk1.6.0_11/jre/classes:/space/jdks/jdk1.6.0_11/jre/lib/ext/sunpkcs11.jar:/space/jdks/jdk1.6.0_11/jre/lib/ext/localedata.jar:/space/jdks/jdk1.6.0_11/jre/lib/ext/sunjce_provider.jar:/space/jdks/jdk1.6.0_11/jre/lib/ext/dnsns.jar classPath: /space/builds/netbeans-dev-4748/platform9/modules/org-jdesktop-layout.jar:/space/builds/netbeans-dev-4748/platform9/modules/ext/swing-layout-1.0.3.jar:/space/builds/netbeans-dev-4748/platform9/modules/org-netbeans-modules-options-api.jar:/space/builds/netbeans-dev-4748/platform9/modules/org-openide-awt.jar:/space/builds/netbeans-dev-4748/platform9/lib/org-openide-util.jar sourcePath: /home/jp159440/NetBeansProjects/QATools/src ----- Original exception --------------------------------------------- java.lang.NullPointerException at com.sun.tools.javac.comp.Flow.visitMethodDef(Flow.java:677) at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:657) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.comp.Flow.visitClassDef(Flow.java:657) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:588) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.comp.Flow.scanStat(Flow.java:502) at com.sun.tools.javac.comp.Flow.scanDef(Flow.java:488) at com.sun.tools.javac.comp.Flow.visitClassDef(Flow.java:635) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:588) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.comp.Flow.scanStat(Flow.java:502) at com.sun.tools.javac.comp.Flow.scanDef(Flow.java:488) at com.sun.tools.javac.comp.Flow.visitClassDef(Flow.java:635) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:588) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.comp.Flow.analyzeTree(Flow.java:1312) at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1131) at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1094) at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:446) at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:426) at org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:526) at org.netbeans.modules.java.source.parsing.JavacParser.getResult(JavacParser.java:376) at org.netbeans.modules.java.source.parsing.JavacParser.getResult(JavacParser.java:149) at org.netbeans.modules.parsing.impl.SourceCache.getResult(SourceCache.java:194) at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:677) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)