Advertisement
Guest User

Untitled

a guest
Jul 9th, 2015
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.09 KB | None | 0 0
  1. package com.dedserver.dedgui.panels;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Component;
  5. import java.awt.Panel;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.io.File;
  9. import java.io.FileInputStream;
  10. import java.io.FileOutputStream;
  11. import java.io.IOException;
  12. import java.io.InputStream;
  13. import java.io.OutputStream;
  14. import java.sql.Statement;
  15. import java.util.Properties;
  16.  
  17. import javax.swing.BoxLayout;
  18. import javax.swing.JButton;
  19. import javax.swing.JComboBox;
  20. import javax.swing.JLabel;
  21. import javax.swing.JOptionPane;
  22. import javax.swing.JPanel;
  23. import javax.swing.JTabbedPane;
  24. import javax.swing.JTextField;
  25.  
  26. import com.dedserver.dedgui.Functions;
  27. import com.dedserver.dedgui.Gui;
  28. import com.dedserver.dedgui.servercontrol.ServerControl;
  29.  
  30. public class ServerPanel {
  31.  
  32.     private static JTextField gem;
  33.     private static JTextField gold;
  34.     private static JTextField elixir;
  35.     private static JTextField de;
  36.     private static JTextField s;
  37.     private static JComboBox<?> m;
  38.     private static JTextField n;
  39.     private static JComboBox<?> dns;
  40.     private static JComboBox<?> dnsmm;
  41.     private static JButton save;
  42.     private String newGems;
  43.     private String newGold;
  44.     private String newDE;
  45.     private String newElixir;
  46.     private String saveM;
  47.     private String interval;
  48.     private String nameChange;
  49.     private String dnsm;
  50.     private String dnsen;
  51.     JTabbedPane tabbedPane = Gui.getTabbedPane();
  52.     Statement stat = Gui.getStat();
  53.     private JPanel config;
  54.     private static JPanel server;
  55.    
  56.     /**
  57.      * initial panel set up and take user input
  58.      * @throws IOException
  59.      */
  60.     public ServerPanel() throws IOException{  
  61.             server = new JPanel();
  62.             tabbedPane.addTab("Manage Server", server);
  63.             server.setLayout(new BorderLayout(0, 0));
  64.             new ServerControl();
  65.            
  66.             Component lblThisCanBe = Functions.makeTextPanel("<html><center>This can be used to edit server configurations and manage whether the server is running.<br />You can run some server commands and start/stop the server by pressing the Server Control button.</center></html>");
  67.             server.add(lblThisCanBe, BorderLayout.NORTH);
  68.            
  69.             InputStream in = new FileInputStream("config.dedserver");
  70.             Properties p = new Properties();
  71.             p.load(in);
  72.             in.close();
  73.             String howMuchGold = p.getProperty("startingGold");
  74.             String howMuchDE = p.getProperty("startingDarkElixir");
  75.             String howMuchGems = p.getProperty("startingGems");
  76.             String howMuchElixir = p.getProperty("startingElixir");
  77.             String saveInt = p.getProperty("saveInterval");
  78.             String saveMethod = p.getProperty("saveMethod");
  79.             String mNC = p.getProperty("maxNameChanges");
  80.             String dnse = p.getProperty("enableDns");
  81.             String dnsmo = p.getProperty("serverMode");
  82.            
  83.             config = new JPanel();
  84.             server.add(config, BorderLayout.CENTER);   
  85.             config.setLayout(new BoxLayout(config, BoxLayout.PAGE_AXIS));
  86.        
  87.             Panel panel_1 = new Panel();
  88.             config.add(panel_1);
  89.             JLabel geml = new JLabel("Starting Gems: ");
  90.             panel_1.add(geml);
  91.             gem = new JTextField(howMuchGems);
  92.             panel_1.add(gem);
  93.             gem.setMaximumSize(gem.getPreferredSize() );
  94.             gem.setColumns(10);
  95.            
  96.            
  97.             //gold
  98.             Panel panel_2 = new Panel();
  99.             config.add(panel_2);
  100.             JLabel goldl = new JLabel("Starting Gold: ");
  101.             panel_2.add(goldl);
  102.             gold = new JTextField(howMuchGold);
  103.             panel_2.add(gold);
  104.             gold.setMaximumSize(gem.getPreferredSize() );
  105.             gold.setColumns(10);
  106.            
  107.            
  108.             //elixir
  109.             Panel panel_3 = new Panel();
  110.             config.add(panel_3);
  111.             JLabel elixirl = new JLabel("Starting Elixir: ");
  112.             panel_3.add(elixirl);
  113.             elixir = new JTextField(howMuchElixir);
  114.             panel_3.add(elixir);
  115.             elixir.setMaximumSize(gem.getPreferredSize() );
  116.             elixir.setColumns(10);
  117.            
  118.            
  119.            
  120.             //dark elixir
  121.             Panel panel_4 = new Panel();
  122.             config.add(panel_4);
  123.             JLabel del = new JLabel("Starting DE:    ");
  124.             panel_4.add(del);
  125.             de = new JTextField(howMuchDE);
  126.             panel_4.add(de);
  127.             de.setMaximumSize(gem.getPreferredSize() );
  128.             de.setColumns(10);
  129.            
  130.            
  131.            
  132.             //db
  133.             Panel panel_5 = new Panel();
  134.             config.add(panel_5);
  135.             JLabel ml = new JLabel("Save Method:    ");
  136.             panel_5.add(ml);
  137.             String[] petStrings = { "h2", "h2-server", "none" };
  138.  
  139.             //Create the combo box, select item at index 4.
  140.             //Indices start at 0, so 4 specifies the pig.
  141.             m = new JComboBox<Object>(petStrings);
  142.             m.setSelectedItem(saveMethod);
  143.             m.addActionListener(m);
  144.             panel_5.add(m);
  145.             m.setMaximumSize(gem.getPreferredSize() );
  146.                
  147.  
  148.            
  149.             //savei
  150.             Panel panel_6 = new Panel();
  151.             config.add(panel_6);
  152.             JLabel sl = new JLabel("Save Interval (milliseconds):    ");
  153.             panel_6.add(sl);
  154.             s = new JTextField(saveInt);
  155.             panel_6.add(s);
  156.             s.setMaximumSize(gem.getPreferredSize() );
  157.             s.setColumns(10);
  158.            
  159.            
  160.            
  161.             //name changes
  162.             Panel panel_8 = new Panel();
  163.             config.add(panel_8);
  164.             JLabel nl = new JLabel("Max Name Changes (0 to disable):    ");
  165.             panel_8.add(nl);
  166.             n = new JTextField(mNC);
  167.             panel_8.add(n);
  168.             n.setMaximumSize(gem.getPreferredSize() );
  169.             n.setColumns(5);
  170.            
  171.            
  172.            
  173.             //dnsenabled
  174.             Panel panel_9 = new Panel();
  175.             config.add(panel_9);
  176.             JLabel dnsl = new JLabel("DNS Enabled:    ");
  177.             panel_9.add(dnsl);
  178.             String[] dnsS = { "true", "false" };
  179.             dns = new JComboBox<Object>(dnsS);
  180.             dns.setSelectedItem(dnse);
  181.             dns.addActionListener(dns);
  182.             panel_9.add(dns);
  183.             dns.setMaximumSize(gem.getPreferredSize() );
  184.            
  185.            
  186.            
  187.             //dnsmode
  188.             Panel panel_10 = new Panel();
  189.             config.add(panel_10);
  190.             JLabel dnsml = new JLabel("DNS Server Mode:    ");
  191.             panel_10.add(dnsml);
  192.             String[] dnsm = { "local", "remote" };
  193.             dnsmm = new JComboBox<Object>(dnsm);
  194.             dnsmm.setSelectedItem(dnsmo);
  195.             dnsmm.addActionListener(dnsmm);
  196.             panel_10.add(dnsmm);
  197.             dnsmm.setMaximumSize(gem.getPreferredSize());
  198.            
  199.             JPanel panel_7= new JPanel();
  200.             config.add(panel_7);
  201.             save = new JButton("Save");
  202.             panel_7.add(save);
  203.             save.addActionListener(new ActionListener() {
  204.                 public void actionPerformed(ActionEvent arg0) {
  205.                     errorCheck();      
  206.                 }
  207.             });
  208.         }
  209.    
  210.     /**
  211.      * checks for errors in the values entered
  212.      */
  213.     public void errorCheck(){
  214.             newGems = gem.getText();
  215.             newGold = gold.getText();
  216.             newElixir = elixir.getText();
  217.             newDE = de.getText();
  218.             interval = s.getText();
  219.             saveM = (String) m.getSelectedItem();
  220.             nameChange = n.getText();
  221.             dnsen = (String) dns.getSelectedItem();
  222.             dnsm = (String) dnsmm.getSelectedItem();
  223.            
  224.            
  225.             nameChange = Functions.checkValues(nameChange, "1", "name change");
  226.             interval = Functions.checkValues(interval, "60000", "save interval");
  227.             newGems = Functions.checkValues(newGems, "1000000000", "Starting Gems");
  228.             newGold = Functions.checkValues(newGold, "1000000000", "Starting Gold");
  229.             newElixir = Functions.checkValues(newElixir, "1000000000", "Starting Elixir");
  230.             newDE = Functions.checkValues(newDE, "1000000000", "Starting Dark Elixir");
  231.            
  232.             saveValues();
  233.         }                          
  234.                      
  235.    
  236.     /**
  237.      * saves the values to config.dedserver
  238.      */
  239.     public void saveValues(){
  240.     try {
  241.             Properties props = new Properties();
  242.             props.setProperty("startingGems", newGems);
  243.             props.setProperty("startingGold", newGold);
  244.             props.setProperty("startingDarkElixir", newDE);
  245.             props.setProperty("startingElixir", newElixir);
  246.             props.setProperty("saveMethod", saveM);
  247.             props.setProperty("saveInterval", interval);
  248.             props.setProperty("maxNameChanges", nameChange);
  249.             props.setProperty("serverMode", dnsm);
  250.             props.setProperty("enableDns", dnsen);
  251.            
  252.             File f = new File("config.dedserver");
  253.             OutputStream out = new FileOutputStream(f);
  254.             props.store(out, "");
  255.          
  256.             JOptionPane.showMessageDialog(null, "Saved Config Values!");
  257.  
  258.            
  259.         }
  260.         catch (Exception e ) {
  261.             e.printStackTrace();
  262.             JOptionPane.showMessageDialog(IgnPanel.ign, "Error while saving config values. Ensure the config.dedserver file is in the same directory as this and is editable.");
  263.  
  264.         }
  265.  
  266.     }
  267.    
  268.     public static JPanel getServer(){
  269.         return server;
  270.     }
  271. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement