package ip.gui.dialog;
import ip.gui.frames.ConvolutionFrame;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DoubleArrayLog
extends ArrayDialog
implements ActionListener {
public DoubleArrayLog(ConvolutionFrame frame, String title,
String defaults[][], int row, int col, int fieldSize) {
super(frame, title, defaults, row, col, fieldSize);
cf = frame;
}
ConvolutionFrame cf;
public void printUserInput() {
double userInput[][] = getUserInputAsDouble();
System.out.println("The values set to the array elements are:");
System.out.println("*****************************************");
for (int i = 0; i < userInput.length; i++) {
for (int j = 0; j < userInput[0].length; j++) {
System.out.print("" + userInput[i][j] + " ");
}
System.out.println();
}
}
public void convolve() {
float userInput[][] = getUserInputAsFloat();
cf.convolve(userInput);
}
public float[][] getUserInputAsFloat() {
double ud[][] = getUserInputAsDouble();
int w = ud.length;
int h = ud[0].length;
float uf[][] = new float[w][h];
for (int x = 0; x < w; x++)
for (int y = 0; y < h; y++)
uf[x][y] = (float) ud[x][y];
return uf;
}
public double[][] getUserInputAsDouble() {
String userInput[][] = super.getUserInput(); double dui[][] = new double[userInput.length][userInput[0].length];
int i = 0, j = 0;
try {
for (i = 0; i < userInput.length; i++) {
for (j = 0; j < userInput[0].length; j++) {
Double d = Double.valueOf(userInput[i][j]);
dui[i][j] = d.doubleValue();
}
}
} catch (NumberFormatException e) {
StringBuffer message = new StringBuffer();
message.append("Could not convert to double\n");
message.append("Row: " + (i + 1) + "Column: " + (j + 1) + "\n");
message.append("Value: " + e.getMessage());
;
MessageLog m1 = new MessageLog("Input Error: Could not convert to Double", message.toString());
}
return dui;
}
public void actionPerformed(ActionEvent e) {
Button b = (Button) e.getSource();
if (b == super.cancelButton) { setVisible(false);
System.exit(0);
} else
convolve();
}
}
class MessageLog extends Dialog implements ActionListener {
Button okButton = new Button("OK");
Panel buttonPanel = new Panel();
Label messageLabel = new Label();
public MessageLog(String title, String message) {
super(new Frame(), title, true); okButton.addActionListener(this);
messageLabel.setText(message);
setLayout(new GridLayout(0, 1));
add(messageLabel);
add(okButton);
pack();
show();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okButton)
setVisible(false);
}
}