package gui;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.ScrollPane;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.text.html.Option;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import businesslogic.CalculateCentrality;
import businesslogic.CentralityEntity;
import businesslogic.JHintingTextField;
import businesslogic.RInterface;
import dataaccess.Groups;
public class SNAnalyzerGui extends javax.swing.JFrame implements WindowListener,ActionListener {
final static boolean shouldFill = true;
final static boolean shouldWeightX = true;
final static boolean RIGHT_TO_LEFT = false;
final static boolean m_keepmatrices = true;
private final static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
private List<CentralityEntity> m_centralities = null;
private Hashtable<Double,Double> m_matchingtable = null;
private int m_position = 0;
private String m_text [] = {"Choose Project", "Choose Data Source", "Set Time", "Generate", "Result"};
private javax.swing.JLabel l_title = null;
private javax.swing.JLabel l_step = null;
private javax.swing.JButton b_next = null;
private javax.swing.JButton b_back = null;
private javax.swing.JPanel main_panel = null;
private javax.swing.JPanel current_panel = null;
//------------------------------------------------------------------------------
//Window1
private javax.swing.JPanel step1_panel = null;
private javax.swing.JComboBox cb_choose_project = null;
//------------------------------------------------------------------------------
//Window2
private javax.swing.JPanel step2_panel = null;
//private javax.swing.JCheckBox chb_src_forum = null;
private javax.swing.JCheckBox chb_scr_bugreports = null;
private javax.swing.JCheckBox chb_scr_sourcforgecheckins = null;
//------------------------------------------------------------------------------
//Window3
private javax.swing.JPanel step3_panel = null;
private javax.swing.JRadioButton chb_fix_date = null;
private javax.swing.JRadioButton chb_custom_date = null;
private ButtonGroup date_group = null;
private JHintingTextField t_begin_date = null;
private JHintingTextField t_end_date = null;
private javax.swing.JComboBox cb_interval = null;
private javax.swing.JList lb_dates = null;
private DefaultListModel listModel;
private JHintingTextField t_adddate = null;
private javax.swing.JButton b_add = null;
private javax.swing.JButton b_remove = null;
//------------------------------------------------------------------------------
//Window4
private javax.swing.JPanel step4_panel = null;
private javax.swing.JButton b_start = null;
//------------------------------------------------------------------------------
//Window5 - Result
private javax.swing.JPanel result_panel = null;
private javax.swing.JButton b_showNetwork = null;
private javax.swing.JTable t_resulttable = null;
private JScrollPane sc_resulttable = null;
private RInterface m_rinterface = null;
public SNAnalyzerGui() {
super();
initialize();
}
/**
* -------------------------------------------------------------------------------
* Main Panel
*/
/**
* Return the JLabel l_title property value.
* @return javax.swing.JLabel
*/
private javax.swing.JLabel get_l_title() {
if (l_title == null) {
l_title = new javax.swing.JLabel();
l_title.setName("l_title");
}
l_title.setText(m_text[m_position]);
return l_title;
}
/**
* Return the JLabel l_title property value.
* @return javax.swing.JLabel
*/
private javax.swing.JLabel get_l_step() {
if (l_step == null) {
l_step = new javax.swing.JLabel();
l_step.setName("l_step");
}
l_step.setText("Step " + (m_position+1) + "/4");
return l_step;
}
/**
* Return the JButton1 property value.
* @return javax.swing.JButton
*/
private javax.swing.JButton get_b_next() {
if (b_next == null) {
b_next = new javax.swing.JButton();
b_next.setName("b_next");
b_next.setText("Next");
b_next.setActionCommand("next");
b_next.addActionListener(this);
}
return b_next;
}
/**
* Return the JButton1 property value.
* @return javax.swing.JButton
*/
private javax.swing.JButton get_b_back() {
if (b_back == null) {
b_back = new javax.swing.JButton();
b_back.setName("b_back");
b_back.setText("Back");
b_back.setActionCommand("back");
b_back.addActionListener(this);
}
return b_back;
}
/**
* Return the JPanel property value.
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getMainPanel(){
GridBagConstraints c = new GridBagConstraints();
if (main_panel == null) {
main_panel = new javax.swing.JPanel();
main_panel.setName("mainpanel");
main_panel.setLayout(new GridBagLayout());
c.fill = GridBagConstraints.CENTER;
c.gridx = 0;
c.gridy = 1;
c.weightx = 0.5;
main_panel.add(get_b_back(), c);
c.gridx = 2;
c.gridy = 1;
c.weightx = 0.5;
main_panel.add(get_b_next(), c);
}
c.gridx = 1;
c.gridy = 0;
c.weightx = 0;
main_panel.add(get_l_title(), c);
if (m_position != 4)
{
c.gridx = 1;
c.gridy = 1;
c.weightx = 0.5;
main_panel.add(get_l_step(), c);
}
c.gridx = 0;
c.gridy = 2;
c.weightx = 0;
c.gridwidth = 3;
c.weighty = 1;
c.gridheight = GridBagConstraints.REMAINDER;
main_panel.add(getcurrentPanel(), c);
return main_panel;
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand() == "b_showNetwork")
{
int t_selection = t_resulttable.getSelectedRow();
if (t_selection == -1)
{
JOptionPane.showMessageDialog(null, "Please select a row.", "Warning", JOptionPane.OK_OPTION);
}
else
{
//RInterface initialisieren
//-----------------------------------------------
m_rinterface = new RInterface(true);
//-----------------------------------------------
CentralityEntity t_ce = m_centralities.get(t_selection);
try {
m_rinterface.keyActorPlot(t_ce);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
if(e.getActionCommand() == "b_start")
{
int add_months = Integer.parseInt(((Row)cb_interval.getSelectedItem()).getId());
long projectid = Long.parseLong(((Row)cb_choose_project.getSelectedItem()).getId());
List <DateTime>l_dates = new ArrayList<DateTime>();
//Fixed start and enddate with given interval
if(chb_fix_date.isSelected() == true)
{
DateTime startdate = null, enddate = null;
try {
startdate = new DateTime(df.parse(t_begin_date.getText()));
enddate = new DateTime(df.parse(t_end_date.getText()));
} catch (ParseException e1) {
JOptionPane.showMessageDialog(null, "Please check dates!", "Warning", JOptionPane.OK_OPTION);
e1.printStackTrace();
return;
}
while (startdate.isBefore(enddate))
{
l_dates.add(startdate);
startdate = startdate.plusMonths(add_months);
}
l_dates.add(enddate);
}
//List with dates
else if (chb_custom_date.isSelected() == true)
{
// Get number of items in the list
int size = lb_dates.getModel().getSize();
// Get all item objects
for (int i=0; i<size; i++) {
try {
l_dates.add(new DateTime(df.parse((String)lb_dates.getModel().getElementAt(i))));
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
//Calculate measures with given dates
for(int i = 0; i < l_dates.size()-1; i++)
{
DateTime begin = l_dates.get(i);
DateTime end = null;
CentralityEntity l_ce = null;
if (i == l_dates.size()-2)
end = l_dates.get(i+1);
else
end = l_dates.get(i+1).minusDays(1);
//Matchingtable is relevant to map ID's of vertices beginning with 0 and should be the same for analysis over period of time
// if(m_matchingtable == null)
// {
// m_matchingtable = new Hashtable<Double, Double>();
// l_ce = new CentralityEntity(begin, end, Long.parseLong(((Row)cb_choose_project.getSelectedItem()).getId()), m_keepmatrices, m_matchingtable);
// }
//
// else
l_ce = new CentralityEntity(begin, end, Long.parseLong(((Row)cb_choose_project.getSelectedItem()).getId()), m_keepmatrices);
//Bug Report List
if(chb_scr_bugreports.isSelected() == true)
l_ce.fillMatrixBugReports();
//Forum
// if(chb_src_forum.isSelected() == true)
// l_ce.fillMatrixForum();
//Sourceforge Checkins
if(chb_scr_sourcforgecheckins.isSelected() == true)
l_ce.fillMatrixSFCheckins();
//RInterface initialisieren
//-----------------------------------------------
m_rinterface = new RInterface();
//-----------------------------------------------
//Calculate Centrality
if(l_ce.calculateCentrality() == true)
{
m_centralities.add(l_ce);
}
}
//prepare result panel
main_panel.remove(getcurrentPanel());
m_position = 4;
get_b_back().setEnabled(false);
get_b_next().setEnabled(false);
get_l_step().setText(String.valueOf(projectid) + " " + ((Row)cb_choose_project.getSelectedItem()).getVal());
main_panel.remove(l_title);
Object [][] t_reselem = new Object[m_centralities.size()][5];
for(int i = 0; i < m_centralities.size(); i++)
{
CentralityEntity t_ce = m_centralities.get(i);
t_reselem[i][0] = df.format(t_ce.getM_begin().toDate());
t_reselem[i][1] = df.format(t_ce.getM_end().toDate());
t_reselem[i][2] = t_ce.getM_closeness();
t_reselem[i][3] = t_ce.getM_betweenness();
t_reselem[i][4] = t_ce.getM_degree();
}
t_resulttable = new JTable (new ResultTableModel(t_reselem));
t_resulttable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
t_resulttable.setCellSelectionEnabled(false);
t_resulttable.setColumnSelectionAllowed(false);
t_resulttable.setRowSelectionAllowed(true);
sc_resulttable = new JScrollPane(t_resulttable);
try
{
saveResultToTextfile();
}
catch (Exception ex)
{
ex.printStackTrace();
}
getWindow5().add(sc_resulttable);
this.setContentPane(getMainPanel());
validate();
}
if(e.getActionCommand() == "next" || e.getActionCommand() == "back")
{
main_panel.remove(getcurrentPanel());
main_panel.remove(get_l_step());
main_panel.remove(l_title);
if(e.getActionCommand() == "next" && m_position < 3)
m_position++;
if(e.getActionCommand() == "back" && m_position > 0)
m_position--;
System.out.println("changewindow" + m_position);
switch (m_position)
{
case 0:
current_panel = getWindow1();
break;
case 1:
current_panel = getWindow2();
break;
case 2:
current_panel = getWindow3();
break;
case 3:
current_panel = getWindow4();
break;
case 4:
break;
}
this.setContentPane(getMainPanel());
validate();
}
if(e.getActionCommand() == "remove")
{
//This method can be called only if
//there's a valid selection
//so go ahead and remove whatever's selected.
int index = lb_dates.getSelectedIndex();
listModel.remove(index);
int size = listModel.getSize();
if (size == 0) { //Nobody's left, disable firing.
b_remove.setEnabled(false);
} else { //Select an index.
if (index == listModel.getSize()) {
//removed item in last position
index--;
}
lb_dates.setSelectedIndex(index);
lb_dates.ensureIndexIsVisible(index);
}
getchb_custom_date().setSelected(true);
}
if(e.getActionCommand() == "add")
{
String name = t_adddate.getText();
Date tmpdate = null;
try {
tmpdate = df.parse(name);
} catch (ParseException e1) {
return;
}
name = df.format(tmpdate);
//User didn't type in a unique name...
if (name.equals("") == true || alreadyInList(name) == true) {
t_adddate.requestFocusInWindow();
return;
}
int index = lb_dates.getSelectedIndex(); //get selected index
if (index == -1) { //no selection, so insert at beginning
index = 0;
} else { //add after the selected item
index++;
}
int size = listModel.getSize();
if (size == 0)
b_remove.setEnabled(true);
listModel.insertElementAt(name, index);
//If we just wanted to add to the end, we'd do this:
//listModel.addElement(employeeName.getText());
//Reset the text field.
t_adddate.requestFocusInWindow();
t_adddate.setText("");
//Select the new item and make it visible.
lb_dates.setSelectedIndex(index);
lb_dates.ensureIndexIsVisible(index);
getchb_custom_date().setSelected(true);
}
}
/**
* Return the JFrameContentPane property value.
* @return javax.swing.JPanel
*/
private void saveResultToTextfile() throws Exception
{
Date today = new Date();
FileOutputStream fos = new FileOutputStream(((Row)cb_choose_project.getSelectedItem()).getVal() + "_" + df.format(today) + ".txt");
OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");
out.write(df.format(today) + " - Generating measures for " + ((Row)cb_choose_project.getSelectedItem()).getVal() + "Projid: " + ((Row)cb_choose_project.getSelectedItem()).getId() + "\n");
for(int i = 0; i < m_centralities.size(); i++)
{
CentralityEntity t_ce = m_centralities.get(i);
out.write("Start: " + df.format(t_ce.getM_begin().toDate()) + " End: " + df.format(t_ce.getM_end().toDate()) + "\n closeness: " + t_ce.getM_closeness() +
" betweenness: " + t_ce.getM_betweenness() + " degree: " + t_ce.getM_degree() + "\n");
out.write("\n\nActorcentrality:\n-------------\n\t");
Hashtable<Double,Double> mappingt = t_ce.getM_mappingtable();
Hashtable<Double,Double> mappingtgesp = new Hashtable<Double, Double>();
double[]actordegree = t_ce.getM_actordegree();
double[]actorcloseness = t_ce.getM_actorcloseness();
double[]actorbetweenness = t_ce.getM_actorbetweenness();
Enumeration e = mappingt.keys();
while(e.hasMoreElements())
{
Double lkey = (Double)e.nextElement();
Double lvalue = mappingt.get(lkey);
mappingtgesp.put(lvalue, lkey);
}
for(double j=0; j < mappingt.size()-1; j++)
{
out.write("\t" + mappingtgesp.get(j+1));
}
out.write("\nD: ");
for(int j=0; j < actordegree.length; j++)
{
out.write(String.valueOf(actordegree[j]) + "\t");
}
out.write("\nC: ");
for(int j=0; j < actorcloseness.length; j++)
{
out.write(String.valueOf(actorcloseness[j]) + "\t");
}
out.write("\nB:");
for(int j=0; j < actorbetweenness.length; j++)
{
out.write(String.valueOf(actorbetweenness[j]) + "\t");
}
}
out.close();
fos.close();
}
/**
* -------------------------------------------------------------------------------
* Window 1
*/
/**
* Return the JComboBox1 property value.
* @return javax.swing.JComboBox
*/
private javax.swing.JComboBox getcb_choose_project() {
if (cb_choose_project == null) {
cb_choose_project = new javax.swing.JComboBox();
}
cb_choose_project.setName("Choose Project");
Hashtable <Long, String> l_id_names = Groups.getall_by_id_name();
Iterator<Long> it_id_names = l_id_names.keySet().iterator();
try
{
while (it_id_names.hasNext())
{
String l_key, l_value;
try {
l_key = it_id_names.next().toString();
l_value = l_id_names.get(Long.parseLong(l_key));
cb_choose_project.addItem(new Row(l_key, l_value));
} catch (Exception e) {
e.printStackTrace();
}
}
}
catch(Exception ex){
ex.printStackTrace();
}
return cb_choose_project;
}
/**
* Return the JFrameContentPane property value.
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getWindow1(){
if (step1_panel == null) {
GridBagConstraints c = new GridBagConstraints();
step1_panel = new javax.swing.JPanel();
step1_panel.setName("step1_panel");
step1_panel.setLayout(new GridBagLayout());
c.gridx = 0;
c.gridy = 0;
c.weightx = 0.5;
//getJFrameContentPane().add(getJButton1(), getJButton1().getName());
step1_panel.add(getcb_choose_project(),c);
//getWindow1().add(getcurrentPanel(),
// getcurrentPanel().getName());
}
return step1_panel;
}
/**
* Return the JFrameContentPane property value.
* @return javax.swing.JPanel
*/
/**
* -------------------------------------------------------------------------------
* Window 2
*/
private javax.swing.JPanel getWindow2(){
if (step2_panel == null) {
step2_panel = new javax.swing.JPanel();
step2_panel.setName("step2_panel");
step2_panel.setLayout(new FlowLayout());
getWindow2().add(getchb_scr_bugreports(),
getchb_scr_bugreports().getName());
//getWindow2().add(getchb_src_forum(),
// getchb_src_forum().getName());
getWindow2().add(getchb_scr_sourcforgecheckins(),
getchb_scr_sourcforgecheckins().getName());
}
return step2_panel;
}
/**
* Return the JCheckBox1 property value.
* @return javax.swing.JCheckBox
*/
private javax.swing.JCheckBox getchb_scr_bugreports() {
if (chb_scr_bugreports == null) {
chb_scr_bugreports = new javax.swing.JCheckBox();
chb_scr_bugreports.setName("chb_scr_bugreports");
chb_scr_bugreports.setText("Bug reports");
}
return chb_scr_bugreports;
}
/**
* Return the JCheckBox1 property value.
* @return javax.swing.JCheckBox
*/
/*private javax.swing.JCheckBox getchb_src_forum() {
if (chb_src_forum == null) {
chb_src_forum = new javax.swing.JCheckBox();
chb_src_forum.setName("chb_src_forum");
chb_src_forum.setText("Forum");
}
return chb_src_forum;
}*/
/**
* Return the JCheckBox1 property value.
* @return javax.swing.JCheckBox
*/
private javax.swing.JCheckBox getchb_scr_sourcforgecheckins() {
if (chb_scr_sourcforgecheckins == null) {
chb_scr_sourcforgecheckins = new javax.swing.JCheckBox();
chb_scr_sourcforgecheckins.setName("chb_scr_sourcforgecheckins");
chb_scr_sourcforgecheckins.setText("Sourceforge checkins");
}
return chb_scr_sourcforgecheckins;
}
/**
* -------------------------------------------------------------------------------
* Window 3
*/
private javax.swing.JPanel getWindow3(){
if (step3_panel == null) {
GridBagConstraints c = new GridBagConstraints();
step3_panel = new javax.swing.JPanel();
step3_panel.setName("step3_panel");
step3_panel.setLayout(new GridBagLayout());
c.gridx = 1;
c.gridy = 1;
c.weightx = 0.5;
c.ipadx = 80;
step3_panel.add(gett_begin_date(), c);
c.ipadx = 0;
c.gridx = 2;
c.gridy = 1;
c.ipadx = 80;
step3_panel.add(gett_end_date(), c);
c.ipadx = 0;
c.gridx = 3;
c.gridy = 1;
step3_panel.add(getcb_interval(), c);
c.gridx = 0;
c.gridy = 1;
step3_panel.add(getchb_fix_date(), c);
c.gridx = 0;
c.gridy = 2;
step3_panel.add(getchb_custom_date(), c);
c.gridx = 1;
c.gridy = 2;
c.gridwidth = 3;
c.gridheight = 2;
step3_panel.add(getlb_dates(), c);
c.gridwidth = 1;
c.gridheight = 1;
date_group = new ButtonGroup();
date_group.add(getchb_fix_date());
date_group.add(getchb_custom_date());
c.ipadx = 80;
c.gridx = 4;
c.gridy = 2;
step3_panel.add(gett_adddate(), c);
c.ipadx = 0;
c.gridx = 4;
c.gridy = 3;
step3_panel.add(get_b_add(), c);
c.gridx = 2;
c.gridy = 4;
step3_panel.add(get_b_remove(), c);
getchb_fix_date().setSelected(true);
}
return step3_panel;
}
/**
* Return the JCheckBox1 property value.
* @return javax.swing.JCheckBox
*/
private javax.swing.JRadioButton getchb_fix_date() {
if (chb_fix_date == null) {
chb_fix_date = new javax.swing.JRadioButton();
chb_fix_date.setName("chb_chb_fix_date");
chb_fix_date.setText("Fix date");
}
return chb_fix_date;
}
/**
* Return the JTextFiel property value.
* @return javax.swing.JTextArea
*/
private javax.swing.JTextField gett_begin_date() {
if (t_begin_date == null) {
t_begin_date = new JHintingTextField();
t_begin_date.setName("t_begin_date");
t_begin_date.putClientProperty("emptyTextHint", "Beginn Date");
}
return t_begin_date;
}
/**
* Return the JTextArea1 property value.
* @return javax.swing.JTextArea
*/
private javax.swing.JTextField gett_end_date() {
if (t_end_date == null) {
t_end_date = new JHintingTextField();
t_end_date.setName("t_end_date");
t_end_date.putClientProperty("emptyTextHint", "End Date");
}
return t_end_date;
}
/**
* Return the JComboBox1 property value.
* @return javax.swing.JComboBox
*/
private javax.swing.JComboBox getcb_interval() {
if (cb_interval == null) {
cb_interval = new javax.swing.JComboBox(new Row[] {new Row("1","1 month"), new Row("2","2 months"), new Row("3","3 months"), new Row("5","5 months"), new Row("6","6 months"), new Row("7", "7 months"), new Row("9", "9 months"), new Row("12", "12 months")});
}
cb_interval.setName("Choose Interval");
return cb_interval;
}
/**
* Return the JCheckBox1 property value.
* @return javax.swing.JCheckBox
*/
private javax.swing.JRadioButton getchb_custom_date() {
if (chb_custom_date == null) {
chb_custom_date = new javax.swing.JRadioButton();
chb_custom_date.setName("chb_chb_custom_date");
chb_custom_date.setText("Custom date");
}
return chb_custom_date;
}
/**
* Return the JList property value.
* @return javax.swing.JList
*/
private JScrollPane getlb_dates() {
JScrollPane listScroller=null;
if (lb_dates == null) {
listModel = new DefaultListModel();
// listModel.addElement("Debbie Scott");
// listModel.addElement("Scott Hommel");
// listModel.addElement("Sharon Zakhour");
// listModel.addElement("adsf");
// listModel.addElement("Sharon Zakhour12");
// listModel.addElement("Alexander Feldner");
lb_dates = new javax.swing.JList(listModel);
lb_dates.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lb_dates.setSelectedIndex(0);
lb_dates.setVisibleRowCount(4);
listScroller = new JScrollPane(lb_dates);
//listScroller.setPreferredSize(new Dimension(250, 80));
lb_dates.setName("lb_dates");
}
return listScroller;
}
/**
* Return the JTextArea1 property value.
* @return javax.swing.JTextArea
*/
private javax.swing.JTextField gett_adddate() {
if (t_adddate == null) {
t_adddate = new JHintingTextField();
t_adddate.setName("t_adddate");
t_adddate.putClientProperty("emptyTextHint","Add Date");
}
return t_adddate;
}
/**
* Return the JButton1 property value.
* @return javax.swing.JButton
*/
private javax.swing.JButton get_b_add() {
if (b_add == null) {
b_add = new javax.swing.JButton();
b_add.setName("b_add");
b_add.setText("Add");
b_add.setActionCommand("add");
b_add.addActionListener(this);
}
return b_add;
}
/**
* Return the JButton1 property value.
* @return javax.swing.JButton
*/
private javax.swing.JButton get_b_remove() {
if (b_remove == null) {
b_remove = new javax.swing.JButton();
b_remove.setName("b_remove");
b_remove.setText("Remove");
b_remove.setActionCommand("remove");
b_remove.addActionListener(this);
int size = listModel.getSize();
if (size == 0) //Nobody's left, disable firing.
b_remove.setEnabled(false);
}
return b_remove;
}
/**
* -------------------------------------------------------------------------------
* Window 4
*/
/**
* Return the JButton1 property value.
* @return javax.swing.JButton
*/
private javax.swing.JButton get_b_start() {
if (b_start == null) {
b_start = new javax.swing.JButton();
b_start.setName("b_start");
b_start.setText("Generate Centrality Measures");
b_start.setActionCommand("b_start");
b_start.addActionListener(this);
}
return b_start;
}
private javax.swing.JPanel getWindow4(){
if (step4_panel == null) {
step4_panel = new javax.swing.JPanel();
step4_panel.setName("step4_panel");
step4_panel.setLayout(new FlowLayout());
getWindow4().add(get_b_start(),
get_b_start().getName());
}
return step4_panel;
}
/**
* -------------------------------------------------------------------------------
* Window 5 - Result Window
*/
private javax.swing.JPanel getWindow5(){
if (result_panel == null) {
result_panel = new javax.swing.JPanel();
result_panel.setName("result_panel");
result_panel.setLayout(new FlowLayout());
getWindow5().add(get_b_showNetwork(),
get_b_showNetwork().getName());
}
return result_panel;
}
/**
* Return the JButton5 property value.
* @return javax.swing.JButton
*/
private javax.swing.JButton get_b_showNetwork() {
if (b_showNetwork == null) {
b_showNetwork = new javax.swing.JButton();
b_showNetwork.setName("b_showNetwork");
b_showNetwork.setText("Show Network");
b_showNetwork.setActionCommand("b_showNetwork");
b_showNetwork.addActionListener(this);
}
return b_showNetwork;
}
/**
* -------------------------------------------------------------------------------
* Controlling
*/
/**
* Return the JFrameContentPane property value.
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getcurrentPanel(){
switch (m_position)
{
case 0:
current_panel = getWindow1();
break;
case 1:
current_panel = getWindow2();
break;
case 2:
current_panel = getWindow3();
break;
case 3:
current_panel = getWindow4();
break;
case 4:
current_panel = getWindow5();
break;
}
return current_panel;
}
//This method tests for string equality. You could certainly
//get more sophisticated about the algorithm. For example,
//you might want to ignore white space and capitalization.
protected boolean alreadyInList(String name) {
return listModel.contains(name);
}
/**
* Initialize the class.
*/
private void initialize() {
this.setName("SNAnalyzer");
this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
this.setBounds(100, 100, 800, 500);
this.setTitle("SNAnalyzer");
this.setContentPane(getMainPanel());
m_centralities = new ArrayList<CentralityEntity>();
//this.setContentPane(getWindow1());
}
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
/**
* -------------------------------------------------------------------------------
* old stuff
*/
/**
* Return the JLabel1 property value.
* @return javax.swing.JLabel
*/
/* private javax.swing.JLabel getJLabel1() {
if (ivjJLabel1 == null) {
ivjJLabel1 = new javax.swing.JLabel();
ivjJLabel1.setName("JLabel1");
ivjJLabel1.setText("JLabel");
}
return ivjJLabel1;
}*/
}
class MyGuiContainer
{
public static void main(String args[])
{
SNAnalyzerGui bla = new SNAnalyzerGui();
bla.setVisible(true);
}
}
class Row {
private String id, val;
public Row(String id, String val) {
this.id = id;
this.val = val;
}
public String getId() {
return id;
}
public String getVal() {
return val;
}
public String toString() {
return val;
}
}