daily pastebin goal
71%
SHARE
TWEET

LAUNCHER-PANEL

a guest May 17th, 2018 84 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package fr.redsun.exolauncher;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.io.File;
  7.  
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JOptionPane;
  11. import javax.swing.JPanel;
  12. import javax.swing.JPasswordField;
  13. import javax.swing.JTextField;
  14. import javax.swing.SwingConstants;
  15.  
  16. import fr.theshark34.openauth.AuthenticationException;
  17. import fr.theshark34.openlauncherlib.LaunchException;
  18. import fr.theshark34.openlauncherlib.util.Saver;
  19. import fr.theshark34.swinger.Swinger;
  20. import fr.theshark34.swinger.colored.SColoredBar;
  21. import fr.theshark34.swinger.event.SwingerEvent;
  22. import fr.theshark34.swinger.event.SwingerEventListener;
  23. import fr.theshark34.swinger.textured.STexturedButton;
  24.  
  25. @SuppressWarnings("serial")
  26. public class LauncherPanel extends JPanel implements SwingerEventListener {
  27.    
  28.     private Saver saver = new Saver(new File(Launcher.EX_DIR, "launcher.properties"));
  29.    
  30.     Image background = Swinger.getResource("launcher.png");
  31.  
  32.     private JTextField usernameField = new JTextField(saver.get("username"));
  33.     private JTextField passwordField = new JPasswordField();
  34.    
  35.     private STexturedButton playButton = new STexturedButton(Swinger.getResource("button.png"));
  36.     private STexturedButton quitButton = new STexturedButton(Swinger.getResource("quit_button.png"));
  37.     private STexturedButton hideButton = new STexturedButton(Swinger.getResource("hide_button.png"));
  38.  
  39.     private SColoredBar progressbar = new SColoredBar(Swinger.getTransparentWhite(100), Swinger.getTransparentWhite(175));
  40.     private JLabel infoLabel = new JLabel("Connecte-toi pour jouer !", SwingConstants.CENTER);
  41.    
  42.    
  43.     public LauncherPanel() {
  44.         this.setLayout(null);
  45.        
  46.         usernameField.setForeground(Color.lightGray);
  47.         usernameField.setCaretColor(Color.LIGHT_GRAY);
  48.         usernameField.setFont(usernameField.getFont().deriveFont(20F));
  49.         usernameField.setOpaque(false);
  50.         usernameField.setBorder(null);
  51.         usernameField.setBounds(671, 70, 280, 41);
  52.         this.add(usernameField);
  53.        
  54.         passwordField.setForeground(Color.lightGray);
  55.         passwordField.setCaretColor(Color.LIGHT_GRAY);
  56.         passwordField.setFont(passwordField.getFont().deriveFont(20F));
  57.         passwordField.setOpaque(false);
  58.         passwordField.setBorder(null);
  59.         passwordField.setBounds(690, 140, 280, 41);
  60.         this.add(passwordField);
  61.        
  62.        
  63.         playButton.setBounds(668, 225, 290, 60);
  64.         playButton.addEventListener(this);
  65.         this.add(playButton);
  66.        
  67.         quitButton.setBounds(946, 10);
  68.         quitButton.addEventListener(this);
  69.         this.add(quitButton);
  70.        
  71.         hideButton.setBounds(919, 10);
  72.         hideButton.addEventListener(this);
  73.         this.add(hideButton);
  74.        
  75.         progressbar.setBounds(34, 566, 602,28);
  76.         this.add(progressbar);
  77.        
  78.         infoLabel.setBounds(34, 565, 602,31);
  79.         this.add(infoLabel);
  80.        
  81.         infoLabel.setForeground(Color.GRAY);
  82.         infoLabel.setFont(usernameField.getFont());
  83.     }
  84.    
  85.     @Override
  86.     public void onEvent (SwingerEvent e) {
  87.         if (e.getSource() == playButton ) {
  88.             setFieldsEnabled(false);
  89.            
  90.             if(usernameField.getText().replaceAll(" ", "").length() == 0 || passwordField.getText().length() == 0) {
  91.                 JOptionPane.showMessageDialog(this, "Erreur : Veuillez entrez une E-mail & un mot de passe valide.", "Informations incorrect", JOptionPane.WARNING_MESSAGE);
  92.                 setFieldsEnabled(true);
  93.                 return;
  94.             }
  95.            
  96.             Thread t = new Thread() {
  97.                 @Override
  98.                 public void run() {
  99.                    
  100.                     try {
  101.                     Launcher.auth(usernameField.getText(), passwordField.getText());
  102.            
  103.                 } catch(AuthenticationException e) {
  104.                     JOptionPane.showMessageDialog(LauncherPanel.this, "Erreur : Impossible de se connecter au serveur distant :" + e.getErrorModel().getErrorMessage() , "Informations incorrect", JOptionPane.ERROR_MESSAGE);
  105.                     setFieldsEnabled(true);
  106.                 }
  107.                    
  108.                     //saver.set("username", usernameField.getText());
  109.                
  110.                     try
  111.                     {
  112.                         Launcher.update();
  113.                     } catch(Exception e) {
  114.                         Launcher.interruptThread();
  115.                         JOptionPane.showMessageDialog(LauncherPanel.this, "Erreur : Impossible de mettre Exolia a jour (NETWORK OU SERVER)");
  116.                         setFieldsEnabled(true);
  117.                         return;
  118.                     }
  119.                    
  120.                    
  121.                    
  122.                     try {
  123.                         Launcher.launch();
  124.                     } catch(LaunchException e) {
  125.                         //Launcher.interruptThread();
  126.                         JOptionPane.showMessageDialog(LauncherPanel.this, "Erreur critique : Impossible de lancer Exolia. Veuillez aller sur le forum.");
  127.                         setFieldsEnabled(true);
  128.                     }
  129.                 }
  130.             };
  131.             t.start();
  132.            
  133.       } else if(e.getSource() == quitButton)
  134.             System.exit(0);
  135.        
  136.         else if(e.getSource() == hideButton)
  137.             LauncherFrame.getInstance().setState(JFrame.ICONIFIED);
  138.        
  139.     }
  140.    
  141.    
  142.     @Override
  143.     public void paintComponent(Graphics g) {
  144.         super.paintComponent(g);
  145.        
  146.         g.drawImage(background, 0, 0, this.getWidth(), this.getHeight(), this);
  147.     }
  148.    
  149.     private void setFieldsEnabled(boolean enabled) {
  150.         usernameField.setEnabled(enabled);
  151.         passwordField.setEnabled(enabled);
  152.         playButton.setEnabled(enabled);
  153.        
  154.     }
  155.  
  156.     public SColoredBar getProgressBar() {
  157.         return progressbar;
  158.     }
  159.    
  160.     public void SetInfoText(String text) {
  161.         infoLabel.setText(text);
  162.     }
  163.    
  164. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Pastebin PRO 'SUMMER SPECIAL'!
Get 40% OFF Pastebin PRO accounts!
 
Top