You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GrafikController.java 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package mvcgrafik.controller;
  7. import java.awt.Point;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.KeyEvent;
  11. import java.awt.event.KeyListener;
  12. import java.awt.event.MouseEvent;
  13. import java.awt.event.MouseListener;
  14. import java.awt.event.MouseMotionListener;
  15. import java.io.File;
  16. import java.io.IOException;
  17. import java.io.UnsupportedEncodingException;
  18. import java.util.logging.Level;
  19. import java.util.logging.Logger;
  20. import java.util.prefs.Preferences;
  21. import javax.swing.JFileChooser;
  22. import mvcgrafik.model.Figure;
  23. import mvcgrafik.model.GrafikModel;
  24. import mvcgrafik.view.GrafikMenuView;
  25. import mvcgrafik.logger.OhmLogger;
  26. /**
  27. *
  28. * @author le
  29. */
  30. public class GrafikController implements MouseMotionListener, MouseListener, ActionListener
  31. {
  32. private GrafikMenuView view;
  33. //private GrafikMenuView menuview;
  34. private GrafikModel model;
  35. private Figure figure;
  36. private Point p_old;
  37. private static Logger lg = OhmLogger.getLogger();
  38. public GrafikController(GrafikMenuView view, GrafikModel model)
  39. {
  40. this.view = view;
  41. this.model = model;
  42. }
  43. public void registerEvents()
  44. {
  45. view.addMouseMotionListener(this);
  46. view.addMouseListener(this);
  47. view.getBtnOpen().addActionListener(this);
  48. view.getBtnSafe().addActionListener(this);
  49. }
  50. @Override
  51. public void mouseDragged(MouseEvent evt)
  52. {
  53. if(figure == null)
  54. {
  55. lg.info("new Figure");
  56. figure = model.addFigure();
  57. }
  58. Point p = evt.getPoint();
  59. if(p_old != null){
  60. // view.drawLine(p, p_old);
  61. view.getGrafikView1().drawLine(p, p_old);
  62. }
  63. p_old = p;
  64. figure.addPoint(p);
  65. }
  66. @Override
  67. public void mouseMoved(MouseEvent e)
  68. {
  69. }
  70. @Override
  71. public void mouseClicked(MouseEvent e)
  72. {
  73. lg.info("clicked");
  74. figure = model.addFigure();
  75. }
  76. @Override
  77. public void mousePressed(MouseEvent e)
  78. {
  79. }
  80. @Override
  81. public void mouseReleased(MouseEvent evt)
  82. {
  83. p_old = null;
  84. figure = null;
  85. lg.info("Figure finished");
  86. if (evt.getButton() == MouseEvent.BUTTON3)
  87. {
  88. // view.doPrint();
  89. view.getGrafikView1().doPrint();
  90. }
  91. }
  92. @Override
  93. public void mouseEntered(MouseEvent e)
  94. {
  95. }
  96. @Override
  97. public void mouseExited(MouseEvent e)
  98. {
  99. }
  100. @Override
  101. public void actionPerformed(ActionEvent ae)
  102. {
  103. if(ae.getSource() == view.getBtnSafe())
  104. {
  105. Preferences pref = Preferences.userNodeForPackage(this.getClass());
  106. String path = pref.get("DEFAULT_PATH", "");
  107. view.getjFileChooser1().setCurrentDirectory(new File(path));
  108. int choice = view.getjFileChooser1().showSaveDialog(view);
  109. if (choice == JFileChooser.APPROVE_OPTION)
  110. {
  111. File selectedFile = view.getjFileChooser1().getSelectedFile();
  112. pref.put("DEFAULT_PATH", selectedFile.getAbsolutePath());
  113. try
  114. {
  115. //model.datenSpeichern(selectedFile);
  116. model.speichereDatei("TEST");
  117. }
  118. catch (UnsupportedEncodingException ex)
  119. {
  120. Logger.getLogger(GrafikController.class.getName()).log(Level.SEVERE, null, ex);
  121. }
  122. catch (IOException ex)
  123. {
  124. Logger.getLogger(GrafikController.class.getName()).log(Level.SEVERE, null, ex);
  125. }
  126. }
  127. }
  128. if(ae.getSource() == view.getBtnOpen())
  129. {
  130. Preferences pref = Preferences.userNodeForPackage(this.getClass());
  131. String path = pref.get("DEFAULT_PATH", "");
  132. view.getjFileChooser1().setCurrentDirectory(new File(path));
  133. int choice = view.getjFileChooser1().showOpenDialog(view);
  134. if (choice == JFileChooser.APPROVE_OPTION)
  135. {
  136. File selectedFile = view.getjFileChooser1().getSelectedFile();
  137. pref.put("DEFAULT_PATH", selectedFile.getAbsolutePath());
  138. try
  139. {
  140. //model.datenLesen(selectedFile);
  141. model.ladeDatei("TEST");
  142. }
  143. catch (UnsupportedEncodingException ex)
  144. {
  145. Logger.getLogger(GrafikController.class.getName()).log(Level.SEVERE, null, ex);
  146. }
  147. catch (IOException | ClassNotFoundException ex)
  148. {
  149. Logger.getLogger(GrafikController.class.getName()).log(Level.SEVERE, null, ex);
  150. }
  151. }
  152. }
  153. }
  154. }