Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.18 KB | None | 0 0
  1. package fr.wintersia.launcher;
  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.openlauncherlib.util.ramselector.RamSelector;
  20. import fr.theshark34.swinger.Swinger;
  21. import fr.theshark34.swinger.colored.SColoredBar;
  22. import fr.theshark34.swinger.event.SwingerEvent;
  23. import fr.theshark34.swinger.event.SwingerEventListener;
  24. import fr.theshark34.swinger.textured.STexturedButton;
  25.  
  26. @SuppressWarnings("serial")
  27. public class LauncherPanel extends JPanel implements SwingerEventListener {
  28.  
  29. private Image background = Swinger.getResource("Background.png");
  30.  
  31. private Saver saver = new Saver(new File(Launcher.W_DIR, "Launcher.properties"));
  32.  
  33. private JTextField usernameField = new JTextField(saver.get("Username"));
  34. private JPasswordField passwordField = new JPasswordField();
  35.  
  36. private STexturedButton PlayButton = new STexturedButton(Swinger.getResource("Play.png"));
  37. private STexturedButton QuitButton = new STexturedButton(Swinger.getResource("Quit.png"));
  38. private STexturedButton HideButton = new STexturedButton(Swinger.getResource("Hide.png"));
  39. private STexturedButton SettingsButton = new STexturedButton(Swinger.getResource("Settings.png"));
  40.  
  41. private SColoredBar progressBar = new SColoredBar(Swinger.getTransparentWhite(100),
  42. Swinger.getTransparentWhite(175));
  43. private JLabel infoLabel = new JLabel("Clique sur Jouer !", SwingConstants.CENTER);
  44.  
  45. private RamSelector ramSelector = new RamSelector(new File(Launcher.W_DIR, "ram.txt"));
  46.  
  47. public LauncherPanel() {
  48. this.setLayout(null);
  49.  
  50. usernameField.setOpaque(false);
  51. usernameField.setBorder(null);
  52. usernameField.setForeground(Color.WHITE);
  53. usernameField.setFont(usernameField.getFont().deriveFont(20F));
  54. usernameField.setCaretColor(Color.WHITE);
  55. usernameField.setBounds(668, 222, 232, 47);
  56. this.add(usernameField);
  57.  
  58. passwordField.setOpaque(false);
  59. passwordField.setBorder(null);
  60. passwordField.setForeground(Color.WHITE);
  61. passwordField.setFont(usernameField.getFont().deriveFont(20F));
  62. passwordField.setCaretColor(Color.WHITE);
  63. passwordField.setBounds(668, 375, 232, 47);
  64. this.add(passwordField);
  65.  
  66. PlayButton.setBounds(695, 470, 180, 32);
  67. PlayButton.addEventListener(this);
  68. this.add(PlayButton);
  69.  
  70. QuitButton.setBounds(948, 0, 27, 27);
  71. QuitButton.addEventListener(this);
  72. this.add(QuitButton);
  73.  
  74. HideButton.setBounds(919, 0, 27, 27);
  75. HideButton.addEventListener(this);
  76. this.add(HideButton);
  77.  
  78. SettingsButton.setBounds(890, 0, 27, 27);
  79. SettingsButton.addEventListener(this);
  80. this.add(SettingsButton);
  81.  
  82. progressBar.setBounds(570, 600, 365, 15);
  83. this.add(progressBar);
  84.  
  85. infoLabel.setBounds(570, 580, 365, 15);
  86. infoLabel.setForeground(Color.BLACK);
  87. infoLabel.setFont(usernameField.getFont().deriveFont(15F));
  88. this.add(infoLabel);
  89. }
  90.  
  91. @Override
  92. public void onEvent(SwingerEvent e) {
  93. if (e.getSource() == PlayButton) {
  94. setFieldsEnabled(false);
  95.  
  96. if (usernameField.getText().replaceAll(" ", "").length() == 0 || passwordField.getText().length() == 0) {
  97. JOptionPane.showMessageDialog(this, "Erreur, veuillez entrer un pseudo et un mot de passe valide",
  98. "Erreur", JOptionPane.ERROR_MESSAGE);
  99. setFieldsEnabled(true);
  100. return;
  101. }
  102.  
  103. Thread t = new Thread() {
  104. @Override
  105. public void run() {
  106. try {
  107. Launcher.auth(usernameField.getText(), passwordField.getText());
  108. } catch (AuthenticationException e) {
  109. JOptionPane.showMessageDialog(LauncherPanel.this,
  110. "Erreur, impossible de se connecter : " + e.getErrorModel().getErrorMessage(), "Erreur",
  111. JOptionPane.ERROR_MESSAGE);
  112. setFieldsEnabled(true);
  113. return;
  114. }
  115.  
  116. saver.set("username", usernameField.getText());
  117. ramSelector.save();
  118.  
  119. try {
  120. Launcher.update();
  121. } catch (Exception e) {
  122. Launcher.interruptThread();
  123. Launcher.getCrashReporter().catchError(e, "Impossible de faire la mise � jour !");
  124. setFieldsEnabled(true);
  125. return;
  126. }
  127.  
  128. try {
  129. Launcher.launch();
  130. } catch (LaunchException e) {
  131. Launcher.getCrashReporter().catchError(e, "Impossible de lancer le jeu !");
  132. setFieldsEnabled(true);
  133. return;
  134. }
  135. }
  136. };
  137. t.start();
  138.  
  139. } else if (e.getSource() == QuitButton)
  140. System.exit(0);
  141. else if (e.getSource() == HideButton)
  142. LauncherFrame.getInstance().setState(JFrame.ICONIFIED);
  143. else if (e.getSource() == SettingsButton)
  144. ramSelector.display();
  145.  
  146. }
  147.  
  148. @Override
  149. public void paintComponent(Graphics g) {
  150. super.paintComponents(g);
  151.  
  152. g.drawImage(background, 0, 0, this.getWidth(), this.getHeight(), this);
  153. }
  154.  
  155. private void setFieldsEnabled(boolean enabled) {
  156. usernameField.setEnabled(enabled);
  157. passwordField.setEnabled(enabled);
  158. PlayButton.setEnabled(enabled);
  159. }
  160.  
  161. public SColoredBar getProgressBar() {
  162. return progressBar;
  163. }
  164.  
  165. public void setInfoText(String text) {
  166. infoLabel.setText(text);
  167. }
  168.  
  169. public RamSelector getRamSelector() {
  170. return ramSelector;
  171. }
  172.  
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement