package org.netbeans.modules.scala.sbt.options; import static org.netbeans.modules.scala.sbt.console.SBTConsoleSettings.*; import java.util.prefs.Preferences; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import org.netbeans.modules.scala.sbt.console.SBTConsoleTopComponent; final class SbtPanel extends javax.swing.JPanel implements DocumentListener { private final SbtOptionsPanelController controller; SbtPanel(SbtOptionsPanelController controller) { this.controller = controller; initComponents(); maxHeapField.getDocument().addDocumentListener(this); initialHeapField.getDocument().addDocumentListener(this); maxPermGenField.getDocument().addDocumentListener(this); argumentsField.getDocument().addDocumentListener(this); } /** * 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. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jLabel1 = new javax.swing.JLabel(); maxHeapField = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); initialHeapField = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); maxPermGenField = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); argumentsField = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel1.text")); // NOI18N maxHeapField.setText(org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.maxHeapField.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel2.text")); // NOI18N initialHeapField.setText(org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.initialHeapField.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel3.text")); // NOI18N maxPermGenField.setText(org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.maxPermGenField.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel4.text")); // NOI18N argumentsField.setText(org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.argumentsField.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel5.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel6, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel6.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(jLabel7, org.openide.util.NbBundle.getMessage(SbtPanel.class, "SbtPanel.jLabel7.text")); // NOI18N javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(60, 60, 60) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel4) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3) .addComponent(jLabel2) .addComponent(jLabel1)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(maxHeapField, javax.swing.GroupLayout.DEFAULT_SIZE, 60, Short.MAX_VALUE) .addComponent(initialHeapField) .addComponent(maxPermGenField)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel5) .addComponent(jLabel7) .addComponent(jLabel6))) .addGroup(layout.createSequentialGroup() .addGap(6, 6, 6) .addComponent(argumentsField, javax.swing.GroupLayout.PREFERRED_SIZE, 382, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(76, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(33, 33, 33) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(maxHeapField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(initialHeapField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(maxPermGenField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(argumentsField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(73, Short.MAX_VALUE)) ); }// </editor-fold>//GEN-END:initComponents @Override public void insertUpdate(DocumentEvent e) { controller.changed(); } @Override public void removeUpdate(DocumentEvent e) { controller.changed(); } @Override public void changedUpdate(DocumentEvent e) { controller.changed(); } void load() { final Preferences prefs = Preferences.userNodeForPackage(SBTConsoleTopComponent.class); maxHeapField.setText(prefs.get(SbtMaxHeapSizeKey(), DefaultMaxHeapSizeMB())); initialHeapField.setText(prefs.get(SbtInitialHeapSizeKey(), DefaultInitialHeapSizeMB().toString())); maxPermGenField.setText(prefs.get(SbtMaxPermGenSizeKey(), DefaultMaxPermGenSizeMB().toString())); argumentsField.setText(prefs.get(SbtAdditionalArgsKey(), DefaultAdditionalArgs())); } void store() { final Preferences prefs = Preferences.userNodeForPackage(SBTConsoleTopComponent.class); prefs.put(SbtMaxHeapSizeKey(), maxHeapField.getText()); prefs.put(SbtInitialHeapSizeKey(), initialHeapField.getText()); prefs.put(SbtMaxPermGenSizeKey(), maxPermGenField.getText()); prefs.put(SbtAdditionalArgsKey(), argumentsField.getText()); } boolean numericFieldValid(JTextField target) { try { Integer.parseInt(target.getText()); } catch (NumberFormatException nfe) { return false; } return true; } boolean valid() { return numericFieldValid(maxHeapField) && numericFieldValid(initialHeapField) && numericFieldValid(maxPermGenField); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTextField argumentsField; private javax.swing.JTextField initialHeapField; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JTextField maxHeapField; private javax.swing.JTextField maxPermGenField; // End of variables declaration//GEN-END:variables }