Скачиваний:
64
Добавлен:
15.06.2014
Размер:
20.62 Кб
Скачать
package dialogs;

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import tables.MyMainTableModel;
import tables.ShowSearchedResultsTableModel;
import datacontainers.BaseProductContainer;

public class SearchProductDialog {
//JDialog object
private JDialog searchbyDialog;

//JComboBox
private JComboBox chosecaseJComboBox;

//JTextField
private JTextField searchfield;

//JLabel
private JLabel searchbylabel;
private JLabel searchtypetextlabel;

//JButton
private JButton okButton;
private JButton cancelButton;

//base constructor
public SearchProductDialog() {

}

//constructor
public SearchProductDialog(JFrame myapplication,String name,boolean var,MyMainTableModel tablemodel) {

searchbyDialog = new JDialog(myapplication,name,var);

//set size for dialog
searchbyDialog.setSize(new Dimension(300,180));

//not to change the dialog window size
searchbyDialog.setResizable(false);

searchbyDialog.setLocationRelativeTo(null);

//add components to pane
addComponentsToPane(searchbyDialog.getContentPane(),tablemodel,myapplication);

//set visible for "Search by" dialog
searchbyDialog.setVisible(true);
}

private void addComponentsToPane(Container pane,MyMainTableModel tablemodel,JFrame app) {
pane.setLayout(new BoxLayout(pane,BoxLayout.Y_AXIS));

addSearchJLabel(pane);
addSearchJComboBox(pane);
addSearchJLabelTypeTextForSearching(pane);
addSearchJTextField(pane);

addOkButtonToSearchByDialog(pane,tablemodel,app);
addCancelButtonToSearchByDialog(pane);
}

private void addSearchJComboBox(Container container) {
String[] names = { "Name", "Arrival date", "Maker", "Price", "Type", "Shelflife", "Weight", "Number", "Country", "Maker address", "Maker site", "Make mail", "Maker phone", "Department" };

chosecaseJComboBox = new JComboBox(names);

chosecaseJComboBox.setMaximumSize(new Dimension(300,20));

container.add(chosecaseJComboBox);
}

private void addSearchJLabel(Container container) {
searchbylabel = new JLabel("SEARCH BY:");
searchbylabel.setAlignmentX(Component.CENTER_ALIGNMENT);
searchbylabel.setMaximumSize(new Dimension(300,20));
container.add(searchbylabel);
}

private void addSearchJTextField(Container container) {
searchfield = new JTextField();
searchfield.setMaximumSize(new Dimension(300,20));
container.add(searchfield);
}

private void addSearchJLabelTypeTextForSearching(Container container) {
searchtypetextlabel = new JLabel("ENTER TEXT FOR SEARCHING:");
searchtypetextlabel.setAlignmentX(Component.CENTER_ALIGNMENT);
searchtypetextlabel.setMaximumSize(new Dimension(300,20));
container.add(searchtypetextlabel);
}

private void addOkButtonToSearchByDialog(Container container,final MyMainTableModel tablemodel,final JFrame app) {
okButton = new JButton("OK");
okButton.setAlignmentX(Container.CENTER_ALIGNMENT);
okButton.setMaximumSize(new Dimension(300,40));
container.add(okButton);

okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String selectedItem = (String)chosecaseJComboBox.getSelectedItem();
switch(selectedItem) {
case "Name": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductName(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Arrival date": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductArrivalDate(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Maker": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductMaker(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Price": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductPrice(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Type": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductType(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Shelflife": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductShelfLife(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Weight": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductWeight(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Number": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductNumber(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Country": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductCountry(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Maker address": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductMakerAddress(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Maker site": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductMakerSite(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Maker mail": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductMakerMail(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Maker phone": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductMakerPhone(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}

case "Department": {
String title = "Result by request: " + selectedItem;
JDialog dlg = new JDialog(app,title,true);
dlg.setMinimumSize(new Dimension(800,600));

BaseProductContainer searched_data = tablemodel.getDepartmentContainer().getAllProductsContainer().searchByProductDepartment(searchfield.getText());
ShowSearchedResultsTableModel result_tablemodel = new ShowSearchedResultsTableModel();
result_tablemodel.getDepartmentContainer().getAllProductsContainer().setBaseProductContainer(searched_data);

if(result_tablemodel.getDepartmentContainer().getAllProductsContainer().getAllListOfProducts().isEmpty()) {
searchbyDialog.setVisible(false);
JOptionPane.showMessageDialog(app,
"Was not found elements with name " + searchfield.getText(),
"No found",
JOptionPane.WARNING_MESSAGE);
}
else {
JTable result_table = new JTable(result_tablemodel);
JScrollPane jscrollpane = new JScrollPane(result_table);
dlg.add(jscrollpane);
searchbyDialog.setVisible(false);
dlg.setVisible(true);
}
break;
}
//by default
default: {
return;
}
}
}
});
}

private void addCancelButtonToSearchByDialog(Container container) {
cancelButton = new JButton("CANCEL");
cancelButton.setAlignmentX(Container.CENTER_ALIGNMENT);
cancelButton.setMaximumSize(new Dimension(300,40));
container.add(cancelButton);

//action listener for cancel button
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
searchbyDialog.setVisible(false);
}
});
}

}
Соседние файлы в папке dialogs