1313import org .eclipse .jface .preference .BooleanFieldEditor ;
1414import org .eclipse .jface .preference .FieldEditorPreferencePage ;
1515import org .eclipse .jface .preference .StringFieldEditor ;
16+ import org .eclipse .jface .util .PropertyChangeEvent ;
1617import org .eclipse .swt .widgets .Composite ;
1718import org .eclipse .ui .IWorkbench ;
1819import org .eclipse .ui .IWorkbenchPreferencePage ;
2122
2223public class AiConfigPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
2324
25+ private BooleanFieldEditor mcpEnabledEditor ;
26+ private StringFieldEditor mcpPortEditor ;
27+
2428 public AiConfigPreferencePage () {
2529 super (GRID );
2630 }
@@ -33,8 +37,32 @@ public void init(IWorkbench workbench) {
3337 @ Override
3438 protected void createFieldEditors () {
3539 Composite fieldEditorParent = getFieldEditorParent ();
36- addField (new BooleanFieldEditor (Constants .PREF_AI_MCP_ENABLED , "Enable embedded MCP server (experimental)" , fieldEditorParent ));
37- addField (new StringFieldEditor (Constants .PREF_AI_MCP_PORT , "Port used by the embedded MCP server" , fieldEditorParent ));
40+
41+ mcpEnabledEditor = new BooleanFieldEditor (Constants .PREF_AI_MCP_ENABLED , "Enable embedded MCP server (experimental)" , fieldEditorParent );
42+ addField (mcpEnabledEditor );
43+
44+ mcpPortEditor = new StringFieldEditor (Constants .PREF_AI_MCP_PORT , "Port used by the embedded MCP server" , fieldEditorParent );
45+ addField (mcpPortEditor );
46+
47+ // Initialize the enabled state of the port field
48+ updateMcpPortFieldState ();
49+ }
50+
51+ @ Override
52+ public void propertyChange (PropertyChangeEvent event ) {
53+ super .propertyChange (event );
54+
55+ // Update the MCP port field enabled state when the MCP enabled preference changes
56+ if (event .getSource () == mcpEnabledEditor ) {
57+ updateMcpPortFieldState ();
58+ }
59+ }
60+
61+ private void updateMcpPortFieldState () {
62+ if (mcpEnabledEditor != null && mcpPortEditor != null ) {
63+ boolean mcpEnabled = mcpEnabledEditor .getBooleanValue ();
64+ mcpPortEditor .setEnabled (mcpEnabled , getFieldEditorParent ());
65+ }
3866 }
3967
4068}
0 commit comments