1 package com.jsql.view.swing.text;
2
3 import com.jsql.util.LogLevelUtil;
4 import com.jsql.view.swing.util.UiUtil;
5 import org.apache.commons.lang3.StringUtils;
6 import org.apache.logging.log4j.LogManager;
7 import org.apache.logging.log4j.Logger;
8
9 import javax.swing.*;
10 import java.awt.*;
11
12
13
14
15 public class JTextAreaPlaceholder extends JTextArea implements JPlaceholder {
16
17 private static final Logger LOGGER = LogManager.getRootLogger();
18
19
20
21
22 private String placeholderText;
23
24
25
26
27
28 public JTextAreaPlaceholder(String placeholder) {
29 this.placeholderText = placeholder;
30 UiUtil.init(this);
31 }
32
33 @Override
34 public void paint(Graphics g) {
35
36
37
38
39 try {
40 super.paint(g);
41 if (StringUtils.isEmpty(this.getText())) {
42 UiUtil.drawPlaceholder(this, g, this.placeholderText);
43 }
44 } catch (IllegalArgumentException | NullPointerException | ArrayIndexOutOfBoundsException e) {
45 LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
46 }
47 }
48
49 @Override
50 public void setPlaceholderText(String placeholderText) {
51 this.placeholderText = placeholderText;
52 }
53 }