package it.isislab.sof.client.application.ui;
import java.awt.*;
import java.awt.event.*;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;
import javax.swing.border.*;
/**
* @author Carmine Spagnuolo
*/
public class ConnectionFrame extends JFrame {
private ConnectionFrame frame;
/** real code*/
public String host_address="";
public String pstring="";
public String port="";
public String bindir="";
public String homedir="";
public String javabindir ="";
public String user_name="";
public String sofhomedir="";
public String sofjarpath="sof-resources/SOF.jar";
public String sofjarrunnerpath="sof-resources/SOF-RUNNER.jar";
public ConnectionFrame(String sofjarpath, String sofjarrunnerpath) {
initComponents();
this.setVisible(true);
frame=this;
/**
* for debugging
*/
boolean setDefaultText = true;
if(setDefaultText){
textFielduserName.setText("");
textFieldIP.setText("127.0.0.1");
passwordFieldPassword.setText("");
textFieldPort.setText("22");
textFieldHadoopHome.setText("/usr/hadoop-2.4.0");
textFieldSOFHome.setText("/usr/");
textFieldJavaHome.setText("/usr/local/java/bin");
textFieldSOFHDFSHome.setText("/");
}
this.sofjarpath=sofjarpath;
this.sofjarrunnerpath=sofjarrunnerpath;
}
private void buttonConnectActionPerformed(ActionEvent e) {
progressBar1.setIndeterminate(true);
buttonConnect.setEnabled(false);
buttonDemo.setEnabled(false);
textFielduserName.setEnabled(false);
passwordFieldPassword.setEnabled(false);
textFieldIP.setEnabled(false);
textFieldPort.setEnabled(false);
textFieldHadoopHome.setEnabled(false);
textFieldJavaHome.setEnabled(false);
textFieldSOFHome.setEnabled(false);
textFieldSOFHDFSHome.setEnabled(false);
class MyTaskConnect extends Thread {
public void run(){
/* REAL CODE commentato pèr test su oxygen*/
host_address=textFieldIP.getText();
user_name=textFielduserName.getText();
pstring=passwordFieldPassword.getText();
port=textFieldPort.getText();
bindir=textFieldHadoopHome.getText();
homedir=textFieldSOFHome.getText();
javabindir=textFieldJavaHome.getText();
sofhomedir=textFieldSOFHDFSHome.getText();
Controller c=Controller.getInstance(
host_address,
user_name,
pstring,
port,
bindir,
homedir,
javabindir,
sofhomedir,
sofjarpath,
sofjarrunnerpath);
if(c!=null)
{
MainFrame main =new MainFrame(c);
progressBar1.setIndeterminate(false);
progressBar1.setVisible(false);
main.setSize((int)(Toolkit.getDefaultToolkit().getScreenSize().width*0.8),
(int)(Toolkit.getDefaultToolkit().getScreenSize().height*0.7));
main.setVisible(true);
frame.dispose();
}
}
}
(new MyTaskConnect()).start();
return;
}
private void buttonDemoActionPerformed(ActionEvent e) {
// TODO add your code here
}
private void initComponents() {
panel1 = new JPanel();
label12 = new JLabel();
label13 = new JLabel();
label14 = new JLabel();
label15 = new URLLabel("Version Pre-alpha 1.0, Powerd by ISISLab, 2015.","http://www.isislab.it");
label16 = new JLabel();
label17 = new URLLabel("View source code on GitHub.","https://github.com/isislab-unisa/sof");
panel2 = new JPanel();
panel3 = new JPanel();
label4 = new JLabel();
textFielduserName = new JTextField();
label5 = new JLabel();
passwordFieldPassword = new JPasswordField();
label6 = new JLabel();
textFieldIP = new JTextField();
label7 = new JLabel();
textFieldPort = new JTextField();
panel4 = new JPanel();
label8 = new JLabel();
textFieldHadoopHome = new JTextField();
label9 = new JLabel();
textFieldJavaHome = new JTextField();
label10 = new JLabel();
textFieldSOFHome = new JTextField();
label11 = new JLabel();
textFieldSOFHDFSHome = new JTextField();
buttonConnect = new JButton();
progressBar1 = new JProgressBar(JProgressBar.HORIZONTAL,
0, Integer.MAX_VALUE );
buttonDemo = new JButton();
//======== this ========
setResizable(false);
Container contentPane = getContentPane();
//======== panel1 ========
{
// label12.setIcon(new ImageIcon("sof-resources/images/isislab.png"));
try {
label12.setIcon(new ImageIcon(
new URL("https://raw.githubusercontent.com/isislab-unisa/sof/master/sof-resources/images/isislab.png")));
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
System.err.println("Problems in loading image.");
e1.printStackTrace();
}
//---- label13 ----
label13.setText("SOF");
label13.setFont(new Font("Lucida Grande", Font.BOLD, 36));
//---- label14 ----
label14.setText("Simulation optimization and exploration on the CloUD.");
//---- label15 ----
//label15.setText();
//---- label16 ----
label16.setText("This client uses Apache Hadoop as cloud infrastructure.");
GroupLayout panel1Layout = new GroupLayout(panel1);
panel1.setLayout(panel1Layout);
panel1Layout.setHorizontalGroup(
panel1Layout.createParallelGroup()
.addGroup(GroupLayout.Alignment.TRAILING, panel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(panel1Layout.createParallelGroup()
.addComponent(label13)
.addComponent(label15)
.addComponent(label14)
.addComponent(label16).addComponent(label17))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 135, Short.MAX_VALUE)
.addComponent(label12))
);
panel1Layout.setVerticalGroup(
panel1Layout.createParallelGroup()
.addComponent(label12)
.addGroup(panel1Layout.createSequentialGroup()
.addGap(11, 11, 11)
.addComponent(label13)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label14)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label16)
.addGap(9, 9, 9)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label17)
.addGap(9, 9, 9)
.addComponent(label15))
);
}
//======== panel2 ========
{
panel2.setBorder(new TitledBorder("Connection Setting"));
//======== panel3 ========
{
panel3.setBorder(new TitledBorder("Account SSH"));
//---- label4 ----
label4.setText("User name");
//---- label5 ----
label5.setText("Password");
//---- label6 ----
label6.setText("Host Address");
//---- label7 ----
label7.setText("Host Port");
GroupLayout panel3Layout = new GroupLayout(panel3);
panel3.setLayout(panel3Layout);
panel3Layout.setHorizontalGroup(
panel3Layout.createParallelGroup()
.addGroup(panel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(panel3Layout.createParallelGroup()
.addComponent(passwordFieldPassword, GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
.addComponent(textFieldIP, GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
.addComponent(textFielduserName, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE)
.addGroup(panel3Layout.createSequentialGroup()
.addGroup(panel3Layout.createParallelGroup()
.addComponent(label5)
.addComponent(label6)
.addComponent(label4)
.addComponent(label7))
.addGap(0, 174, Short.MAX_VALUE))
.addComponent(textFieldPort, GroupLayout.DEFAULT_SIZE, 259, Short.MAX_VALUE))
.addContainerGap())
);
panel3Layout.setVerticalGroup(
panel3Layout.createParallelGroup()
.addGroup(panel3Layout.createSequentialGroup()
.addGap(11, 11, 11)
.addComponent(label4)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFielduserName, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label5)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(passwordFieldPassword, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label6)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFieldIP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(4, 4, 4)
.addComponent(label7)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFieldPort, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}
//======== panel4 ========
{
panel4.setBorder(new TitledBorder("Apache Hadoop Setting"));
//---- label8 ----
label8.setText("Hadoop bin directory");
//---- label9 ----
label9.setText("Java home directory");
//---- label10 ----
label10.setText("SOF User home directory");
//---- label11 ----
label11.setText("SOF HDFS home directory");
GroupLayout panel4Layout = new GroupLayout(panel4);
panel4.setLayout(panel4Layout);
panel4Layout.setHorizontalGroup(
panel4Layout.createParallelGroup()
.addGroup(panel4Layout.createSequentialGroup()
.addGap(10, 10, 10)
.addGroup(panel4Layout.createParallelGroup()
.addComponent(textFieldSOFHDFSHome, GroupLayout.DEFAULT_SIZE, 285, Short.MAX_VALUE)
.addComponent(textFieldHadoopHome, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 285, Short.MAX_VALUE)
.addComponent(textFieldJavaHome, GroupLayout.DEFAULT_SIZE, 285, Short.MAX_VALUE)
.addComponent(textFieldSOFHome, GroupLayout.DEFAULT_SIZE, 285, Short.MAX_VALUE)
.addGroup(panel4Layout.createSequentialGroup()
.addGroup(panel4Layout.createParallelGroup()
.addComponent(label11)
.addComponent(label10)
.addComponent(label9)
.addComponent(label8))
.addGap(0, 113, Short.MAX_VALUE)))
.addContainerGap())
);
panel4Layout.setVerticalGroup(
panel4Layout.createParallelGroup()
.addGroup(panel4Layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(label8)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFieldHadoopHome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label9)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFieldJavaHome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label10)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFieldSOFHome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(label11)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFieldSOFHDFSHome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}
GroupLayout panel2Layout = new GroupLayout(panel2);
panel2.setLayout(panel2Layout);
panel2Layout.setHorizontalGroup(
panel2Layout.createParallelGroup()
.addGroup(panel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(panel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(panel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
panel2Layout.setVerticalGroup(
panel2Layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
.addGroup(panel2Layout.createSequentialGroup()
.addContainerGap(28, Short.MAX_VALUE)
.addGroup(panel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
.addComponent(panel3, GroupLayout.PREFERRED_SIZE, 280, GroupLayout.PREFERRED_SIZE)
.addComponent(panel4, GroupLayout.DEFAULT_SIZE, 0, Short.MAX_VALUE))
.addContainerGap())
);
}
//---- buttonConnect ----
buttonConnect.setText("Connect");
buttonConnect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
buttonConnectActionPerformed(e);
}
});
//---- buttonDemo ----
buttonDemo.setText("Demo mode");
buttonDemo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
buttonDemoActionPerformed(e);
}
});
GroupLayout contentPaneLayout = new GroupLayout(contentPane);
contentPane.setLayout(contentPaneLayout);
contentPaneLayout.setHorizontalGroup(
contentPaneLayout.createParallelGroup()
.addGroup(contentPaneLayout.createSequentialGroup()
.addContainerGap()
.addGroup(contentPaneLayout.createParallelGroup()
.addComponent(panel2, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(panel1, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(contentPaneLayout.createSequentialGroup()
.addComponent(buttonConnect, GroupLayout.PREFERRED_SIZE, 120, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
.addComponent(progressBar1, GroupLayout.PREFERRED_SIZE, 572, GroupLayout.PREFERRED_SIZE))
.addGroup(GroupLayout.Alignment.TRAILING, contentPaneLayout.createSequentialGroup()
.addGap(0, 588, Short.MAX_VALUE)
.addComponent(buttonDemo)))
.addContainerGap())
);
contentPaneLayout.setVerticalGroup(
contentPaneLayout.createParallelGroup()
.addGroup(contentPaneLayout.createSequentialGroup()
.addContainerGap()
.addComponent(panel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(contentPaneLayout.createParallelGroup()
.addComponent(progressBar1, GroupLayout.PREFERRED_SIZE, 29, GroupLayout.PREFERRED_SIZE)
.addComponent(buttonConnect))
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 11, Short.MAX_VALUE)
.addComponent(buttonDemo)
.addContainerGap())
);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(getOwner());
}
private JPanel panel1;
private JLabel label12;
private JLabel label13;
private JLabel label14;
private URLLabel label15;
private JLabel label16;
private URLLabel label17;
private JPanel panel2;
private JPanel panel3;
private JLabel label4;
private JTextField textFielduserName;
private JLabel label5;
private JPasswordField passwordFieldPassword;
private JLabel label6;
private JTextField textFieldIP;
private JLabel label7;
private JTextField textFieldPort;
private JPanel panel4;
private JLabel label8;
private JTextField textFieldHadoopHome;
private JLabel label9;
private JTextField textFieldJavaHome;
private JLabel label10;
private JTextField textFieldSOFHome;
private JLabel label11;
private JTextField textFieldSOFHDFSHome;
private JButton buttonConnect;
private JProgressBar progressBar1;
private JButton buttonDemo;
}