= Issue 60 == Short Description UI preferences: 'Apply' button must be disabled if no changes have been made == Long Description In the preferences dialog Apply button must be enabled only if some changes of an existing configuration have been done. If configuration was not changed - Apply button must remain disabled. Default state of the button must be disabled instead of enabled. == Feature Description % BASE muCommander provides a preferences dialog for configuring the appearance of the window, keyboard shortcuts, and so on. The main window of muCommander is updated by the configuration specified in the dialog when the Apply button or the OK button is pushed. The OK button closes the preferences dialog. The Apply button does not close the dialog. % CORE The new feature disables both Apply and OK buttons if a new configuration specified in the dialog is the same as the current configuration of the main window. The buttons are first disabled when the preferences dialog open; then they are enabled if the configuration is modified in the dialog. The buttons are disabled again if a configuration in the dialog becomes the same as the current configuration or if the Apply button is pushed. % TASK Please locate all methods added or modified for the new feature. ``Method'' does NOT include class declaration, abstract methods without method body, and static initializers of classes. == Gold Set com.mucommander.ui.dialog.pref.PreferencesDialog.initUI() com.mucommander.ui.dialog.pref.PreferencesDialog.commit() com.mucommander.ui.dialog.pref.PreferencesDialog.setCommitButtonsEnabled(boolean) com.mucommander.ui.dialog.pref.component.PrefCheckBox.addDialogListener(PreferencesDialog) com.mucommander.ui.dialog.pref.component.PrefComboBox.addDialogListener(PreferencesDialog) com.mucommander.ui.dialog.pref.component.PrefEncodingSelectBox.PrefEncodingSelectBox(DialogOwner, String) com.mucommander.ui.dialog.pref.component.PrefEncodingSelectBox.addDialogListener(PreferencesDialog) com.mucommander.ui.dialog.pref.component.PrefRadioButton.addDialogListener(PreferencesDialog) com.mucommander.ui.dialog.pref.component.PrefTextField.addDialogListener(PreferencesDialog) com.mucommander.ui.dialog.pref.component.PrefTable.addDialogListener(PreferencesDialog) com.mucommander.ui.dialog.pref.component.PrefTable.setModel(TableModel) com.mucommander.ui.dialog.pref.general.AppearancePanel.initUI() com.mucommander.ui.dialog.pref.general.AppearancePanel.createLookAndFeelPanel() com.mucommander.ui.dialog.pref.general.AppearancePanel.createThemesPanel() com.mucommander.ui.dialog.pref.general.AppearancePanel.createSystemIconsPanel() com.mucommander.ui.dialog.pref.general.AppearancePanel.createIconSizeCombo(String,float) com.mucommander.ui.dialog.pref.general.FoldersPanel.FoldersPanel(PreferencesDialog) com.mucommander.ui.dialog.pref.general.GeneralPanel.GeneralPanel(PreferencesDialog) com.mucommander.ui.dialog.pref.general.GeneralPreferencesDialog.GeneralPreferencesDialog() com.mucommander.ui.dialog.pref.general.GeneralPreferencesDialog.componentChanged(PrefComponent) com.mucommander.ui.dialog.pref.general.GeneralPreferencesDialog.setCommitButtonsEnabled(boolean) com.mucommander.ui.dialog.pref.general.MailPanel.MailPanel(PreferencesDialog) com.mucommander.ui.dialog.pref.general.MiscPanel.createShellEncodingPanel(PreferencesDialog) com.mucommander.ui.dialog.pref.general.MiscPanel.MiscPanel(PreferencesDialog) com.mucommander.ui.dialog.pref.theme.ColorButton.ColorButton(PreferencesDialog,ThemeData,int,String,JComponent) com.mucommander.ui.dialog.pref.theme.ColorButton.actionPerformed(ActionEvent) com.mucommander.ui.dialog.pref.theme.ColorButton.setCurrentColor(Color,boolean) com.mucommander.ui.dialog.pref.theme.ColorButton.colorChanged(ColorChangeEvent) com.mucommander.ui.dialog.pref.theme.ThemeEditorDialog.componentChanged(PrefComponent) com.mucommander.ui.dialog.pref.theme.ThemeEditorPanel.createFontChooser(int) com.mucommander.ui.dialog.pref.theme.ThemeEditorPanel.ThemeFontChooserListener.ThemeFontChooserListener(ThemeData,int,PreferencesDialog) com.mucommander.ui.dialog.pref.theme.ThemeEditorPanel.ThemeFontChooserListener.stateChanged(ChangeEvent)