mLocalizer.msg(Settings.LAYOUT_REAL_SYNCHRONOUS, "Real time synchronous"),
mLocalizer.msg(Settings.LAYOUT_COMPACT, "Compact"),mLocalizer.msg(Settings.LAYOUT_REAL_COMPACT, "Real compact"),
mLocalizer.msg(Settings.LAYOUT_TIME_BLOCK, "Time block"),
mLocalizer.msg(Settings.LAYOUT_COMPACT_TIME_BLOCK, "Compact time block"),
mLocalizer.msg(Settings.LAYOUT_OPTIMIZED_COMPACT_TIME_BLOCK, "Optimized compact time block")};
mProgramArrangementCB = new JComboBox(arrangementArr);
if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_COMPACT)) {
mProgramArrangementCB.setSelectedIndex(2);
} else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_REAL_COMPACT)) {
mProgramArrangementCB.setSelectedIndex(3);
} else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_TIME_SYNCHRONOUS)) {
mProgramArrangementCB.setSelectedIndex(0);
} else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_TIME_BLOCK)) {
mProgramArrangementCB.setSelectedIndex(4);
} else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_COMPACT_TIME_BLOCK)) {
mProgramArrangementCB.setSelectedIndex(5);
} else if (Settings.propTableLayout.getString().equals(Settings.LAYOUT_OPTIMIZED_COMPACT_TIME_BLOCK)) {
mProgramArrangementCB.setSelectedIndex(6);
} else {
mProgramArrangementCB.setSelectedIndex(1);
}
mLastSelectedLayoutIndex = (short)mProgramArrangementCB.getSelectedIndex();
mSettingsPn.add(mProgramArrangementCB, cc.xy(4, currentRow));
// Cut long titles
mCutLongTitlesCB = new JCheckBox(mLocalizer.msg("cutTitle",
"Cut long titles"), Settings.propProgramTableCutTitle.getBoolean());
mSettingsPn.add(mCutLongTitlesCB, cc.xyw(2, (currentRow += 2), 2));
mCutLongTitlesSelection = new JSpinner(new SpinnerNumberModel(
Settings.propProgramTableCutTitleLines.getInt(), 1, 3, 1));
mSettingsPn.add(mCutLongTitlesSelection, cc.xy(4, currentRow));
mCutLongTitlesLabel = new JLabel(mLocalizer.msg("lines", "Lines"));
mSettingsPn.add(mCutLongTitlesLabel, cc.xy(6, currentRow));
mCutLongTitlesCB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mCutLongTitlesSelection.setEnabled(mCutLongTitlesCB.isSelected());
mCutLongTitlesLabel.setEnabled(mCutLongTitlesCB.isSelected());
}
});
mCutLongTitlesCB.getActionListeners()[0].actionPerformed(null);
// Short descriptions N lines
mDescriptionLines = new JSpinner(new SpinnerNumberModel(
Settings.propProgramPanelMaxLines.getInt(), 1, 5, 1));
mSettingsPn.add(new JLabel(mLocalizer.msg("shortDescription",
"Short description")), cc.xyw(2, currentRow += 2, 2));
mSettingsPn.add(mDescriptionLines, cc.xy(4, currentRow));
mSettingsPn.add(new JLabel(mLocalizer.msg("lines", "Lines")), cc.xy(6,
currentRow));
// Short programs no description
mShortProgramsCB = new JCheckBox(mLocalizer.msg("shortPrograms",
"If duration less than"),
Settings.propProgramPanelShortDurationActive.getBoolean());
mSettingsPn.add(mShortProgramsCB, cc.xyw(2, (currentRow += 2), 2));
mShortProgramsMinutes = new JSpinner(new SpinnerNumberModel(
Settings.propProgramPanelShortDurationMinutes.getInt(), 1, 30, 1));
mSettingsPn.add(mShortProgramsMinutes, cc.xy(4, currentRow));
mShortProgramsLabel = new JLabel(mLocalizer.msg("shortPrograms2",
"minutes, then hide description"));
mSettingsPn.add(mShortProgramsLabel, cc.xy(6, currentRow));
mShortProgramsCB.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mShortProgramsMinutes.setEnabled(mShortProgramsCB.isSelected());
mShortProgramsLabel.setEnabled(mShortProgramsCB.isSelected());
}
});
mShortProgramsCB.getActionListeners()[0].actionPerformed(null);
// Column Rows ***************************************
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("5dlu"));
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("10dlu"));
mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(
mLocalizer.msg("columnwidth", "column width")), cc.xyw(1,
(currentRow += 2), 8));
// column width
int width = Settings.propColumnWidth.getInt();
if (width > Settings.MAX_COLUMN_WIDTH) {
width = Settings.MAX_COLUMN_WIDTH;
}
if (width < Settings.MIN_COLUMN_WIDTH) {
width = Settings.MIN_COLUMN_WIDTH;
}
mColWidth = new JSpinner(new SpinnerNumberModel(
width, Settings.MIN_COLUMN_WIDTH, Settings.MAX_COLUMN_WIDTH, 1));
mSettingsPn.add(new JLabel(mLocalizer.msg("widthInPixels", "Width in Pixels")), cc.xy(2, (currentRow += 2)));
mSettingsPn.add(mColWidth, cc.xy(4, currentRow));
mDefaultBtn = new JButton(Localizer.getLocalization(Localizer.I18N_DEFAULT));
mDefaultBtn.addActionListener(this);
mSettingsPn.add(mDefaultBtn, cc.xy(6, currentRow));
// Column Rows ***************************************
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("5dlu"));
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("3dlu"));
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("10dlu"));
mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(
mLocalizer.msg("range", "Range")), cc.xyw(1, (currentRow += 2), 8));
mSettingsPn.add(new JLabel(mLocalizer.msg("startOfDay", "Start of day")),
cc.xy(2, (currentRow += 2)));
TwoSpinnerDateModel startModel = new TwoSpinnerDateModel();
mStartOfDayTimeSp = new JSpinner(startModel);
startModel.setMe(mStartOfDayTimeSp);
JSpinner.DateEditor dateEditor = new JSpinner.DateEditor(mStartOfDayTimeSp, Settings.getTimePattern());
mStartOfDayTimeSp.setEditor(dateEditor);
mSettingsPn.add(mStartOfDayTimeSp, cc.xy(4, currentRow));
mSettingsPn.add(new JLabel("("
+ Localizer.getLocalization(Localizer.I18N_TODAY) + ")"), cc.xy(6,
currentRow));
CaretPositionCorrector.createCorrector(dateEditor.getTextField(), new char[] {':'}, -1);
mSettingsPn.add(new JLabel(mLocalizer.msg("endOfDay", "End of day")), cc
.xy(2, (currentRow += 2)));
TwoSpinnerDateModel endModel = new TwoSpinnerDateModel();
mEndOfDayTimeSp = new JSpinner(endModel);
endModel.setMe(mEndOfDayTimeSp);
dateEditor = new JSpinner.DateEditor(mEndOfDayTimeSp, Settings.getTimePattern());
mEndOfDayTimeSp.setEditor(dateEditor);
mSettingsPn.add(mEndOfDayTimeSp, cc.xy(4, currentRow));
mSettingsPn.add(new JLabel("(" + mLocalizer.msg("nextDay", "next day")
+ ")"), cc.xy(6, currentRow));
CaretPositionCorrector.createCorrector(dateEditor.getTextField(), new char[] {':'}, -1);
int minutes;
Calendar cal = Calendar.getInstance();
minutes = Settings.propProgramTableStartOfDay.getInt();
cal.set(Calendar.HOUR_OF_DAY, minutes / 60);
cal.set(Calendar.MINUTE, minutes % 60);
mStartOfDayTimeSp.setValue(cal.getTime());
minutes = Settings.propProgramTableEndOfDay.getInt();
cal.set(Calendar.HOUR_OF_DAY, minutes / 60);
cal.set(Calendar.MINUTE, minutes % 60);
mEndOfDayTimeSp.setValue(cal.getTime());
// Table Background ***************************************
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("5dlu"));
layout.appendRow(RowSpec.decode("pref"));
layout.appendRow(RowSpec.decode("10dlu"));
mSettingsPn.add(DefaultComponentFactory.getInstance().createSeparator(
mLocalizer.msg("tableBackground", "Table background")), cc.xyw(1,
(currentRow += 2), 8));
mSettingsPn.add(new JLabel(mLocalizer.msg("tableBackgroundStyle",
"Table background style")), cc.xy(2, (currentRow += 2)));
TableBackgroundStyle[] styles = getTableBackgroundStyles();
mBackgroundStyleCB = new JComboBox(styles);
String style = Settings.propTableBackgroundStyle.getString();
for (int i = 0; i < styles.length; i++) {
if (styles[i].getSettingsString().equals(style)) {
mBackgroundStyleCB.setSelectedIndex(i);