PageRenderTime 29ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 317 lines | 264 code | 33 blank | 20 comment | 17 complexity | e950556ea34e341fe04395de4f463f02 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. package mpv5.ui.dialogs.subcomponents;
  2. import java.awt.BorderLayout;
  3. import java.awt.event.ItemEvent;
  4. import java.awt.event.ItemListener;
  5. import java.awt.event.KeyEvent;
  6. import java.awt.event.MouseEvent;
  7. import java.math.BigDecimal;
  8. import javax.swing.JFrame;
  9. import mpv5.db.common.Context;
  10. import mpv5.db.common.NodataFoundException;
  11. import mpv5.db.objects.Product;
  12. import mpv5.db.objects.SubItem;
  13. import mpv5.db.objects.Tax;
  14. import mpv5.globals.Messages;
  15. import mpv5.utils.models.MPTableModel;
  16. import mpv5.utils.numberformat.FormatNumber;
  17. /**
  18. *
  19. *
  20. */
  21. public class ProductSelectDialog extends javax.swing.JPanel {
  22. private static ProductSelectDialog me;
  23. private static JFrame frame;
  24. /**
  25. * @param model
  26. * @param row
  27. * @param evt
  28. * @param productid
  29. * @param link
  30. * @param optional
  31. * @return
  32. */
  33. public static ProductSelectDialog instanceOf(MPTableModel model, int row, MouseEvent evt, int productid, Object link, Object optional) {
  34. if (me == null) {
  35. me = new ProductSelectDialog();
  36. frame = new JFrame();
  37. frame.setUndecorated(true);
  38. frame.setAlwaysOnTop(true);
  39. frame.setLayout(new BorderLayout());
  40. frame.add(me, BorderLayout.CENTER);
  41. frame.pack();
  42. frame.setTitle(Messages.ACTION_OPEN.toString());
  43. frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  44. }
  45. me.setModel(model);
  46. me.setEvent(evt);
  47. me.setRow(row);
  48. me.setProductid(productid);
  49. if (optional != null) {
  50. me.setOptional(optional.toString());
  51. }
  52. if (link != null) {
  53. me.setLink(link.toString());
  54. }
  55. if (productid > 0) {
  56. try {
  57. me.labeledCombobox1.setSelectedItem(Integer.valueOf(productid));
  58. me.statech();
  59. } catch (Exception e) {
  60. }
  61. }
  62. me.taxrate.setEnabled(!mpv5.db.objects.User.getCurrentUser().getProperties().getProperty("org.openyabs.uiproperty", "hidetaxcolumn"));
  63. // Point p = evt.getLocationOnScreen();
  64. // p.move(evt.getLocationOnScreen().x - me.getWidth(),
  65. // mpv5.YabsViewProxy.instance().identifierFrame.getY() + mpv5.YabsViewProxy.instance().identifierFrame.getHeight() - 310);
  66. // frame.setLocation(p);
  67. frame.setLocation(evt.getLocationOnScreen().x - me.getWidth(), evt.getLocationOnScreen().y);
  68. frame.setResizable(false);
  69. frame.setVisible(true);
  70. return me;
  71. }
  72. private MPTableModel model;
  73. private MouseEvent event;
  74. private int row;
  75. private int pid;
  76. private String optionalt;
  77. private String linkt;
  78. public ProductSelectDialog() {
  79. initComponents();
  80. jButton1.getInsets().set(0, 0, 0, 0);
  81. jButton2.getInsets().set(0, 0, 0, 0);
  82. validate();
  83. link.getTextField().setToolTipText("Google@http://www.google.de");
  84. taxrate.getComboBox().setEditable(false);
  85. taxrate.setSearchEnabled(true);
  86. taxrate.setContext(Context.getTaxes());
  87. taxrate.triggerSearch();
  88. value.set_ValueClass(Double.class);
  89. countt.set_ValueClass(Double.class);
  90. labeledCombobox1.setContext(Context.getProduct());
  91. labeledCombobox1.getComboBox().addItemListener(new ItemListener() {
  92. public void itemStateChanged(ItemEvent e) {
  93. statech();
  94. }
  95. });
  96. labeledCombobox1.triggerSearch();
  97. labeledCombobox1.getComboBox().setEditable(true);
  98. }
  99. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  100. private void initComponents() {
  101. jPanel1 = new javax.swing.JPanel();
  102. labeledCombobox1 = new mpv5.ui.beans.LabeledCombobox();
  103. jButton1 = new javax.swing.JButton();
  104. measure = new mpv5.ui.beans.LabeledTextField();
  105. taxrate = new mpv5.ui.beans.LabeledCombobox();
  106. value = new mpv5.ui.beans.LabeledTextField();
  107. jButton2 = new javax.swing.JButton();
  108. link = new mpv5.ui.beans.LabeledTextField();
  109. countt = new mpv5.ui.beans.LabeledTextField();
  110. opt = new mpv5.ui.beans.LabeledTextField();
  111. setBackground(new java.awt.Color(255, 255, 255));
  112. setName("Form"); // NOI18N
  113. setLayout(new java.awt.BorderLayout());
  114. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  115. jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ProductSelectDialog.jPanel1.border.title"))); // NOI18N
  116. jPanel1.setName("jPanel1"); // NOI18N
  117. jPanel1.addKeyListener(new java.awt.event.KeyAdapter() {
  118. public void keyPressed(java.awt.event.KeyEvent evt) {
  119. jPanel1KeyPressed(evt);
  120. }
  121. });
  122. labeledCombobox1.set_Label(bundle.getString("ProductSelectDialog.labeledCombobox1._Label")); // NOI18N
  123. labeledCombobox1.setName("labeledCombobox1"); // NOI18N
  124. labeledCombobox1.setSearchOnEnterEnabled(true);
  125. jButton1.setFont(new java.awt.Font("Dialog", 0, 10));
  126. jButton1.setText(bundle.getString("ProductSelectDialog.jButton1.text")); // NOI18N
  127. jButton1.setName("jButton1"); // NOI18N
  128. jButton1.addActionListener(new java.awt.event.ActionListener() {
  129. public void actionPerformed(java.awt.event.ActionEvent evt) {
  130. jButton1ActionPerformed(evt);
  131. }
  132. });
  133. measure.set_Label(bundle.getString("ProductSelectDialog.measure._Label")); // NOI18N
  134. measure.setName("measure"); // NOI18N
  135. taxrate.set_Label(bundle.getString("ProductSelectDialog.taxrate._Label")); // NOI18N
  136. taxrate.setName("taxrate"); // NOI18N
  137. value.set_Label(bundle.getString("ProductSelectDialog.value._Label")); // NOI18N
  138. value.setName("value"); // NOI18N
  139. jButton2.setFont(new java.awt.Font("Dialog", 0, 10));
  140. jButton2.setText(bundle.getString("ProductSelectDialog.jButton2.text")); // NOI18N
  141. jButton2.setName("jButton2"); // NOI18N
  142. jButton2.addActionListener(new java.awt.event.ActionListener() {
  143. public void actionPerformed(java.awt.event.ActionEvent evt) {
  144. jButton2ActionPerformed(evt);
  145. }
  146. });
  147. link.set_Label(bundle.getString("ProductSelectDialog.link._Label")); // NOI18N
  148. link.setName("link"); // NOI18N
  149. countt.set_Label(bundle.getString("ProductSelectDialog.countt._Label")); // NOI18N
  150. countt.set_Text(bundle.getString("ProductSelectDialog.countt._Text")); // NOI18N
  151. countt.setName("countt"); // NOI18N
  152. opt.set_Label(bundle.getString("ProductSelectDialog.opt._Label")); // NOI18N
  153. opt.setName("opt"); // NOI18N
  154. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  155. jPanel1.setLayout(jPanel1Layout);
  156. jPanel1Layout.setHorizontalGroup(
  157. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158. .addGroup(jPanel1Layout.createSequentialGroup()
  159. .addContainerGap()
  160. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  161. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  162. .addComponent(countt, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
  163. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  164. .addComponent(labeledCombobox1, javax.swing.GroupLayout.PREFERRED_SIZE, 326, javax.swing.GroupLayout.PREFERRED_SIZE))
  165. .addGroup(jPanel1Layout.createSequentialGroup()
  166. .addComponent(measure, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
  167. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  168. .addComponent(taxrate, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE)
  169. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  170. .addComponent(value, javax.swing.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE))
  171. .addComponent(link, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  172. .addComponent(opt, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  173. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  174. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  175. .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  176. .addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE))
  177. .addContainerGap())
  178. );
  179. jPanel1Layout.setVerticalGroup(
  180. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  181. .addGroup(jPanel1Layout.createSequentialGroup()
  182. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  183. .addComponent(jButton1, 0, 0, Short.MAX_VALUE)
  184. .addComponent(labeledCombobox1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  185. .addComponent(countt, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  186. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  187. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  188. .addComponent(jButton2)
  189. .addComponent(value, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  190. .addComponent(taxrate, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
  191. .addComponent(measure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  192. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  193. .addComponent(link, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  194. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  195. .addComponent(opt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  196. .addGap(37, 37, 37))
  197. );
  198. add(jPanel1, java.awt.BorderLayout.CENTER);
  199. }// </editor-fold>//GEN-END:initComponents
  200. private void statech() {
  201. try {
  202. Product p = (Product) Product.getObject(Context.getProduct(), Integer.valueOf(labeledCombobox1.getSelectedItem().getId()));
  203. measure.setText(p.__getMeasure());
  204. value.setText(FormatNumber.formatDezimal(p.findPriceFor(countt.getValue(0d))));
  205. taxrate.setSelectedItem(p.__getTaxids());
  206. if (linkt == null || linkt.length() == 0) {
  207. link.setText(p.__getUrl());
  208. } else {
  209. link.setText(linkt);
  210. }
  211. } catch (NodataFoundException ex) {
  212. measure.setText("");
  213. value.setText("");
  214. taxrate.setSelectedItem(0);
  215. }
  216. }
  217. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  218. SubItem s;
  219. try {
  220. s = new SubItem((Product) Product.getObject(Context.getProduct(), Integer.valueOf(labeledCombobox1.getSelectedItem().getId())));
  221. } catch (Exception ex) {
  222. s = SubItem.getDefaultItem();
  223. if (labeledCombobox1.getText() != null) {
  224. s.setDescription(labeledCombobox1.getText());
  225. }
  226. }
  227. s.setCountvalue(new BigDecimal(row));
  228. BigDecimal f = FormatNumber.parseDezimal(countt.getText());
  229. s.setQuantityvalue(f != null ? f : BigDecimal.ONE);
  230. s.setLinkurl(link.getText());
  231. s.setCname(opt.getText());
  232. s.setMeasure(measure.getText());
  233. try {
  234. s.setExternalvalue(FormatNumber.parseDezimal(value.getText()));
  235. } catch (Exception e) {
  236. }
  237. try {
  238. s.setTaxpercentvalue(Tax.getTaxValue(Integer.valueOf(taxrate.getSelectedItem().getId())));
  239. } catch (Exception numberFormatException) {
  240. }
  241. model.setRowAt(s.getRowData(row), row, 1);
  242. frame.setVisible(false);
  243. }//GEN-LAST:event_jButton1ActionPerformed
  244. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  245. frame.setVisible(false);
  246. }//GEN-LAST:event_jButton2ActionPerformed
  247. private void jPanel1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jPanel1KeyPressed
  248. if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
  249. frame.setVisible(false);
  250. }
  251. }//GEN-LAST:event_jPanel1KeyPressed
  252. // Variables declaration - do not modify//GEN-BEGIN:variables
  253. private mpv5.ui.beans.LabeledTextField countt;
  254. private javax.swing.JButton jButton1;
  255. private javax.swing.JButton jButton2;
  256. private javax.swing.JPanel jPanel1;
  257. private mpv5.ui.beans.LabeledCombobox labeledCombobox1;
  258. private mpv5.ui.beans.LabeledTextField link;
  259. private mpv5.ui.beans.LabeledTextField measure;
  260. private mpv5.ui.beans.LabeledTextField opt;
  261. private mpv5.ui.beans.LabeledCombobox taxrate;
  262. private mpv5.ui.beans.LabeledTextField value;
  263. // End of variables declaration//GEN-END:variables
  264. private void setModel(MPTableModel mode) {
  265. model = mode;
  266. }
  267. private void setEvent(MouseEvent evt) {
  268. event = evt;
  269. }
  270. private void setRow(int row) {
  271. this.row = row;
  272. }
  273. private void setProductid(int productid) {
  274. this.pid = productid;
  275. }
  276. private void setOptional(String optional) {
  277. this.optionalt = optional;
  278. opt.setText(optional);
  279. }
  280. private void setLink(String links) {
  281. this.linkt = links;
  282. link.setText(links);
  283. }
  284. }