Browse Source

Change RecipeCardPanel's model

Sam Jaffe 5 years ago
parent
commit
1324422c06

+ 4 - 11
src/main/lombok/org/leumasjaffe/recipe/view/RecipeCardPanel.java

@@ -3,7 +3,6 @@ package org.leumasjaffe.recipe.view;
 import javax.swing.JSplitPane;
 
 import org.jdesktop.swingx.VerticalLayout;
-import org.leumasjaffe.recipe.controller.FileController;
 import org.leumasjaffe.recipe.model.RecipeCard;
 import org.leumasjaffe.recipe.view.summary.SummaryPanel;
 
@@ -14,20 +13,14 @@ import javax.swing.JPanel;
 
 @SuppressWarnings("serial")
 @FieldDefaults(level=AccessLevel.PRIVATE)
-public class RecipeCardPanel extends JSplitPane implements FileController.ViewModel {
-	JPanel rightPanel;
+public class RecipeCardPanel extends JSplitPane {
 	
-	public RecipeCardPanel() {
-		rightPanel = new JPanel();
+	public RecipeCardPanel(final RecipeCard card) {
+		final JPanel rightPanel = new JPanel();
 		rightPanel.setLayout(new VerticalLayout(5));
 		setRightComponent(rightPanel);
-		setLeftComponent(new JPanel());
-	}
-
-	@Override
-	public void setModel(final RecipeCard card) {
 		setLeftComponent(new SummaryPanel(card));
-		rightPanel.removeAll();
 		card.getComponents().map(ElementPanel::new).forEach(rightPanel::add);
 	}
+
 }

+ 11 - 5
src/main/lombok/org/leumasjaffe/recipe/view/RecipeManagerFrame.java

@@ -3,6 +3,7 @@ package org.leumasjaffe.recipe.view;
 import javax.swing.JFrame;
 
 import org.leumasjaffe.recipe.controller.FileController;
+import org.leumasjaffe.recipe.model.RecipeCard;
 
 import lombok.AccessLevel;
 import lombok.experimental.FieldDefaults;
@@ -12,11 +13,11 @@ import javax.swing.JMenu;
 
 @SuppressWarnings("serial")
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
-public class RecipeManagerFrame extends JFrame {
+public class RecipeManagerFrame extends JFrame implements FileController.ViewModel {
 	
 	public RecipeManagerFrame() {
-		RecipeCardPanel panel = new RecipeCardPanel();
-		FileController fileController = new FileController(panel);
+//		RecipeCardPanel panel = new RecipeCardPanel();
+		FileController fileController = new FileController(this);
 
 		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 		
@@ -25,8 +26,8 @@ public class RecipeManagerFrame extends JFrame {
 		
 		JMenu mnFile = new FileMenu(this, fileController);
 		menuBar.add(mnFile);
-				
-		setContentPane(panel);
+		
+//		setContentPane(panel);
 
 //		fileController.create();
 		fileController.open("src/test/resources/example.json");
@@ -35,4 +36,9 @@ public class RecipeManagerFrame extends JFrame {
 		repaint();
 		setVisible(true);
 	}
+	
+	@Override
+	public void setModel(final RecipeCard card) {
+		setContentPane(new RecipeCardPanel(card));
+	}
 }

+ 0 - 39
src/test/java/org/leumasjaffe/recipe/view/RecipeCardPanelTest.java

@@ -1,39 +0,0 @@
-package org.leumasjaffe.recipe.view;
-
-import static org.mockito.Mockito.*;
-
-import java.util.Arrays;
-
-import javax.swing.JPanel;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.junit.platform.runner.JUnitPlatform;
-import org.junit.runner.RunWith;
-import org.leumasjaffe.recipe.model.Element;
-import org.leumasjaffe.recipe.model.RecipeCard;
-import org.leumasjaffe.recipe.view.summary.SummaryPanel;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-@ExtendWith(MockitoExtension.class)
-@RunWith(JUnitPlatform.class)
-class RecipeCardPanelTest extends SwingTestCase {
-	
-	@Mock SummaryPanel summaryPanel;
-	@Mock JPanel rightPanel;
-	@InjectMocks RecipeCardPanel panel;
-	
-	@Test
-	void testAddsEachElementToEachMember() {
-		RecipeCard card = new RecipeCard();
-		card.setElements(Arrays.asList(new Element(), new Element()));
-		
-		panel.setModel(card);
-		
-		verify(summaryPanel, times(2)).addElement(any());
-		verify(rightPanel, times(2)).add(any(ElementPanel.class));
-	}
-
-}