PageRenderTime 42ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/src/mpv5/ui/dialogs/subcomponents/ItemTextAreaDialog.java

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 214 lines | 154 code | 26 blank | 34 comment | 13 complexity | 40c4a9b626a8cc6763e8d198bc8736ba 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. * This file is part of YaBS.
  3. *
  4. * YaBS is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation, either version 3 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * YaBS is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with YaBS. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. package mpv5.ui.dialogs.subcomponents;
  18. import java.awt.event.ActionEvent;
  19. import java.awt.event.ActionListener;
  20. import java.awt.event.KeyEvent;
  21. import java.awt.event.KeyListener;
  22. import java.math.BigDecimal;
  23. import javax.swing.JTable;
  24. import mpv5.db.common.Context;
  25. import mpv5.db.common.DatabaseObject;
  26. import mpv5.db.objects.Product;
  27. import mpv5.db.objects.SubItem;
  28. import mpv5.db.objects.User;
  29. import mpv5.globals.Messages;
  30. import mpv5.logging.Log;
  31. import mpv5.utils.models.MPTableModel;
  32. public class ItemTextAreaDialog extends javax.swing.JDialog implements KeyListener, DatabaseObejctReceiver {
  33. private JTable parentTable;
  34. private mpv5.db.objects.Product product;
  35. /** Creates new form ItemTextAreaDialog */
  36. public ItemTextAreaDialog(java.awt.Frame parent, boolean modal) {
  37. super(parent, modal);
  38. setResizable(false);
  39. setUndecorated(true);
  40. initComponents();
  41. textArea.addKeyListener(this);
  42. // okButton.setToolTipText("ctrl+Enter");
  43. cancelButton.setToolTipText("Esc");
  44. labeledCombobox1.setContext(Context.getProduct());
  45. labeledCombobox1.setSearchOnEnterEnabled(true);;
  46. labeledCombobox1.setReceiver(this);
  47. labeledCombobox1.setToolTipText(Messages.SEARCHABLE.toString());
  48. labeledSpinner1.setValue(1);
  49. }
  50. @Override
  51. public void setVisible(boolean visible) {
  52. super.setVisible(visible);
  53. if(visible)textArea.grabFocus();
  54. }
  55. /** This method is called from within the constructor to
  56. * initialize the form.
  57. * WARNING: Do NOT modify this code. The content of this method is
  58. * always regenerated by the Form Editor.
  59. */
  60. @SuppressWarnings("unchecked")
  61. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  62. private void initComponents() {
  63. jScrollPane1 = new javax.swing.JScrollPane();
  64. textArea = new javax.swing.JTextArea();
  65. okButton = new javax.swing.JButton();
  66. cancelButton = new javax.swing.JButton();
  67. labeledCombobox1 = new mpv5.ui.beans.LabeledCombobox();
  68. labeledSpinner1 = new mpv5.ui.beans.LabeledSpinner();
  69. setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  70. setName("Form"); // NOI18N
  71. jScrollPane1.setName("jScrollPane1"); // NOI18N
  72. textArea.setColumns(20);
  73. textArea.setRows(5);
  74. textArea.setName("textArea"); // NOI18N
  75. jScrollPane1.setViewportView(textArea);
  76. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  77. okButton.setText(bundle.getString("okButton")); // NOI18N
  78. okButton.setName("okButton"); // NOI18N
  79. okButton.addActionListener(new java.awt.event.ActionListener() {
  80. public void actionPerformed(java.awt.event.ActionEvent evt) {
  81. okButtonActionPerformed(evt);
  82. }
  83. });
  84. cancelButton.setText(bundle.getString("cancelButton")); // NOI18N
  85. cancelButton.setActionCommand("CANCEL"); // NOI18N
  86. cancelButton.setName("cancelButton"); // NOI18N
  87. labeledCombobox1.set_Label(bundle.getString("ItemTextAreaDialog.labeledCombobox1._Label")); // NOI18N
  88. labeledCombobox1.setName("labeledCombobox1"); // NOI18N
  89. labeledSpinner1.set_Label(bundle.getString("ItemTextAreaDialog.labeledSpinner1._Label")); // NOI18N
  90. labeledSpinner1.setName("labeledSpinner1"); // NOI18N
  91. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  92. getContentPane().setLayout(layout);
  93. layout.setHorizontalGroup(
  94. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  95. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  96. .addComponent(labeledSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  97. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 86, Short.MAX_VALUE)
  98. .addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE)
  99. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  100. .addComponent(cancelButton)
  101. .addGap(11, 11, 11))
  102. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 421, Short.MAX_VALUE)
  103. .addComponent(labeledCombobox1, javax.swing.GroupLayout.DEFAULT_SIZE, 421, Short.MAX_VALUE)
  104. );
  105. layout.setVerticalGroup(
  106. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  107. .addGroup(layout.createSequentialGroup()
  108. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  109. .addGap(0, 0, 0)
  110. .addComponent(labeledCombobox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  111. .addGap(3, 3, 3)
  112. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  113. .addComponent(okButton)
  114. .addComponent(cancelButton)
  115. .addComponent(labeledSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
  116. .addContainerGap())
  117. );
  118. pack();
  119. }// </editor-fold>//GEN-END:initComponents
  120. private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
  121. setRow();
  122. // Log.Debug(this, evt);
  123. }//GEN-LAST:event_okButtonActionPerformed
  124. // Variables declaration - do not modify//GEN-BEGIN:variables
  125. public javax.swing.JButton cancelButton;
  126. private javax.swing.JScrollPane jScrollPane1;
  127. private mpv5.ui.beans.LabeledCombobox labeledCombobox1;
  128. private mpv5.ui.beans.LabeledSpinner labeledSpinner1;
  129. public javax.swing.JButton okButton;
  130. public javax.swing.JTextArea textArea;
  131. // End of variables declaration//GEN-END:variables
  132. public void keyTyped(KeyEvent e) {
  133. }
  134. public void keyPressed(KeyEvent e) {
  135. if (e.isControlDown() && e.getKeyCode() == e.VK_ENTER) {
  136. ActionListener[] listeners = okButton.getActionListeners();
  137. ActionEvent actionEvent = new ActionEvent(okButton, ActionEvent.ACTION_PERFORMED, okButton.getActionCommand());
  138. for (int i = 0; i < listeners.length; i++) {
  139. listeners[i].actionPerformed(actionEvent);
  140. }
  141. setRow();
  142. } else if (e.getKeyCode() == e.VK_ESCAPE) {
  143. ActionListener[] listeners = cancelButton.getActionListeners();
  144. ActionEvent actionEvent = new ActionEvent(cancelButton, ActionEvent.ACTION_PERFORMED, cancelButton.getActionCommand());
  145. for (int i = 0; i < listeners.length; i++) {
  146. listeners[i].actionPerformed(actionEvent);
  147. }
  148. }
  149. }
  150. public void keyReleased(KeyEvent e) {
  151. }
  152. @Override
  153. public void receive(DatabaseObject obj) {
  154. if (obj.getContext().equals(Context.getProduct())) {
  155. this.product = (Product) obj;
  156. textArea.setText(product.__getCname());
  157. }
  158. }
  159. private synchronized void setRow() {
  160. SubItem p;
  161. MPTableModel m = (MPTableModel) getParentTable().getModel();
  162. if (product == null) {
  163. p = SubItem.getFromModel(m, getParentTable().getSelectedRow());
  164. } else {
  165. p = new SubItem(product);
  166. // p.setQuantityvalue(new BigDecimal(labeledSpinner1.get_Value().toString()));
  167. p.setExternalvalue(product.findPriceFor(p.__getCountvalue().doubleValue()));
  168. }
  169. p.setDescription(textArea.getText());
  170. p.setQuantityvalue(new BigDecimal(labeledSpinner1.get_Value().toString()));
  171. m.setRowAt(p.getRowData(getParentTable().getSelectedRow()), getParentTable().getSelectedRow(), 1, 14);
  172. labeledCombobox1.setSelectedIndex(-1);
  173. product = null;
  174. setVisible(false);
  175. }
  176. /**
  177. * @return the parentTable
  178. */
  179. public JTable getParentTable() {
  180. return parentTable;
  181. }
  182. /**
  183. * @param parentTable the parentTable to set
  184. */
  185. public void setParentTable(JTable parentTable) {
  186. this.parentTable = parentTable;
  187. }
  188. }