PageRenderTime 40ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 251 lines | 185 code | 32 blank | 34 comment | 12 complexity | f0653b01da2dfe9553345acd262d0089 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. /*
  18. * GeneralListPanel.java
  19. *
  20. * Created on 03.04.2009, 15:26:37
  21. */
  22. package mpv5.ui.dialogs.subcomponents;
  23. import java.awt.Component;
  24. import java.awt.event.ActionEvent;
  25. import java.awt.event.ActionListener;
  26. import java.util.ArrayList;
  27. import java.util.List;
  28. import javax.swing.JPanel;
  29. import javax.swing.JTable;
  30. import javax.swing.RowFilter;
  31. import javax.swing.table.TableModel;
  32. import javax.swing.table.TableRowSorter;
  33. import mpv5.data.PropertyStore;
  34. import mpv5.db.objects.User;
  35. import mpv5.globals.LocalSettings;
  36. import mpv5.globals.Messages;
  37. import mpv5.ui.dialogs.ControlApplet;
  38. import mpv5.ui.dialogs.Popup;
  39. import mpv5.usermanagement.MPSecurityManager;
  40. import mpv5.utils.models.MPTableModel;
  41. import mpv5.utils.tables.TableFormat;
  42. /**
  43. *
  44. *
  45. */
  46. public class ControlPanel_AdvancedUserProperties extends javax.swing.JPanel implements ControlApplet {
  47. private static final long serialVersionUID = 1L;
  48. private static ControlPanel_AdvancedUserProperties ident;
  49. private PropertyStore oldvals;
  50. private java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle();
  51. /** Creates new form GeneralListPanel */
  52. public ControlPanel_AdvancedUserProperties() {
  53. initComponents();
  54. setData(User.getCurrentUser().getProperties());
  55. setupFilter();
  56. }
  57. public void setData(PropertyStore vals) {
  58. oldvals = vals;
  59. List<String[]> data = vals.getList();
  60. Object[][] list = new Object[data.size() + 10][2];
  61. for (int i = 0; i < data.size(); i++) {
  62. String[] strings = data.get(i);
  63. list[i][0] = strings[0].toUpperCase();
  64. list[i][1] = strings[1];
  65. }
  66. MPTableModel mod = new MPTableModel(list, new String[]{Messages.PROPERTY.getValue(), Messages.VALUE.getValue()});
  67. mod.setCanEdits(new boolean[]{true, true});
  68. mod.addRow(5);
  69. jTable1.setModel(mod);
  70. }
  71. /** This method is called from within the constructor to
  72. * initialize the form.
  73. * WARNING: Do NOT modify this code. The content of this method is
  74. * always regenerated by the Form Editor.
  75. */
  76. @SuppressWarnings("unchecked")
  77. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  78. private void initComponents() {
  79. jPanel2 = new javax.swing.JPanel();
  80. filter = new mpv5.ui.beans.LabeledTextField();
  81. jScrollPane1 = new javax.swing.JScrollPane();
  82. jTable1 = new javax.swing.JTable();
  83. jPanel1 = new javax.swing.JPanel();
  84. jButton1 = new javax.swing.JButton();
  85. jButton2 = new javax.swing.JButton();
  86. jButton3 = new javax.swing.JButton();
  87. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  88. setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_AdvancedUserProperties.border.title"))); // NOI18N
  89. setName("Form"); // NOI18N
  90. setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.PAGE_AXIS));
  91. jPanel2.setMaximumSize(new java.awt.Dimension(2147483647, 20));
  92. jPanel2.setName("jPanel2"); // NOI18N
  93. jPanel2.setLayout(new java.awt.BorderLayout());
  94. filter.set_Label(bundle.getString("ControlPanel_AdvancedUserProperties.filter._Label")); // NOI18N
  95. filter.setName("filter"); // NOI18N
  96. jPanel2.add(filter, java.awt.BorderLayout.CENTER);
  97. add(jPanel2);
  98. jScrollPane1.setName("jScrollPane1"); // NOI18N
  99. jTable1.setAutoCreateRowSorter(true);
  100. jTable1.setModel(new javax.swing.table.DefaultTableModel(
  101. new Object [][] {
  102. {},
  103. {},
  104. {},
  105. {}
  106. },
  107. new String [] {
  108. }
  109. ));
  110. jTable1.setName("jTable1"); // NOI18N
  111. jScrollPane1.setViewportView(jTable1);
  112. add(jScrollPane1);
  113. jPanel1.setBackground(new java.awt.Color(255, 255, 255));
  114. jPanel1.setName("jPanel1"); // NOI18N
  115. jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
  116. jButton1.setText(bundle.getString("ControlPanel_AdvancedUserProperties.jButton1.text")); // NOI18N
  117. jButton1.setName("jButton1"); // NOI18N
  118. jButton1.addActionListener(new java.awt.event.ActionListener() {
  119. public void actionPerformed(java.awt.event.ActionEvent evt) {
  120. jButton1ActionPerformed(evt);
  121. }
  122. });
  123. jPanel1.add(jButton1);
  124. jButton2.setText(bundle.getString("ControlPanel_AdvancedUserProperties.jButton2.text")); // NOI18N
  125. jButton2.setName("jButton2"); // NOI18N
  126. jButton2.addActionListener(new java.awt.event.ActionListener() {
  127. public void actionPerformed(java.awt.event.ActionEvent evt) {
  128. jButton2ActionPerformed(evt);
  129. }
  130. });
  131. jPanel1.add(jButton2);
  132. jButton3.setText(bundle.getString("ControlPanel_AdvancedUserProperties.jButton3.text")); // NOI18N
  133. jButton3.setName("jButton3"); // NOI18N
  134. jButton3.addActionListener(new java.awt.event.ActionListener() {
  135. public void actionPerformed(java.awt.event.ActionEvent evt) {
  136. jButton3ActionPerformed(evt);
  137. }
  138. });
  139. jPanel1.add(jButton3);
  140. add(jPanel1);
  141. }// </editor-fold>//GEN-END:initComponents
  142. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  143. if (Popup.Y_N_dialog(Messages.ADVANCED_SETTINGS_SAVE, Messages.WARNING)) {
  144. setSettings();
  145. User.getCurrentUser().saveProperties();
  146. setData(User.getCurrentUser().getProperties());
  147. }
  148. }//GEN-LAST:event_jButton1ActionPerformed
  149. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  150. setSettings();
  151. setData(User.getCurrentUser().getProperties());
  152. }//GEN-LAST:event_jButton2ActionPerformed
  153. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
  154. reset();
  155. }//GEN-LAST:event_jButton3ActionPerformed
  156. // Variables declaration - do not modify//GEN-BEGIN:variables
  157. private mpv5.ui.beans.LabeledTextField filter;
  158. private javax.swing.JButton jButton1;
  159. private javax.swing.JButton jButton2;
  160. private javax.swing.JButton jButton3;
  161. private javax.swing.JPanel jPanel1;
  162. private javax.swing.JPanel jPanel2;
  163. private javax.swing.JScrollPane jScrollPane1;
  164. private javax.swing.JTable jTable1;
  165. // End of variables declaration//GEN-END:variables
  166. @Override
  167. public Component getAndRemoveActionPanel() {
  168. remove(jPanel1);
  169. validate();
  170. return jPanel1;
  171. }
  172. @Override
  173. public void setValues(PropertyStore values) {
  174. setData(values);
  175. }
  176. @Override
  177. public String getUname() {
  178. return "advancedusersettings";
  179. }
  180. @Override
  181. public void reset() {
  182. if (oldvals != null) {
  183. setValues(oldvals);
  184. }
  185. }
  186. private void setSettings() {
  187. if (jTable1.getCellEditor() != null) {
  188. try {
  189. jTable1.getCellEditor().stopCellEditing();
  190. } catch (Exception e) {
  191. }
  192. }
  193. MPTableModel data = (MPTableModel) jTable1.getModel();
  194. int i = data.getRowCount();
  195. for (int j = 0; j < i; j++) {
  196. String value = String.valueOf(data.getValueAt(j, 1));
  197. String key = String.valueOf(data.getValueAt(j, 0)).toLowerCase();
  198. if (!key.equals("null") && key.length() > 0) {
  199. User.getCurrentUser().getProperties().changeProperty(key, value);
  200. }
  201. }
  202. }
  203. private void setupFilter() {
  204. final JTable table = jTable1;
  205. final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table.getModel());
  206. table.setRowSorter(sorter);
  207. filter.getTextField().addActionListener(new ActionListener() {
  208. @Override
  209. public void actionPerformed(ActionEvent e) {
  210. String text = filter.getText();
  211. if (text.length() == 0) {
  212. sorter.setRowFilter(null);
  213. } else {
  214. sorter.setRowFilter(RowFilter.regexFilter(text));
  215. }
  216. }
  217. });
  218. }
  219. }