Procházet zdrojové kódy

Update StepPanel to use the new AutoGrowPanel features.

Sam Jaffe před 5 roky
rodič
revize
17a63006ff

+ 2 - 2
src/main/lombok/org/leumasjaffe/recipe/model/Ingredient.java

@@ -9,9 +9,9 @@ import lombok.NoArgsConstructor;
 
 @Data @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode(callSuper=false)
 public class Ingredient extends Observable.Instance {
-	String name;
+	String name = "";
 	String preparation = "";
-	Amount amount;
+	Amount amount = new Amount("1");
 	
 	boolean hasPreparation() {
 		return preparation != null && !preparation.isEmpty();

+ 6 - 1
src/main/lombok/org/leumasjaffe/recipe/view/StepPanel.java

@@ -5,6 +5,7 @@ import javax.swing.event.DocumentListener;
 
 import org.leumasjaffe.observer.ForwardingObservableListener;
 import org.leumasjaffe.observer.ObserverDispatch;
+import org.leumasjaffe.recipe.model.Ingredient;
 import org.leumasjaffe.recipe.model.Step;
 
 import lombok.AccessLevel;
@@ -15,6 +16,7 @@ import java.awt.GridBagLayout;
 
 import java.awt.GridBagConstraints;
 import java.awt.Insets;
+import java.util.List;
 
 import javax.swing.JLabel;
 import javax.swing.JTextPane;
@@ -75,7 +77,10 @@ public class StepPanel extends JPanel implements AutoGrowPanel.DocumentListenabl
 		gbc_lblDuration.gridy = 0;
 		panelLeft.add(lblDuration, gbc_lblDuration);
 		
-		panelIngredients = new AutoGrowPanel(IngredientPanel::new, step.getIngredients());
+		final List<Ingredient> ingredients = step.getIngredients();
+		panelIngredients = new AutoGrowPanel(IngredientPanel::new,
+				Ingredient::new, ingredients::add, i -> ingredients.remove((int) i),
+				ingredients.toArray(new Ingredient[0]));
 		GridBagConstraints gbc_panelIngredients = new GridBagConstraints();
 		gbc_panelIngredients.gridwidth = 3;
 		gbc_panelIngredients.insets = new Insets(0, 0, 0, 5);

+ 2 - 1
src/test/java/org/leumasjaffe/recipe/view/StepPanelTest.java

@@ -3,6 +3,7 @@ package org.leumasjaffe.recipe.view;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.collection.IsArrayWithSize.arrayWithSize;
+import static org.hamcrest.number.OrderingComparison.greaterThanOrEqualTo;
 import static org.hamcrest.core.StringContains.containsString;
 import static org.mockito.Mockito.*;
 
@@ -51,7 +52,7 @@ class StepPanelTest extends SwingTestCase {
 				containsString(dur.toString()));
 		assertEquals("These are test instructions", panel.getTxtpnInstructions().getText());
 		assertThat(panel.getPanelIngredients().getComponents(),
-				arrayWithSize(1));
+				arrayWithSize(greaterThanOrEqualTo(1)));
 	}
 
 }