Cook book written in Java
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

282 lines
9.0 KiB

package ksiazka.kucharska;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionListener;
import javax.swing.filechooser.FileNameExtensionFilter;
public class CB_View extends JFrame{
private static final long serialVersionUID = 2634383304749703669L;
private JTextField txtSearch = new JTextField();
private JTextField txtEdTitle = new JTextField();
private JTextField txtTags = new JTextField();
private JTextArea txtDescription = new JTextArea();
private JTextArea txtIngredients = new JTextArea();
private JButton btnAddRecipe = new JButton("Nowy");
private JButton btnDelRecipe = new JButton("Usuń");
private JButton btnLoadImg = new JButton("Wczytaj");
private JButton btnCancel = new JButton("Anuluj");
private JButton btnSave = new JButton("Dodaj");
private ImageIcon imgDefaultRecipe = new ImageIcon();
private JScrollPane scrollPane_1 = new JScrollPane();
private JScrollPane scrollPane_2 = new JScrollPane();
private JSplitPane splitPane = new JSplitPane();
private DefaultListModel recipesListModel = new DefaultListModel();
private JList recipesList = new JList(recipesListModel);
private JLabel lblIngredients = new JLabel("Składniki:");
private JLabel lblDescription = new JLabel("Opis wykonania:");
private JLabel imgRecipe = new JLabel("");
private JLabel lblRecipeTitle = new JLabel("Przepis");
private JLabel lblTags = new JLabel("Tagi:");
private JFileChooser fcImg = new JFileChooser();
private JScrollPane scrollPane = new JScrollPane();
CB_View(){
this.setResizable(false);
this.setTitle("Książka Kucharska v1.0");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 720, 551);
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
this.setContentPane(contentPane);
splitPane.setResizeWeight(0.35);
splitPane.setRequestFocusEnabled(false);
splitPane.setPreferredSize(new Dimension(200, 27));
splitPane.setDividerSize(5);
splitPane.setEnabled(false);
contentPane.add(splitPane, BorderLayout.CENTER);
JPanel panel = new JPanel();
panel.setMaximumSize(new Dimension(100, 32767));
splitPane.setLeftComponent(panel);
txtSearch.setBounds(5, 5, 237, 20);
txtSearch.setColumns(10);
scrollPane_2.setBounds(5, 30, 237, 448);
scrollPane_2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane_2.setMaximumSize(new Dimension(100, 100));
recipesList.setSize(new Dimension(100, 0));
recipesList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
recipesList.setMaximumSize(new Dimension(40, 0));
scrollPane_2.setViewportView(recipesList);
JPanel panel_2 = new JPanel();
splitPane.setRightComponent(panel_2);
panel_2.setLayout(null);
btnSave.setVisible(false);
btnSave.setBounds(319, 12, 117, 25);
txtEdTitle.setVisible(false);
txtEdTitle.setBounds(26, 15, 281, 19);
txtEdTitle.setColumns(10);
lblRecipeTitle.setFont(new Font("Dialog", Font.BOLD, 18));
lblRecipeTitle.setBounds(12, 12, 442, 22);
lblIngredients.setBounds(26, 61, 70, 15);
imgRecipe.setHorizontalAlignment(SwingConstants.CENTER);
imgRecipe.setBorder(new LineBorder(SystemColor.textHighlightText));
imgRecipe.setBounds(272, 88, 164, 126);
FileNameExtensionFilter ffAll = new FileNameExtensionFilter("Wszystkie grafiki", "jpg", "jpeg", "gif", "png");
fcImg.addChoosableFileFilter(ffAll);
fcImg.addChoosableFileFilter(new FileNameExtensionFilter("Pliki JPEG", "jpg", "jpeg"));
fcImg.addChoosableFileFilter(new FileNameExtensionFilter("Pliki GIF", "gif"));
fcImg.addChoosableFileFilter(new FileNameExtensionFilter("Pliki PNG", "png"));
fcImg.setAcceptAllFileFilterUsed(false);
fcImg.setFileFilter(ffAll);
try {
BufferedImage bi = ImageIO.read(getClass().getResource("/no_img_recipe.jpg"));
imgDefaultRecipe = new ImageIcon(bi);
imgRecipe.setIcon(imgDefaultRecipe);
bi.flush();
}
catch (IOException e) {
e.printStackTrace();
}
btnLoadImg.setVisible(false);
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setBounds(26, 254, 410, 196);
txtDescription = new JTextArea();
txtDescription.setEditable(false);
txtDescription.setLineWrap(true);
scrollPane.setViewportView(txtDescription);
btnLoadImg.setBounds(304, 217, 102, 25);
txtTags.setEditable(false);
txtTags.setBounds(26, 480, 410, 19);
txtTags.setColumns(10);
lblTags.setBounds(26, 462, 70, 15);
btnCancel.setVisible(false);
btnCancel.setBounds(319, 46, 117, 25);
lblDescription.setBounds(26, 227, 152, 15);
scrollPane_1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane_1.setBounds(26, 88, 228, 126);
txtIngredients.setEditable(false);
txtIngredients.setLineWrap(true);
scrollPane_1.setViewportView(txtIngredients);
scrollPane_2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane_2.setMaximumSize(new Dimension(100, 100));
scrollPane_2.setViewportView(recipesList);
panel.setLayout(null);
panel.add(txtSearch);
panel.add(scrollPane_2);
btnAddRecipe.setBounds(5, 481, 116, 25);
panel.add(btnAddRecipe);
btnDelRecipe.setBounds(125, 481, 116, 25);
panel.add(btnDelRecipe);
panel.add(txtSearch);
panel_2.add(btnSave);
panel_2.add(txtEdTitle);
panel_2.add(lblRecipeTitle);
panel_2.add(lblIngredients);
panel_2.add(lblTags);
panel_2.add(imgRecipe);
panel_2.add(scrollPane);
panel_2.add(btnLoadImg);
panel_2.add(txtTags);
panel_2.add(btnCancel);
panel_2.add(lblDescription);
panel_2.add(scrollPane_1);
}
public String getRecipeTitle(){
return lblRecipeTitle.getText();
}
public String getRecipeEdTitle(){
return txtEdTitle.getText();
}
public String getRecipeIngredients(){
return txtIngredients.getText();
}
public String getRecipeDescription(){
return txtDescription.getText();
}
public String getRecipeTags(){
return txtTags.getText().toString();
}
public JFileChooser getFileChooser(){
return fcImg;
}
public JList getRecipesList(){
return recipesList;
}
public JLabel getImgRecipe(){
return imgRecipe;
}
public ImageIcon getDefaultImgRecipe(){
return imgDefaultRecipe;
}
public String getSearchValue(){
return txtSearch.getText();
}
public void setRecipeTitle(String name){
lblRecipeTitle.setText(name);
}
public void setRecipeIngredients(String ingredients){
txtIngredients.setText(ingredients);
}
public void setRecipeDescription(String description){
txtDescription.setText(description);
}
public void setRecipeTags(String tags){
txtTags.setText(tags);
}
public void setRecipesList(List<String> names){
recipesListModel.clear();
for (String r : names)
{
recipesListModel.addElement(r);
}
}
public void setRecipesListItem(String item){
recipesListModel.addElement(item);
}
public void setRecipeIcon(Icon icon){
imgRecipe.setIcon(icon);
}
public void resetCaretPositions(){
txtDescription.setCaretPosition(0);
txtIngredients.setCaretPosition(0);
}
void addListener(ActionListener listenForAddButton){
btnAddRecipe.addActionListener(listenForAddButton);
}
void delListener(ActionListener listenForDelButton){
btnDelRecipe.addActionListener(listenForDelButton);
}
void loadListener(ActionListener listenForLoadButton){
btnLoadImg.addActionListener(listenForLoadButton);
}
void cancelListener(ActionListener listenForAddButton){
btnCancel.addActionListener(listenForAddButton);
}
void saveListener(ActionListener listenForAddButton){
btnSave.addActionListener(listenForAddButton);
}
void listSelectListener(ListSelectionListener listenForSelectionChange){
recipesList.addListSelectionListener(listenForSelectionChange);
}
void searchTypeListener(DocumentListener listenForSearchTyping){
txtSearch.getDocument().addDocumentListener(listenForSearchTyping);
}
void DeactivateAddMenu() {
btnAddRecipe.setEnabled(true);
btnCancel.setVisible(false);
btnDelRecipe.setEnabled(true);
btnLoadImg.setVisible(false);
txtSearch.setEnabled(true);
btnSave.setVisible(false);
txtDescription.setEditable(false);
txtEdTitle.setVisible(false);
txtIngredients.setEditable(false);
txtTags.setEditable(false);
lblRecipeTitle.setVisible(true);
recipesList.setEnabled(true);
}
void ActivateAddMenu() {
btnAddRecipe.setEnabled(false);
btnCancel.setVisible(true);
btnDelRecipe.setEnabled(false);
btnLoadImg.setVisible(true);
txtSearch.setEnabled(false);
btnSave.setVisible(true);
txtDescription.setEditable(true);
txtEdTitle.setVisible(true);
txtIngredients.setEditable(true);
txtTags.setEditable(true);
lblRecipeTitle.setVisible(false);
recipesList.setEnabled(false);
imgRecipe.setIcon(imgDefaultRecipe);
txtDescription.setText("");
txtEdTitle.setText("");
txtIngredients.setText("");
txtTags.setText("");
}
}