import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
}
});
- AppConfig appConfig = AppConfig.getInstance();
-
final Properties strings = LocalizedResourcePropertyLoader.getCachedInstance()
.getLocalizedProperties(STRINGS_RESOURCE);
- final Color selectedItemColor = appConfig.getCheckedItemBgColor();
-
partsSelectTable = new JTable(partsSelectTableModel, columnModel, selectionModel) {
private static final long serialVersionUID = 1L;
@Override
comp.setForeground(getForeground());
if (chk.booleanValue()) {
// チェック済みの場合の背景色
+ AppConfig appConfig = AppConfig.getInstance();
+ Color selectedItemColor = appConfig.getCheckedItemBgColor();
comp.setBackground(selectedItemColor);
} else {
// 通常の背景色
}
}
});
- partsSelectTable.setSelectionBackground(appConfig.getSelectedItemBgColor());
if (partsCategory.isMultipleSelectable()) {
partsSelectTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
} else {
title = new JLabel(" " + partsCategory.getLocalizedCategoryName() + " ");
final Color defaultTitleColor = title.getForeground();
- final Color hilightColor = appConfig.getSelectPanelTitleColor();
title.addMouseListener(new MouseAdapter() {
@Override
}
@Override
public void mouseEntered(MouseEvent e) {
+ AppConfig appConfig = AppConfig.getInstance();
+ Color hilightColor = appConfig.getSelectPanelTitleColor();
title.setForeground(hilightColor);
}
@Override
// パネルの初期サイズ
numOfVisibleRows = partsCategory.getVisibleRows();
setDisplayMode(DisplayMode.NORMAL);
+
+ // AppConfigによるUIの設定をロードする
+ loadAppConfig();
+ }
+
+ /**
+ * AppConfigによるUIの設定をロードする
+ */
+ private void loadAppConfig() {
+ AppConfig appConfig = AppConfig.getInstance();
+ partsSelectTable.setSelectionBackground(appConfig.getSelectedItemBgColor());
+ }
+
+ /**
+ * AppConfigの変更により最新のUIパラメータを再取り込みするためのリスナ
+ */
+ private final PropertyChangeListener propChangeListener = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ // AppConfigの変更後の再描画で、ただちに最新の設定を使えるようにする
+ loadAppConfig();
+ }
+ };
+
+ @Override
+ public void addNotify() {
+ super.addNotify();
+ AppConfig.getInstance().addPropertyChangeListener(propChangeListener);
+ }
+
+ @Override
+ public void removeNotify() {
+ AppConfig.getInstance().removePropertyChangeListener(propChangeListener);
+ super.removeNotify();
}
@Override
public void doLayout() {
+ // AppConfigのFontサイズ変更はUIManagerの更新で全フレームを再適用するので、
+ // ここで最新のフォントを再適用できるようにする。
Font font = getFont();
title.setFont(font.deriveFont(Font.BOLD));
super.doLayout();