PageRenderTime 89ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 369 lines | 303 code | 56 blank | 10 comment | 16 complexity | 3c5c779f904e36782dd6be651dbec916 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.Component;
  3. import javax.swing.DefaultListModel;
  4. import javax.swing.ListModel;
  5. import javax.swing.SwingUtilities;
  6. import mpv5.data.PropertyStore;
  7. import mpv5.db.common.Context;
  8. import mpv5.db.common.DatabaseObject;
  9. import mpv5.db.common.NodataFoundException;
  10. import mpv5.db.objects.Group;
  11. import mpv5.db.objects.ValueProperty;
  12. import mpv5.globals.LocalSettings;
  13. import mpv5.logging.Log;
  14. import mpv5.ui.dialogs.ControlApplet;
  15. import mpv5.ui.dialogs.Popup;
  16. import mpv5.ui.dialogs.Search2;
  17. /**
  18. *
  19. *
  20. */
  21. public class ControlPanel_ValueProps extends javax.swing.JPanel implements ControlApplet, DatabaseObejctReceiver {
  22. private static final long serialVersionUID = 1L;
  23. /**
  24. * This unique name identifies this control applet
  25. */
  26. public final String UNAME = "valueproperties";
  27. private PropertyStore oldvalues;
  28. private ValueProperty dataOwner;
  29. public ControlPanel_ValueProps() {
  30. initComponents();
  31. setVisible(true);
  32. labeledCombobox1.setEditable(false);
  33. labeledCombobox1.setContext(Context.getValueProperties());
  34. labeledCombobox1.setReceiver(this);
  35. refresh();
  36. }
  37. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  38. private void initComponents() {
  39. jScrollPane6 = new javax.swing.JScrollPane();
  40. jPanel3 = new javax.swing.JPanel();
  41. jScrollPane4 = new javax.swing.JScrollPane();
  42. jList1 = new javax.swing.JList();
  43. jLabel1 = new javax.swing.JLabel();
  44. jLabel2 = new javax.swing.JLabel();
  45. jScrollPane5 = new javax.swing.JScrollPane();
  46. jList2 = new javax.swing.JList();
  47. labeledCombobox1 = new mpv5.ui.beans.LabeledCombobox();
  48. jPanel6 = new javax.swing.JPanel();
  49. jButton6 = new javax.swing.JButton();
  50. jScrollPane2 = new javax.swing.JScrollPane();
  51. jTextPane2 = new javax.swing.JTextPane();
  52. labeledTextField1 = new mpv5.ui.beans.LabeledTextField();
  53. jPanel1 = new javax.swing.JPanel();
  54. jButton1 = new javax.swing.JButton();
  55. jButton4 = new javax.swing.JButton();
  56. jButton5 = new javax.swing.JButton();
  57. setName("Form"); // NOI18N
  58. setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.PAGE_AXIS));
  59. jScrollPane6.setName("jScrollPane6"); // NOI18N
  60. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  61. jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_ValueProps.jPanel3.border.title"))); // NOI18N
  62. jPanel3.setName("jPanel3"); // NOI18N
  63. jScrollPane4.setName("jScrollPane4"); // NOI18N
  64. jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
  65. jList1.setName("jList1"); // NOI18N
  66. jScrollPane4.setViewportView(jList1);
  67. jLabel1.setText(bundle.getString("ControlPanel_ValueProps.jLabel1.text")); // NOI18N
  68. jLabel1.setName("jLabel1"); // NOI18N
  69. jLabel2.setText(bundle.getString("ControlPanel_ValueProps.jLabel2.text")); // NOI18N
  70. jLabel2.setName("jLabel2"); // NOI18N
  71. jScrollPane5.setName("jScrollPane5"); // NOI18N
  72. jList2.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
  73. jList2.setName("jList2"); // NOI18N
  74. jScrollPane5.setViewportView(jList2);
  75. labeledCombobox1.set_Label(bundle.getString("ControlPanel_ValueProps.labeledCombobox1._Label")); // NOI18N
  76. labeledCombobox1.setName("labeledCombobox1"); // NOI18N
  77. jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_ValueProps.jPanel6.border.title"))); // NOI18N
  78. jPanel6.setName("jPanel6"); // NOI18N
  79. jPanel6.setPreferredSize(new java.awt.Dimension(200, 100));
  80. jButton6.setText(bundle.getString("ControlPanel_ValueProps.jButton6.text")); // NOI18N
  81. jButton6.setName("jButton6"); // NOI18N
  82. jButton6.addActionListener(new java.awt.event.ActionListener() {
  83. public void actionPerformed(java.awt.event.ActionEvent evt) {
  84. jButton6ActionPerformed(evt);
  85. }
  86. });
  87. jScrollPane2.setName("jScrollPane2"); // NOI18N
  88. jTextPane2.setText(bundle.getString("ControlPanel_ValueProps.jTextPane2.text")); // NOI18N
  89. jTextPane2.setName("jTextPane2"); // NOI18N
  90. jScrollPane2.setViewportView(jTextPane2);
  91. javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
  92. jPanel6.setLayout(jPanel6Layout);
  93. jPanel6Layout.setHorizontalGroup(
  94. jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  95. .addGroup(jPanel6Layout.createSequentialGroup()
  96. .addContainerGap()
  97. .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  98. .addGroup(jPanel6Layout.createSequentialGroup()
  99. .addComponent(jButton6)
  100. .addGap(417, 417, 417))
  101. .addGroup(jPanel6Layout.createSequentialGroup()
  102. .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 542, Short.MAX_VALUE)
  103. .addContainerGap())))
  104. );
  105. jPanel6Layout.setVerticalGroup(
  106. jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  107. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
  108. .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 139, Short.MAX_VALUE)
  109. .addGap(13, 13, 13)
  110. .addComponent(jButton6))
  111. );
  112. labeledTextField1.set_Label(bundle.getString("ControlPanel_ValueProps.labeledTextField1._Label")); // NOI18N
  113. labeledTextField1.setName("labeledTextField1"); // NOI18N
  114. javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
  115. jPanel3.setLayout(jPanel3Layout);
  116. jPanel3Layout.setHorizontalGroup(
  117. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  118. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  119. .addComponent(labeledCombobox1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  120. .addComponent(labeledTextField1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  121. .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
  122. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  123. .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)
  124. .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  125. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  126. .addGroup(jPanel3Layout.createSequentialGroup()
  127. .addGap(95, 95, 95)
  128. .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE))
  129. .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel3Layout.createSequentialGroup()
  130. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  131. .addComponent(jScrollPane5)))))
  132. .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 578, Short.MAX_VALUE)
  133. );
  134. jPanel3Layout.setVerticalGroup(
  135. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  136. .addGroup(jPanel3Layout.createSequentialGroup()
  137. .addComponent(labeledCombobox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  138. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  139. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  140. .addComponent(jLabel1)
  141. .addComponent(jLabel2))
  142. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  143. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  144. .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 181, Short.MAX_VALUE)
  145. .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 181, Short.MAX_VALUE))
  146. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  147. .addComponent(labeledTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  148. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  149. .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, 207, Short.MAX_VALUE))
  150. );
  151. jScrollPane6.setViewportView(jPanel3);
  152. add(jScrollPane6);
  153. jPanel1.setBackground(new java.awt.Color(255, 255, 255));
  154. jPanel1.setName("jPanel1"); // NOI18N
  155. jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
  156. jButton1.setText(bundle.getString("ControlPanel_ValueProps.jButton1.text")); // NOI18N
  157. jButton1.setName("jButton1"); // NOI18N
  158. jButton1.addActionListener(new java.awt.event.ActionListener() {
  159. public void actionPerformed(java.awt.event.ActionEvent evt) {
  160. jButton1ActionPerformed(evt);
  161. }
  162. });
  163. jPanel1.add(jButton1);
  164. jButton4.setText(bundle.getString("ControlPanel_ValueProps.jButton4.text")); // NOI18N
  165. jButton4.setName("jButton4"); // NOI18N
  166. jButton4.addActionListener(new java.awt.event.ActionListener() {
  167. public void actionPerformed(java.awt.event.ActionEvent evt) {
  168. jButton4ActionPerformed(evt);
  169. }
  170. });
  171. jPanel1.add(jButton4);
  172. jButton5.setText(bundle.getString("ControlPanel_ValueProps.jButton5.text")); // NOI18N
  173. jButton5.setName("jButton5"); // NOI18N
  174. jButton5.addActionListener(new java.awt.event.ActionListener() {
  175. public void actionPerformed(java.awt.event.ActionEvent evt) {
  176. jButton5ActionPerformed(evt);
  177. }
  178. });
  179. jPanel1.add(jButton5);
  180. add(jPanel1);
  181. }// </editor-fold>//GEN-END:initComponents
  182. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  183. if (dataOwner != null) {
  184. dataOwner.delete();
  185. refresh();
  186. dataOwner = null;
  187. }
  188. }//GEN-LAST:event_jButton1ActionPerformed
  189. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
  190. prepare();
  191. String cname = labeledTextField1.getText(true, "key");
  192. String val = "#" + jTextPane2.getText() + "#";
  193. if (dataOwner == null) {
  194. dataOwner = new ValueProperty(cname, val, (Context) jList1.getSelectedValue(), (Group) jList2.getSelectedValue());
  195. } else {
  196. dataOwner.setValueObj(val);
  197. dataOwner.setCname(cname);
  198. dataOwner.setContextids(((Context) jList1.getSelectedValue()).getId());
  199. dataOwner.setGroup((Group) jList2.getSelectedValue());
  200. }
  201. dataOwner.save();
  202. refresh();
  203. }//GEN-LAST:event_jButton4ActionPerformed
  204. private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
  205. prepare();
  206. String cname = labeledTextField1.getText(true, "key");
  207. String val = "#" + jTextPane2.getText() + "#";
  208. ValueProperty xx = new ValueProperty(cname, val, (Context) jList1.getSelectedValue(), (Group) jList2.getSelectedValue());
  209. if (xx.save()) {
  210. dataOwner = xx;
  211. }
  212. refresh();
  213. }//GEN-LAST:event_jButton5ActionPerformed
  214. private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
  215. DatabaseObject s = Search2.showSearchFor(Context.getItem());
  216. if (s != null) {
  217. try {
  218. Popup.notice(s.evaluate(jTextPane2.getText()));
  219. } catch (Exception e) {
  220. Popup.error(e);
  221. }
  222. }
  223. }//GEN-LAST:event_jButton6ActionPerformed
  224. @Override
  225. public void setValues(PropertyStore values) {
  226. oldvalues = values;
  227. }
  228. @Override
  229. public String getUname() {
  230. return UNAME;
  231. }
  232. @Override
  233. public void reset() {
  234. setValues(oldvalues);
  235. }
  236. // Variables declaration - do not modify//GEN-BEGIN:variables
  237. private javax.swing.JButton jButton1;
  238. private javax.swing.JButton jButton4;
  239. private javax.swing.JButton jButton5;
  240. private javax.swing.JButton jButton6;
  241. private javax.swing.JLabel jLabel1;
  242. private javax.swing.JLabel jLabel2;
  243. private javax.swing.JList jList1;
  244. private javax.swing.JList jList2;
  245. private javax.swing.JPanel jPanel1;
  246. private javax.swing.JPanel jPanel3;
  247. private javax.swing.JPanel jPanel6;
  248. private javax.swing.JScrollPane jScrollPane2;
  249. private javax.swing.JScrollPane jScrollPane4;
  250. private javax.swing.JScrollPane jScrollPane5;
  251. private javax.swing.JScrollPane jScrollPane6;
  252. private javax.swing.JTextPane jTextPane2;
  253. private mpv5.ui.beans.LabeledCombobox labeledCombobox1;
  254. private mpv5.ui.beans.LabeledTextField labeledTextField1;
  255. // End of variables declaration//GEN-END:variables
  256. private void setSettings() {
  257. }
  258. @Override
  259. public Component getAndRemoveActionPanel() {
  260. this.remove(jPanel1);
  261. validate();
  262. return jPanel1;
  263. }
  264. private void refresh() {
  265. Runnable runnable = new Runnable() {
  266. public void run() {
  267. DefaultListModel def = new DefaultListModel();
  268. for (Context c : Context.getCacheableContexts()) {
  269. def.addElement(c);
  270. }
  271. jList1.setModel(def);
  272. DefaultListModel def1 = new DefaultListModel();
  273. try {
  274. for (DatabaseObject c : Group.getObjects(Context.getGroup())) {
  275. def1.addElement((Group) c);
  276. }
  277. } catch (NodataFoundException ex) {
  278. Log.Debug(ex);
  279. }
  280. jList2.setModel(def1);
  281. labeledCombobox1.setModel(DatabaseObject.toObjectList(ValueProperty.getGroupProperties()));
  282. }
  283. };
  284. SwingUtilities.invokeLater(runnable);
  285. }
  286. public void receive(final DatabaseObject obj) {
  287. Runnable runnable = new Runnable() {
  288. public void run() {
  289. dataOwner = (ValueProperty) obj;
  290. jTextPane2.setText(dataOwner.getValue().toString().replace("#", ""));
  291. labeledTextField1.setText(dataOwner.getKey());
  292. jList1.setSelectedValue(Context.getByID(((ValueProperty) obj).__getContextids()), true);
  293. try {
  294. jList2.setSelectedValue(((ValueProperty) obj).getGroup(), true);
  295. } catch ( Exception ex) {
  296. Log.Debug(ex);
  297. }
  298. }
  299. };
  300. SwingUtilities.invokeLater(runnable);
  301. }
  302. private void prepare() {
  303. if (jList1.getSelectedValue() == null) {
  304. jList1.setSelectedIndex(0);
  305. }
  306. if (jList2.getSelectedValue() == null) {
  307. jList2.setSelectedIndex(0);
  308. }
  309. if (jTextPane2.getText().length() == 0) {
  310. jTextPane2.setText("return \"\"");
  311. }
  312. }
  313. }