package jaist.css.covis.cls;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ArrayInitializeWindow extends JDialog {
private static final long serialVersionUID = -7025036939612024059L;
public JTextField[] jtfary;
public String valtype;
public ArrayInitializeWindow(JFrame parent, int size, String type){
super(parent, "Initialize Array", true);
valtype = type;
JPanel jp = new JPanel(new GridLayout(2,size));
jtfary = new JTextField[size];
for(int i=0;i<size;i++){
jp.add(new JLabel(" ["+i+"]"));
}
for(int i=0;i<size;i++){
jtfary[i] = new JTextField("0", 2);
jp.add(jtfary[i]);
}
getContentPane().add(new JLabel("Input "+type+ "values."), BorderLayout.NORTH);
getContentPane().add(jp, BorderLayout.CENTER);
JPanel jp2 = new JPanel();
JButton random = new JButton("Random");
random.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
setRandomValue(valtype);
}
});
jp2.add(random);
JButton ok = new JButton("Make Array");
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
setVisible(false);
}
});
jp2.add(ok);
getContentPane().add(jp2, BorderLayout.SOUTH);
pack();
int parentwidth = parent.getWidth();
int parentheight = parent.getHeight();
int childwidth = getWidth();
int childheight = getHeight();
int locx = parent.getLocation().x + (parentwidth - childwidth)/2;
int locy = parent.getLocation().y + (parentheight - childheight)/2;
setLocation(locx,locy);
// setVisible(true);
}
public void setRandomValue(String type){
if (type.equals("int")){
Random rand = new Random();
for(int i=0;i<jtfary.length;i++){
jtfary[i].setText(String.valueOf(rand.nextInt(19)-9));
}
}
}
public static String getCSVString(JFrame parent, int size, String type){
ArrayInitializeWindow aiw = new ArrayInitializeWindow(parent, size, type);
aiw.setVisible(true);
StringBuffer sb = new StringBuffer();
for(int i=0;i<size;i++){
if (aiw.jtfary[i].getText().equals("") ){
if (type.equals("int")) aiw.jtfary[i].setText("0");
}
sb.append(aiw.jtfary[i].getText()+",");
}
return sb.toString().substring(0,sb.length()-1);
}
public static void main(String[] s){
String ss = getCSVString(null, 10, "int");
System.out.println(ss);
}
}