PageRenderTime 60ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/src/mpv5/ui/dialogs/ScheduleDayEvent.java

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 386 lines | 316 code | 45 blank | 25 comment | 13 complexity | b549a211f895569d4722d5245b6f7756 MD5 | raw file
Possible License(s): LGPL-3.0, Apache-2.0, GPL-3.0, GPL-2.0, AGPL-3.0, JSON, BSD-3-Clause
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. /*
  6. * SplashScreen.java
  7. *
  8. * Created on 30.03.2009, 21:55:52
  9. */
  10. package mpv5.ui.dialogs;
  11. import java.util.ArrayList;
  12. import java.util.Date;
  13. import mpv5.db.common.Context;
  14. import mpv5.db.common.DatabaseObject;
  15. import mpv5.db.common.NodataFoundException;
  16. import mpv5.db.objects.Item;
  17. import mpv5.db.objects.Schedule;
  18. import mpv5.globals.Headers;
  19. import mpv5.globals.Messages;
  20. import mpv5.logging.Log;
  21. import mpv5.ui.misc.Position;
  22. import mpv5.utils.date.DateConverter;
  23. import mpv5.utils.models.MPTableModel;
  24. import mpv5.utils.tables.TableFormat;
  25. /**
  26. *
  27. *
  28. */
  29. public class ScheduleDayEvent extends javax.swing.JFrame {
  30. private static final long serialVersionUID = 1L;
  31. private static ScheduleDayEvent icke;
  32. private Schedule dataOwner;
  33. public static ScheduleDayEvent instanceOf() {
  34. if (icke == null) {
  35. icke = new ScheduleDayEvent();
  36. }
  37. return icke;
  38. }
  39. private String text = "";
  40. private ScheduleDayEvent() {
  41. initComponents();
  42. text = jLabel3.getText();
  43. refresh(null);
  44. labeledCombobox1.setSearchEnabled(true);
  45. labeledCombobox1.setContext(Context.getInvoice());
  46. setAlwaysOnTop(true);
  47. new Position(this);
  48. }
  49. @Override
  50. public void dispose() {
  51. setVisible(false);
  52. }
  53. public void setDate(Date tday) {
  54. labeledDateChooser1.setDate(DateConverter.addDays(tday, 0));
  55. labeledDateChooser2.setDate(DateConverter.addYear(tday));
  56. }
  57. /** This method is called from within the constructor to
  58. * initialize the form.
  59. * WARNING: Do NOT modify this code. The content of this method is
  60. * always regenerated by the Form Editor.
  61. */
  62. @SuppressWarnings("unchecked")
  63. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  64. private void initComponents() {
  65. jPanel1 = new javax.swing.JPanel();
  66. jScrollPane1 = new javax.swing.JScrollPane();
  67. jTable1 = new javax.swing.JTable();
  68. jLabel3 = new javax.swing.JLabel();
  69. labeledCombobox1 = new mpv5.ui.beans.LabeledCombobox();
  70. labeledSpinner1 = new mpv5.ui.beans.LabeledSpinner();
  71. jLabel1 = new javax.swing.JLabel();
  72. labeledDateChooser1 = new mpv5.ui.beans.LabeledDateChooser();
  73. labeledDateChooser2 = new mpv5.ui.beans.LabeledDateChooser();
  74. jPanel2 = new javax.swing.JPanel();
  75. jButton2 = new javax.swing.JButton();
  76. jSeparator1 = new javax.swing.JSeparator();
  77. jSeparator3 = new javax.swing.JSeparator();
  78. jButton3 = new javax.swing.JButton();
  79. jSeparator2 = new javax.swing.JSeparator();
  80. jButton1 = new javax.swing.JButton();
  81. jButton4 = new javax.swing.JButton();
  82. jButton5 = new javax.swing.JButton();
  83. setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  84. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle();
  85. setTitle(bundle.getString("ScheduleDayEvent.title")); // NOI18N
  86. setAlwaysOnTop(true);
  87. setName("Form"); // NOI18N
  88. jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ScheduleDayEvent.jPanel1.border.title"))); // NOI18N
  89. jPanel1.setName("jPanel1"); // NOI18N
  90. jScrollPane1.setName("jScrollPane1"); // NOI18N
  91. jTable1.setModel(new javax.swing.table.DefaultTableModel(
  92. new Object [][] {
  93. {},
  94. {},
  95. {},
  96. {}
  97. },
  98. new String [] {
  99. }
  100. ));
  101. jTable1.setName("jTable1"); // NOI18N
  102. jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
  103. public void mouseClicked(java.awt.event.MouseEvent evt) {
  104. jTable1MouseClicked(evt);
  105. }
  106. });
  107. jScrollPane1.setViewportView(jTable1);
  108. jLabel3.setText(bundle.getString("ScheduleDayEvent.jLabel3.text")); // NOI18N
  109. jLabel3.setName("jLabel3"); // NOI18N
  110. labeledCombobox1.set_Label(bundle.getString("ScheduleDayEvent.labeledCombobox1._Label")); // NOI18N
  111. labeledCombobox1.setName("labeledCombobox1"); // NOI18N
  112. labeledSpinner1.set_Label(bundle.getString("ScheduleDayEvent.labeledSpinner1._Label")); // NOI18N
  113. labeledSpinner1.setName("labeledSpinner1"); // NOI18N
  114. jLabel1.setText(bundle.getString("ScheduleDayEvent.jLabel1.text")); // NOI18N
  115. jLabel1.setName("jLabel1"); // NOI18N
  116. labeledDateChooser1.setToolTipText(bundle.getString("ScheduleDayEvent.labeledDateChooser1.toolTipText")); // NOI18N
  117. labeledDateChooser1.set_Label(bundle.getString("ScheduleDayEvent.labeledDateChooser1._Label")); // NOI18N
  118. labeledDateChooser1.setName("labeledDateChooser1"); // NOI18N
  119. labeledDateChooser2.set_Label(bundle.getString("ScheduleDayEvent.labeledDateChooser2._Label")); // NOI18N
  120. labeledDateChooser2.setName("labeledDateChooser2"); // NOI18N
  121. jPanel2.setName("jPanel2"); // NOI18N
  122. jButton2.setText(bundle.getString("ScheduleDayEvent.jButton2.text")); // NOI18N
  123. jButton2.setName("jButton2"); // NOI18N
  124. jButton2.addActionListener(new java.awt.event.ActionListener() {
  125. public void actionPerformed(java.awt.event.ActionEvent evt) {
  126. jButton2ActionPerformed(evt);
  127. }
  128. });
  129. jPanel2.add(jButton2);
  130. jSeparator1.setName("jSeparator1"); // NOI18N
  131. jPanel2.add(jSeparator1);
  132. jSeparator3.setName("jSeparator3"); // NOI18N
  133. jPanel2.add(jSeparator3);
  134. jButton3.setText(bundle.getString("ScheduleDayEvent.jButton3.text")); // NOI18N
  135. jButton3.setName("jButton3"); // NOI18N
  136. jButton3.addActionListener(new java.awt.event.ActionListener() {
  137. public void actionPerformed(java.awt.event.ActionEvent evt) {
  138. jButton3ActionPerformed(evt);
  139. }
  140. });
  141. jPanel2.add(jButton3);
  142. jSeparator2.setName("jSeparator2"); // NOI18N
  143. jPanel2.add(jSeparator2);
  144. jButton1.setText(bundle.getString("ScheduleDayEvent.jButton1.text")); // NOI18N
  145. jButton1.setName("jButton1"); // NOI18N
  146. jButton1.addActionListener(new java.awt.event.ActionListener() {
  147. public void actionPerformed(java.awt.event.ActionEvent evt) {
  148. jButton1ActionPerformed(evt);
  149. }
  150. });
  151. jPanel2.add(jButton1);
  152. jButton4.setText(bundle.getString("ScheduleDayEvent.jButton4.text")); // NOI18N
  153. jButton4.setName("jButton4"); // NOI18N
  154. jButton4.addActionListener(new java.awt.event.ActionListener() {
  155. public void actionPerformed(java.awt.event.ActionEvent evt) {
  156. jButton4ActionPerformed(evt);
  157. }
  158. });
  159. jPanel2.add(jButton4);
  160. jButton5.setText(bundle.getString("ScheduleDayEvent.jButton5.text")); // NOI18N
  161. jButton5.setName("jButton5"); // NOI18N
  162. jButton5.addActionListener(new java.awt.event.ActionListener() {
  163. public void actionPerformed(java.awt.event.ActionEvent evt) {
  164. jButton5ActionPerformed(evt);
  165. }
  166. });
  167. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  168. jPanel1.setLayout(jPanel1Layout);
  169. jPanel1Layout.setHorizontalGroup(
  170. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  171. .addGroup(jPanel1Layout.createSequentialGroup()
  172. .addContainerGap()
  173. .addComponent(labeledSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  174. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  175. .addComponent(jLabel1)
  176. .addContainerGap(96, Short.MAX_VALUE))
  177. .addGroup(jPanel1Layout.createSequentialGroup()
  178. .addContainerGap()
  179. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  180. .addComponent(labeledDateChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  181. .addComponent(labeledDateChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  182. .addContainerGap(107, Short.MAX_VALUE))
  183. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 353, Short.MAX_VALUE)
  184. .addGroup(jPanel1Layout.createSequentialGroup()
  185. .addContainerGap()
  186. .addComponent(labeledCombobox1, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE)
  187. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  188. .addComponent(jButton5)
  189. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  190. .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 353, Short.MAX_VALUE)
  191. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  192. .addContainerGap(47, Short.MAX_VALUE)
  193. .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  194. );
  195. jPanel1Layout.setVerticalGroup(
  196. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  197. .addGroup(jPanel1Layout.createSequentialGroup()
  198. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  199. .addGroup(jPanel1Layout.createSequentialGroup()
  200. .addComponent(labeledCombobox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  201. .addGap(18, 18, 18)
  202. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  203. .addComponent(jLabel1)
  204. .addComponent(labeledSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  205. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  206. .addComponent(labeledDateChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  207. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  208. .addComponent(labeledDateChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  209. .addComponent(jButton5, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE))
  210. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  211. .addComponent(jLabel3)
  212. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  213. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)
  214. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  215. .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  216. );
  217. getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
  218. pack();
  219. }// </editor-fold>//GEN-END:initComponents
  220. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  221. dispose();
  222. }//GEN-LAST:event_jButton2ActionPerformed
  223. private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
  224. Schedule d = (Schedule) jTable1.getModel().getValueAt(jTable1.convertRowIndexToModel(jTable1.getSelectedRow()), 0);
  225. if (d != null) {
  226. try {
  227. labeledCombobox1.setModel(d.getItem());
  228. } catch (NodataFoundException ex) {
  229. Log.Debug(ex);
  230. }
  231. labeledDateChooser1.setDate(d.__getStartdate());
  232. labeledDateChooser2.setDate(d.__getStopdate());
  233. labeledSpinner1.setValue(d.__getIntervalmonth());
  234. dataOwner = d;
  235. }
  236. }//GEN-LAST:event_jTable1MouseClicked
  237. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
  238. save(new Schedule());
  239. try {
  240. refresh(dataOwner.getItem());
  241. } catch (NodataFoundException ex) {
  242. Log.Debug(ex);
  243. }
  244. }//GEN-LAST:event_jButton4ActionPerformed
  245. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  246. save(dataOwner);
  247. try {
  248. refresh(dataOwner.getItem());
  249. } catch (Exception ex) {
  250. }
  251. }//GEN-LAST:event_jButton1ActionPerformed
  252. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
  253. if (dataOwner != null && dataOwner.isExisting()) {
  254. dataOwner.delete();
  255. try {
  256. refresh(dataOwner.getItem());
  257. } catch (NodataFoundException ex) {
  258. Log.Debug(ex);
  259. }
  260. }
  261. }//GEN-LAST:event_jButton3ActionPerformed
  262. private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
  263. try {
  264. mpv5.YabsViewProxy.instance().getIdentifierView().addTab(DatabaseObject.getObject(Context.getItem(), Integer.valueOf(labeledCombobox1.getSelectedItem().getId())));
  265. } catch (Exception ex) {
  266. Log.Debug(this, ex.getMessage());
  267. }
  268. }//GEN-LAST:event_jButton5ActionPerformed
  269. // Variables declaration - do not modify//GEN-BEGIN:variables
  270. private javax.swing.JButton jButton1;
  271. private javax.swing.JButton jButton2;
  272. private javax.swing.JButton jButton3;
  273. private javax.swing.JButton jButton4;
  274. private javax.swing.JButton jButton5;
  275. private javax.swing.JLabel jLabel1;
  276. private javax.swing.JLabel jLabel3;
  277. private javax.swing.JPanel jPanel1;
  278. private javax.swing.JPanel jPanel2;
  279. private javax.swing.JScrollPane jScrollPane1;
  280. private javax.swing.JSeparator jSeparator1;
  281. private javax.swing.JSeparator jSeparator2;
  282. private javax.swing.JSeparator jSeparator3;
  283. private javax.swing.JTable jTable1;
  284. private mpv5.ui.beans.LabeledCombobox labeledCombobox1;
  285. private mpv5.ui.beans.LabeledDateChooser labeledDateChooser1;
  286. private mpv5.ui.beans.LabeledDateChooser labeledDateChooser2;
  287. private mpv5.ui.beans.LabeledSpinner labeledSpinner1;
  288. // End of variables declaration//GEN-END:variables
  289. private void refresh(Item dao) {
  290. labeledSpinner1.setValue(1);
  291. if (dao != null) {
  292. jLabel3.setText(text + " " + dao);
  293. }
  294. ArrayList<Schedule> data = Schedule.getEvents(dao);
  295. Object[][] d = new Object[data.size()][];
  296. for (int i = 0; i < data.size(); i++) {
  297. Schedule schedule = data.get(i);
  298. d[i] = schedule.toArray();
  299. }
  300. jTable1.setModel(new MPTableModel(d, Headers.SCHEDULE_LIST));
  301. TableFormat.resizeCols(jTable1, new Integer[]{150}, true);
  302. }
  303. private void save(Schedule s) {
  304. if (s != null) {
  305. try {
  306. Item i = (Item) DatabaseObject.getObject(Context.getItem(),
  307. Integer.valueOf(labeledCombobox1.getSelectedItem().getId()));
  308. s.setCname("(" + Messages.SCHEDULE + ") " + i.toString());
  309. s.setItemsids(i.__getIDS());
  310. s.setGroupsids(i.__getGroupsids());
  311. s.setIntervalmonth(Integer.valueOf(labeledSpinner1.getSpinner().getValue().toString()));
  312. s.setStartdate(labeledDateChooser1.getDate());
  313. s.setStopdate(labeledDateChooser2.getDate());
  314. s.setUsersids(mpv5.db.objects.User.getCurrentUser().__getIDS());
  315. s.setNextdate(DateConverter.addMonths(labeledDateChooser1.getDate(),
  316. s.__getIntervalmonth()));
  317. s.setContactsids(i.__getContactsids());
  318. s.setEventtype(1);
  319. if (s.save()) {
  320. dataOwner = s;
  321. Popup.notice(Messages.SCHEDULE_NEXT
  322. + DateConverter.getDefDateString(DateConverter.addMonths(labeledDateChooser1.getDate(),
  323. s.__getIntervalmonth())));
  324. }
  325. } catch (Exception ex) {
  326. Log.Debug(this, ex.getMessage());
  327. Notificator.raiseNotification(ex, true);
  328. }
  329. }
  330. }
  331. /**
  332. *
  333. * @param dataOwner
  334. */
  335. public void setItem(Item dataOwner) {
  336. labeledCombobox1.setModel(dataOwner);
  337. setDate(new Date());
  338. refresh(dataOwner);
  339. setVisible(true);
  340. }
  341. }