CreateTemplatePopUp.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package ui.view;
  2. import classes.AbstractCpsObject;
  3. import classes.Category;
  4. import classes.HolonElement;
  5. import classes.HolonObject;
  6. import classes.Pair;
  7. import ui.controller.Control;
  8. import ui.model.Model;
  9. import javax.swing.*;
  10. import javax.swing.border.EmptyBorder;
  11. import javax.swing.filechooser.FileNameExtensionFilter;
  12. import java.awt.*;
  13. import java.awt.event.KeyEvent;
  14. import java.awt.event.KeyListener;
  15. import java.awt.event.MouseAdapter;
  16. import java.awt.event.MouseEvent;
  17. import java.io.*;
  18. import java.util.ArrayList;
  19. import java.awt.event.ActionListener;
  20. import java.awt.event.ActionEvent;
  21. /**
  22. * PopUp for creating Holon Object Template.
  23. *
  24. * @author Gruppe 07 (A.T.M-B)
  25. */
  26. public class CreateTemplatePopUp extends JDialog {
  27. private static final long serialVersionUID = 1L;
  28. /**
  29. * Original Object to be templated
  30. */
  31. private AbstractCpsObject originalObject;
  32. /**
  33. * Category the Template should be inserted into
  34. */
  35. private String givenCategory;
  36. private Control controller;
  37. private JTextField textField_name;
  38. private JTextField textField_imagePath;
  39. /**
  40. * Create the dialog.
  41. *
  42. * @param edit
  43. * true if edit
  44. * @param obj
  45. * the object
  46. * @param model
  47. * @param cat
  48. * the categorie
  49. */
  50. public CreateTemplatePopUp(AbstractCpsObject obj, Model model,
  51. JFrame parentFrame) {
  52. /*
  53. * use Category Controller an stuff lul
  54. */
  55. /*
  56. * initialize Data
  57. */
  58. originalObject = obj;
  59. /*
  60. * create Frame and GUI
  61. */
  62. setIconImage(Util.loadImage(this, "/Images/Dummy_House.png", 30, 30));
  63. setBounds(100, 100, 476, 344);
  64. setLocationRelativeTo(parentFrame);
  65. getContentPane().setLayout(new BorderLayout());
  66. JPanel contentPanel = new JPanel();
  67. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  68. getContentPane().add(contentPanel, BorderLayout.CENTER);
  69. contentPanel.setLayout(null);
  70. Choice choice = new Choice();
  71. choice.setBounds(86, 13, 172, 36);
  72. contentPanel.add(choice);
  73. //add categories
  74. for(Category c: model.getCategories())
  75. choice.add(c.getName());
  76. JLabel lblCategory = new JLabel("Category:");
  77. lblCategory.setBounds(12, 13, 68, 22);
  78. contentPanel.add(lblCategory);
  79. JButton btnCancel = new JButton("Cancel");
  80. btnCancel.setBounds(349, 257, 97, 25);
  81. contentPanel.add(btnCancel);
  82. btnCancel.addActionListener(e -> dispose());
  83. JButton btnAddTemplate = new JButton("Add Template");
  84. btnAddTemplate.setBounds(235, 257, 113, 25);
  85. contentPanel.add(btnAddTemplate);
  86. JLabel lblName = new JLabel("Name:");
  87. lblName.setBounds(12, 48, 56, 16);
  88. contentPanel.add(lblName);
  89. textField_name = new JTextField();
  90. textField_name.setBounds(86, 48, 172, 22);
  91. contentPanel.add(textField_name);
  92. textField_name.setColumns(10);
  93. textField_name.setText(obj.getName());
  94. JLabel lblImage = new JLabel("Image:");
  95. lblImage.setBounds(12, 89, 56, 16);
  96. contentPanel.add(lblImage);
  97. textField_imagePath = new JTextField();
  98. textField_imagePath.setBounds(86, 86, 172, 22);
  99. contentPanel.add(textField_imagePath);
  100. textField_imagePath.setColumns(10);
  101. textField_imagePath.setText(obj.getImage());
  102. JButton btnBrowseImage = new JButton("BrowseImage");
  103. btnBrowseImage.setBounds(268, 85, 117, 25);
  104. contentPanel.add(btnBrowseImage);
  105. JList list = new JList(((HolonObject)obj).getElements().toArray());
  106. list.setBounds(12, 118, 221, 166);
  107. contentPanel.add(list);
  108. JLabel lblNewLabel = new JLabel("New label");
  109. lblNewLabel.setIcon(new ImageIcon(Util.loadImage(this, obj.getImage(),62,62)));
  110. lblNewLabel.setBounds(298, 13, 62, 62);
  111. contentPanel.add(lblNewLabel);
  112. JButton btnDeleteElement = new JButton("Delete Element");
  113. btnDeleteElement.setBounds(245, 199, 140, 25);
  114. contentPanel.add(btnDeleteElement);
  115. JButton btnEditElement = new JButton("Edit Element");
  116. btnEditElement.setBounds(245, 161, 140, 25);
  117. contentPanel.add(btnEditElement);
  118. JButton btnAddElement = new JButton("Add Element");
  119. btnAddElement.setBounds(245, 123, 140, 25);
  120. contentPanel.add(btnAddElement);
  121. setTitle("Create Template Menu");
  122. }
  123. /**
  124. * Sets the Controller.
  125. *
  126. * @param controller
  127. * the controller
  128. */
  129. public void setController(Control controller) {
  130. this.controller = controller;
  131. }
  132. }