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.

81 lines
1.7 KiB

  1. package ksiazka.kucharska;
  2. import javax.swing.ImageIcon;
  3. import db.Recipe;
  4. abstract class RecipeBuilder {
  5. protected Recipe rOb;
  6. public Recipe build() {
  7. return rOb;
  8. }
  9. public void newRecipe() {
  10. rOb = new Recipe();
  11. }
  12. public abstract void buildTitle();
  13. public abstract void buildIngred();
  14. public abstract void buildDesc();
  15. public abstract void buildTags();
  16. public abstract void buildImg();
  17. }
  18. class NewRecipeBuilder extends RecipeBuilder {
  19. public void buildTitle() {
  20. rOb.setName(FrmMain.txtEdTitle.getText());
  21. }
  22. public void buildIngred() {
  23. rOb.setIngredients(FrmMain.txtIngredients.getText());
  24. }
  25. public void buildDesc() {
  26. rOb.setDescription(FrmMain.txtDescription.getText());
  27. }
  28. public void buildTags() {
  29. rOb.setTags(FrmMain.txtTags.getText());
  30. }
  31. public void buildImg() {
  32. rOb.setImage((ImageIcon)FrmMain.imgRecipe.getIcon());
  33. }
  34. }
  35. class ExampleRecipeBuilder extends RecipeBuilder {
  36. public void buildTitle() {
  37. rOb.setName("Kanapka");
  38. }
  39. public void buildIngred() {
  40. rOb.setIngredients("Chleb, margaryna, szynka");
  41. }
  42. public void buildDesc() {
  43. rOb.setDescription("Posmarować kanapke margaryną i położyć na niej plaster szynki");
  44. }
  45. public void buildTags() {
  46. rOb.setTags("kanapka, szynka, chleb");
  47. }
  48. public void buildImg() {
  49. rOb.setImage(FrmMain.imgDefaultRecipe);
  50. }
  51. }
  52. class RecipeManager {
  53. private RecipeBuilder recipeBuilder;
  54. public void setRecipeBuilder(RecipeBuilder rb) {
  55. recipeBuilder = rb;
  56. }
  57. public Recipe getRecipe() {
  58. return recipeBuilder.build();
  59. }
  60. public void constructRecipe() {
  61. recipeBuilder.newRecipe();
  62. recipeBuilder.buildTitle();
  63. recipeBuilder.buildIngred();
  64. recipeBuilder.buildDesc();
  65. recipeBuilder.buildTags();
  66. recipeBuilder.buildImg();
  67. }
  68. }