/** Shows dialog window which contains properties for project settings. */ public void show() { if (!settingsMap.isEmpty()) { view.show(); return; } for (SettingsPagePresenter presenter : settings) { String category = presenter.getCategory(); Set<SettingsPagePresenter> settingsCategory = settingsMap.get(category); if (settingsCategory == null) { settingsCategory = new HashSet<>(); settingsMap.put(category, settingsCategory); } settingsCategory.add(presenter); } view.setSettings(settingsMap); view.show(); view.enableSaveButton(false); view.selectSettingGroup(settings.iterator().next()); }
/** {@inheritDoc} */ @Override public void onDirtyChanged() { for (SettingsPagePresenter presenter : settings) { if (presenter.isDirty()) { view.enableSaveButton(true); return; } } view.enableSaveButton(false); }
/** {@inheritDoc} */ @Override public void onRefreshClicked() { for (SettingsPagePresenter presenter : settings) { presenter.revertChanges(); } view.enableSaveButton(false); }
/** {@inheritDoc} */ @Override public void onSaveClicked() { for (SettingsPagePresenter preference : settings) { if (preference.isDirty()) { preference.storeChanges(); } } view.enableSaveButton(false); }
/** {@inheritDoc} */ @Override public void onCloseClicked() { boolean haveUnsavedData = false; for (SettingsPagePresenter presenter : settings) { if (presenter.isDirty()) { haveUnsavedData = true; } } if (!haveUnsavedData) { view.close(); return; } dialogFactory .createConfirmDialog( "", locale.messagesPromptSaveChanges(), getConfirmCallback(), getCancelCallback()) .show(); }
/** {@inheritDoc} */ @Override public void onSettingsGroupSelected(@NotNull SettingsPagePresenter settings) { settings.go(view.getContentPanel()); }