package org.awiFace;
import javax.swing.*;
import org.awiFace.prefs.Einstellungen;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Loader extends JFrame{
final Einstellungen prefs = new Einstellungen();
final WMain hfenster = new WMain(); //Neues Hauptfenster
JProgressBar percent = new JProgressBar(1,100); //Preloader
JLabel status = new JLabel("Loading ...");
public Loader(String titel) {
super(titel);
setSize(300,110);
setResizable( false );
setUndecorated(true);
setLocationRelativeTo(null);
getContentPane().setLayout(null);
getContentPane().setBackground(Color.DARK_GRAY);
status.setBounds(25, 40, 100, 22);
status.setForeground(Color.WHITE);
add(status);
percent.setBounds(20,20,240,20);
add(percent);
}
/*Methoden start,loadPrefs, loadConnection, loadContainers, laodCharts, loadEnd & loadMainPage werden
nacheinander geladen.
In hfenster ist das Hauptfenster Instanziert und in dies sollen in der Methode loadContainers für eine
bestimmte Anzahl von Seiten (die im Moment durch anzSites "vertreten" werden. Für jede dieser
Seiten soll in einem TabbedPane ein neues Tab erzeugt werden. Dies sollte in der for Schleife der Fall sein.
Die Tabs sollten sich über das ganze hfenster erstrecken, da der ganze Inhalt in die Tabs soll.
*/
public void start(){
loadPrefs();
}
public void loadPrefs(){
setpercent(5,"Einstellungen"); //nur für den aktuellen Status des preloaders(ProgressBar)
if(!prefs.testPrefs()){
PrefDialog prefdia = new PrefDialog(this,"Einstellungen");
prefdia.setVisible(true);
}else{
loadConnection();
}
}
class PrefDialog extends JDialog {
PrefDialog(Frame parent,String title) {
super(parent, title, true);
setSize(300, 150);
getContentPane().setLayout(null);
setLocationRelativeTo(parent);
JButton okbutton = new JButton("OK");
okbutton.setVisible(true);
final JTextField urltf = new JTextField("url zur xml Datei");
urltf.setBounds(30,20,200,20);
okbutton.setBounds(30, 70,70,20);
okbutton.addActionListener(new ActionListener(){
public void actionPerformed( ActionEvent e ) {
prefs.setPref("url",urltf.getText().toString());
loadConnection();
}
});
add(urltf);
add(okbutton);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
public void loadConnection(){
setpercent(20,"Connecting");
loadContainers();
}
public void loadContainers(){
setpercent(30,"loadDesktop");
class SiteTabs extends JTabbedPane{
SiteTabs(){
setLayout(new BorderLayout());
setVisible(true);
}
}
class SitePanel extends JPanel {
SitePanel(){
}
}
int anzSites = 3;
SitePanel tabs[] = new SitePanel[10];
SiteTabs tsite = new SiteTabs();
for (int i=0;i<anzSites;i++){
tabs[i] = new SitePanel();
tsite.addTab((new Integer(i)).toString(), tabs[i]);
}
add(tsite);
loadCharts();
}
public void loadCharts(){
setpercent(80,"Create Charts");
loadEnd();
}
public void loadEnd(){
setpercent(100,"Finished");
setVisible(false);
loadMainPage();
}
public void loadMainPage(){
hfenster.setVisible(true);
}
public void setpercent(int per,String lstatus){
percent.setValue(100);
status.setText(lstatus + "...");
}
}