PageRenderTime 53ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 319 lines | 268 code | 44 blank | 7 comment | 12 complexity | fd75f7ca30acee8c8abd6a7f4ab23581 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.Cursor;
  3. import java.util.List;
  4. import java.util.Vector;
  5. import javax.swing.DefaultComboBoxModel;
  6. import mpv5.db.common.ConnectionTypeHandler;
  7. import mpv5.db.common.Context;
  8. import mpv5.db.common.DatabaseConnection;
  9. import mpv5.db.common.DatabaseObject;
  10. import mpv5.db.common.NodataFoundException;
  11. import mpv5.db.common.QueryHandler;
  12. import mpv5.db.common.ReturnValue;
  13. import mpv5.globals.Messages;
  14. import mpv5.logging.Log;
  15. import mpv5.ui.dialogs.DialogForFile;
  16. import mpv5.ui.dialogs.Popup;
  17. import mpv5.ui.dialogs.WizardMaster;
  18. import mpv5.ui.dialogs.Wizardable;
  19. /**
  20. *
  21. *
  22. */
  23. public class wizard_Yabs1_Import extends javax.swing.JPanel implements Wizardable {
  24. private static final long serialVersionUID = -8347532498124147821L;
  25. private WizardMaster master;
  26. private DatabaseConnection conn;
  27. private QueryHandler qh;
  28. private int imports;
  29. public wizard_Yabs1_Import(WizardMaster w) {
  30. this.master = w;
  31. initComponents();
  32. path.setFilter(DialogForFile.DIRECTORIES);
  33. jComboBox1.setModel(new DefaultComboBoxModel(ConnectionTypeHandler.DRIVERS));
  34. path.setModalityParent(this);
  35. }
  36. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  37. private void initComponents() {
  38. jPanel1 = new javax.swing.JPanel();
  39. path = new mpv5.ui.beans.LabeledTextChooser();
  40. jLabel1 = new javax.swing.JLabel();
  41. contacts = new javax.swing.JCheckBox();
  42. products = new javax.swing.JCheckBox();
  43. accounts = new javax.swing.JCheckBox();
  44. groups = new javax.swing.JCheckBox();
  45. adresses = new javax.swing.JCheckBox();
  46. users = new javax.swing.JCheckBox();
  47. jComboBox1 = new javax.swing.JComboBox();
  48. jLabel2 = new javax.swing.JLabel();
  49. dbname = new mpv5.ui.beans.LabeledTextField();
  50. dbuser = new mpv5.ui.beans.LabeledTextField();
  51. dbpassword = new mpv5.ui.beans.LabeledTextField();
  52. dbprefix = new mpv5.ui.beans.LabeledTextField();
  53. setBackground(new java.awt.Color(255, 255, 255));
  54. setName("Form"); // NOI18N
  55. setLayout(new java.awt.BorderLayout());
  56. jPanel1.setBackground(new java.awt.Color(255, 255, 255));
  57. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  58. jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("wizard_Yabs1_Import.jPanel1.border.title"))); // NOI18N
  59. jPanel1.setName("jPanel1"); // NOI18N
  60. path.set_Label(bundle.getString("wizard_Yabs1_Import.path._Label")); // NOI18N
  61. path.setName("path"); // NOI18N
  62. jLabel1.setFont(jLabel1.getFont().deriveFont(jLabel1.getFont().getStyle() & ~java.awt.Font.BOLD));
  63. jLabel1.setText(bundle.getString("wizard_Yabs1_Import.jLabel1.text")); // NOI18N
  64. jLabel1.setName("jLabel1"); // NOI18N
  65. contacts.setBackground(new java.awt.Color(255, 255, 255));
  66. contacts.setSelected(true);
  67. contacts.setText(bundle.getString("wizard_Yabs1_Import.contacts.text")); // NOI18N
  68. contacts.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  69. contacts.setName("contacts"); // NOI18N
  70. products.setBackground(new java.awt.Color(255, 255, 255));
  71. products.setSelected(true);
  72. products.setText(bundle.getString("wizard_Yabs1_Import.products.text")); // NOI18N
  73. products.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  74. products.setName("products"); // NOI18N
  75. accounts.setBackground(new java.awt.Color(255, 255, 255));
  76. accounts.setSelected(true);
  77. accounts.setText(bundle.getString("wizard_Yabs1_Import.accounts.text")); // NOI18N
  78. accounts.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  79. accounts.setName("accounts"); // NOI18N
  80. groups.setBackground(new java.awt.Color(255, 255, 255));
  81. groups.setSelected(true);
  82. groups.setText(bundle.getString("wizard_Yabs1_Import.groups.text")); // NOI18N
  83. groups.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  84. groups.setName("groups"); // NOI18N
  85. adresses.setBackground(new java.awt.Color(255, 255, 255));
  86. adresses.setSelected(true);
  87. adresses.setText(bundle.getString("wizard_Yabs1_Import.adresses.text")); // NOI18N
  88. adresses.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  89. adresses.setName("adresses"); // NOI18N
  90. users.setBackground(new java.awt.Color(255, 255, 255));
  91. users.setSelected(true);
  92. users.setText(bundle.getString("wizard_Yabs1_Import.users.text")); // NOI18N
  93. users.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  94. users.setName("users"); // NOI18N
  95. jComboBox1.setEditable(true);
  96. jComboBox1.setFont(new java.awt.Font("Dialog", 0, 11));
  97. jComboBox1.setName("jComboBox1"); // NOI18N
  98. jComboBox1.addActionListener(new java.awt.event.ActionListener() {
  99. public void actionPerformed(java.awt.event.ActionEvent evt) {
  100. jComboBox1ActionPerformed(evt);
  101. }
  102. });
  103. jLabel2.setText(bundle.getString("wizard_Yabs1_Import.jLabel2.text")); // NOI18N
  104. jLabel2.setName("jLabel2"); // NOI18N
  105. dbname.set_Label(bundle.getString("wizard_Yabs1_Import.dbname._Label")); // NOI18N
  106. dbname.setName("dbname"); // NOI18N
  107. dbuser.set_Label(bundle.getString("wizard_Yabs1_Import.dbuser._Label")); // NOI18N
  108. dbuser.setName("dbuser"); // NOI18N
  109. dbpassword.set_Label(bundle.getString("wizard_Yabs1_Import.dbpassword._Label")); // NOI18N
  110. dbpassword.setName("dbpassword"); // NOI18N
  111. dbprefix.set_Label(bundle.getString("wizard_Yabs1_Import.dbprefix._Label")); // NOI18N
  112. dbprefix.setName("dbprefix"); // NOI18N
  113. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  114. jPanel1.setLayout(jPanel1Layout);
  115. jPanel1Layout.setHorizontalGroup(
  116. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  117. .addGroup(jPanel1Layout.createSequentialGroup()
  118. .addContainerGap()
  119. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  120. .addGroup(jPanel1Layout.createSequentialGroup()
  121. .addComponent(contacts)
  122. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  123. .addComponent(adresses))
  124. .addComponent(products)
  125. .addComponent(accounts)
  126. .addComponent(groups)
  127. .addComponent(users)
  128. .addComponent(path, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 505, Short.MAX_VALUE)
  129. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  130. .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE)
  131. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  132. .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 431, javax.swing.GroupLayout.PREFERRED_SIZE))
  133. .addComponent(jLabel1)
  134. .addGroup(jPanel1Layout.createSequentialGroup()
  135. .addComponent(dbuser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  136. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 119, Short.MAX_VALUE)
  137. .addComponent(dbname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  138. .addGroup(jPanel1Layout.createSequentialGroup()
  139. .addComponent(dbpassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  140. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 119, Short.MAX_VALUE)
  141. .addComponent(dbprefix, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
  142. .addContainerGap())
  143. );
  144. jPanel1Layout.setVerticalGroup(
  145. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  146. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  147. .addContainerGap()
  148. .addComponent(users)
  149. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  150. .addComponent(groups)
  151. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  152. .addComponent(accounts)
  153. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  154. .addComponent(products)
  155. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  156. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  157. .addComponent(contacts)
  158. .addComponent(adresses))
  159. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 77, Short.MAX_VALUE)
  160. .addComponent(jLabel1)
  161. .addGap(18, 18, 18)
  162. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  163. .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  164. .addComponent(jLabel2))
  165. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  166. .addComponent(path, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  167. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  168. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  169. .addGroup(jPanel1Layout.createSequentialGroup()
  170. .addComponent(dbuser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  171. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  172. .addComponent(dbpassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  173. .addGroup(jPanel1Layout.createSequentialGroup()
  174. .addComponent(dbname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  175. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  176. .addComponent(dbprefix, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
  177. .addContainerGap())
  178. );
  179. add(jPanel1, java.awt.BorderLayout.CENTER);
  180. }// </editor-fold>//GEN-END:initComponents
  181. private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
  182. }//GEN-LAST:event_jComboBox1ActionPerformed
  183. // Variables declaration - do not modify//GEN-BEGIN:variables
  184. private javax.swing.JCheckBox accounts;
  185. private javax.swing.JCheckBox adresses;
  186. private javax.swing.JCheckBox contacts;
  187. private mpv5.ui.beans.LabeledTextField dbname;
  188. private mpv5.ui.beans.LabeledTextField dbpassword;
  189. private mpv5.ui.beans.LabeledTextField dbprefix;
  190. private mpv5.ui.beans.LabeledTextField dbuser;
  191. private javax.swing.JCheckBox groups;
  192. private javax.swing.JComboBox jComboBox1;
  193. private javax.swing.JLabel jLabel1;
  194. private javax.swing.JLabel jLabel2;
  195. private javax.swing.JPanel jPanel1;
  196. private mpv5.ui.beans.LabeledTextChooser path;
  197. private javax.swing.JCheckBox products;
  198. private javax.swing.JCheckBox users;
  199. // End of variables declaration//GEN-END:variables
  200. public boolean next() {
  201. master.setCursor(new Cursor(Cursor.WAIT_CURSOR));
  202. if (path.hasText()) {
  203. imports();
  204. master.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
  205. master.isEnd(true);
  206. Popup.notice(imports + " " + Messages.IMPORTED.toString());
  207. Popup.notice(errors, mpv5.globals.Messages.ERROR_OCCURED);
  208. return false;
  209. } else {
  210. return false;
  211. }
  212. }
  213. public boolean back() {
  214. return false;
  215. }
  216. public void load() {
  217. }
  218. private void imports() {
  219. try {
  220. conn = new DatabaseConnection();
  221. conn.connect(jComboBox1.getSelectedItem().toString(),
  222. dbuser.getText(),
  223. dbpassword.getText(),
  224. path.get_Text(false),
  225. dbname.getText(), dbprefix.getText(),
  226. false);
  227. conn.setProgressbar(master.getProgressbar());
  228. if (conn.getConnection().isValid(1000)) {
  229. qh = new QueryHandler(conn);
  230. if (users.isSelected()) {
  231. importObjects(Context.getUser());
  232. }
  233. if (groups.isSelected()) {
  234. importObjects(Context.getGroup());
  235. }
  236. if (accounts.isSelected()) {
  237. importObjects(Context.getAccounts());
  238. }
  239. if (contacts.isSelected()) {
  240. importObjects(Context.getContact());
  241. }
  242. if (accounts.isSelected()) {
  243. importObjects(Context.getAccounts());
  244. }
  245. if (products.isSelected()) {
  246. importObjects(Context.getProduct());
  247. }
  248. }
  249. } catch (Exception exception) {
  250. Popup.error(exception);
  251. Log.Debug(exception);
  252. }
  253. }
  254. List<DatabaseObject> errors = new Vector<DatabaseObject>();
  255. private void importObjects(Context c) {
  256. try {
  257. ReturnValue data = qh.clone(c).select(false);
  258. DatabaseObject[] objs = DatabaseObject.explode(data, DatabaseObject.getObject(c), false, false);
  259. for (int i = 0; i < objs.length; i++) {
  260. DatabaseObject databaseObject = objs[i];
  261. try {
  262. if (!databaseObject.saveImport()) {
  263. errors.add(databaseObject);
  264. } else {
  265. imports++;
  266. }
  267. } catch (Exception e) {
  268. errors.add(databaseObject);
  269. }
  270. }
  271. } catch (NodataFoundException nodataFoundException) {
  272. Log.Debug(this, nodataFoundException.getMessage());
  273. }
  274. }
  275. }