/* * Copyright (c) 2012 Sam Harwell, Tunnel Vision Laboratories LLC * All rights reserved. * * The source code of this document is proprietary work, and is not licensed for * distribution. For information about licensing, contact Sam Harwell at: * sam@tunnelvisionlabs.com */ package org.antlr.works.editor.grammar.codegen; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; public final class CodeGeneratorVisualPanel2 extends JPanel { private final CodeGeneratorWizardPanel2 _wizardPanel; private final DocumentListener _documentListener = new DocumentListener() { @Override public void insertUpdate(DocumentEvent e) { fireChange(); } @Override public void removeUpdate(DocumentEvent e) { fireChange(); } @Override public void changedUpdate(DocumentEvent e) { fireChange(); } }; public CodeGeneratorVisualPanel2() { this(null); } public CodeGeneratorVisualPanel2(CodeGeneratorWizardPanel2 wizardPanel) { initComponents(); _wizardPanel = wizardPanel; if (wizardPanel != null) { setGenerateListener(wizardPanel.isGenerateListener()); setGenerateVisitor(wizardPanel.isGenerateVisitor()); setPackageName(wizardPanel.isUsePackageName(), wizardPanel.getPackageName()); setAbstractClasses(wizardPanel.isAbstractClasses()); chkAbstractClasses.setEnabled(wizardPanel.isAbstractClassesAvailable()); wizardPanel.getLocationPanel().addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { chkAbstractClasses.setEnabled(_wizardPanel.isAbstractClassesAvailable()); } }); } txtPackageName.getDocument().addDocumentListener(_documentListener); } public boolean isGenerateListener() { return chkGenerateListener.isSelected(); } public void setGenerateListener(boolean value) { chkGenerateListener.setSelected(value); } public boolean isGenerateVisitor() { return chkGenerateVisitor.isSelected(); } public void setGenerateVisitor(boolean value) { chkGenerateVisitor.setSelected(value); } public boolean isUsePackageName() { return chkSetPackageName.isSelected(); } public String getPackageName() { return txtPackageName.getText(); } public void setPackageName(boolean checked, String name) { chkSetPackageName.setSelected(checked); if (checked || (name != null && !name.isEmpty())) { txtPackageName.setText(name); } } public boolean isAbstractClasses() { return chkAbstractClasses.isSelected(); } public void setAbstractClasses(boolean value) { chkAbstractClasses.setSelected(value); } @Override public String getName() { return "Features"; } private void fireChange() { if (_wizardPanel != null) { _wizardPanel.getChangeSupport().fireChange(); } } /** * 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() { javax.swing.JPanel jPanel1 = new javax.swing.JPanel(); chkGenerateListener = new javax.swing.JCheckBox(); chkGenerateVisitor = new javax.swing.JCheckBox(); javax.swing.JPanel jPanel2 = new javax.swing.JPanel(); txtPackageName = new javax.swing.JTextField(); chkAbstractClasses = new javax.swing.JCheckBox(); chkSetPackageName = new javax.swing.JCheckBox(); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.jPanel1.border.title"))); // NOI18N chkGenerateListener.setSelected(true); org.openide.awt.Mnemonics.setLocalizedText(chkGenerateListener, org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.chkGenerateListener.text")); // NOI18N chkGenerateListener.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { chkGenerateListenerActionPerformed(evt); } }); org.openide.awt.Mnemonics.setLocalizedText(chkGenerateVisitor, org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.chkGenerateVisitor.text")); // NOI18N chkGenerateVisitor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { chkGenerateVisitorActionPerformed(evt); } }); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(chkGenerateListener) .addComponent(chkGenerateVisitor)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(chkGenerateListener) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkGenerateVisitor)) ); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.jPanel2.border.title"))); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(chkAbstractClasses, org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.chkAbstractClasses.text")); // NOI18N chkAbstractClasses.setToolTipText(org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.chkAbstractClasses.toolTipText")); // NOI18N chkAbstractClasses.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { chkAbstractClassesActionPerformed(evt); } }); org.openide.awt.Mnemonics.setLocalizedText(chkSetPackageName, org.openide.util.NbBundle.getMessage(CodeGeneratorVisualPanel2.class, "CodeGeneratorVisualPanel2.chkSetPackageName.text")); // NOI18N chkSetPackageName.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { chkSetPackageNameActionPerformed(evt); } }); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(chkSetPackageName) .addGap(32, 32, 32) .addComponent(txtPackageName)) .addGroup(jPanel2Layout.createSequentialGroup() .addComponent(chkAbstractClasses) .addGap(0, 131, Short.MAX_VALUE))) .addContainerGap()) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(chkSetPackageName) .addComponent(txtPackageName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkAbstractClasses) .addGap(0, 0, Short.MAX_VALUE)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(80, Short.MAX_VALUE)) ); }// </editor-fold>//GEN-END:initComponents private void chkGenerateListenerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkGenerateListenerActionPerformed fireChange(); }//GEN-LAST:event_chkGenerateListenerActionPerformed private void chkGenerateVisitorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkGenerateVisitorActionPerformed fireChange(); }//GEN-LAST:event_chkGenerateVisitorActionPerformed private void chkSetPackageNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkSetPackageNameActionPerformed fireChange(); }//GEN-LAST:event_chkSetPackageNameActionPerformed private void chkAbstractClassesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkAbstractClassesActionPerformed fireChange(); }//GEN-LAST:event_chkAbstractClassesActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox chkAbstractClasses; private javax.swing.JCheckBox chkGenerateListener; private javax.swing.JCheckBox chkGenerateVisitor; private javax.swing.JCheckBox chkSetPackageName; private javax.swing.JTextField txtPackageName; // End of variables declaration//GEN-END:variables }