major gui update
This commit is contained in:
parent
48753b4859
commit
8717e07604
2 changed files with 155 additions and 10 deletions
|
@ -16,10 +16,11 @@ import org.json.JSONObject;
|
|||
public class GuiData {
|
||||
|
||||
private ArrayList<String> localLevels = new ArrayList<String>();
|
||||
private ArrayList<String> completed = new ArrayList<String>();
|
||||
private ArrayList<String> qualification = new ArrayList<String>();
|
||||
private ArrayList<String> id = new ArrayList<String>();
|
||||
private ArrayList<String> verifier = new ArrayList<String>();
|
||||
private ArrayList<String> creator = new ArrayList<String>();
|
||||
private ArrayList<String> ytlink = new ArrayList<String>();
|
||||
|
||||
private FetchData data = new FetchData();
|
||||
|
||||
|
@ -49,6 +50,14 @@ public class GuiData {
|
|||
return creator;
|
||||
}
|
||||
|
||||
public ArrayList<String> getQualification() {
|
||||
return qualification;
|
||||
}
|
||||
|
||||
public ArrayList<String> getYoutubeLink() {
|
||||
return ytlink;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void IndexLevelName() throws IOException {
|
||||
|
@ -177,6 +186,59 @@ public class GuiData {
|
|||
|
||||
}
|
||||
|
||||
public void IndexQualification() throws IOException {
|
||||
|
||||
FetchData data = new FetchData();
|
||||
|
||||
File filelength = new File("C:\\ExtremeDemonList\\levels");
|
||||
File[] filelengthindex = filelength.listFiles();
|
||||
|
||||
String jsonstring;
|
||||
|
||||
localLength = filelengthindex.length;
|
||||
|
||||
System.out.println(filelengthindex.length);
|
||||
|
||||
for(int i = 0; i < filelengthindex.length; i++) {
|
||||
|
||||
|
||||
|
||||
jsonstring = FileUtils.readFileToString(new File("C:\\ExtremeDemonList\\levels\\" + data.allLevels().get(i) + ".json"), StandardCharsets.UTF_8);
|
||||
jsonstring = jsonstring.trim().replace("\n", "").replace("\t", "").replace("\\", "");
|
||||
|
||||
JSONObject obj = new JSONObject(jsonstring);
|
||||
|
||||
qualification.add(obj.getInt("percentToQualify") + "");
|
||||
}
|
||||
}
|
||||
|
||||
public ArrayList<String> IndexYoutubeLink() throws IOException {
|
||||
FetchData data = new FetchData();
|
||||
|
||||
File filelength = new File("C:\\ExtremeDemonList\\levels");
|
||||
File[] filelengthindex = filelength.listFiles();
|
||||
|
||||
String jsonstring;
|
||||
|
||||
localLength = filelengthindex.length;
|
||||
|
||||
System.out.println(filelengthindex.length);
|
||||
|
||||
for(int i = 0; i < filelengthindex.length; i++) {
|
||||
|
||||
|
||||
|
||||
jsonstring = FileUtils.readFileToString(new File("C:\\ExtremeDemonList\\levels\\" + data.allLevels().get(i) + ".json"), StandardCharsets.UTF_8);
|
||||
jsonstring = jsonstring.trim().replace("\n", "").replace("\t", "").replace("\\", "");
|
||||
|
||||
JSONObject obj = new JSONObject(jsonstring);
|
||||
|
||||
ytlink.add(obj.getString("verification") + "");
|
||||
}
|
||||
|
||||
return ytlink;
|
||||
}
|
||||
|
||||
public static ArrayList<String> allVictors(String levelname) throws IOException {
|
||||
ArrayList<String> completed = new ArrayList<>();
|
||||
|
||||
|
@ -196,4 +258,8 @@ public class GuiData {
|
|||
|
||||
return completed;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.awt.Color;
|
|||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.Image;
|
||||
import java.awt.Insets;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.datatransfer.Clipboard;
|
||||
|
@ -19,11 +20,17 @@ import java.awt.event.KeyEvent;
|
|||
import java.awt.event.KeyListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
|
@ -51,8 +58,15 @@ public class MainGUI {
|
|||
public JLabel level = new JLabel("Liste");
|
||||
public JLabel creator = new JLabel("Creator");
|
||||
public JLabel separator = new JLabel("_______________________________________________________________________________________________________________");
|
||||
public JLabel separator2 = new JLabel("_______________________________________________________________________________________________________________");
|
||||
public JLabel separator3 = new JLabel("_______________________________________________________________________________________________________________");
|
||||
public JLabel verifier = new JLabel("Verifier");
|
||||
public JLabel victorcount = new JLabel("Anzahl Victors");
|
||||
public JLabel victor = new JLabel("Victors: ");
|
||||
public JLabel idshow = new JLabel("ID");
|
||||
public JLabel qualify = new JLabel("Qualifikation");
|
||||
public JPanel recordspanel = new JPanel();
|
||||
public JLabel ytthumbnail = new JLabel();
|
||||
public JScrollPane records = new JScrollPane(recordspanel);
|
||||
public JCheckBox filtercompleted = new JCheckBox("Nach geschaft filtern");
|
||||
public Button copyid = new Button("Level ID kopieren");
|
||||
|
@ -71,6 +85,8 @@ public class MainGUI {
|
|||
data.IndexLevelID();
|
||||
data.IndexVerifiers();
|
||||
data.IndexCreators();
|
||||
data.IndexQualification();
|
||||
data.IndexYoutubeLink();
|
||||
|
||||
gridLayout.setRows(data.getLocalLevels().size());
|
||||
|
||||
|
@ -96,11 +112,15 @@ public class MainGUI {
|
|||
levelpanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
|
||||
levelpanel.setLayout(gridLayout);
|
||||
|
||||
victorcount.setBounds(10, 130, 164, 30);
|
||||
|
||||
|
||||
|
||||
idshow.setBounds(10, 150, 164, 30);
|
||||
|
||||
copyid.setBounds(10, 50, 164, 30);
|
||||
|
||||
qualify.setBounds(10, 170, 164, 30);
|
||||
|
||||
victor.setBounds(1, 276, 164, 30);
|
||||
|
||||
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
|
||||
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
||||
|
@ -112,6 +132,8 @@ public class MainGUI {
|
|||
elements.infopanel().setVisible(false);
|
||||
|
||||
separator.setBounds(0, 70, 300, 30);
|
||||
separator2.setBounds(0 ,178, 400, 30);
|
||||
separator3.setBounds(0, 263, 300, 30);
|
||||
|
||||
creator.setBounds(10, 90, 164, 30);
|
||||
|
||||
|
@ -120,6 +142,11 @@ public class MainGUI {
|
|||
search.setBounds(1, 1, 500, 60);
|
||||
|
||||
show.setBounds(500, 1, 200, 60);
|
||||
|
||||
ytthumbnail.setBounds(0, 200, 184, 85);
|
||||
|
||||
recordspanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
|
||||
|
||||
|
||||
Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
|
@ -146,6 +173,8 @@ public class MainGUI {
|
|||
uncompleted.setBounds(640, 17, 17, 17);
|
||||
uncompleted.setMargin(new Insets(0,0,0,0));
|
||||
|
||||
|
||||
|
||||
File file = new File("C:\\ExtremeDemonList\\completed\\" + fetch.allLevels().get(i)+ ".json");
|
||||
|
||||
|
||||
|
@ -192,15 +221,61 @@ public class MainGUI {
|
|||
contents.addMouseListener(new MouseListener() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
|
||||
|
||||
String url = data.getYoutubeLink().get(index);
|
||||
|
||||
|
||||
if (url != null && url.contains("v=")) {
|
||||
int startIndex = url.indexOf("v=") + 2;
|
||||
int endIndex = url.indexOf('&', startIndex);
|
||||
if (endIndex == -1) {
|
||||
endIndex = url.length();
|
||||
}
|
||||
String videoId = url.substring(startIndex, endIndex);
|
||||
|
||||
String videoThumb = "https://img.youtube.com/vi/" + videoId +"/0.jpg";
|
||||
|
||||
System.out.println(videoThumb);
|
||||
|
||||
|
||||
int labelWidth = ytthumbnail.getWidth();
|
||||
int labelHeight = ytthumbnail.getHeight();
|
||||
|
||||
URL imageget;
|
||||
try {
|
||||
imageget = new URL(videoThumb);
|
||||
BufferedImage originalImage = ImageIO.read(imageget);
|
||||
|
||||
// Das Bild skalieren, um in das JLabel zu passen
|
||||
Image scaledImage = originalImage.getScaledInstance(labelWidth, labelHeight, Image.SCALE_SMOOTH);
|
||||
|
||||
// Ein ImageIcon erstellen und dem JLabel zuweisen
|
||||
ytthumbnail.setIcon(new ImageIcon(scaledImage));
|
||||
} catch (IOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
level.setText(data.getLocalLevels().get(index));
|
||||
verifier.setText("Verifier: " + data.getVerifier().get(index));
|
||||
creator.setText("Creator: " + data.getCreator().get(index));
|
||||
idshow.setText("ID: " + data.getId().get(index));
|
||||
qualify.setText("Qualifikation: " + data.getQualification().get(index) + "%");
|
||||
level.setVerticalAlignment(SwingConstants.CENTER);
|
||||
|
||||
FetchData fetchData = new FetchData();
|
||||
|
||||
recordspanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
|
||||
|
||||
try {
|
||||
recordspanel.setLayout(new GridLayout(GuiData.allVictors(fetchData.allLevels().get(index)).size(), 1));
|
||||
} catch (IOException e1) {
|
||||
|
@ -217,6 +292,8 @@ public class MainGUI {
|
|||
// Instanz der FetchData-Klasse erstellen
|
||||
ArrayList<String> victors = GuiData.allVictors(fetchData.allLevels().get(index)); // Methode allVictors aufrufen
|
||||
|
||||
victorcount.setText("Anzahl Victors: " + victors.size());
|
||||
|
||||
recordspanel.setLayout(new GridLayout(victors.size(), 1));
|
||||
|
||||
for(String victor : victors) {
|
||||
|
@ -359,12 +436,7 @@ public class MainGUI {
|
|||
if (e.getStateChange() == ItemEvent.SELECTED) {
|
||||
if (!contents.getBackground().equals(Color.decode("#cbffbf"))) {
|
||||
levelpanel.remove(contents);
|
||||
try {
|
||||
gridLayout.setRows(data.allVictors(data.getLocalLevels().get(index)).size());
|
||||
} catch (IOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
gridLayout.setRows(data.getLocalLength());
|
||||
scroll.repaint();
|
||||
scroll.revalidate();
|
||||
}
|
||||
|
@ -401,9 +473,16 @@ public class MainGUI {
|
|||
elements.infopanel().add(copyid);
|
||||
elements.infopanel().add(level, SwingConstants.CENTER);
|
||||
elements.infopanel().add(separator);
|
||||
elements.infopanel().add(separator2);
|
||||
elements.infopanel().add(separator3);
|
||||
elements.infopanel().add(creator);
|
||||
elements.infopanel().add(verifier);
|
||||
elements.infopanel().add(records);
|
||||
elements.infopanel().add(victorcount);
|
||||
elements.infopanel().add(idshow);
|
||||
elements.infopanel().add(qualify);
|
||||
elements.infopanel().add(victor);
|
||||
elements.infopanel().add(ytthumbnail);
|
||||
|
||||
|
||||
main.add(search);
|
||||
|
|
Loading…
Reference in a new issue