RecipeCardPanel.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package org.leumasjaffe.recipe.view;
  2. import javax.swing.JSplitPane;
  3. import org.jdesktop.swingx.VerticalLayout;
  4. import org.leumasjaffe.recipe.controller.FileController;
  5. import org.leumasjaffe.recipe.model.Element;
  6. import org.leumasjaffe.recipe.model.RecipeCard;
  7. import org.leumasjaffe.recipe.view.summary.SummaryPanel;
  8. import lombok.AccessLevel;
  9. import lombok.experimental.FieldDefaults;
  10. import javax.swing.JPanel;
  11. @SuppressWarnings("serial")
  12. @FieldDefaults(level=AccessLevel.PRIVATE)
  13. public class RecipeCardPanel extends JSplitPane implements FileController.ViewModel {
  14. SummaryPanel summaryPanel;
  15. JPanel rightPanel;
  16. public RecipeCardPanel() {
  17. rightPanel = new JPanel();
  18. rightPanel.setLayout(new VerticalLayout(5));
  19. setRightComponent(rightPanel);
  20. summaryPanel = new SummaryPanel();
  21. setLeftComponent(summaryPanel);
  22. }
  23. @Override
  24. public void setModel(final RecipeCard card) {
  25. rightPanel.removeAll();
  26. summaryPanel.removeElements();
  27. summaryPanel.setCollatedDuration(card.getCollatedDuration());
  28. card.getElements().forEach(this::addElement);
  29. }
  30. private void addElement(final Element comp) {
  31. summaryPanel.addElement(comp);
  32. rightPanel.add(new ElementPanel(comp));
  33. }
  34. }