Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 415846 | Differences between
and this patch

Collapse All | Expand All

(-)ui/org/eclipse/jdt/internal/ui/preferences/ComplianceConfigurationBlock.java (-3 / +47 lines)
Lines 106-111 Link Here
106
	private static final Key PREF_LINE_NUMBER_ATTR= getJDTCoreKey(JavaCore.COMPILER_LINE_NUMBER_ATTR);
106
	private static final Key PREF_LINE_NUMBER_ATTR= getJDTCoreKey(JavaCore.COMPILER_LINE_NUMBER_ATTR);
107
	private static final Key PREF_SOURCE_FILE_ATTR= getJDTCoreKey(JavaCore.COMPILER_SOURCE_FILE_ATTR);
107
	private static final Key PREF_SOURCE_FILE_ATTR= getJDTCoreKey(JavaCore.COMPILER_SOURCE_FILE_ATTR);
108
	private static final Key PREF_CODEGEN_UNUSED_LOCAL= getJDTCoreKey(JavaCore.COMPILER_CODEGEN_UNUSED_LOCAL);
108
	private static final Key PREF_CODEGEN_UNUSED_LOCAL= getJDTCoreKey(JavaCore.COMPILER_CODEGEN_UNUSED_LOCAL);
109
	private static final Key PREF_CODEGEN_METHOD_PARAMETERS_ATTR= getJDTCoreKey(JavaCore.COMPILER_CODEGEN_METHOD_PARAMETERS_ATTR);
109
	
110
	
110
	// values
111
	// values
111
	private static final String GENERATE= JavaCore.GENERATE;
112
	private static final String GENERATE= JavaCore.GENERATE;
Lines 142-155 Link Here
142
	private PixelConverter fPixelConverter;
143
	private PixelConverter fPixelConverter;
143
144
144
	/**
145
	/**
145
	 * Remembered user compliance (stored when {@link #INTR_DEFAULT_COMPLIANCE} is switched to {@link #DEFAULT_CONF}).
146
	 * Remembered user compliance (stored when {@link #INTR_DEFAULT_COMPLIANCE} is switched to
146
	 * Elements are identified by <code>IDX_*</code> constants.
147
	 * {@link #DEFAULT_CONF}). Elements are identified by <code>IDX_*</code> constants.
148
	 *
147
	 * @see #IDX_ASSERT_AS_IDENTIFIER
149
	 * @see #IDX_ASSERT_AS_IDENTIFIER
148
	 * @see #IDX_ENUM_AS_IDENTIFIER
150
	 * @see #IDX_ENUM_AS_IDENTIFIER
149
	 * @see #IDX_SOURCE_COMPATIBILITY
151
	 * @see #IDX_SOURCE_COMPATIBILITY
150
	 * @see #IDX_CODEGEN_TARGET_PLATFORM
152
	 * @see #IDX_CODEGEN_TARGET_PLATFORM
151
	 * @see #IDX_COMPLIANCE
153
	 * @see #IDX_COMPLIANCE
152
	 * @see #IDX_INLINE_JSR_BYTECODE
154
	 * @see #IDX_INLINE_JSR_BYTECODE
155
	 * @see #IDX_METHOD_PARAMETERS_ATTR
153
	 */
156
	 */
154
	private String[] fRememberedUserCompliance;
157
	private String[] fRememberedUserCompliance;
155
	
158
	
Lines 162-167 Link Here
162
	 * @see #IDX_CODEGEN_TARGET_PLATFORM
165
	 * @see #IDX_CODEGEN_TARGET_PLATFORM
163
	 * @see #IDX_COMPLIANCE
166
	 * @see #IDX_COMPLIANCE
164
	 * @see #IDX_INLINE_JSR_BYTECODE
167
	 * @see #IDX_INLINE_JSR_BYTECODE
168
	 * @see #IDX_METHOD_PARAMETERS_ATTR
165
	 */
169
	 */
166
	private String[] fOriginalStoredCompliance;
170
	private String[] fOriginalStoredCompliance;
167
171
Lines 171-176 Link Here
171
	private static final int IDX_CODEGEN_TARGET_PLATFORM= 3;
175
	private static final int IDX_CODEGEN_TARGET_PLATFORM= 3;
172
	private static final int IDX_COMPLIANCE= 4;
176
	private static final int IDX_COMPLIANCE= 4;
173
	private static final int IDX_INLINE_JSR_BYTECODE= 5;
177
	private static final int IDX_INLINE_JSR_BYTECODE= 5;
178
	private static final int IDX_METHOD_PARAMETERS_ATTR= 6;
174
179
175
	private IStatus fComplianceStatus;
180
	private IStatus fComplianceStatus;
176
181
Lines 197-202 Link Here
197
			getValue(PREF_CODEGEN_TARGET_PLATFORM),
202
			getValue(PREF_CODEGEN_TARGET_PLATFORM),
198
			getValue(PREF_COMPLIANCE),
203
			getValue(PREF_COMPLIANCE),
199
			getValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
204
			getValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
205
			getValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR)
200
		};
206
		};
201
	}
207
	}
202
208
Lines 204-210 Link Here
204
		Key[] keys= new Key[] {
210
		Key[] keys= new Key[] {
205
				PREF_LOCAL_VARIABLE_ATTR, PREF_LINE_NUMBER_ATTR, PREF_SOURCE_FILE_ATTR, PREF_CODEGEN_UNUSED_LOCAL, PREF_CODEGEN_INLINE_JSR_BYTECODE, INTR_DEFAULT_COMPLIANCE,
211
				PREF_LOCAL_VARIABLE_ATTR, PREF_LINE_NUMBER_ATTR, PREF_SOURCE_FILE_ATTR, PREF_CODEGEN_UNUSED_LOCAL, PREF_CODEGEN_INLINE_JSR_BYTECODE, INTR_DEFAULT_COMPLIANCE,
206
				PREF_COMPLIANCE, PREF_SOURCE_COMPATIBILITY,
212
				PREF_COMPLIANCE, PREF_SOURCE_COMPATIBILITY,
207
				PREF_CODEGEN_TARGET_PLATFORM, PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER
213
				PREF_CODEGEN_TARGET_PLATFORM, PREF_PB_ASSERT_AS_IDENTIFIER, PREF_PB_ENUM_AS_IDENTIFIER, PREF_CODEGEN_METHOD_PARAMETERS_ATTR
208
			};
214
			};
209
		
215
		
210
		if (projectSpecific) {
216
		if (projectSpecific) {
Lines 402-407 Link Here
402
		label= PreferencesMessages.ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
408
		label= PreferencesMessages.ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
403
		addCheckBox(group, label, PREF_CODEGEN_INLINE_JSR_BYTECODE, enableDisableValues, 0);
409
		addCheckBox(group, label, PREF_CODEGEN_INLINE_JSR_BYTECODE, enableDisableValues, 0);
404
		
410
		
411
		label= PreferencesMessages.ComplianceConfigurationBlock_codegen_method_parameters_attr;
412
		addCheckBox(group, label, PREF_CODEGEN_METHOD_PARAMETERS_ATTR, generateValues, 0);
413
		
405
		Composite infoComposite= new Composite(fControlsComposite, SWT.NONE);
414
		Composite infoComposite= new Composite(fControlsComposite, SWT.NONE);
406
		infoComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
415
		infoComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
407
		infoComposite.setLayout(new GridLayout(2, false));
416
		infoComposite.setLayout(new GridLayout(2, false));
Lines 509-514 Link Here
509
				}
518
				}
510
				updateControls();
519
				updateControls();
511
				updateInlineJSREnableState();
520
				updateInlineJSREnableState();
521
				updatePreserveMethodParamNamesEnableState();
512
				updateAssertEnumAsIdentifierEnableState();
522
				updateAssertEnumAsIdentifierEnableState();
513
				fComplianceStatus= validateCompliance();
523
				fComplianceStatus= validateCompliance();
514
			} else if (PREF_PB_ENUM_AS_IDENTIFIER.equals(changedKey) ||
524
			} else if (PREF_PB_ENUM_AS_IDENTIFIER.equals(changedKey) ||
Lines 523-528 Link Here
523
			updateComplianceEnableState();
533
			updateComplianceEnableState();
524
			updateAssertEnumAsIdentifierEnableState();
534
			updateAssertEnumAsIdentifierEnableState();
525
			updateInlineJSREnableState();
535
			updateInlineJSREnableState();
536
			updatePreserveMethodParamNamesEnableState();
526
			fComplianceStatus= validateCompliance();
537
			fComplianceStatus= validateCompliance();
527
			validateComplianceStatus();
538
			validateComplianceStatus();
528
		}
539
		}
Lines 539-544 Link Here
539
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
550
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
540
						getOriginalStoredValue(PREF_COMPLIANCE),
551
						getOriginalStoredValue(PREF_COMPLIANCE),
541
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
552
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
553
						getOriginalStoredValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR)
542
					};
554
					};
543
				
555
				
544
			} else {
556
			} else {
Lines 549-554 Link Here
549
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
561
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
550
						getOriginalStoredValue(PREF_COMPLIANCE),
562
						getOriginalStoredValue(PREF_COMPLIANCE),
551
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
563
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
564
						getOriginalStoredValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR)
552
					};
565
					};
553
				if (!Arrays.equals(fOriginalStoredCompliance, storedCompliance)) {
566
				if (!Arrays.equals(fOriginalStoredCompliance, storedCompliance)) {
554
					// compliance changed on disk -> override user modifications
567
					// compliance changed on disk -> override user modifications
Lines 561-566 Link Here
561
					setValue(PREF_CODEGEN_TARGET_PLATFORM, storedCompliance[IDX_CODEGEN_TARGET_PLATFORM]);
574
					setValue(PREF_CODEGEN_TARGET_PLATFORM, storedCompliance[IDX_CODEGEN_TARGET_PLATFORM]);
562
					setValue(PREF_COMPLIANCE, storedCompliance[IDX_COMPLIANCE]);
575
					setValue(PREF_COMPLIANCE, storedCompliance[IDX_COMPLIANCE]);
563
					setValue(PREF_CODEGEN_INLINE_JSR_BYTECODE, storedCompliance[IDX_INLINE_JSR_BYTECODE]);
576
					setValue(PREF_CODEGEN_INLINE_JSR_BYTECODE, storedCompliance[IDX_INLINE_JSR_BYTECODE]);
577
					setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, storedCompliance[IDX_METHOD_PARAMETERS_ATTR]);
564
					
578
					
565
				}
579
				}
566
				
580
				
Lines 569-574 Link Here
569
				updateComplianceEnableState();
583
				updateComplianceEnableState();
570
				validateComplianceStatus();
584
				validateComplianceStatus();
571
				updateInlineJSREnableState();
585
				updateInlineJSREnableState();
586
				updatePreserveMethodParamNamesEnableState();
572
			}
587
			}
573
		}
588
		}
574
	}
589
	}
Lines 771-776 Link Here
771
		}
786
		}
772
	}
787
	}
773
788
789
	private void updatePreserveMethodParamNamesEnableState() {
790
		String target= getValue(PREF_CODEGEN_TARGET_PLATFORM);
791
		boolean enabled= JavaModelUtil.is18OrHigher(target);
792
		Button checkBox= getCheckBox(PREF_CODEGEN_METHOD_PARAMETERS_ATTR);
793
		boolean wasCheckBoxEnabled= checkBox.isEnabled();
794
		checkBox.setEnabled(enabled);
795
796
		if (enabled) {
797
			if (!wasCheckBoxEnabled) {
798
				String val= fRememberedUserCompliance[IDX_METHOD_PARAMETERS_ATTR];
799
				if (GENERATE.equals(val)) {
800
					setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, val);
801
					updateCheckBox(checkBox);
802
				}
803
			}
804
		} else {
805
			String val= getValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR);
806
			if (wasCheckBoxEnabled)
807
				fRememberedUserCompliance[IDX_METHOD_PARAMETERS_ATTR]= val;
808
809
			if (GENERATE.equals(val)) {
810
				setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, DO_NOT_GENERATE);
811
				updateCheckBox(checkBox);
812
			}
813
		}
814
	}
815
774
	/**
816
	/**
775
	 * Sets the default compliance values derived from the chosen level or restores the user
817
	 * Sets the default compliance values derived from the chosen level or restores the user
776
	 * compliance settings.
818
	 * compliance settings.
Lines 858-863 Link Here
858
			} else {
900
			} else {
859
				updateInlineJSREnableState();
901
				updateInlineJSREnableState();
860
				updateAssertEnumAsIdentifierEnableState();
902
				updateAssertEnumAsIdentifierEnableState();
903
				updatePreserveMethodParamNamesEnableState();
861
				return;
904
				return;
862
			}
905
			}
863
		}
906
		}
Lines 868-873 Link Here
868
		updateControls();
911
		updateControls();
869
		updateInlineJSREnableState();
912
		updateInlineJSREnableState();
870
		updateAssertEnumAsIdentifierEnableState();
913
		updateAssertEnumAsIdentifierEnableState();
914
		updatePreserveMethodParamNamesEnableState();
871
	}
915
	}
872
916
873
	/**
917
	/**
(-)ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.java (+1 lines)
Lines 496-501 Link Here
496
	public static String ComplianceConfigurationBlock_codegen_unused_local_label;
496
	public static String ComplianceConfigurationBlock_codegen_unused_local_label;
497
	public static String ComplianceConfigurationBlock_cldc11_requires_source13_compliance_se14;
497
	public static String ComplianceConfigurationBlock_cldc11_requires_source13_compliance_se14;
498
	public static String ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
498
	public static String ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
499
	public static String ComplianceConfigurationBlock_codegen_method_parameters_attr;
499
	public static String ComplianceConfigurationBlock_compiler_compliance_label;
500
	public static String ComplianceConfigurationBlock_compiler_compliance_label;
500
	public static String ComplianceConfigurationBlock_default_settings_label;
501
	public static String ComplianceConfigurationBlock_default_settings_label;
501
	public static String ComplianceConfigurationBlock_source_compatibility_label;
502
	public static String ComplianceConfigurationBlock_source_compatibility_label;
(-)ui/org/eclipse/jdt/internal/ui/preferences/PreferencesMessages.properties (+1 lines)
Lines 558-563 Link Here
558
ComplianceConfigurationBlock_src_greater_compliance=Source compatibility must be equal or less than compliance level.
558
ComplianceConfigurationBlock_src_greater_compliance=Source compatibility must be equal or less than compliance level.
559
ComplianceConfigurationBlock_codegen_unused_local_label=Pr&eserve unused (never read) local variables
559
ComplianceConfigurationBlock_codegen_unused_local_label=Pr&eserve unused (never read) local variables
560
ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label=Inline finally blo&cks (larger class files, but improved performance)
560
ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label=Inline finally blo&cks (larger class files, but improved performance)
561
ComplianceConfigurationBlock_codegen_method_parameters_attr=&Preserve method parameter names
561
ComplianceConfigurationBlock_compiler_compliance_label=Comp&iler compliance level:
562
ComplianceConfigurationBlock_compiler_compliance_label=Comp&iler compliance level:
562
ComplianceConfigurationBlock_default_settings_label=Use defaul&t compliance settings
563
ComplianceConfigurationBlock_default_settings_label=Use defaul&t compliance settings
563
ComplianceConfigurationBlock_source_compatibility_label=Source co&mpatibility:
564
ComplianceConfigurationBlock_source_compatibility_label=Source co&mpatibility:

Return to bug 415846