Skip to content

Commit 7c601e5

Browse files
committed
- more logging changes
1 parent e05073f commit 7c601e5

File tree

3 files changed

+89
-59
lines changed

3 files changed

+89
-59
lines changed

src/main/java/com/jpage4500/devicemanager/ui/MessageViewScreen.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ private void setupToolbar(JToolBar toolbar) {
8181
editButton = createSmallToolbarButton(toolbar, "icon_edit.png", "Edit", "Edit message in default editor", actionEvent -> editMessage());
8282
}
8383

84-
private void editMessage() {
84+
public void editMessage() {
8585
// save to temp file
8686
String tempFolder = Utils.getTempFolder();
8787
Random rand = new Random();

src/main/java/com/jpage4500/devicemanager/ui/ViewLogsScreen.java

+86-55
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,6 @@ protected void initalizeUi() {
133133
setVisible(true);
134134
table.requestFocus();
135135
autoScrollCheckBox.setSelected(true);
136-
137-
// restore previous filter
138-
String recentFilterText = PreferenceUtils.getPreference(PreferenceUtils.Pref.PREF_RECENT_MESSAGE_FILTER);
139-
filterField.setText(recentFilterText);
140136
}
141137

142138
@Override
@@ -189,6 +185,29 @@ private void setupMenuBar() {
189185
// [CMD + T] = hide toolbar
190186
createCmdMenuItem(windowMenu, "Hide Toolbar", KeyEvent.VK_T, e -> hideToolbar());
191187

188+
// -----------------------------------------------------------
189+
// -----------------------------------------------------------
190+
191+
JMenu editMenu = new JMenu("Edit");
192+
193+
// [CMD + +] = increase font size
194+
createCmdMenuItem(editMenu, "Increase Font Size", KeyEvent.VK_EQUALS, e -> increaseFontSize());
195+
196+
// [CMD + -] = increase font size
197+
createCmdMenuItem(editMenu, "Decrease Font Size", KeyEvent.VK_MINUS, e -> decreaseFontSize());
198+
199+
// [CMD + F] = focus search field
200+
createCmdMenuItem(editMenu, "Search for...", KeyEvent.VK_F, e -> searchField.requestFocus());
201+
202+
// [CMD + G] = find next
203+
createCmdMenuItem(editMenu, "Find Next", KeyEvent.VK_G, e -> findNext(true));
204+
205+
// [SHIFT + CMD + G] = find previous
206+
KeyStroke findPrevKey = KeyStroke.getKeyStroke("shift meta G");
207+
createMenuItem(editMenu, "Find Previous", findPrevKey, e -> findNext(false));
208+
209+
// -----------------------------------------------------------
210+
// -----------------------------------------------------------
192211
JMenu logsMenu = new JMenu("Logs");
193212

194213
// [CMD + ENTER] = toggle auto scroll
@@ -200,40 +219,28 @@ private void setupMenuBar() {
200219
// [CMD + K] = clear logs
201220
createCmdMenuItem(logsMenu, "Clear logs", KeyEvent.VK_K, e -> model.clearLogs());
202221

222+
// [CMD + V] = view logs
223+
createCmdMenuItem(logsMenu, "View selected", KeyEvent.VK_V, e -> handleViewLogsClicked());
224+
225+
// [CMD + E] = edit logs
226+
createCmdMenuItem(logsMenu, "Edit selected", KeyEvent.VK_E, e -> handleEditLogsClicked());
227+
203228
// [CMD + KEY_UP] = scroll to top
204229
createCmdMenuItem(logsMenu, "Scoll to top", KeyEvent.VK_UP, e -> {
205230
autoScrollCheckBox.setSelected(false);
206231
table.scrollToTop();
207232
});
208233

209-
JMenu editMenu = new JMenu("Edit");
210-
211234
// [CMD + KEY_DOWN] = scroll to bottom
212-
createCmdMenuItem(editMenu, "Scoll to bottom", KeyEvent.VK_DOWN, e -> table.scrollToBottom());
235+
createCmdMenuItem(logsMenu, "Scoll to bottom", KeyEvent.VK_DOWN, e -> table.scrollToBottom());
213236

214237
// [OPTION + KEY_UP] = page up
215238
KeyStroke optionUpKey = KeyStroke.getKeyStroke(KeyEvent.VK_UP, InputEvent.ALT_DOWN_MASK);
216-
createMenuItem(editMenu, "Page Up", optionUpKey, e -> table.pageUp());
239+
createMenuItem(logsMenu, "Page Up", optionUpKey, e -> table.pageUp());
217240

218241
// [OPTION + KE_DOWN] = page down
219242
KeyStroke optionDownKey = KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, InputEvent.ALT_DOWN_MASK);
220-
createMenuItem(editMenu, "Page Down", optionDownKey, e -> table.pageDown());
221-
222-
// [CMD + +] = increase font size
223-
createCmdMenuItem(editMenu, "Increase Font Size", KeyEvent.VK_EQUALS, e -> increaseFontSize());
224-
225-
// [CMD + -] = increase font size
226-
createCmdMenuItem(editMenu, "Decrease Font Size", KeyEvent.VK_MINUS, e -> decreaseFontSize());
227-
228-
// [CMD + F] = focus search field
229-
createCmdMenuItem(editMenu, "Search for...", KeyEvent.VK_F, e -> searchField.requestFocus());
230-
231-
// [CMD + G] = find next
232-
createCmdMenuItem(editMenu, "Find Next", KeyEvent.VK_G, e -> findNext(true));
233-
234-
// [SHIFT + CMD + G] = find previous
235-
KeyStroke findPrevKey = KeyStroke.getKeyStroke("shift meta G");
236-
createMenuItem(editMenu, "Find Previous", findPrevKey, e -> findNext(false));
243+
createMenuItem(logsMenu, "Page Down", optionDownKey, e -> table.pageDown());
237244

238245
JMenuBar menubar = new JMenuBar();
239246
menubar.add(windowMenu);
@@ -305,8 +312,15 @@ private void closeWindow() {
305312
log.trace("closeWindow: {}", device.getDisplayName());
306313
// save last filter
307314
String filterText = filterField.getCleanText();
308-
PreferenceUtils.setPreference(PreferenceUtils.Pref.PREF_RECENT_MESSAGE_FILTER, filterText);
309-
//stopLogging();
315+
PreferenceUtils.setPreference(PreferenceUtils.Pref.PREF_LOGS_CUSTOM_FILTER, filterText.trim());
316+
317+
// save last selected filters
318+
List<LogFilter> selectedList = filterList.getSelectedValuesList();
319+
List<String> selectedFilterList = new ArrayList<>();
320+
for (LogFilter filter : selectedList) selectedFilterList.add(filter.name);
321+
PreferenceUtils.setPreference(PreferenceUtils.Pref.PREF_LOGS_SELECTED_FILTERS, GsonHelper.toJson(selectedFilterList));
322+
323+
stopLogging();
310324
deviceScreen.handleLogsClosed(device.serial);
311325
dispose();
312326
}
@@ -343,7 +357,7 @@ private void setupTable() {
343357
table.getActionMap().put("Enter", new AbstractAction() {
344358
@Override
345359
public void actionPerformed(ActionEvent e) {
346-
handleLogClicked();
360+
handleViewLogsClicked();
347361
}
348362
});
349363

@@ -353,7 +367,7 @@ public void actionPerformed(ActionEvent e) {
353367
table.getActionMap().put("View", new AbstractAction() {
354368
@Override
355369
public void actionPerformed(ActionEvent e) {
356-
handleLogClicked();
370+
handleViewLogsClicked();
357371
}
358372
});
359373

@@ -396,7 +410,7 @@ public void actionPerformed(ActionEvent e) {
396410

397411
UiUtils.addPopupMenuItem(popupMenu, "Copy Line", actionEvent -> handleCopyClicked());
398412
UiUtils.addPopupMenuItem(popupMenu, "Copy Message", actionEvent -> handleCopyMessageClicked());
399-
UiUtils.addPopupMenuItem(popupMenu, "View Message", actionEvent -> handleLogClicked());
413+
UiUtils.addPopupMenuItem(popupMenu, "View Message", actionEvent -> handleViewLogsClicked());
400414

401415
return popupMenu;
402416
});
@@ -465,7 +479,7 @@ private void handleCopyClicked() {
465479
clipboard.setContents(stringSelection, null);
466480
}
467481

468-
private void handleLogClicked() {
482+
private void handleViewLogsClicked() {
469483
List<LogEntry> logEntryList = getSelectedLogEntries();
470484
if (!logEntryList.isEmpty()) {
471485
viewMessage(logEntryList.toArray(new LogEntry[0]));
@@ -489,6 +503,17 @@ private void viewMessage(LogEntry... logEntry) {
489503
viewScreen.setVisible(true);
490504
}
491505

506+
private void handleEditLogsClicked() {
507+
List<LogEntry> logEntryList = getSelectedLogEntries();
508+
if (logEntryList.isEmpty()) return;
509+
510+
if (viewScreen == null) viewScreen = new MessageViewScreen(deviceScreen);
511+
viewScreen.setLogEntry(logEntryList.toArray(new LogEntry[0]));
512+
513+
viewScreen.editMessage();
514+
viewScreen.setVisible(false);
515+
}
516+
492517
private void handleQuickAddFilter(LogsTableModel.Columns columnType, String text) {
493518
LogFilter filter = LogFilter.parse(columnType.name().toLowerCase() + ":" + text);
494519
filterField.setText(filter.toString());
@@ -629,6 +654,7 @@ private void doSearch(String text) {
629654

630655
private void setupFilterList() {
631656
populateFilters();
657+
restoreSelectedFilters();
632658
filterList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
633659
filterList.setCellRenderer(new LogFilterRenderer());
634660
filterList.addListSelectionListener(e -> handleFilterSelected());
@@ -660,9 +686,36 @@ public void mouseClicked(MouseEvent e) {
660686
});
661687
}
662688

663-
private void populateFilters() {
664-
List<LogFilter> selectedList = filterList.getSelectedValuesList();
689+
private void restoreSelectedFilters() {
690+
// select last used filter(s)
691+
String recentFilterStr = PreferenceUtils.getPreference(PreferenceUtils.Pref.PREF_LOGS_SELECTED_FILTERS);
692+
List<String> recentFilterList = GsonHelper.stringToList(recentFilterStr, String.class);
693+
ListModel<LogFilter> filterListModel = filterList.getModel();
694+
List<Integer> selectedIndexList = new ArrayList<>();
695+
for (int i = 0; i < filterListModel.getSize(); i++) {
696+
LogFilter filter = filterListModel.getElementAt(i);
697+
if (recentFilterList.contains(filter.name)) {
698+
selectedIndexList.add(i);
699+
}
700+
}
701+
if (!selectedIndexList.isEmpty()) {
702+
int[] indexArr = selectedIndexList.stream()
703+
.filter(Objects::nonNull)
704+
.mapToInt(Integer::intValue)
705+
.toArray();
706+
log.trace("setupFilterList: re-select:{}", GsonHelper.toJson(indexArr));
707+
filterList.setSelectedIndices(indexArr);
708+
}
709+
710+
// restore previous custom filter
711+
String recentFilterText = PreferenceUtils.getPreference(PreferenceUtils.Pref.PREF_LOGS_CUSTOM_FILTER);
712+
if (TextUtils.notEmpty(recentFilterText)) {
713+
filterField.setText(recentFilterText);
714+
}
715+
716+
}
665717

718+
private void populateFilters() {
666719
// -- system filters --
667720
List<LogFilter> systemFilterList = getSystemFilters();
668721
List<LogFilter> logFilterList = new ArrayList<>(systemFilterList);
@@ -674,28 +727,6 @@ private void populateFilters() {
674727
logFilterList.addAll(userFilterList);
675728
// replace all filters
676729
filterList.setListData(logFilterList.toArray(new LogFilter[0]));
677-
678-
// re-select previously selected filters
679-
if (!selectedList.isEmpty() && !logFilterList.isEmpty()) {
680-
List<Integer> selectedIndexList = new ArrayList<>();
681-
for (int i = 0; i < logFilterList.size(); i++) {
682-
LogFilter filter = logFilterList.get(i);
683-
for (LogFilter prevSelectedFilter : selectedList) {
684-
if (TextUtils.equals(prevSelectedFilter.name, filter.name)) {
685-
selectedIndexList.add(i);
686-
break;
687-
}
688-
}
689-
}
690-
if (!selectedIndexList.isEmpty()) {
691-
int[] indexArr = selectedIndexList.stream()
692-
.filter(Objects::nonNull)
693-
.mapToInt(Integer::intValue)
694-
.toArray();
695-
log.trace("populateFilters: re-select:{}", GsonHelper.toJson(indexArr));
696-
filterList.setSelectedIndices(indexArr);
697-
}
698-
}
699730
}
700731

701732
public static List<LogFilter> getSystemFilters() {

src/main/java/com/jpage4500/devicemanager/utils/PreferenceUtils.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@ public enum Pref {
2121
PREF_LAST_DEVICE_IP,
2222
PREF_CUSTOM_COMMAND_LIST,
2323
PREF_RECENT_INPUT,
24-
PREF_RECENT_MESSAGE_FILTER,
2524
PREF_MESSAGE_FILTERS,
2625
PREF_HIDDEN_TOOLBAR_ITEMS,
27-
PREF_SAVE_LOGS_TAG_FILTER, // save logs: TAG filter
28-
PREF_SAVE_LOGS_MSG_FILTER, // save logs: MESSAGE filter
2926
PREF_LOGS_HIDDEN_COLUMNS,
27+
PREF_LOGS_CUSTOM_FILTER, // logs: last custom filter
28+
PREF_LOGS_SELECTED_FILTERS, // logs: last selected filters
3029
}
3130

3231
/**

0 commit comments

Comments
 (0)