Package org.netbeans.modules.openoffice.wizard.panels.idl

Source Code of org.netbeans.modules.openoffice.wizard.panels.idl.ParameterPanel

/*
* ParameterPanel.java
*
* Created on August 16, 2002, 4:24 PM
*/

package org.netbeans.modules.openoffice.wizard.panels.idl;

import javax.swing.JPanel;
import org.openide.explorer.ExplorerManager;
import java.beans.PropertyChangeListener;
import org.openide.nodes.Index;
import java.beans.PropertyChangeEvent;
import org.openide.nodes.Node;
import org.openide.src.MemberElement;
import org.openide.src.FieldElement;
import org.openide.src.SourceException;
import org.openide.src.Identifier;
import org.openide.nodes.Children;

/**
*
* @author  Bertram Nolte
*/
public class ParameterPanel extends JPanel {

    private ElementCreator elementCreator;
    private ExplorerManager manager;
    private PropertyChangeListener managerListener;
    private Index indexableParent;
   
    /** Creates new form ParameterPanel */
    public ParameterPanel( ElementCreator elementcreator ) {
        this.elementCreator = elementcreator;
//        Index.KeysChildren c = new FieldsChildren(data.getCustomizedClass());
//        Node n = new IndexedRoot(c);
//        getExplorerManager().setRootContext(n);
        initComponents();
    }
   
    /** 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() {//GEN-BEGIN:initComponents
        java.awt.GridBagConstraints gridBagConstraints;

        jLabelHeader = new javax.swing.JLabel();
        jLabelParameter = new javax.swing.JLabel();
        jPanelParameter = new javax.swing.JPanel();
        jButtonNew = new javax.swing.JButton();
        jButtonDuplicate = new javax.swing.JButton();
        jButtonDelete = new javax.swing.JButton();
        jButtonUp = new javax.swing.JButton();
        jButtonDown = new javax.swing.JButton();
        jListParameter = new javax.swing.JList();
        jPanelFieldCustomizer = new javax.swing.JPanel();
        jLabelName = new javax.swing.JLabel();
        jTextFieldName = new javax.swing.JTextField();
        jLabelType = new javax.swing.JLabel();
        jTextFieldType = new javax.swing.JTextField();
        jPanelDirectionFlag = new javax.swing.JPanel();
        jCheckBoxInFlag = new javax.swing.JCheckBox();
        jCheckBoxOutFlag = new javax.swing.JCheckBox();

        setLayout(new java.awt.GridBagLayout());

        jLabelHeader.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("ACS_ParameterPanelHeader"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 10;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 1, 1, 1);
        add(jLabelHeader, gridBagConstraints);

        jLabelParameter.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("ACS_ParameterPanelListHeader"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 1, 1, 1);
        add(jLabelParameter, gridBagConstraints);

        jPanelParameter.setLayout(new java.awt.GridBagLayout());

        jButtonNew.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_New"));
        jButtonNew.setMaximumSize(new java.awt.Dimension(93, 26));
        jButtonNew.setMinimumSize(new java.awt.Dimension(93, 26));
        jButtonNew.setPreferredSize(new java.awt.Dimension(93, 26));
        jButtonNew.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonNewActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelParameter.add(jButtonNew, gridBagConstraints);

        jButtonDuplicate.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_Duplicate"));
        jButtonDuplicate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonDuplicateActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelParameter.add(jButtonDuplicate, gridBagConstraints);

        jButtonDelete.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_Delete"));
        jButtonDelete.setMaximumSize(new java.awt.Dimension(93, 26));
        jButtonDelete.setMinimumSize(new java.awt.Dimension(93, 26));
        jButtonDelete.setPreferredSize(new java.awt.Dimension(93, 26));
        jButtonDelete.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonDeleteActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelParameter.add(jButtonDelete, gridBagConstraints);

        jButtonUp.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_Up"));
        jButtonUp.setMaximumSize(new java.awt.Dimension(93, 26));
        jButtonUp.setMinimumSize(new java.awt.Dimension(93, 26));
        jButtonUp.setPreferredSize(new java.awt.Dimension(93, 26));
        jButtonUp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonUpActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelParameter.add(jButtonUp, gridBagConstraints);

        jButtonDown.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_Down"));
        jButtonDown.setMaximumSize(new java.awt.Dimension(93, 26));
        jButtonDown.setMinimumSize(new java.awt.Dimension(93, 26));
        jButtonDown.setPreferredSize(new java.awt.Dimension(93, 26));
        jButtonDown.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonDownActionPerformed(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelParameter.add(jButtonDown, gridBagConstraints);

        jListParameter.setMaximumSize(new java.awt.Dimension(400, 400));
        jListParameter.setMinimumSize(new java.awt.Dimension(20, 20));
        jListParameter.setPreferredSize(new java.awt.Dimension(150, 150));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE;
        gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 11);
        jPanelParameter.add(jListParameter, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        add(jPanelParameter, gridBagConstraints);

        jPanelFieldCustomizer.setLayout(new java.awt.GridBagLayout());

        jLabelName.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_ParameterName"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelFieldCustomizer.add(jLabelName, gridBagConstraints);

        jTextFieldName.setText("jTextField1");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelFieldCustomizer.add(jTextFieldName, gridBagConstraints);

        jLabelType.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_ParameterType"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelFieldCustomizer.add(jLabelType, gridBagConstraints);

        jTextFieldType.setText("jTextField1");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelFieldCustomizer.add(jTextFieldType, gridBagConstraints);

        jPanelDirectionFlag.setLayout(new java.awt.GridBagLayout());

        jPanelDirectionFlag.setBorder(new javax.swing.border.TitledBorder(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_DirectionFlag")));
        jCheckBoxInFlag.setSelected(true);
        jCheckBoxInFlag.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_CheckBoxIn"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelDirectionFlag.add(jCheckBoxInFlag, gridBagConstraints);

        jCheckBoxOutFlag.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/openoffice/wizard/panels/idl/Bundle").getString("LBL_CheckBoxOut"));
        jPanelDirectionFlag.add(jCheckBoxOutFlag, new java.awt.GridBagConstraints());

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.insets = new java.awt.Insets(1, 1, 1, 1);
        jPanelFieldCustomizer.add(jPanelDirectionFlag, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
        add(jPanelFieldCustomizer, gridBagConstraints);

    }//GEN-END:initComponents

    private void jButtonDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonDownActionPerformed
        // Add your handling code here:
    }//GEN-LAST:event_jButtonDownActionPerformed

    private void jButtonUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonUpActionPerformed
        // Add your handling code here:
    }//GEN-LAST:event_jButtonUpActionPerformed

    private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonDeleteActionPerformed
        // Add your handling code here:
    }//GEN-LAST:event_jButtonDeleteActionPerformed

    private void jButtonDuplicateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonDuplicateActionPerformed
        // Add your handling code here:
    }//GEN-LAST:event_jButtonDuplicateActionPerformed

    private void jButtonNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonNewActionPerformed
        try {
            String stringElementName = elementCreator.createElement().getName();
            Node nodeRoot = manager.getExploredContext();
            Children children = nodeRoot.getChildren();
            Node node = children.findChild( stringElementName );

            if ( node != null ) {
                updateSelection( new Node[] { node } );
            }
        }
        catch (SourceException ex) {
            // silently
        }
    }//GEN-LAST:event_jButtonNewActionPerformed

    public void addNotify() {
        super.addNotify();
        if (manager == null)
            manager = ExplorerManager.find(this);
        if (managerListener == null)
            managerListener = new java.beans.PropertyChangeListener() {
                public void propertyChange(PropertyChangeEvent evt) {
                    if (ExplorerManager.PROP_SELECTED_NODES.equals(evt.getPropertyName())) {
                        updateButtons();
                    }
                    if (ExplorerManager.PROP_EXPLORED_CONTEXT.equals(evt.getPropertyName())) {
                        indexableParent = (Index)((Node)evt.getNewValue()).getCookie(Index.class);
                        updateButtons();
                    }
                }
            };
        manager.addPropertyChangeListener(managerListener);
       
        Node n = manager.getExploredContext();
        if (n != null)
            indexableParent = (Index)n.getCookie(Index.class);
        updateButtons();
    }
   
    public void removeNotify() {
        super.removeNotify();
        manager.removePropertyChangeListener(managerListener);
    }   

    private void updateButtons() {
        ExplorerManager m = manager;
        Node[] nodes = m.getSelectedNodes();  
        boolean singleSel = nodes.length == 1;

        // these buttons are valid only for single selection
        if (indexableParent != null && singleSel) {
            // If the nodes provide ReorderCookie, they can be reordered inside their parent.
            jButtonUp.setEnabled(!isFirst(nodes[0]));
            jButtonDown.setEnabled(!isLast(nodes[0]));
        } else {
            jButtonUp.setEnabled(false);
            jButtonDown.setEnabled(false);
        }
       
        boolean canRemove = false;
        for (int i = 0; i < nodes.length; i++) {
            if ((nodes[i].canDestroy())
                && (elementCreator.canDelete((ParameterElement)nodes[i].getCookie(ParameterElement.class)))) {
//            ) {
                canRemove = true;
                break;
            }
        }
        jButtonDelete.setEnabled(canRemove);
        jButtonDuplicate.setEnabled(singleSel);
    }

    private void updateSelection(final Node node[]) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                try {
                    manager.setSelectedNodes(node);
                } catch (java.beans.PropertyVetoException ex) {
                    // silently ignore.
                }
            }
        });
    }
   
    protected boolean isFirst(Node n) {
        return indexableParent.indexOf(n) == 0;
    }

    protected boolean isLast(Node n) {
        return indexableParent.indexOf(n) == indexableParent.getNodesCount() - 1;
    }

    protected void removeNode(Node n) {
        try {
            n.destroy();
        } catch (java.io.IOException e) {
        }
    }

    protected void createNewNode(Node parent) {
        try {
            parent.getNewTypes()[0].create();
        } catch (java.io.IOException e) {
        }
    }

    static interface ElementCreator {
        public ParameterElement createElement() throws SourceException;
        public ParameterElement duplicateElement(ParameterElement el) throws SourceException;
        public void deleteElement(ParameterElement el) throws SourceException;
        public boolean canDelete(ParameterElement el);
    }
   
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JCheckBox jCheckBoxInFlag;
    private javax.swing.JButton jButtonDown;
    private javax.swing.JButton jButtonUp;
    private javax.swing.JPanel jPanelDirectionFlag;
    private javax.swing.JButton jButtonDuplicate;
    private javax.swing.JTextField jTextFieldName;
    private javax.swing.JCheckBox jCheckBoxOutFlag;
    private javax.swing.JList jListParameter;
    private javax.swing.JLabel jLabelParameter;
    private javax.swing.JTextField jTextFieldType;
    private javax.swing.JLabel jLabelHeader;
    private javax.swing.JLabel jLabelName;
    private javax.swing.JPanel jPanelFieldCustomizer;
    private javax.swing.JPanel jPanelParameter;
    private javax.swing.JButton jButtonDelete;
    private javax.swing.JLabel jLabelType;
    private javax.swing.JButton jButtonNew;
    // End of variables declaration//GEN-END:variables
   
}
TOP

Related Classes of org.netbeans.modules.openoffice.wizard.panels.idl.ParameterPanel

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.