= 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 は,ウィンドウに表示されるデータの表示形式やキー操作を指定する 設定ダイアログ(Preferences dialog)を提供しています. 項目の選択や値の記入を行い,Apply ボタンや OK ボタンを押すと, その内容がただちにメインウィンドウに反映されます. OK ボタンは設定の適用と同時にウィンドウを閉じるボタン, Apply ボタンは設定の適用を行うがウィンドウは閉じないボタンです. % CORE この機能に対して,ダイアログの設定項目が現在の設定とまったく同じ状態であれば Apply および OK ボタンを無効化するという機能を追加しました. これらのボタンは,ダイアログが表示された時点で無効であり, 何らかの設定項目が変更されると有効になります. 設定項目が元に戻されるか,Apply ボタンが押されて現在の設定がダイアログの表示と一致した場合は, ボタンは無効状態に戻ります. % TASK この機能追加によって追加あるいは修正されたすべてのメソッドを特定してください. クラス宣言そのものに対する修正,インタフェースにおけるメソッド宣言(本体を持たないもの), クラスの static 初期化子は含みません. == 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)