Version: 3.2.1 Update

This commit is contained in:
gh0stkey
2024-05-30 15:56:49 +08:00
parent 04b6652b03
commit fb347a8dc6
2 changed files with 23 additions and 31 deletions

View File

@@ -474,48 +474,39 @@ public class MessageTableModel extends AbstractTableModel {
@Override @Override
public void changeSelection(int row, int col, boolean toggle, boolean extend) { public void changeSelection(int row, int col, boolean toggle, boolean extend) {
super.changeSelection(row, col, toggle, extend); super.changeSelection(row, col, toggle, extend);
int selectedIndex = convertRowIndexToModel(row); if (currentWorker != null && !currentWorker.isDone()) {
if (lastSelectedIndex != selectedIndex) { currentWorker.cancel(true);
lastSelectedIndex = selectedIndex; }
messageEntry = filteredLog.get(selectedIndex);
requestEditor.setRequest(HttpRequest.httpRequest("Loading...")); currentWorker = new SwingWorker<>() {
responseEditor.setResponse(HttpResponse.httpResponse("Loading...")); @Override
protected Void doInBackground() {
int selectedIndex = convertRowIndexToModel(row);
if (lastSelectedIndex != selectedIndex) {
lastSelectedIndex = selectedIndex;
messageEntry = filteredLog.get(selectedIndex);
if (currentWorker != null && !currentWorker.isDone()) { requestEditor.setRequest(HttpRequest.httpRequest("Loading..."));
currentWorker.cancel(true); responseEditor.setResponse(HttpResponse.httpResponse("Loading..."));
}
currentWorker = new SwingWorker<>() {
@Override
protected ByteArray[] doInBackground() {
HttpRequestResponse httpRequestResponse = messageEntry.getRequestResponse(); HttpRequestResponse httpRequestResponse = messageEntry.getRequestResponse();
ByteArray requestByte = messageEntry.getRequestResponse().request().toByteArray(); ByteArray requestByte = httpRequestResponse.request().toByteArray();
ByteArray responseByte = messageEntry.getRequestResponse().response().toByteArray(); ByteArray responseByte = httpRequestResponse.response().toByteArray();
if (responseByte.length() > MAX_LENGTH) { if (responseByte.length() > MAX_LENGTH) {
String ellipsis = "\r\n......"; String ellipsis = "\r\n......";
responseByte = responseByte.subArray(0, MAX_LENGTH).withAppended(ellipsis); responseByte = responseByte.subArray(0, MAX_LENGTH).withAppended(ellipsis);
} }
return new ByteArray[]{requestByte, responseByte}; requestEditor.setRequest(HttpRequest.httpRequest(messageEntry.getRequestResponse().httpService(), requestByte));
responseEditor.setResponse(HttpResponse.httpResponse(responseByte));
} }
@Override return null;
protected void done() { }
if (!isCancelled()) { };
try { currentWorker.execute();
ByteArray[] result = (ByteArray[]) get();
requestEditor.setRequest(HttpRequest.httpRequest(messageEntry.getRequestResponse().httpService(), result[0]));
responseEditor.setResponse(HttpResponse.httpResponse(result[1]));
} catch (Exception ignored) {
}
}
}
};
currentWorker.execute();
}
} }
} }
} }

View File

@@ -191,3 +191,4 @@ public class ProjectProcessor {
return requiredRootEntries.isEmpty() && hasHttpDirectoryWithFiles; return requiredRootEntries.isEmpty() && hasHttpDirectoryWithFiles;
} }
} }