aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-10-15 14:31:33 -0700
committerPinapelz <yukais@pinapelz.com>2025-10-15 14:31:33 -0700
commit30f4a1cea54e95d60967fc4cfdabada4251d7272 (patch)
treecba2955d1b03028a43099e660f4921a66fbbdeea /src
parent866a8b7d1bc47999e5846c6402e45473bdd1114f (diff)
add initialization of DownloadConfigPane and TagEditorScreen
Diffstat (limited to 'src')
-rw-r--r--src/main/java/DownloadConfigPane.java93
-rw-r--r--src/main/java/TagEditorScreen.java106
2 files changed, 197 insertions, 2 deletions
diff --git a/src/main/java/DownloadConfigPane.java b/src/main/java/DownloadConfigPane.java
index 1e9abb2..4f36052 100644
--- a/src/main/java/DownloadConfigPane.java
+++ b/src/main/java/DownloadConfigPane.java
@@ -1,8 +1,7 @@
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
@@ -27,10 +26,26 @@ public class DownloadConfigPane extends JFrame{
private String loadedPath;
public DownloadConfigPane() {
+ // Initialize all components
+ mainPanel = new JPanel();
+ mainPanel.setLayout(new GridBagLayout());
+ urlField = new JTextField();
+ fromField = new JTextField("HH:MM:SS");
+ toField = new JTextField("HH:MM:SS");
+ loadFromFileButton = new JButton("Load From File");
+ fromLabel = new JLabel("From:");
+ toLabel = new JLabel("To:");
+ urlLabel = new JLabel("URL");
+ addButton = new JButton("Add");
+ saveButton = new JButton("Save");
+ removeButton = new JButton("Remove");
+ fullVideoCheckBox = new JCheckBox("Full Video");
+
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setSize(900, 500);
initializeTable();
+ setupLayout();
this.add(mainPanel);
this.setVisible(true);
loadFromFileButton.addActionListener(e -> loadConfigFromFile());
@@ -92,11 +107,85 @@ public class DownloadConfigPane extends JFrame{
});
}
+ private void setupLayout() {
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.insets = new Insets(5, 5, 5, 5);
+
+ // First row - URL
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.anchor = GridBagConstraints.WEST;
+ mainPanel.add(urlLabel, gbc);
+
+ gbc.gridx = 1;
+ gbc.gridwidth = 4;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 1.0;
+ mainPanel.add(urlField, gbc);
+
+ // Second row - From/To fields
+ gbc.gridx = 0;
+ gbc.gridy = 1;
+ gbc.gridwidth = 1;
+ gbc.weightx = 0;
+ gbc.fill = GridBagConstraints.NONE;
+ mainPanel.add(fromLabel, gbc);
+
+ gbc.gridx = 1;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 0.3;
+ mainPanel.add(fromField, gbc);
+
+ gbc.gridx = 2;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.weightx = 0;
+ mainPanel.add(fullVideoCheckBox, gbc);
+
+ gbc.gridx = 3;
+ mainPanel.add(toLabel, gbc);
+
+ gbc.gridx = 4;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 0.3;
+ mainPanel.add(toField, gbc);
+
+ // Third row - Add button
+ gbc.gridx = 0;
+ gbc.gridy = 2;
+ gbc.gridwidth = 5;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 1.0;
+ mainPanel.add(addButton, gbc);
+
+ // Fourth row - Remove button
+ gbc.gridy = 3;
+ mainPanel.add(removeButton, gbc);
+
+ // Fifth row - Table
+ gbc.gridy = 4;
+ gbc.weighty = 1.0;
+ gbc.fill = GridBagConstraints.BOTH;
+ tableScrollPane = new JScrollPane(outputTable);
+ mainPanel.add(tableScrollPane, gbc);
+
+ // Sixth row - Load and Save buttons
+ gbc.gridy = 5;
+ gbc.gridwidth = 2;
+ gbc.weighty = 0;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ mainPanel.add(loadFromFileButton, gbc);
+
+ gbc.gridx = 2;
+ gbc.gridwidth = 3;
+ mainPanel.add(saveButton, gbc);
+ }
+
private void initializeTable() {
DefaultTableModel model = new DefaultTableModel();
// center align the text in the table
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment( JLabel.CENTER );
+ outputTable = new JTable();
outputTable.setDefaultRenderer(String.class, centerRenderer);
model.addColumn("URL");
model.addColumn("From");
diff --git a/src/main/java/TagEditorScreen.java b/src/main/java/TagEditorScreen.java
index 5fe6fd0..39d1542 100644
--- a/src/main/java/TagEditorScreen.java
+++ b/src/main/java/TagEditorScreen.java
@@ -35,11 +35,28 @@ public class TagEditorScreen extends JFrame {
private Boolean imageSelected = false;
public TagEditorScreen() {
+ // Initialize all components
+ mainPanel = new JPanel();
+ mainPanel.setLayout(new GridBagLayout());
+ titleField = new JTextField();
+ titleLabel = new JLabel("Title:");
+ uploaderField = new JTextField();
+ uploaderLabel = new JLabel("Uploader:");
+ imagePathField = new JTextField();
+ imageChooseButton = new JButton("Choose Image");
+ songTable = new JTable();
+ chooseAudioDirectoryButton = new JButton("Choose Audio Directory");
+ applyChangesButton = new JButton("Apply Changes");
+ artIconLabel = new JLabel();
+ searchField = new JTextField();
+ listenButton = new JButton("Listen");
+
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setSize(700, 550);
initalizeListeners();
initializeTable();
+ setupLayout();
listenButton.setEnabled(false);
this.add(mainPanel);
this.setVisible(true);
@@ -61,6 +78,9 @@ public class TagEditorScreen extends JFrame {
}
private void initializeTable() {
+ if (songTable == null) {
+ songTable = new JTable();
+ }
songTable.setDefaultEditor(Object.class, null);
songTable.setModel(new DefaultTableModel(null, new String[]{"Title", "Artist", "Filepath"}));
songTable.getTableHeader().setReorderingAllowed(false);
@@ -124,6 +144,92 @@ public class TagEditorScreen extends JFrame {
}
+ private void setupLayout() {
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.insets = new Insets(5, 5, 5, 5);
+
+ // Title row
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.anchor = GridBagConstraints.WEST;
+ mainPanel.add(titleLabel, gbc);
+
+ gbc.gridx = 1;
+ gbc.gridwidth = 2;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 1.0;
+ mainPanel.add(titleField, gbc);
+
+ // Uploader row
+ gbc.gridx = 0;
+ gbc.gridy = 1;
+ gbc.gridwidth = 1;
+ gbc.weightx = 0;
+ gbc.fill = GridBagConstraints.NONE;
+ mainPanel.add(uploaderLabel, gbc);
+
+ gbc.gridx = 1;
+ gbc.gridwidth = 2;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 1.0;
+ mainPanel.add(uploaderField, gbc);
+
+ // Image path row
+ gbc.gridx = 0;
+ gbc.gridy = 2;
+ gbc.gridwidth = 1;
+ gbc.weightx = 0;
+ gbc.fill = GridBagConstraints.NONE;
+ mainPanel.add(new JLabel("Album Art:"), gbc);
+
+ gbc.gridx = 1;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weightx = 1.0;
+ mainPanel.add(imagePathField, gbc);
+
+ gbc.gridx = 2;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.weightx = 0;
+ mainPanel.add(imageChooseButton, gbc);
+
+ // Art icon
+ gbc.gridx = 3;
+ gbc.gridy = 0;
+ gbc.gridheight = 3;
+ mainPanel.add(artIconLabel, gbc);
+
+ // Search field
+ gbc.gridx = 0;
+ gbc.gridy = 3;
+ gbc.gridheight = 1;
+ gbc.gridwidth = 3;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ mainPanel.add(searchField, gbc);
+
+ // Song table
+ gbc.gridx = 0;
+ gbc.gridy = 4;
+ gbc.gridwidth = 4;
+ gbc.weighty = 1.0;
+ gbc.fill = GridBagConstraints.BOTH;
+ JScrollPane scrollPane = new JScrollPane(songTable);
+ mainPanel.add(scrollPane, gbc);
+
+ // Bottom buttons
+ gbc.gridy = 5;
+ gbc.gridwidth = 1;
+ gbc.weighty = 0;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ mainPanel.add(chooseAudioDirectoryButton, gbc);
+
+ gbc.gridx = 1;
+ mainPanel.add(listenButton, gbc);
+
+ gbc.gridx = 2;
+ gbc.gridwidth = 2;
+ mainPanel.add(applyChangesButton, gbc);
+ }
+
private void initalizeListeners() {
chooseAudioDirectoryButton.addActionListener(e -> {
clearSongTable();
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage