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.Getter;
  10. import lombok.experimental.FieldDefaults;
  11. import javax.swing.JPanel;
  12. @SuppressWarnings("serial")
  13. @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
  14. public class RecipeCardPanel extends JSplitPane implements FileController.ViewModel {
  15. @Getter(AccessLevel.PACKAGE) SummaryPanel summaryPanel;
  16. @Getter(AccessLevel.PACKAGE) JPanel rightPanel;
  17. public RecipeCardPanel() {
  18. rightPanel = new JPanel();
  19. rightPanel.setLayout(new VerticalLayout(5));
  20. setRightComponent(rightPanel);
  21. summaryPanel = new SummaryPanel();
  22. setLeftComponent(summaryPanel);
  23. }
  24. @Override
  25. public void setModel(final RecipeCard card) {
  26. rightPanel.removeAll();
  27. summaryPanel.removeElements();
  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. }