@@ -65,6 +65,7 @@ public ViewLogsScreen(DeviceScreen deviceScreen, Device device) {
65
65
this .deviceScreen = deviceScreen ;
66
66
this .device = device ;
67
67
setDefaultCloseOperation (JFrame .DISPOSE_ON_CLOSE );
68
+
68
69
initalizeUi ();
69
70
updateDeviceState ();
70
71
}
@@ -190,6 +191,8 @@ private void setupMenuBar() {
190
191
191
192
JMenu editMenu = new JMenu ("Edit" );
192
193
194
+ createMenuItem (editMenu , "Select Font" , null , e -> showFontSelection ());
195
+
193
196
// [CMD + +] = increase font size
194
197
createCmdMenuItem (editMenu , "Increase Font Size" , KeyEvent .VK_EQUALS , e -> increaseFontSize ());
195
198
@@ -291,12 +294,12 @@ private void findNext(boolean isForward) {
291
294
public void increaseFontSize () {
292
295
int fontOffset = PreferenceUtils .getPreference (PreferenceUtils .PrefInt .PREF_FONT_SIZE_OFFSET , 0 );
293
296
fontOffset ++;
294
- setFontSize (fontOffset );
295
- }
296
-
297
- private void setFontSize (int fontOffset ) {
297
+ if (fontOffset > 10 ) fontOffset = 10 ;
298
298
PreferenceUtils .setPreference (PreferenceUtils .PrefInt .PREF_FONT_SIZE_OFFSET , fontOffset );
299
+ notifyFontChanged ();
300
+ }
299
301
302
+ private void notifyFontChanged () {
300
303
LogsCellRenderer cellRenderer = (LogsCellRenderer ) table .getDefaultRenderer (LogEntry .class );
301
304
cellRenderer .notifyFontChanged ();
302
305
model .fireTableDataChanged ();
@@ -305,7 +308,24 @@ private void setFontSize(int fontOffset) {
305
308
public void decreaseFontSize () {
306
309
int fontOffset = PreferenceUtils .getPreference (PreferenceUtils .PrefInt .PREF_FONT_SIZE_OFFSET , 0 );
307
310
fontOffset --;
308
- setFontSize (fontOffset );
311
+ if (fontOffset < -10 ) fontOffset = -10 ;
312
+ PreferenceUtils .setPreference (PreferenceUtils .PrefInt .PREF_FONT_SIZE_OFFSET , fontOffset );
313
+ notifyFontChanged ();
314
+ }
315
+
316
+ private void showFontSelection () {
317
+ JFontChooser fontChooser = new JFontChooser ();
318
+ LogsCellRenderer cellRenderer = (LogsCellRenderer ) table .getDefaultRenderer (LogEntry .class );
319
+ fontChooser .setSelectedFont (cellRenderer .getFont ());
320
+ int rc = fontChooser .showDialog (deviceScreen );
321
+ if (rc != JOptionPane .YES_OPTION ) return ;
322
+ Font font = fontChooser .getSelectedFont ();
323
+ log .trace ("showFontSelection: font:{}" , font );
324
+ PreferenceUtils .setPreference (PreferenceUtils .Pref .PREF_LOGS_FONT_NAME , font .getName ());
325
+ PreferenceUtils .setPreference (PreferenceUtils .PrefInt .PREF_LOGS_FONT_STYLE , font .getStyle ());
326
+ PreferenceUtils .setPreference (PreferenceUtils .PrefInt .PREF_LOGS_FONT_SIZE , font .getSize ());
327
+ PreferenceUtils .setPreference (PreferenceUtils .PrefInt .PREF_FONT_SIZE_OFFSET , 0 );
328
+ notifyFontChanged ();
309
329
}
310
330
311
331
private void closeWindow () {
@@ -335,6 +355,10 @@ private void setupTable() {
335
355
table .setModel (model );
336
356
table .setDefaultRenderer (LogEntry .class , new LogsCellRenderer ());
337
357
358
+ int unitIncrement = table .getScrollPane ().getHorizontalScrollBar ().getUnitIncrement ();
359
+ log .trace ("setupTable: {}" , unitIncrement );
360
+ table .getScrollPane ().getHorizontalScrollBar ().setUnitIncrement (unitIncrement * 4 );
361
+
338
362
// restore user-defined column sizes
339
363
if (!table .restoreTable ()) {
340
364
// use some default column sizes
0 commit comments