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 / +40 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 401-406 Link Here
401
		label= PreferencesMessages.ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
407
		label= PreferencesMessages.ComplianceConfigurationBlock_codegen_inline_jsr_bytecode_label;
402
		addCheckBox(group, label, PREF_CODEGEN_INLINE_JSR_BYTECODE, enableDisableValues, 0);
408
		addCheckBox(group, label, PREF_CODEGEN_INLINE_JSR_BYTECODE, enableDisableValues, 0);
403
		
409
		
410
		label= PreferencesMessages.ComplianceConfigurationBlock_codegen_method_parameters_attr;
411
		addCheckBox(group, label, PREF_CODEGEN_METHOD_PARAMETERS_ATTR, generateValues, 0);
412
		
404
		Composite infoComposite= new Composite(fControlsComposite, SWT.NONE);
413
		Composite infoComposite= new Composite(fControlsComposite, SWT.NONE);
405
		infoComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
414
		infoComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
406
		infoComposite.setLayout(new GridLayout(2, false));
415
		infoComposite.setLayout(new GridLayout(2, false));
Lines 508-513 Link Here
508
				}
517
				}
509
				updateControls();
518
				updateControls();
510
				updateInlineJSREnableState();
519
				updateInlineJSREnableState();
520
				updatePreserveMethodParamNamesEnableState();
511
				updateAssertEnumAsIdentifierEnableState();
521
				updateAssertEnumAsIdentifierEnableState();
512
				fComplianceStatus= validateCompliance();
522
				fComplianceStatus= validateCompliance();
513
			} else if (PREF_PB_ENUM_AS_IDENTIFIER.equals(changedKey) ||
523
			} else if (PREF_PB_ENUM_AS_IDENTIFIER.equals(changedKey) ||
Lines 522-527 Link Here
522
			updateComplianceEnableState();
532
			updateComplianceEnableState();
523
			updateAssertEnumAsIdentifierEnableState();
533
			updateAssertEnumAsIdentifierEnableState();
524
			updateInlineJSREnableState();
534
			updateInlineJSREnableState();
535
			updatePreserveMethodParamNamesEnableState();
525
			fComplianceStatus= validateCompliance();
536
			fComplianceStatus= validateCompliance();
526
			validateComplianceStatus();
537
			validateComplianceStatus();
527
		}
538
		}
Lines 538-543 Link Here
538
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
549
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
539
						getOriginalStoredValue(PREF_COMPLIANCE),
550
						getOriginalStoredValue(PREF_COMPLIANCE),
540
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
551
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
552
						getOriginalStoredValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR)
541
					};
553
					};
542
				
554
				
543
			} else {
555
			} else {
Lines 548-553 Link Here
548
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
560
						getOriginalStoredValue(PREF_CODEGEN_TARGET_PLATFORM),
549
						getOriginalStoredValue(PREF_COMPLIANCE),
561
						getOriginalStoredValue(PREF_COMPLIANCE),
550
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
562
						getOriginalStoredValue(PREF_CODEGEN_INLINE_JSR_BYTECODE),
563
						getOriginalStoredValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR)
551
					};
564
					};
552
				if (!Arrays.equals(fOriginalStoredCompliance, storedCompliance)) {
565
				if (!Arrays.equals(fOriginalStoredCompliance, storedCompliance)) {
553
					// compliance changed on disk -> override user modifications
566
					// compliance changed on disk -> override user modifications
Lines 560-565 Link Here
560
					setValue(PREF_CODEGEN_TARGET_PLATFORM, storedCompliance[IDX_CODEGEN_TARGET_PLATFORM]);
573
					setValue(PREF_CODEGEN_TARGET_PLATFORM, storedCompliance[IDX_CODEGEN_TARGET_PLATFORM]);
561
					setValue(PREF_COMPLIANCE, storedCompliance[IDX_COMPLIANCE]);
574
					setValue(PREF_COMPLIANCE, storedCompliance[IDX_COMPLIANCE]);
562
					setValue(PREF_CODEGEN_INLINE_JSR_BYTECODE, storedCompliance[IDX_INLINE_JSR_BYTECODE]);
575
					setValue(PREF_CODEGEN_INLINE_JSR_BYTECODE, storedCompliance[IDX_INLINE_JSR_BYTECODE]);
576
					setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, storedCompliance[IDX_METHOD_PARAMETERS_ATTR]);
563
					
577
					
564
				}
578
				}
565
				
579
				
Lines 765-770 Link Here
765
		}
779
		}
766
	}
780
	}
767
781
782
	private void updatePreserveMethodParamNamesEnableState() {
783
		String target= getValue(PREF_CODEGEN_TARGET_PLATFORM);
784
785
		boolean enabled= JavaModelUtil.is18OrHigher(target);
786
		Button checkBox= getCheckBox(PREF_CODEGEN_METHOD_PARAMETERS_ATTR);
787
		checkBox.setEnabled(enabled);
788
789
		if (!enabled) {
790
			String val= getValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR);
791
			fRememberedUserCompliance[IDX_METHOD_PARAMETERS_ATTR]= val;
792
			setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, DO_NOT_GENERATE);
793
			updateCheckBox(checkBox);
794
		} else {
795
			String val= fRememberedUserCompliance[IDX_METHOD_PARAMETERS_ATTR];
796
			if (GENERATE.equals(val)) {
797
				setValue(PREF_CODEGEN_METHOD_PARAMETERS_ATTR, val);
798
				updateCheckBox(checkBox);
799
			}
800
		}
801
	}
802
768
	/**
803
	/**
769
	 * Sets the default compliance values derived from the chosen level or restores the user
804
	 * Sets the default compliance values derived from the chosen level or restores the user
770
	 * compliance settings.
805
	 * compliance settings.
Lines 852-857 Link Here
852
			} else {
887
			} else {
853
				updateInlineJSREnableState();
888
				updateInlineJSREnableState();
854
				updateAssertEnumAsIdentifierEnableState();
889
				updateAssertEnumAsIdentifierEnableState();
890
				updatePreserveMethodParamNamesEnableState();
855
				return;
891
				return;
856
			}
892
			}
857
		}
893
		}
Lines 862-867 Link Here
862
		updateControls();
898
		updateControls();
863
		updateInlineJSREnableState();
899
		updateInlineJSREnableState();
864
		updateAssertEnumAsIdentifierEnableState();
900
		updateAssertEnumAsIdentifierEnableState();
901
		updatePreserveMethodParamNamesEnableState();
865
	}
902
	}
866
903
867
	/**
904
	/**
(-)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