public class HgProjectConfigurable implements SearchableConfigurable { public static final String DISPLAY_NAME = HgVcsMessages.message("hg4idea.mercurial"); private final HgConfigurationProjectPanel myPanel; @NotNull private final Project myProject; public HgProjectConfigurable(@NotNull Project project, HgProjectSettings projectSettings) { myProject = project; myPanel = new HgConfigurationProjectPanel(projectSettings, myProject); } @Nls public String getDisplayName() { return DISPLAY_NAME; } public String getHelpTopic() { return "project.propVCSSupport.VCSs.Mercurial"; } public JComponent createComponent() { return myPanel.getPanel(); } public boolean isModified() { return myPanel.isModified(); } public void apply() throws ConfigurationException { myPanel.saveSettings(); if (myPanel.getProjectSettings().isCheckIncomingOutgoing()) { myProject.getMessageBus().syncPublisher(HgVcs.INCOMING_OUTGOING_CHECK_TOPIC).show(); } else { myProject.getMessageBus().syncPublisher(HgVcs.INCOMING_OUTGOING_CHECK_TOPIC).hide(); } } public void reset() { myPanel.loadSettings(); } public void disposeUIResources() {} @NotNull public String getId() { return "Mercurial.Project"; } }