NewColorAndFontPanel (@NotNull ColorAndFontOptions options) { final SchemesPanel schemesPanel = new SchemesPanel(options); CompositeColorDescriptionPanel descriptionPanel = new CompositeColorDescriptionPanel(); descriptionPanel.addDescriptionPanel(new ColorAndFontDescriptionPanel(), it -> it instanceof ColorAndFontDescription); descriptionPanel.addDescriptionPanel(new DiffColorDescriptionPanel(options), it -> it instanceof TextAttributesDescription); final OptionsPanelImpl optionsPanel = new OptionsPanelImpl(options, schemesPanel, getDiffGroup(), descriptionPanel); final DiffPreviewPanel previewPanel = new DiffPreviewPanel(); schemesPanel.addListener(new ColorAndFontSettingsListener.Abstract() { @Override public void schemeChanged(@NotNull final Object source) { previewPanel.setColorScheme(options.getSelectedScheme()); optionsPanel.updateOptionsList(); } }); return new NewColorAndFontPanel(schemesPanel, optionsPanel, previewPanel, getDiffGroup(), null, null); }