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.
 

93 lines
1.9 KiB

package ksiazka.kucharska;
import javax.swing.ImageIcon;
abstract class RecipeBuilder {
protected CB_Model rOb;
protected CB_View tV;
public CB_Model build() {
return rOb;
}
public void newRecipe() {
rOb = new CB_Model();
}
public RecipeBuilder(CB_View v) {
tV = v;
}
public abstract void buildTitle();
public abstract void buildIngred();
public abstract void buildDesc();
public abstract void buildTags();
public abstract void buildImg();
}
class NewRecipeBuilder extends RecipeBuilder {
public NewRecipeBuilder(CB_View v) {
super(v);
}
public void buildTitle() {
rOb.setName(tV.getRecipeEdTitle());
}
public void buildIngred() {
rOb.setIngredients(tV.getRecipeIngredients());
}
public void buildDesc() {
rOb.setDescription(tV.getRecipeDescription());
}
public void buildTags() {
rOb.setTags(tV.getRecipeTags());
}
public void buildImg() {
rOb.setImage((ImageIcon)tV.getImgRecipe().getIcon());
}
}
class ExampleRecipeBuilder extends RecipeBuilder {
public ExampleRecipeBuilder(CB_View v) {
super(v);
}
public void buildTitle() {
rOb.setName("Kanapka");
}
public void buildIngred() {
rOb.setIngredients("Chleb, margaryna, szynka");
}
public void buildDesc() {
rOb.setDescription("Posmarować kanapke margaryną i położyć na niej plaster szynki");
}
public void buildTags() {
rOb.setTags("kanapka, szynka, chleb");
}
public void buildImg() {
rOb.setImage(tV.getDefaultImgRecipe());
}
}
class RecipeManager {
private RecipeBuilder recipeBuilder;
protected CB_View tV;
public void setRecipeBuilder(RecipeBuilder rb) {
recipeBuilder = rb;
}
public CB_Model getRecipe() {
return recipeBuilder.build();
}
public void constructRecipe() {
recipeBuilder.newRecipe();
recipeBuilder.buildTitle();
recipeBuilder.buildIngred();
recipeBuilder.buildDesc();
recipeBuilder.buildTags();
recipeBuilder.buildImg();
}
}