Skip to content
This repository was archived by the owner on Jan 2, 2023. It is now read-only.

Commit 5153bb1

Browse files
committed
task
1 parent 8f12122 commit 5153bb1

File tree

3 files changed

+74
-4
lines changed

3 files changed

+74
-4
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Copyright 2022 Enaium
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package cn.enaium.joe.dialog;
18+
19+
import cn.enaium.joe.JavaOctetEditor;
20+
import cn.enaium.joe.task.AbstractTask;
21+
import org.benf.cfr.reader.bytecode.analysis.parse.utils.Pair;
22+
23+
import javax.swing.*;
24+
import java.awt.*;
25+
import java.util.concurrent.CompletableFuture;
26+
import java.util.concurrent.Executors;
27+
import java.util.concurrent.ScheduledExecutorService;
28+
import java.util.concurrent.TimeUnit;
29+
30+
/**
31+
* @author Enaium
32+
* @since 0.10.0
33+
*/
34+
public class TaskDialog extends Dialog {
35+
public TaskDialog() {
36+
super("TaskList");
37+
setSize(300, 400);
38+
setLayout(new BorderLayout());
39+
JList<AbstractTask<?>> comp = new JList<>();
40+
comp.setCellRenderer((list, value, index, isSelected, cellHasFocus) -> new JProgressBar() {{
41+
setValue(value.getProgress());
42+
setStringPainted(true);
43+
setString(String.format("%s:%s", value.getName(), value.getProgress()) + "%");
44+
}});
45+
add(new JScrollPane(comp), BorderLayout.CENTER);
46+
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
47+
scheduledExecutorService.scheduleAtFixedRate(() -> {
48+
SwingUtilities.invokeLater(() -> {
49+
DefaultListModel<AbstractTask<?>> abstractTaskDefaultListModel = new DefaultListModel<>();
50+
for (Pair<AbstractTask<?>, CompletableFuture<?>> abstractTaskCompletableFuturePair : JavaOctetEditor.getInstance().task.getTask()) {
51+
abstractTaskDefaultListModel.addElement(abstractTaskCompletableFuturePair.getFirst());
52+
}
53+
comp.setModel(abstractTaskDefaultListModel);
54+
});
55+
}, 1, 1, TimeUnit.MILLISECONDS);
56+
}
57+
}

src/main/java/cn/enaium/joe/gui/panel/BottomPanel.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@
1717
package cn.enaium.joe.gui.panel;
1818

1919
import cn.enaium.joe.JavaOctetEditor;
20+
import cn.enaium.joe.dialog.TaskDialog;
2021
import cn.enaium.joe.task.AbstractTask;
21-
import cn.enaium.joe.util.ASyncUtil;
2222
import org.benf.cfr.reader.bytecode.analysis.parse.utils.Pair;
2323

2424
import javax.swing.*;
2525
import javax.swing.border.EmptyBorder;
2626
import java.awt.*;
27+
import java.awt.event.MouseAdapter;
28+
import java.awt.event.MouseEvent;
2729
import java.util.List;
2830
import java.util.concurrent.CompletableFuture;
2931
import java.util.concurrent.Executors;
@@ -34,14 +36,23 @@
3436
* @author Enaium
3537
*/
3638
public class BottomPanel extends JPanel {
37-
private final JProgressBar jProgressBar = new JProgressBar();
3839
private final JLabel scale = new JLabel();
3940

4041
public BottomPanel() {
4142
super(new GridLayout(1, 4, 10, 10));
4243
this.setBorder(new EmptyBorder(5, 5, 5, 5));
43-
add(jProgressBar);
4444

45+
JProgressBar jProgressBar = new JProgressBar() {{
46+
addMouseListener(new MouseAdapter() {
47+
@Override
48+
public void mouseReleased(MouseEvent e) {
49+
new TaskDialog().setVisible(true);
50+
super.mouseReleased(e);
51+
}
52+
});
53+
}};
54+
55+
add(jProgressBar);
4556

4657
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
4758
scheduledExecutorService.scheduleAtFixedRate(() -> {
@@ -59,7 +70,7 @@ public BottomPanel() {
5970
int progress = classCompletableFuturePair.getFirst().getProgress();
6071
jProgressBar.setValue(progress);
6172
jProgressBar.setStringPainted(true);
62-
jProgressBar.setString(progress + "%");
73+
jProgressBar.setString(String.format("%s:%s", classCompletableFuturePair.getFirst().getName(), progress) + "%");
6374
jProgressBar.repaint();
6475
});
6576
}

src/main/java/cn/enaium/joe/task/InputJarTask.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import cn.enaium.joe.util.Util;
2323
import org.objectweb.asm.ClassReader;
2424
import org.objectweb.asm.tree.ClassNode;
25+
import org.tinylog.Logger;
2526

2627
import java.io.ByteArrayOutputStream;
2728
import java.io.File;
@@ -45,6 +46,7 @@ public InputJarTask(File file) {
4546

4647
@Override
4748
public Jar get() {
49+
Logger.info("LOAD:{}", file.getAbsolutePath());
4850
Jar jar = new Jar();
4951
try {
5052
JarFile jarFile = new JarFile(file);

0 commit comments

Comments
 (0)