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.Element; import org.leumasjaffe.recipe.model.RecipeCard; import org.leumasjaffe.recipe.view.summary.SummaryPanel; import lombok.AccessLevel; import lombok.Getter; import lombok.experimental.FieldDefaults; import javax.swing.JPanel; @SuppressWarnings("serial") @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true) public class RecipeCardPanel extends JSplitPane implements FileController.ViewModel { @Getter(AccessLevel.PACKAGE) SummaryPanel summaryPanel; @Getter(AccessLevel.PACKAGE) JPanel rightPanel; public RecipeCardPanel() { rightPanel = new JPanel(); rightPanel.setLayout(new VerticalLayout(5)); setRightComponent(rightPanel); summaryPanel = new SummaryPanel(); setLeftComponent(summaryPanel); } @Override public void setModel(final RecipeCard card) { rightPanel.removeAll(); summaryPanel.removeElements(); card.getElements().forEach(this::addElement); } private void addElement(final Element comp) { summaryPanel.addElement(comp); rightPanel.add(new ElementPanel(comp)); } }