1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.swing.tree;
12
13 import com.jsql.util.LogLevelUtil;
14 import com.jsql.view.swing.util.UiUtil;
15 import org.apache.logging.log4j.LogManager;
16 import org.apache.logging.log4j.Logger;
17
18 import javax.imageio.ImageIO;
19 import javax.swing.*;
20 import java.awt.*;
21 import java.awt.image.BufferedImage;
22 import java.io.IOException;
23 import java.util.Objects;
24
25
26
27
28 public class ProgressBarPausable extends JProgressBar {
29
30 private static final Logger LOGGER = LogManager.getRootLogger();
31
32
33
34
35 private boolean isIconDisplayed = false;
36
37 @Override
38 public void paint(Graphics graphics) {
39
40
41 try {
42 super.paint(graphics);
43 } catch (InternalError e) {
44 LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
45 }
46
47 if (this.isIconDisplayed) {
48 try {
49 BufferedImage bufferedImage = ImageIO.read(
50 Objects.requireNonNull(ProgressBarPausable.class.getClassLoader().getResource(UiUtil.PATH_PAUSE))
51 );
52 graphics.drawImage(
53 bufferedImage,
54 (this.getWidth() - bufferedImage.getWidth()) / 2,
55 (this.getHeight() - bufferedImage.getHeight()) / 2,
56 null
57 );
58 } catch (IOException e) {
59 LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
60 }
61 }
62 }
63
64
65
66
67 public void pause() {
68 this.isIconDisplayed = true;
69 }
70 }