Package org.netbeans.modules.php.nette.generators.createcomponent

Source Code of org.netbeans.modules.php.nette.generators.createcomponent.CreateComponentGeneratorPanel

/*
* The MIT license
*
* Copyright (c) 2010 Radek Ježdík <redhead@email.cz>, Ondřej Brejla <ondrej@brejla.cz>
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

/*
* CreateComponentGeneratorPanel.java
*
* Created on 18.6.2010, 20:04:41
*/

package org.netbeans.modules.php.nette.generators.createcomponent;

import javax.swing.ImageIcon;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import org.netbeans.modules.php.nette.validators.NetteClassNameValidator;
import org.netbeans.modules.php.nette.validators.NetteComponentNameValidator;
import org.netbeans.modules.php.nette.validators.Validable;
import org.openide.DialogDescriptor;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle;

/**
*
* @author Ondřej Brejla
*/
public class CreateComponentGeneratorPanel extends javax.swing.JPanel implements DocumentListener {

  private DialogDescriptor dd;

  private ImageIcon errorIcon = ImageUtilities.loadImageIcon("org/netbeans/modules/php/nette/resources/error_icon.png", true);

    /** Creates new form CreateComponentGeneratorPanel */
    public CreateComponentGeneratorPanel() {
        initComponents();
   
    errorLabel.setText("");
    }

    /** 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")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        tabPanel = new javax.swing.JTabbedPane();
        formPanel = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        createValidSubmitCheckBox = new javax.swing.JCheckBox();
        formClass = new javax.swing.JTextField();
        createInvalidSubmitCheckBox = new javax.swing.JCheckBox();
        jLabel4 = new javax.swing.JLabel();
        formName = new javax.swing.JTextField();
        useAppFormCheckBox = new javax.swing.JCheckBox();
        createClosuresCheckBox = new javax.swing.JCheckBox();
        componentPanel = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        componentName = new javax.swing.JTextField();
        componentClass = new javax.swing.JTextField();
        registerInConstructorCheckBox = new javax.swing.JCheckBox();
        errorLabel = new javax.swing.JLabel();

        tabPanel.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                tabPanelStateChanged(evt);
            }
        });

        jLabel3.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.jLabel3.text")); // NOI18N

        createValidSubmitCheckBox.setSelected(true);
        createValidSubmitCheckBox.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.createValidSubmitCheckBox.text")); // NOI18N

        formClass.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.formClass.text")); // NOI18N
        formClass.setEnabled(false);

        createInvalidSubmitCheckBox.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.createInvalidSubmitCheckBox.text")); // NOI18N

        jLabel4.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.jLabel4.text")); // NOI18N

        formName.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.formName.text")); // NOI18N

        useAppFormCheckBox.setSelected(true);
        useAppFormCheckBox.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.useAppFormCheckBox.text")); // NOI18N
        useAppFormCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                useAppFormCheckBoxStateChanged(evt);
            }
        });

        createClosuresCheckBox.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.createClosuresCheckBox.text")); // NOI18N

        javax.swing.GroupLayout formPanelLayout = new javax.swing.GroupLayout(formPanel);
        formPanel.setLayout(formPanelLayout);
        formPanelLayout.setHorizontalGroup(
            formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(formPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(formPanelLayout.createSequentialGroup()
                        .addComponent(createValidSubmitCheckBox)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(createInvalidSubmitCheckBox)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 65, Short.MAX_VALUE)
                        .addComponent(createClosuresCheckBox))
                    .addGroup(formPanelLayout.createSequentialGroup()
                        .addGroup(formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, formPanelLayout.createSequentialGroup()
                                .addComponent(formClass, javax.swing.GroupLayout.DEFAULT_SIZE, 508, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(useAppFormCheckBox))
                            .addComponent(formName, javax.swing.GroupLayout.DEFAULT_SIZE, 614, Short.MAX_VALUE))))
                .addContainerGap())
        );
        formPanelLayout.setVerticalGroup(
            formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(formPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(formClass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(useAppFormCheckBox))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(formName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(15, 15, 15)
                .addGroup(formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(createValidSubmitCheckBox)
                    .addComponent(createInvalidSubmitCheckBox)
                    .addComponent(createClosuresCheckBox))
                .addContainerGap())
        );

        tabPanel.addTab(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.formPanel.TabConstraints.tabTitle"), formPanel); // NOI18N

        jLabel1.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.jLabel1.text")); // NOI18N

        jLabel2.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.jLabel2.text")); // NOI18N

        componentName.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.null.text_1")); // NOI18N

        componentClass.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.componentClass.text")); // NOI18N

        javax.swing.GroupLayout componentPanelLayout = new javax.swing.GroupLayout(componentPanel);
        componentPanel.setLayout(componentPanelLayout);
        componentPanelLayout.setHorizontalGroup(
            componentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(componentPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(componentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 114, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(componentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(componentName, javax.swing.GroupLayout.DEFAULT_SIZE, 575, Short.MAX_VALUE)
                    .addComponent(componentClass, javax.swing.GroupLayout.DEFAULT_SIZE, 575, Short.MAX_VALUE))
                .addContainerGap())
        );
        componentPanelLayout.setVerticalGroup(
            componentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(componentPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(componentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(componentClass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(componentPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(componentName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(43, Short.MAX_VALUE))
        );

        componentName.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.jTextField1.AccessibleContext.accessibleName")); // NOI18N

        tabPanel.addTab(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.componentPanel.TabConstraints.tabTitle"), componentPanel); // NOI18N

        registerInConstructorCheckBox.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.registerInConstructorCheckBox.text")); // NOI18N

        errorLabel.setForeground(javax.swing.UIManager.getDefaults().getColor("nb.errorForeground"));
        errorLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        errorLabel.setText(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.errorLabel.text")); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(tabPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 743, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(registerInConstructorCheckBox)
                .addContainerGap(492, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(errorLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 719, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(tabPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(registerInConstructorCheckBox)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(errorLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 16, Short.MAX_VALUE)
                .addContainerGap())
        );

        errorLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(CreateComponentGeneratorPanel.class, "CreateComponentGeneratorPanel.warning.AccessibleContext.accessibleName")); // NOI18N
    }// </editor-fold>//GEN-END:initComponents

  private void useAppFormCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_useAppFormCheckBoxStateChanged
    formClass.setEnabled(!useAppFormCheckBox.isSelected());
    if (useAppFormCheckBox.isSelected()) {
      formClass.setText("AppForm");
    }
  }//GEN-LAST:event_useAppFormCheckBoxStateChanged

  private void tabPanelStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tabPanelStateChanged
    if (dd != null) {
      doEnablement();
    }
  }//GEN-LAST:event_tabPanelStateChanged


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JTextField componentClass;
    private javax.swing.JTextField componentName;
    private javax.swing.JPanel componentPanel;
    private javax.swing.JCheckBox createClosuresCheckBox;
    private javax.swing.JCheckBox createInvalidSubmitCheckBox;
    private javax.swing.JCheckBox createValidSubmitCheckBox;
    private javax.swing.JLabel errorLabel;
    private javax.swing.JTextField formClass;
    private javax.swing.JTextField formName;
    private javax.swing.JPanel formPanel;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JCheckBox registerInConstructorCheckBox;
    private javax.swing.JTabbedPane tabPanel;
    private javax.swing.JCheckBox useAppFormCheckBox;
    // End of variables declaration//GEN-END:variables

  public String getComponentName() {
    return componentName.getText();
  }

  public String getComponentClass() {
    return componentClass.getText();
  }

  public String getFormName() {
    return formName.getText();
  }

  public String getFormClass() {
    return formClass.getText();
  }

  public boolean isCreateInvalidSubmit() {
    return createInvalidSubmitCheckBox.isSelected();
  }

  public boolean isCreateValidSubmit() {
    return createValidSubmitCheckBox.isSelected();
  }

    public boolean isCreateClosures() {
        return createClosuresCheckBox.isSelected();
    }

  public boolean isRegisterInConstructor() {
    return registerInConstructorCheckBox.isSelected();
  }

  public boolean isFormTabSelected() {
    return tabPanel.getSelectedIndex() == 0;
  }

  public void setDialogDescriptor(DialogDescriptor dd) {
     this.dd = dd;
    
     formName.getDocument().addDocumentListener(this);
     formClass.getDocument().addDocumentListener(this);
     componentName.getDocument().addDocumentListener(this);
     componentClass.getDocument().addDocumentListener(this);

     doEnablement();
    }

  @Override
  public void insertUpdate(DocumentEvent e) {
    doEnablement();
  }

  @Override
  public void removeUpdate(DocumentEvent e) {
    doEnablement();
  }

  @Override
  public void changedUpdate(DocumentEvent e) {
    doEnablement();
  }

  private void doEnablement() {
    Validable classNameValidator = new NetteClassNameValidator();
    Validable componentNameValidator = new NetteComponentNameValidator();

    if (isFormTabSelected()) {
      if (!classNameValidator.validate(getFormClass())) {
        errorLabel.setIcon(errorIcon);
        setWarningText(NbBundle.getMessage(CreateComponentGeneratorPanel.class, "ERR_head_form_class"));
       
        dd.setValid(false);
      } else if (!componentNameValidator.validate(getFormName())) {
        errorLabel.setIcon(errorIcon);
        setWarningText(NbBundle.getMessage(CreateComponentGeneratorPanel.class, "ERR_head_form_name"));

        dd.setValid(false);
      } else {
        errorLabel.setIcon(null);
        errorLabel.setText("");

        dd.setValid(true);
      }
    } else {
      if (!classNameValidator.validate(getComponentClass())) {
        errorLabel.setIcon(errorIcon);
        setWarningText(NbBundle.getMessage(CreateComponentGeneratorPanel.class, "ERR_head_component_class"));

        dd.setValid(false);
      } else if (!componentNameValidator.validate(getComponentName())) {
        errorLabel.setIcon(errorIcon);
        setWarningText(NbBundle.getMessage(CreateComponentGeneratorPanel.class, "ERR_head_component_name"));

        dd.setValid(false);
      } else {
        errorLabel.setIcon(null);
        errorLabel.setText("");
       
        dd.setValid(true);
      }
    }
  }

  private void setWarningText(String text) {
    errorLabel.setText(text + " " + NbBundle.getMessage(CreateComponentGeneratorPanel.class, "ERR_tail"));
  }

}
TOP

Related Classes of org.netbeans.modules.php.nette.generators.createcomponent.CreateComponentGeneratorPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.