diff options
Diffstat (limited to 'base/src/examples/java')
| -rw-r--r-- | base/src/examples/java/bjc/utils/examples/gui/panels/MultiTaskProgressPanelDemo.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/base/src/examples/java/bjc/utils/examples/gui/panels/MultiTaskProgressPanelDemo.java b/base/src/examples/java/bjc/utils/examples/gui/panels/MultiTaskProgressPanelDemo.java new file mode 100644 index 0000000..f417903 --- /dev/null +++ b/base/src/examples/java/bjc/utils/examples/gui/panels/MultiTaskProgressPanelDemo.java @@ -0,0 +1,55 @@ +package bjc.utils.examples.gui.panels; + +import java.awt.BorderLayout; + +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.SwingUtilities; + +import bjc.utils.gui.panels.MultiTaskProgressPanel; +import bjc.utils.gui.panels.MultiTaskProgressPanel.TaskHandle; + +/** + * Demo for {@link MultiTaskProgressPanel} + */ +public class MultiTaskProgressPanelDemo { + /** + * Main method + * @param args Unused CLI args + */ + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + JFrame frame = new JFrame("MultiTaskProgressPanel demo"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + MultiTaskProgressPanel panel = new MultiTaskProgressPanel(); + frame.add(panel, BorderLayout.CENTER); + + JButton addTask = new JButton("Start fake task"); + addTask.addActionListener(e -> { + TaskHandle handle = panel.startTask("Saving large collection", + 0, 100, null); + + // Simulate background work + new Thread(() -> { + for (int i = 0; i <= 100; i++) { + if (handle.isCancelled()) break; + handle.setProgress(i); + handle.setNote("Step " + i + " of 100"); + try { + Thread.sleep(50); + } catch (InterruptedException ignored) { + } + } + handle.done(); + }, "FakeWorker").start(); + }); + + frame.add(addTask, BorderLayout.SOUTH); + + frame.setSize(500, 400); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + }); + } +} |
