mbien commented on PR #6150:
URL: https://github.com/apache/netbeans/pull/6150#issuecomment-1627479850

   played with it a bit and it seems to be working. However, I believe it would 
be better to incorporate the checkbox into the main combo box which controls 
the listener styles.
   
   It has the following advantages:
    - it makes a bit more sense since the lambda checkbox does only apply to 
the anonymous classes mode anyway
    - it will appear in the global options under `tools -> options -> java -> 
guy builder -> listener generaiton style` and we don't have to add another 
checkbox there too
   
   ```diff
   diff --git a/java/form/src/org/netbeans/modules/form/Bundle.properties 
b/java/form/src/org/netbeans/modules/form/Bundle.properties
   index d876bd9..7dca6e0 100644
   --- a/java/form/src/org/netbeans/modules/form/Bundle.properties
   +++ b/java/form/src/org/netbeans/modules/form/Bundle.properties
   @@ -39,8 +39,6 @@
    # Control Panel -> Form Objects Property Names
    PROP_LISTENER_GENERATION_STYLE=Listener Generation Style
    HINT_LISTENER_GENERATION_STYLE=The style of generating code of event 
listeners
   -PROP_GENERATE_LAMBDA_LISTENERS=Create lambda listener if possible
   -HINT_GENERATE_LAMBDA_LISTENERS=When it's possible listener will be 
generated as lambda
    PROP_LAYOUT_CODE_TARGET=Layout Generation Style
    HINT_LAYOUT_CODE_TARGET=The type of code generated for advanced layout 
features (requiring Java 6 or a special library).
    PROP_AUTO_RESOURCE=Automatic Resource Management
   @@ -460,6 +458,7 @@
    # PARTIAL do not translate TODO
    MSG_EventHandlerBody=// TODO add your handling code here:\n
    
   +CTL_LISTENER_LAMBDAS=Lambdas or Anonymous Inner Classes
    CTL_LISTENER_ANONYMOUS_CLASSES=Anonymous Inner Classes
    CTL_LISTENER_CEDL_INNERCLASS=One Inner Class
    CTL_LISTENER_CEDL_MAINCLASS=Main Class
   @@ -733,6 +732,7 @@
    Default_Modifier=<default>
    Protected_Modifier=protected
    Private_Modifier=private
   +Lambdas=Lambdas or Anonymous Inner Classes
    Anonymous=Anonymous Inner Classes
    InnerClass=One Inner Class
    MainClass=Main Class
   diff --git 
a/java/form/src/org/netbeans/modules/form/FormEditorCustomizer.java 
b/java/form/src/org/netbeans/modules/form/FormEditorCustomizer.java
   index 1c48e45..b655a22 100644
   --- a/java/form/src/org/netbeans/modules/form/FormEditorCustomizer.java
   +++ b/java/form/src/org/netbeans/modules/form/FormEditorCustomizer.java
   @@ -27,7 +27,6 @@
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Modifier;
    import java.util.HashSet;
   -import java.util.MissingResourceException;
    import java.util.Set;
    import java.util.logging.Level;
    import java.util.logging.Logger;
   @@ -94,6 +93,7 @@
            cbListenerStyle.addItem(loc("Anonymous")); // NOI18N
            cbListenerStyle.addItem(loc("InnerClass")); // NOI18N
            cbListenerStyle.addItem(loc("MainClass")); // NOI18N
   +        cbListenerStyle.addItem(loc("Lambdas")); // NOI18N
            cbAutoI18n.addItem(loc("CTL_AUTO_RESOURCE_DEFAULT")); // NOI18N
            cbAutoI18n.addItem(loc("CTL_AUTO_RESOURCE_ON")); // NOI18N
            cbAutoI18n.addItem(loc("CTL_AUTO_RESOURCE_OFF")); // NOI18N
   diff --git a/java/form/src/org/netbeans/modules/form/FormLoaderSettings.java 
b/java/form/src/org/netbeans/modules/form/FormLoaderSettings.java
   index aa52e56..0650b75 100644
   --- a/java/form/src/org/netbeans/modules/form/FormLoaderSettings.java
   +++ b/java/form/src/org/netbeans/modules/form/FormLoaderSettings.java
   @@ -34,8 +34,6 @@
        public static final String PROP_USE_INDENT_ENGINE = "useIndentEngine"; 
// NOI18N
        /** Property name of the event listener code generation style option. */
        public static final String PROP_LISTENER_GENERATION_STYLE = 
"listenerGenerationStyle"; // NOI18N
   -    /** Property name of the event create listeners as lambda. */
   -    public static final String PROP_GENERATE_LAMBDA_LISTENERS = 
"generateLambdaListeners"; // NOI18N
        /** Property name of the selectionBorderSize property */
        public static final String PROP_SELECTION_BORDER_SIZE = 
"selectionBorderSize"; // NOI18N
        /** Property name of the selectionBorderColor property */
   @@ -152,24 +150,6 @@
        }
    
        /**
   -     * Getter for the event generate listeners as lambda in code.
   -     *
   -     * @return listener generation style.
   -     */
   -    public boolean getGenerateListenersAsLambda() {
   -        return getPreferences().getBoolean(PROP_GENERATE_LAMBDA_LISTENERS, 
false);
   -    }
   -
   -    /**
   -     * Setter for the event generate listeners as lambda in code.
   -     *
   -     * @param style listener generation style.
   -     */
   -    public void setGenerateListenersAsLambda(boolean asLambda) {
   -        getPreferences().putBoolean(PROP_GENERATE_LAMBDA_LISTENERS, 
asLambda);
   -    }
   -
   -    /**
         * Getter for the selectionBorderSize option.
         * 
         * @return selection border size.
   diff --git a/java/form/src/org/netbeans/modules/form/FormSettings.java 
b/java/form/src/org/netbeans/modules/form/FormSettings.java
   index 28dcdd0..dfea048 100644
   --- a/java/form/src/org/netbeans/modules/form/FormSettings.java
   +++ b/java/form/src/org/netbeans/modules/form/FormSettings.java
   @@ -55,10 +55,6 @@
            int listenerGenerationStyle = 
FormLoaderSettings.getInstance().getListenerGenerationStyle();
            settings.put(FormLoaderSettings.PROP_LISTENER_GENERATION_STYLE, 
Integer.valueOf(listenerGenerationStyle));
    
   -        // Listener Generation Style
   -        boolean generateListenersAsLambda = 
FormLoaderSettings.getInstance().getGenerateListenersAsLambda();
   -        settings.put(FormLoaderSettings.PROP_GENERATE_LAMBDA_LISTENERS, 
Boolean.valueOf(generateListenersAsLambda));
   -
            // Generate FQN
            boolean generateFQN = 
FormLoaderSettings.getInstance().getGenerateFQN();
            settings.put(FormLoaderSettings.PROP_GENERATE_FQN, generateFQN);
   @@ -132,15 +128,6 @@
            settings.put(FormLoaderSettings.PROP_LISTENER_GENERATION_STYLE, 
Integer.valueOf(value));
        }
    
   -    public boolean getGenerateListenersAsLambda() {
   -        boolean listenerGenerationStyle = 
(boolean)settings.get(FormLoaderSettings.PROP_GENERATE_LAMBDA_LISTENERS);
   -        return listenerGenerationStyle;
   -    }
   -
   -    public void setGenerateListenersAsLambda(boolean value) {
   -        settings.put(FormLoaderSettings.PROP_GENERATE_LAMBDA_LISTENERS, 
value);
   -    }
   -
        public int getLayoutCodeTarget() {
            return checkLayoutCodeTarget();
        }
   diff --git a/java/form/src/org/netbeans/modules/form/JavaCodeGenerator.java 
b/java/form/src/org/netbeans/modules/form/JavaCodeGenerator.java
   index e41bfb8..e36afba 100644
   --- a/java/form/src/org/netbeans/modules/form/JavaCodeGenerator.java
   +++ b/java/form/src/org/netbeans/modules/form/JavaCodeGenerator.java
   @@ -131,6 +131,7 @@
        static final int ANONYMOUS_INNERCLASSES = 0;
        static final int CEDL_INNERCLASS = 1;
        static final int CEDL_MAINCLASS = 2;
   +    static final int LAMBDAS = 3;
    
        // types of code generation of layout code
        static final int LAYOUT_CODE_AUTO = 0;
   @@ -263,7 +264,6 @@
                propList.add(new LocalVariablesProperty());
                propList.add(new GenerateFQNProperty());
                propList.add(new GenerateMnemonicsCodeProperty());
   -            propList.add(new GenerateLambdaListenersCodeProperty());
                propList.add(new ListenerGenerationStyleProperty());
                FormServices services = 
Lookup.getDefault().lookup(FormServices.class);
                if (services.isLayoutExtensionsLibrarySupported()) {
   @@ -2434,15 +2434,16 @@
                    lastEventSetDesc = eventSetDesc;
                }
    
   -            if (defaultMode != ANONYMOUS_INNERCLASSES)
   +            if (defaultMode != ANONYMOUS_INNERCLASSES && defaultMode != 
LAMBDAS) {
                    if (mode == defaultMode) {
                        if (!event.isInCEDL())
                            mode = ANONYMOUS_INNERCLASSES;
   -                }
   -                else if (event.isInCEDL())
   +                } else if (event.isInCEDL()) {
                        mixedMode = true;
   +                }
   +            }
    
   -            if (defaultMode == ANONYMOUS_INNERCLASSES || !event.isInCEDL()) 
{
   +            if (defaultMode == ANONYMOUS_INNERCLASSES || defaultMode == 
LAMBDAS || !event.isInCEDL()) {
                    if (listenerEvents == null)
                        listenerEvents = new ArrayList<Event>();
                    listenerEvents.add(event);
   @@ -2499,7 +2500,8 @@
    
            switch (mode) {
                case ANONYMOUS_INNERCLASSES:
   -                generateInnerClasses(codeWriter, eventSetDesc, eventList);
   +            case LAMBDAS:
   +                generateInnerClasses(codeWriter, eventSetDesc, eventList, 
mode == LAMBDAS);
                    break;
    
                case CEDL_INNERCLASS:
   @@ -2517,9 +2519,9 @@
                generateCatchCode(exceptions, codeWriter);
        }
    
   -    private void generateInnerClasses(Writer codeWriter, EventSetDescriptor 
eventSetDesc,List<Event> eventList) throws IOException {
   +    private void generateInnerClasses(Writer codeWriter, EventSetDescriptor 
eventSetDesc, List<Event> eventList, boolean useLambdas) throws IOException {
    
   -        if (formModel.getSettings().getGenerateListenersAsLambda() && 
eventSetDesc.getListenerMethods().length == 1) {
   +        if (useLambdas && eventSetDesc.getListenerMethods().length == 1) {
                generateWithReferenceOrLambda(codeWriter, eventList);
            } else {
                codeWriter.write("new "); // NOI18N
   @@ -4465,45 +4467,6 @@
            }
        }
    
   -    private class GenerateLambdaListenersCodeProperty extends 
PropertySupport.ReadWrite {
   -
   -        private GenerateLambdaListenersCodeProperty() {
   -            super(PROP_GENERATE_LAMBDA_LISTENERS,
   -                    Boolean.TYPE,
   -                    
FormUtils.getBundleString("PROP_GENERATE_LAMBDA_LISTENERS"), // NOI18N
   -                    
FormUtils.getBundleString("HINT_GENERATE_LAMBDA_LISTENERS")); // NOI18N
   -        }
   -
   -        @Override
   -        public void setValue(Object value) {
   -            if (!(value instanceof Boolean))
   -                throw new IllegalArgumentException();
   -
   -            Boolean oldValue = (Boolean) getValue();
   -            Boolean newValue = (Boolean) value;
   -            
formModel.getSettings().setGenerateListenersAsLambda(newValue.booleanValue());
   -            formModel.fireSyntheticPropertyChanged(null, 
PROP_GENERATE_LAMBDA_LISTENERS, oldValue, newValue);
   -            FormEditor formEditor = FormEditor.getFormEditor(formModel);
   -            formEditor.getFormRootNode().firePropertyChangeHelper(
   -                    PROP_GENERATE_LAMBDA_LISTENERS, oldValue, newValue);
   -        }
   -
   -        @Override
   -        public Object getValue() {
   -            return 
Boolean.valueOf(formModel.getSettings().getGenerateListenersAsLambda());
   -        }
   -
   -        @Override
   -        public boolean canWrite() {
   -            return JavaCodeGenerator.this.canGenerate && 
!JavaCodeGenerator.this.formModel.isReadOnly() && (ANONYMOUS_INNERCLASSES == 
formModel.getSettings().getListenerGenerationStyle());
   -        }
   -
   -        @Override
   -        public boolean supportsDefaultValue() {
   -            return false;
   -        }
   -    }
   -
        private class ListenerGenerationStyleProperty extends 
PropertySupport.ReadWrite {
    
            private ListenerGenerationStyleProperty() {
   @@ -4702,6 +4665,9 @@
        {
            public ListenerGenerationStyleEditor() {
                super(new Object[] {
   +                FormUtils.getBundleString("CTL_LISTENER_LAMBDAS"), // NOI18N
   +                Integer.valueOf(JavaCodeGenerator.LAMBDAS),
   +                "" ,// NOI18N
                    
FormUtils.getBundleString("CTL_LISTENER_ANONYMOUS_CLASSES"), // NOI18N
                    Integer.valueOf(JavaCodeGenerator.ANONYMOUS_INNERCLASSES),
                    "", // NOI18N
   
   
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to