aboutsummaryrefslogtreecommitdiff
path: root/src/main/ui/widgets/QRPanel.java
diff options
context:
space:
mode:
authorYuuta Liang <yuutaw@student.cs.ubc.ca>2023-11-28 18:19:39 -0800
committerYuuta Liang <yuutaw@student.cs.ubc.ca>2023-11-28 18:19:39 -0800
commit1073af21305360bd33903c533cdac57e9f936294 (patch)
tree2c2d9c343ffe2577286fb53e016f06f6cdc53cbf /src/main/ui/widgets/QRPanel.java
parente13adbb9a9146dd5ece890449e3cad958a502f86 (diff)
downloadjca-1073af21305360bd33903c533cdac57e9f936294.tar
jca-1073af21305360bd33903c533cdac57e9f936294.tar.gz
jca-1073af21305360bd33903c533cdac57e9f936294.tar.bz2
jca-1073af21305360bd33903c533cdac57e9f936294.zip
Move TUI and GUI into separate packages
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'src/main/ui/widgets/QRPanel.java')
-rw-r--r--src/main/ui/widgets/QRPanel.java77
1 files changed, 0 insertions, 77 deletions
diff --git a/src/main/ui/widgets/QRPanel.java b/src/main/ui/widgets/QRPanel.java
deleted file mode 100644
index d72d0d0..0000000
--- a/src/main/ui/widgets/QRPanel.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package ui.widgets;
-
-import com.google.zxing.BarcodeFormat;
-import com.google.zxing.WriterException;
-import com.google.zxing.common.BitMatrix;
-import com.google.zxing.qrcode.QRCodeWriter;
-
-import javax.swing.*;
-import java.awt.*;
-import java.util.Collections;
-
-import static com.google.zxing.EncodeHintType.ERROR_CORRECTION;
-import static com.google.zxing.qrcode.decoder.ErrorCorrectionLevel.L;
-
-/**
- * A fixed-size panel displaying a QR code.
- */
-public class QRPanel extends JPanel {
- private final int size;
-
- private BitMatrix data;
-
- /**
- * EFFECTS: Init with the specific rectangular size. Min size = max size = preferred size.
- */
- public QRPanel(int size) {
- super();
- setSize(new Dimension(size, size));
- setMaximumSize(new Dimension(size, size));
- setMinimumSize(new Dimension(size, size));
- setPreferredSize(new Dimension(size, size));
- this.size = size;
- }
-
- /**
- * EFFECTS: Draw the QR code. Leave white if no data is set.
- * MODIFIES: this
- */
- @Override
- protected void paintComponent(Graphics graphics) {
- super.paintComponent(graphics);
- graphics.setColor(Color.WHITE);
- graphics.fillRect(0, 0, size, size);
-
- if (data == null) {
- return;
- }
-
- graphics.setColor(Color.BLACK);
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- if (data.get(i, j)) {
- graphics.fillRect(i, j, 1, 1);
- }
- }
- }
- }
-
- /**
- * EFFECTS: Set data and repaint. Nullable.
- * MODIFIES: this
- */
- public void setData(String data) {
- if (data == null) {
- this.data = null;
- invalidate();
- return;
- }
- try {
- this.data = new QRCodeWriter().encode(data, BarcodeFormat.QR_CODE, size, size,
- Collections.singletonMap(ERROR_CORRECTION, L));
- } catch (WriterException e) {
- e.printStackTrace();
- }
- invalidate();
- }
-}