package net.codjo.dataprocess.gui.util.sqleditor.components;
import net.codjo.dataprocess.gui.util.sqleditor.util.SQLEditorTools;
import java.awt.BorderLayout;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
/**
*
*/
public class ResultPaneGui extends JPanel {
private JButton closeButton;
private JTextArea requestTextArea;
private JTable table;
public JButton getCloseButton() {
return closeButton;
}
public JTable getTable() {
return table;
}
public ResultPaneGui() {
setLayout(new BorderLayout());
closeButton = new JButton("Fermer");
}
public void init(String request,
StringBuffer buffer,
final int pageSize,
NavigationPanelLogic navigationPanelLogic, SQLEditorTools sqlEditorTools) {
JPanel centerPanel = new JPanel();
add(BorderLayout.CENTER, centerPanel);
centerPanel.setLayout(new BorderLayout());
requestTextArea = new JTextArea(request, 3, 200);
requestTextArea.setEditable(false);
String typeOfResult = sqlEditorTools.extractLine(buffer);
if ("EX".equals(typeOfResult) || "RC".equals(typeOfResult)) {
JTextArea textArea = new JTextArea(buffer.toString());
centerPanel.add(BorderLayout.CENTER, new JScrollPane(textArea));
}
else {
//ne se sert pas du nombre de colonnes
sqlEditorTools.extractLine(buffer);
int nbRow = Integer.parseInt(sqlEditorTools.extractLine(buffer));
final int nbPage = nbRow / pageSize + (nbRow % pageSize > 0 ? 1 : 0);
table = new JTable();
table.setModel(ResultPaneLogic.createTableModelResult(buffer, sqlEditorTools));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JPanel resultSetPanel = new JPanel(new BorderLayout());
resultSetPanel.add(BorderLayout.CENTER, new JScrollPane(table));
JPanel totalCountPanel = new JPanel();
totalCountPanel.setLayout(new BoxLayout(totalCountPanel, BoxLayout.X_AXIS));
totalCountPanel.add(Box.createHorizontalGlue());
totalCountPanel.add(new JLabel("Total : " + nbRow + " (" + pageSize + " par page)"));
resultSetPanel.add(BorderLayout.SOUTH, totalCountPanel);
if (nbPage > 1) {
navigationPanelLogic.setNbOfPage(nbPage);
resultSetPanel.add(BorderLayout.NORTH, navigationPanelLogic.getNavigationPanelGui());
}
centerPanel.add(BorderLayout.CENTER, resultSetPanel);
}
JPanel endPanel = new JPanel();
endPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
endPanel.setLayout(new BoxLayout(endPanel, BoxLayout.X_AXIS));
endPanel.add(Box.createHorizontalGlue());
endPanel.add(closeButton);
centerPanel.add(BorderLayout.SOUTH, endPanel);
JPanel topPanel = new JPanel(new BorderLayout());
topPanel.add(BorderLayout.CENTER, new JScrollPane(requestTextArea));
centerPanel.add(BorderLayout.NORTH, topPanel);
}
public JTextArea getRequestTextArea() {
return requestTextArea;
}
}