diff options
Diffstat (limited to 'src/main/ui/widgets/QRPanel.java')
-rw-r--r-- | src/main/ui/widgets/QRPanel.java | 77 |
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(); - } -} |