mergowanie zmian
This commit is contained in:
@@ -12,7 +12,6 @@
|
|||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
@@ -20,5 +19,6 @@
|
|||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="lib" path="miglayout15-swing.jar" sourcepath="miglayout-src.zip"/>
|
<classpathentry kind="lib" path="miglayout15-swing.jar" sourcepath="miglayout-src.zip"/>
|
||||||
<classpathentry kind="lib" path="forms-1.3.0.jar" sourcepath="forms-1.3.0-src.zip"/>
|
<classpathentry kind="lib" path="forms-1.3.0.jar" sourcepath="forms-1.3.0-src.zip"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|||||||
BIN
cookbook.db
Normal file
BIN
cookbook.db
Normal file
Binary file not shown.
@@ -10,7 +10,8 @@ import java.util.List;
|
|||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
import db.Recipe;
|
import ksiazka.kucharska.CB_Model;
|
||||||
|
|
||||||
|
|
||||||
public class Cookbook {
|
public class Cookbook {
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ public class Cookbook {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean insertRecipe(Recipe ob) {
|
public boolean insertRecipe(CB_Model ob) {
|
||||||
try {
|
try {
|
||||||
PreparedStatement prepStmt = conn.prepareStatement(
|
PreparedStatement prepStmt = conn.prepareStatement(
|
||||||
"INSERT INTO recipes VALUES (NULL, ?, ?, ?, ?, ?);");
|
"INSERT INTO recipes VALUES (NULL, ?, ?, ?, ?, ?);");
|
||||||
@@ -96,8 +97,8 @@ public class Cookbook {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Recipe selectRecipe(String name) {
|
public CB_Model selectRecipe(String name) {
|
||||||
Recipe selectedRecipe;
|
CB_Model selectedRecipe;
|
||||||
try {
|
try {
|
||||||
PreparedStatement query = conn.prepareStatement("SELECT * FROM recipes WHERE name=?");
|
PreparedStatement query = conn.prepareStatement("SELECT * FROM recipes WHERE name=?");
|
||||||
query.setString(1, name);
|
query.setString(1, name);
|
||||||
@@ -110,7 +111,7 @@ public class Cookbook {
|
|||||||
description = result.getString("description");
|
description = result.getString("description");
|
||||||
tags = result.getString("tags");
|
tags = result.getString("tags");
|
||||||
pict = new ImageIcon(result.getBytes("img"));
|
pict = new ImageIcon(result.getBytes("img"));
|
||||||
selectedRecipe = new Recipe(id, name, ingredients, description, tags, pict);
|
selectedRecipe = new CB_Model(id, name, ingredients, description, tags, pict);
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -16,15 +16,16 @@ public class App
|
|||||||
EventQueue.invokeLater(new Runnable() {
|
EventQueue.invokeLater(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
System.out.println( "tworzę fMain..." );
|
CB_View theView = new CB_View();
|
||||||
FrmMain fMain = new FrmMain();
|
CB_Model theModel = new CB_Model();
|
||||||
|
CB_Controller theController = new CB_Controller(theView, theModel);
|
||||||
|
|
||||||
//wyśrodkowanie okna na ekranie
|
|
||||||
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
||||||
int x = (screenSize.width - fMain.getWidth()) / 2;
|
int x = (screenSize.width - theView.getWidth()) / 2;
|
||||||
int y = (screenSize.height - fMain.getHeight()) / 2;
|
int y = (screenSize.height - theView.getHeight()) / 2;
|
||||||
fMain.setLocation(x, y);
|
theView.setLocation(x, y);
|
||||||
fMain.setVisible(true);
|
theView.setVisible(true);
|
||||||
|
theController.fillList();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
211
src/main/java/ksiazka/kucharska/CB_Controller.java
Normal file
211
src/main/java/ksiazka/kucharska/CB_Controller.java
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
package ksiazka.kucharska;
|
||||||
|
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.RenderingHints;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.swing.DefaultListModel;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JFileChooser;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JList;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
|
import javax.swing.event.ListSelectionEvent;
|
||||||
|
import javax.swing.event.ListSelectionListener;
|
||||||
|
|
||||||
|
import db.Cookbook;
|
||||||
|
|
||||||
|
public class CB_Controller {
|
||||||
|
private static CB_View theView;
|
||||||
|
private static CB_Model theModel;
|
||||||
|
|
||||||
|
public CB_Controller(CB_View theView, CB_Model theModel) {
|
||||||
|
CB_Controller.theView = theView;
|
||||||
|
CB_Controller.theModel = theModel;
|
||||||
|
CB_Controller.theView.addListener(new AddListener());
|
||||||
|
CB_Controller.theView.delListener(new DelListener());
|
||||||
|
CB_Controller.theView.loadListener(new LoadListener());
|
||||||
|
CB_Controller.theView.cancelListener(new CancelListener());
|
||||||
|
CB_Controller.theView.saveListener(new SaveListener());
|
||||||
|
CB_Controller.theView.listSelectListener(new SelectionListener());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fillList(){
|
||||||
|
Cookbook myCb = new Cookbook();
|
||||||
|
List<String> names = myCb.selectNames();
|
||||||
|
theView.setRecipesList(names);
|
||||||
|
myCb.closeConnection();
|
||||||
|
}
|
||||||
|
public static void fillComponents(String name){
|
||||||
|
Cookbook myCb = new Cookbook();
|
||||||
|
theModel = myCb.selectRecipe(name);
|
||||||
|
theView.setRecipeTitle(theModel.getName());
|
||||||
|
theView.setRecipeIngredients(theModel.getIngredients());
|
||||||
|
theView.setRecipeDescription(theModel.getDescription());
|
||||||
|
theView.setRecipeTags(theModel.getTags());
|
||||||
|
theView.setRecipeIcon(theModel.getImage());
|
||||||
|
theView.resetCaretPositions();
|
||||||
|
myCb.closeConnection();
|
||||||
|
}
|
||||||
|
public static void addNewRecipe(){
|
||||||
|
Cookbook myCb = new Cookbook();
|
||||||
|
|
||||||
|
RecipeManager rm = new RecipeManager();
|
||||||
|
rm.setRecipeBuilder(new NewRecipeBuilder());
|
||||||
|
rm.constructRecipe();
|
||||||
|
|
||||||
|
CB_Model obj = rm.getRecipe();
|
||||||
|
myCb.insertRecipe(obj);
|
||||||
|
|
||||||
|
myCb.closeConnection();
|
||||||
|
}
|
||||||
|
public static void removeRecipe(String name){
|
||||||
|
Cookbook myCb = new Cookbook();
|
||||||
|
myCb.deleteRecipe(name);
|
||||||
|
myCb.closeConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
class AddListener implements ActionListener{
|
||||||
|
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
theView.ActivateAddMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(NumberFormatException ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class DelListener implements ActionListener{
|
||||||
|
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
JList recipesList = theView.getRecipesList();
|
||||||
|
DefaultListModel model = (DefaultListModel) recipesList.getModel();
|
||||||
|
if (recipesList.getSelectedIndex() != -1)
|
||||||
|
{
|
||||||
|
int dialogResult = JOptionPane.showConfirmDialog (null, "Czy na pewno chcesz usunąć przepis?", "Pytanie", JOptionPane.YES_NO_OPTION);
|
||||||
|
if(dialogResult == JOptionPane.YES_OPTION){
|
||||||
|
RetrieveData.removeRecipe(recipesList.getSelectedValue().toString());
|
||||||
|
model.remove(recipesList.getSelectedIndex());
|
||||||
|
if (recipesList.getModel().getSize()>0)
|
||||||
|
{
|
||||||
|
recipesList.setSelectedIndex(0);
|
||||||
|
RetrieveData.fillComponents(recipesList.getSelectedValue().toString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
theView.setRecipeTitle("Nazwa przepisu");
|
||||||
|
theView.setRecipeIngredients("");
|
||||||
|
theView.setRecipeDescription("");
|
||||||
|
theView.setRecipeTags("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(NumberFormatException ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class LoadListener implements ActionListener{
|
||||||
|
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
JFileChooser fcImg = theView.getFileChooser();
|
||||||
|
int returnVal = fcImg.showOpenDialog(theView);
|
||||||
|
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||||
|
File file = fcImg.getSelectedFile();
|
||||||
|
try {
|
||||||
|
BufferedImage srcImg = ImageIO.read(file);
|
||||||
|
JLabel imgRecipe = theView.getImgRecipe();
|
||||||
|
int w = (int)Math.ceil(srcImg.getWidth()/(double)srcImg.getHeight()*imgRecipe.getHeight());
|
||||||
|
|
||||||
|
BufferedImage resizedImg = new BufferedImage(w, imgRecipe.getHeight(), BufferedImage.TYPE_INT_ARGB);
|
||||||
|
Graphics2D g2 = resizedImg.createGraphics();
|
||||||
|
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
||||||
|
g2.drawImage(srcImg, 0, 0, w, imgRecipe.getHeight(), null);
|
||||||
|
g2.dispose();
|
||||||
|
ImageIcon iconLogo = new ImageIcon(resizedImg);
|
||||||
|
imgRecipe.setIcon(iconLogo);
|
||||||
|
|
||||||
|
} catch (IOException e1) {
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(NumberFormatException ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CancelListener implements ActionListener{
|
||||||
|
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
theView.DeactivateAddMenu();
|
||||||
|
JList recipesList = theView.getRecipesList();
|
||||||
|
if(recipesList.getSelectedIndex() != -1)
|
||||||
|
fillComponents(recipesList.getSelectedValue().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(NumberFormatException ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SaveListener implements ActionListener{
|
||||||
|
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
addNewRecipe();
|
||||||
|
/*JList recipesList = theView.getRecipesList();
|
||||||
|
DefaultListModel model = (DefaultListModel) recipesList.getModel();
|
||||||
|
model.addElement(theView.getRecipeTitle());*/
|
||||||
|
theView.DeactivateAddMenu();
|
||||||
|
/*recipesList.setSelectedIndex(recipesList.getModel().getSize()-1);
|
||||||
|
fillComponents(recipesList.getSelectedValue().toString());*/
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(NumberFormatException ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SelectionListener implements ListSelectionListener{
|
||||||
|
|
||||||
|
public void valueChanged(ListSelectionEvent e) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
JList recipesList = theView.getRecipesList();
|
||||||
|
if(recipesList.getSelectedIndex() != -1)
|
||||||
|
fillComponents(recipesList.getSelectedValue().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
catch(NumberFormatException ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package db;
|
package ksiazka.kucharska;
|
||||||
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@@ -7,7 +7,7 @@ import java.io.IOException;
|
|||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
public class Recipe {
|
public class CB_Model {
|
||||||
private int id;
|
private int id;
|
||||||
private String name;
|
private String name;
|
||||||
private String ingredients;
|
private String ingredients;
|
||||||
@@ -50,7 +50,6 @@ public class Recipe {
|
|||||||
}
|
}
|
||||||
public byte[] getImageArr() {
|
public byte[] getImageArr() {
|
||||||
try {
|
try {
|
||||||
//przekształcam ImageIcon -> BufferedImage
|
|
||||||
BufferedImage bImg = new BufferedImage(img.getIconWidth(), img.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
|
BufferedImage bImg = new BufferedImage(img.getIconWidth(), img.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
|
||||||
|
|
||||||
bImg.getGraphics().drawImage(img.getImage(), 0,0, null);
|
bImg.getGraphics().drawImage(img.getImage(), 0,0, null);
|
||||||
@@ -71,8 +70,8 @@ public class Recipe {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Recipe() {}
|
public CB_Model() {}
|
||||||
public Recipe(int id, String name, String ingredients, String description, String tags, ImageIcon img) {
|
public CB_Model(int id, String name, String ingredients, String description, String tags, ImageIcon img) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.ingredients = ingredients;
|
this.ingredients = ingredients;
|
||||||
285
src/main/java/ksiazka/kucharska/CB_View.java
Normal file
285
src/main/java/ksiazka/kucharska/CB_View.java
Normal file
@@ -0,0 +1,285 @@
|
|||||||
|
package ksiazka.kucharska;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.border.EmptyBorder;
|
||||||
|
import javax.swing.border.LineBorder;
|
||||||
|
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("Nazwa przepisu");
|
||||||
|
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, 723, 549);
|
||||||
|
|
||||||
|
JPanel contentPane = new JPanel();
|
||||||
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
||||||
|
contentPane.setLayout(new BorderLayout(0, 0));
|
||||||
|
this.setContentPane(contentPane);
|
||||||
|
|
||||||
|
splitPane.setResizeWeight(0.1);
|
||||||
|
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);
|
||||||
|
GridBagLayout gbl_panel = new GridBagLayout();
|
||||||
|
gbl_panel.columnWidths = new int[] {0, 0};
|
||||||
|
gbl_panel.rowHeights = new int[] {0, 0, 0};
|
||||||
|
gbl_panel.columnWeights = new double[]{1.0, 1.0};
|
||||||
|
gbl_panel.rowWeights = new double[]{0.0, 1.0, 0.0};
|
||||||
|
panel.setLayout(gbl_panel);
|
||||||
|
|
||||||
|
GridBagConstraints gbc_txtSearch = new GridBagConstraints();
|
||||||
|
gbc_txtSearch.gridwidth = 2;
|
||||||
|
gbc_txtSearch.insets = new Insets(5, 5, 5, 0);
|
||||||
|
gbc_txtSearch.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_txtSearch.gridx = 0;
|
||||||
|
gbc_txtSearch.gridy = 0;
|
||||||
|
txtSearch.setColumns(10);
|
||||||
|
|
||||||
|
scrollPane_2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
||||||
|
scrollPane_2.setMaximumSize(new Dimension(100, 100));
|
||||||
|
scrollPane_2.setViewportView(recipesList);
|
||||||
|
GridBagConstraints gbc_scrollPane_2 = new GridBagConstraints();
|
||||||
|
gbc_scrollPane_2.gridwidth = 2;
|
||||||
|
gbc_scrollPane_2.insets = new Insets(0, 0, 5, 0);
|
||||||
|
gbc_scrollPane_2.fill = GridBagConstraints.BOTH;
|
||||||
|
gbc_scrollPane_2.gridx = 0;
|
||||||
|
gbc_scrollPane_2.gridy = 1;
|
||||||
|
|
||||||
|
GridBagConstraints gbc_btnAddRecipe = new GridBagConstraints();
|
||||||
|
gbc_btnAddRecipe.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_btnAddRecipe.insets = new Insets(0, 5, 0, 5);
|
||||||
|
gbc_btnAddRecipe.gridx = 0;
|
||||||
|
gbc_btnAddRecipe.gridy = 2;
|
||||||
|
|
||||||
|
GridBagConstraints gbc_btnDelRecipe = new GridBagConstraints();
|
||||||
|
gbc_btnDelRecipe.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_btnDelRecipe.gridx = 1;
|
||||||
|
gbc_btnDelRecipe.gridy = 2;
|
||||||
|
|
||||||
|
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);
|
||||||
|
imgDefaultRecipe = new ImageIcon("no_img_recipe.jpg");
|
||||||
|
imgRecipe.setIcon(imgDefaultRecipe);
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
gbc_scrollPane_2.gridwidth = 2;
|
||||||
|
gbc_scrollPane_2.insets = new Insets(0, 0, 5, 0);
|
||||||
|
gbc_scrollPane_2.fill = GridBagConstraints.BOTH;
|
||||||
|
gbc_scrollPane_2.gridx = 0;
|
||||||
|
gbc_scrollPane_2.gridy = 1;
|
||||||
|
|
||||||
|
panel.add(txtSearch, gbc_txtSearch);
|
||||||
|
panel.add(scrollPane_2, gbc_scrollPane_2);
|
||||||
|
panel.add(btnAddRecipe, gbc_btnAddRecipe);
|
||||||
|
panel.add(btnDelRecipe, gbc_btnDelRecipe);
|
||||||
|
panel.add(txtSearch, gbc_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().toString();
|
||||||
|
}
|
||||||
|
public String getRecipeIngredients(){
|
||||||
|
return txtIngredients.getText().toString();
|
||||||
|
}
|
||||||
|
public String getRecipeDescription(){
|
||||||
|
return txtDescription.getText().toString();
|
||||||
|
}
|
||||||
|
public String getRecipeTags(){
|
||||||
|
return txtTags.getText().toString();
|
||||||
|
}
|
||||||
|
public JFileChooser getFileChooser(){
|
||||||
|
return fcImg;
|
||||||
|
}
|
||||||
|
public JList getRecipesList(){
|
||||||
|
return recipesList;
|
||||||
|
}
|
||||||
|
public JLabel getImgRecipe(){
|
||||||
|
return imgRecipe;
|
||||||
|
}
|
||||||
|
|
||||||
|
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){
|
||||||
|
for (String r : names)
|
||||||
|
{
|
||||||
|
recipesListModel.addElement(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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 listenForSelectionChagnge){
|
||||||
|
recipesList.addListSelectionListener(listenForSelectionChagnge);
|
||||||
|
}
|
||||||
|
|
||||||
|
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("");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -53,8 +53,13 @@ public class FrmMain extends JFrame {
|
|||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 2634383304749703669L;
|
private static final long serialVersionUID = 2634383304749703669L;
|
||||||
private JPanel contentPane;
|
private JPanel contentPane;
|
||||||
|
<<<<<<< HEAD
|
||||||
public static JTextField txtSearch;
|
public static JTextField txtSearch;
|
||||||
public static JTextField txtEdTitle;
|
public static JTextField txtEdTitle;
|
||||||
|
=======
|
||||||
|
private JTextField txtSearch;
|
||||||
|
public static JTextField txtEdTitle;
|
||||||
|
>>>>>>> 17d917cc3f055645be7f87095a3ba404b9b885e9
|
||||||
public static JTextField txtTags;
|
public static JTextField txtTags;
|
||||||
private JButton btnSave;
|
private JButton btnSave;
|
||||||
private JButton btnCancel;
|
private JButton btnCancel;
|
||||||
@@ -101,8 +106,6 @@ public class FrmMain extends JFrame {
|
|||||||
lblRecipeTitle.setVisible(false);
|
lblRecipeTitle.setVisible(false);
|
||||||
recipesList.setEnabled(false);
|
recipesList.setEnabled(false);
|
||||||
imgRecipe.setIcon(imgDefaultRecipe);
|
imgRecipe.setIcon(imgDefaultRecipe);
|
||||||
|
|
||||||
//czyszczenie pól formularza
|
|
||||||
txtDescription.setText("");
|
txtDescription.setText("");
|
||||||
txtEdTitle.setText("");
|
txtEdTitle.setText("");
|
||||||
txtIngredients.setText("");
|
txtIngredients.setText("");
|
||||||
@@ -147,8 +150,11 @@ public class FrmMain extends JFrame {
|
|||||||
panel.setLayout(gbl_panel);
|
panel.setLayout(gbl_panel);
|
||||||
|
|
||||||
txtSearch = new JTextField();
|
txtSearch = new JTextField();
|
||||||
|
<<<<<<< HEAD
|
||||||
txtSearch.setText("");
|
txtSearch.setText("");
|
||||||
|
|
||||||
|
=======
|
||||||
|
>>>>>>> 17d917cc3f055645be7f87095a3ba404b9b885e9
|
||||||
GridBagConstraints gbc_txtSearch = new GridBagConstraints();
|
GridBagConstraints gbc_txtSearch = new GridBagConstraints();
|
||||||
gbc_txtSearch.gridwidth = 2;
|
gbc_txtSearch.gridwidth = 2;
|
||||||
gbc_txtSearch.insets = new Insets(5, 5, 5, 0);
|
gbc_txtSearch.insets = new Insets(5, 5, 5, 0);
|
||||||
@@ -282,14 +288,12 @@ public class FrmMain extends JFrame {
|
|||||||
|
|
||||||
btnLoadImg.addActionListener(new ActionListener() {
|
btnLoadImg.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent arg0) {
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
//otwórz okno dialogowe
|
|
||||||
int returnVal = fcImg.showOpenDialog(FrmMain.this);
|
int returnVal = fcImg.showOpenDialog(FrmMain.this);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||||
File file = fcImg.getSelectedFile();
|
File file = fcImg.getSelectedFile();
|
||||||
try {
|
try {
|
||||||
BufferedImage srcImg = ImageIO.read(file); //czytaj plik
|
BufferedImage srcImg = ImageIO.read(file);
|
||||||
|
|
||||||
//wyznacz szerokość obrazka jako stosunek (przy maksymalizacji wysokości
|
|
||||||
int w = (int)Math.ceil(srcImg.getWidth()/(double)srcImg.getHeight()*imgRecipe.getHeight());
|
int w = (int)Math.ceil(srcImg.getWidth()/(double)srcImg.getHeight()*imgRecipe.getHeight());
|
||||||
|
|
||||||
BufferedImage resizedImg = new BufferedImage(w, imgRecipe.getHeight(), BufferedImage.TYPE_INT_ARGB);
|
BufferedImage resizedImg = new BufferedImage(w, imgRecipe.getHeight(), BufferedImage.TYPE_INT_ARGB);
|
||||||
@@ -374,4 +378,4 @@ public class FrmMain extends JFrame {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
package ksiazka.kucharska;
|
package ksiazka.kucharska;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
import db.Recipe;
|
|
||||||
|
|
||||||
|
|
||||||
abstract class RecipeBuilder {
|
abstract class RecipeBuilder {
|
||||||
protected Recipe rOb;
|
protected CB_Model rOb;
|
||||||
|
|
||||||
public Recipe build() {
|
public CB_Model build() {
|
||||||
return rOb;
|
return rOb;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void newRecipe() {
|
public void newRecipe() {
|
||||||
rOb = new Recipe();
|
rOb = new CB_Model();
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void buildTitle();
|
public abstract void buildTitle();
|
||||||
@@ -68,7 +67,7 @@ class RecipeManager {
|
|||||||
public void setRecipeBuilder(RecipeBuilder rb) {
|
public void setRecipeBuilder(RecipeBuilder rb) {
|
||||||
recipeBuilder = rb;
|
recipeBuilder = rb;
|
||||||
}
|
}
|
||||||
public Recipe getRecipe() {
|
public CB_Model getRecipe() {
|
||||||
return recipeBuilder.build();
|
return recipeBuilder.build();
|
||||||
}
|
}
|
||||||
public void constructRecipe() {
|
public void constructRecipe() {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package ksiazka.kucharska;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.swing.DefaultListModel;
|
import javax.swing.DefaultListModel;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
import db.AllRecipes;
|
import db.AllRecipes;
|
||||||
import db.Cookbook;
|
import db.Cookbook;
|
||||||
@@ -50,12 +51,14 @@ public class RetrieveData extends FrmMain{
|
|||||||
}
|
}
|
||||||
public static void fillComponents(String name){
|
public static void fillComponents(String name){
|
||||||
Cookbook myCb = new Cookbook();
|
Cookbook myCb = new Cookbook();
|
||||||
Recipe myRecipe = myCb.selectRecipe(name);
|
CB_Model myRecipe = myCb.selectRecipe(name);
|
||||||
lblRecipeTitle.setText(name);
|
lblRecipeTitle.setText(name);
|
||||||
txtIngredients.setText(myRecipe.getIngredients());
|
txtIngredients.setText(myRecipe.getIngredients());
|
||||||
txtDescription.setText(myRecipe.getDescription());
|
txtDescription.setText(myRecipe.getDescription());
|
||||||
txtTags.setText(myRecipe.getTags());
|
txtTags.setText(myRecipe.getTags());
|
||||||
imgRecipe.setIcon(myRecipe.getImage());
|
imgRecipe.setIcon(myRecipe.getImage());
|
||||||
|
txtDescription.setCaretPosition(0);
|
||||||
|
txtIngredients.setCaretPosition(0);
|
||||||
myCb.closeConnection();
|
myCb.closeConnection();
|
||||||
}
|
}
|
||||||
public static void addNewRecipe(){
|
public static void addNewRecipe(){
|
||||||
@@ -65,7 +68,7 @@ public class RetrieveData extends FrmMain{
|
|||||||
rm.setRecipeBuilder(new NewRecipeBuilder());
|
rm.setRecipeBuilder(new NewRecipeBuilder());
|
||||||
rm.constructRecipe();
|
rm.constructRecipe();
|
||||||
|
|
||||||
Recipe obj = rm.getRecipe();
|
CB_Model obj = rm.getRecipe();
|
||||||
myCb.insertRecipe(obj);
|
myCb.insertRecipe(obj);
|
||||||
//myCb.insertRecipe(txtEdTitle.getText(), txtIngredients.getText(), txtDescription.getText(), txtTags.getText(), (ImageIcon)imgRecipe.getIcon());
|
//myCb.insertRecipe(txtEdTitle.getText(), txtIngredients.getText(), txtDescription.getText(), txtTags.getText(), (ImageIcon)imgRecipe.getIcon());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user