PageRenderTime 41ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 588 lines | 512 code | 64 blank | 12 comment | 22 complexity | 30a7ea2f02df2cb54912894ff599021f 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 java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.File;
  6. import java.io.IOException;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.security.NoSuchAlgorithmException;
  10. import java.util.ArrayList;
  11. import java.util.logging.Level;
  12. import java.util.logging.Logger;
  13. import javax.swing.DefaultListModel;
  14. import javax.swing.JMenuItem;
  15. import javax.swing.JPopupMenu;
  16. import javax.swing.SwingUtilities;
  17. import mpv5.data.PropertyStore;
  18. import mpv5.db.common.Context;
  19. import mpv5.db.common.DatabaseObject;
  20. import mpv5.db.common.NodataFoundException;
  21. import mpv5.db.objects.WebShop;
  22. import mpv5.globals.Messages;
  23. import mpv5.logging.Log;
  24. import mpv5.ui.dialogs.ControlApplet;
  25. import mpv5.ui.dialogs.DialogForFile;
  26. import mpv5.ui.dialogs.Notificator;
  27. import mpv5.ui.dialogs.Popup;
  28. import mpv5.usermanagement.MPSecurityManager;
  29. import mpv5.utils.files.FileDirectoryHandler;
  30. import mpv5.utils.files.FileReaderWriter;
  31. import mpv5.utils.files.Zip;
  32. import mpv5.utils.models.MPComboBoxModelItem;
  33. import mpv5.utils.text.Base64Encoder;
  34. import mpv5.utils.text.RandomStringUtils;
  35. import mpv5.utils.text.RandomText;
  36. import mpv5.webshopinterface.NoCompatibleHostFoundException;
  37. import mpv5.webshopinterface.WSConnectionClient;
  38. import mpv5.webshopinterface.WSDaemon;
  39. import mpv5.webshopinterface.WSIManager;
  40. import mpv5.webshopinterface.wsdjobs.*;
  41. import org.bouncycastle.util.encoders.Base64;
  42. /**
  43. *
  44. *
  45. */
  46. public class ControlPanel_WebShopManager extends javax.swing.JPanel implements ControlApplet {
  47. private static final long serialVersionUID = 1L;
  48. /**
  49. * This unique name identifies this control applet
  50. */
  51. public final String UNAME = "webshops";
  52. private PropertyStore oldvalues;
  53. private static ControlPanel_WebShopManager ident;
  54. private JPopupMenu popup;
  55. public ControlPanel_WebShopManager() {
  56. initComponents();
  57. addPopupMenu();
  58. groupselect.setSearchEnabled(true);
  59. groupselect.setContext(Context.getGroup());
  60. refresh();
  61. setVisible(true);
  62. }
  63. private void addPopupMenu() {
  64. popup = new JPopupMenu();
  65. JMenuItem jmi1;
  66. popup.add(jmi1 = new JMenuItem(Messages.ACTION_DELETE.toString()));
  67. popup.add(new JPopupMenu.Separator());
  68. JMenuItem jmi2;
  69. popup.add(jmi2 = new JMenuItem(Messages.ACTION_TEST.toString()));
  70. popup.add(new JPopupMenu.Separator());
  71. jmi1.addActionListener(new ActionListener() {
  72. @Override
  73. public void actionPerformed(ActionEvent e) {
  74. if (MPSecurityManager.checkAdminAccess()) {
  75. WebShop gin = (WebShop) list.getSelectedValue();
  76. gin.delete();
  77. WSIManager.instanceOf().reset();
  78. WSIManager.instanceOf().start();
  79. refresh();
  80. }
  81. }
  82. });
  83. jmi2.addActionListener(new ActionListener() {
  84. @Override
  85. public void actionPerformed(ActionEvent e) {
  86. WebShop gin = (WebShop) list.getSelectedValue();
  87. try {
  88. if (jCheckBox1.isSelected()) {
  89. mpv5.ui.dialogs.Popup.notice(new WSConnectionClient(new URL(gin.__getUrl()), isrequestCompression.isSelected(), jTextField1.getText(), new String(jPasswordField1.getPassword())).test());
  90. } else {
  91. mpv5.ui.dialogs.Popup.notice(new WSConnectionClient(new URL(gin.__getUrl()), isrequestCompression.isSelected(), null, null).test());
  92. }
  93. } catch (Exception x) {
  94. Log.Debug(x);
  95. mpv5.ui.dialogs.Popup.error(x);
  96. }
  97. }
  98. });
  99. }
  100. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  101. private void initComponents() {
  102. jPanel5 = new javax.swing.JPanel();
  103. jButton3 = new javax.swing.JButton();
  104. urls = new mpv5.ui.beans.LabeledTextField();
  105. jScrollPane2 = new javax.swing.JScrollPane();
  106. descr = new javax.swing.JTextArea();
  107. jLabel1 = new javax.swing.JLabel();
  108. intervals = new mpv5.ui.beans.LabeledSpinner();
  109. groupselect = new mpv5.ui.beans.LabeledCombobox();
  110. isrequestCompression = new javax.swing.JCheckBox();
  111. jCheckBox1 = new javax.swing.JCheckBox();
  112. jTextField1 = new javax.swing.JTextField();
  113. jPasswordField1 = new javax.swing.JPasswordField();
  114. jLabel4 = new javax.swing.JLabel();
  115. jLabel5 = new javax.swing.JLabel();
  116. jPanel3 = new javax.swing.JPanel();
  117. jLabel3 = new javax.swing.JLabel();
  118. jScrollPane1 = new javax.swing.JScrollPane();
  119. list = new javax.swing.JList();
  120. jPanel2 = new javax.swing.JPanel();
  121. jButton2 = new javax.swing.JButton();
  122. jButton5 = new javax.swing.JButton();
  123. jButton4 = new javax.swing.JButton();
  124. jButton1 = new javax.swing.JButton();
  125. setBackground(new java.awt.Color(255, 255, 255));
  126. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  127. setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_WebShopManager.border.title"))); // NOI18N
  128. setName("Form"); // NOI18N
  129. setPreferredSize(new java.awt.Dimension(300, 300));
  130. setLayout(new java.awt.BorderLayout());
  131. jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  132. jPanel5.setMaximumSize(new java.awt.Dimension(32767, 250));
  133. jPanel5.setName("jPanel5"); // NOI18N
  134. jPanel5.setPreferredSize(new java.awt.Dimension(453, 250));
  135. jButton3.setText(bundle.getString("ControlPanel_WebShopManager.jButton3.text")); // NOI18N
  136. jButton3.setName("jButton3"); // NOI18N
  137. jButton3.addActionListener(new java.awt.event.ActionListener() {
  138. public void actionPerformed(java.awt.event.ActionEvent evt) {
  139. jButton3ActionPerformed(evt);
  140. }
  141. });
  142. urls.set_Label(bundle.getString("ControlPanel_WebShopManager.urls._Label")); // NOI18N
  143. urls.setName("urls"); // NOI18N
  144. jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
  145. jScrollPane2.setName("jScrollPane2"); // NOI18N
  146. descr.setColumns(20);
  147. descr.setLineWrap(true);
  148. descr.setRows(5);
  149. descr.setWrapStyleWord(true);
  150. descr.setName("descr"); // NOI18N
  151. jScrollPane2.setViewportView(descr);
  152. jLabel1.setText(bundle.getString("ControlPanel_WebShopManager.jLabel1.text")); // NOI18N
  153. jLabel1.setName("jLabel1"); // NOI18N
  154. intervals.set_Label(bundle.getString("ControlPanel_WebShopManager.intervals._Label")); // NOI18N
  155. intervals.setName("intervals"); // NOI18N
  156. groupselect.set_Label(bundle.getString("ControlPanel_WebShopManager.groupselect._Label")); // NOI18N
  157. groupselect.setName("groupselect"); // NOI18N
  158. isrequestCompression.setText(bundle.getString("ControlPanel_WebShopManager.isrequestCompression.text")); // NOI18N
  159. isrequestCompression.setName("isrequestCompression"); // NOI18N
  160. jCheckBox1.setText(bundle.getString("ControlPanel_WebShopManager.jCheckBox1.text")); // NOI18N
  161. jCheckBox1.setName("jCheckBox1"); // NOI18N
  162. jCheckBox1.addItemListener(new java.awt.event.ItemListener() {
  163. public void itemStateChanged(java.awt.event.ItemEvent evt) {
  164. jCheckBox1ItemStateChanged(evt);
  165. }
  166. });
  167. jTextField1.setText(bundle.getString("ControlPanel_WebShopManager.jTextField1.text")); // NOI18N
  168. jTextField1.setEnabled(false);
  169. jTextField1.setName("jTextField1"); // NOI18N
  170. jPasswordField1.setText(bundle.getString("ControlPanel_WebShopManager.jPasswordField1.text")); // NOI18N
  171. jPasswordField1.setEnabled(false);
  172. jPasswordField1.setName("jPasswordField1"); // NOI18N
  173. jLabel4.setText(bundle.getString("ControlPanel_WebShopManager.jLabel4.text")); // NOI18N
  174. jLabel4.setEnabled(false);
  175. jLabel4.setName("jLabel4"); // NOI18N
  176. jLabel5.setText(bundle.getString("ControlPanel_WebShopManager.jLabel5.text")); // NOI18N
  177. jLabel5.setEnabled(false);
  178. jLabel5.setName("jLabel5"); // NOI18N
  179. javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
  180. jPanel5.setLayout(jPanel5Layout);
  181. jPanel5Layout.setHorizontalGroup(
  182. jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  183. .addGroup(jPanel5Layout.createSequentialGroup()
  184. .addContainerGap()
  185. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  186. .addComponent(groupselect, javax.swing.GroupLayout.PREFERRED_SIZE, 343, javax.swing.GroupLayout.PREFERRED_SIZE)
  187. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
  188. .addComponent(urls, javax.swing.GroupLayout.DEFAULT_SIZE, 413, Short.MAX_VALUE)
  189. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  190. .addComponent(jButton3))
  191. .addGroup(jPanel5Layout.createSequentialGroup()
  192. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  193. .addGroup(jPanel5Layout.createSequentialGroup()
  194. .addComponent(isrequestCompression)
  195. .addGap(18, 18, 18)
  196. .addComponent(intervals, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  197. .addComponent(jCheckBox1))
  198. .addGap(110, 110, 110))
  199. .addGroup(jPanel5Layout.createSequentialGroup()
  200. .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
  201. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  202. .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
  203. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  204. .addComponent(jLabel5)
  205. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  206. .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE))
  207. .addGroup(jPanel5Layout.createSequentialGroup()
  208. .addComponent(jLabel1)
  209. .addGap(18, 18, 18)
  210. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 326, javax.swing.GroupLayout.PREFERRED_SIZE)))
  211. .addContainerGap())
  212. );
  213. jPanel5Layout.setVerticalGroup(
  214. jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  215. .addGroup(jPanel5Layout.createSequentialGroup()
  216. .addContainerGap()
  217. .addComponent(groupselect, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  218. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  219. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
  220. .addComponent(jButton3, javax.swing.GroupLayout.Alignment.LEADING, 0, 0, Short.MAX_VALUE)
  221. .addComponent(urls, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  222. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  223. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  224. .addGroup(jPanel5Layout.createSequentialGroup()
  225. .addComponent(isrequestCompression)
  226. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  227. .addComponent(jCheckBox1))
  228. .addComponent(intervals, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  229. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  230. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  231. .addComponent(jLabel4)
  232. .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  233. .addComponent(jLabel5)
  234. .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  235. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  236. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  237. .addGroup(jPanel5Layout.createSequentialGroup()
  238. .addComponent(jLabel1)
  239. .addGap(56, 56, 56))
  240. .addGroup(jPanel5Layout.createSequentialGroup()
  241. .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE)
  242. .addContainerGap())))
  243. );
  244. add(jPanel5, java.awt.BorderLayout.NORTH);
  245. jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  246. jPanel3.setName("jPanel3"); // NOI18N
  247. jPanel3.setPreferredSize(new java.awt.Dimension(605, 400));
  248. jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12));
  249. jLabel3.setText(bundle.getString("ControlPanel_WebShopManager.jLabel3.text")); // NOI18N
  250. jLabel3.setName("jLabel3"); // NOI18N
  251. jScrollPane1.setName("jScrollPane1"); // NOI18N
  252. list.setToolTipText(bundle.getString("ControlPanel_WebShopManager.list.toolTipText")); // NOI18N
  253. list.setName("list"); // NOI18N
  254. list.addMouseListener(new java.awt.event.MouseAdapter() {
  255. public void mouseClicked(java.awt.event.MouseEvent evt) {
  256. listMouseClicked(evt);
  257. }
  258. });
  259. jScrollPane1.setViewportView(list);
  260. javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
  261. jPanel3.setLayout(jPanel3Layout);
  262. jPanel3Layout.setHorizontalGroup(
  263. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  264. .addGroup(jPanel3Layout.createSequentialGroup()
  265. .addContainerGap()
  266. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  267. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 456, Short.MAX_VALUE)
  268. .addComponent(jLabel3))
  269. .addContainerGap())
  270. );
  271. jPanel3Layout.setVerticalGroup(
  272. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  273. .addGroup(jPanel3Layout.createSequentialGroup()
  274. .addContainerGap()
  275. .addComponent(jLabel3)
  276. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  277. .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 56, Short.MAX_VALUE)
  278. .addContainerGap())
  279. );
  280. add(jPanel3, java.awt.BorderLayout.CENTER);
  281. jPanel2.setBackground(new java.awt.Color(255, 255, 255));
  282. jPanel2.setName("jPanel2"); // NOI18N
  283. jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
  284. jButton2.setText(bundle.getString("ControlPanel_WebShopManager.jButton2.text")); // NOI18N
  285. jButton2.setEnabled(false);
  286. jButton2.setName("jButton2"); // NOI18N
  287. jButton2.addActionListener(new java.awt.event.ActionListener() {
  288. public void actionPerformed(java.awt.event.ActionEvent evt) {
  289. jButton2ActionPerformed(evt);
  290. }
  291. });
  292. jPanel2.add(jButton2);
  293. jButton5.setText(bundle.getString("ControlPanel_WebShopManager.jButton5.text")); // NOI18N
  294. jButton5.setName("jButton5"); // NOI18N
  295. jButton5.addActionListener(new java.awt.event.ActionListener() {
  296. public void actionPerformed(java.awt.event.ActionEvent evt) {
  297. jButton5ActionPerformed(evt);
  298. }
  299. });
  300. jPanel2.add(jButton5);
  301. jButton4.setText(bundle.getString("ControlPanel_WebShopManager.jButton4.text")); // NOI18N
  302. jButton4.setName("jButton4"); // NOI18N
  303. jButton4.addActionListener(new java.awt.event.ActionListener() {
  304. public void actionPerformed(java.awt.event.ActionEvent evt) {
  305. jButton4ActionPerformed(evt);
  306. }
  307. });
  308. jPanel2.add(jButton4);
  309. jButton1.setText(bundle.getString("ControlPanel_WebShopManager.jButton1.text")); // NOI18N
  310. jButton1.setName("jButton1"); // NOI18N
  311. jButton1.addActionListener(new java.awt.event.ActionListener() {
  312. public void actionPerformed(java.awt.event.ActionEvent evt) {
  313. jButton1ActionPerformed(evt);
  314. }
  315. });
  316. jPanel2.add(jButton1);
  317. add(jPanel2, java.awt.BorderLayout.SOUTH);
  318. }// </editor-fold>//GEN-END:initComponents
  319. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  320. if (list.getSelectedValue() != null) {
  321. try {
  322. save((WebShop) list.getSelectedValue());
  323. refresh();
  324. WSIManager.instanceOf().reset();
  325. WSIManager.instanceOf().start();
  326. } catch (Exception x) {
  327. Log.Debug(x);
  328. mpv5.ui.dialogs.Popup.error(x);
  329. }
  330. }
  331. }//GEN-LAST:event_jButton1ActionPerformed
  332. private void listMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_listMouseClicked
  333. if (SwingUtilities.isRightMouseButton(evt) && !list.isSelectionEmpty() && list.locationToIndex(evt.getPoint()) == list.getSelectedIndex()) {
  334. popup.show(list, evt.getX(), evt.getY());
  335. } else if (evt.getClickCount() >= 1) {
  336. if (list.getSelectedValue() != null) {
  337. WebShop ws = (WebShop) list.getSelectedValue();
  338. intervals.set_Value(Integer.valueOf(ws.__getInterv()));
  339. descr.setText(ws.__getDescription());
  340. urls.setText(ws.__getUrl());
  341. groupselect.setSelectedIndex(MPComboBoxModelItem.getItemID(String.valueOf(ws.__getGroupsids()), groupselect.getModel()));
  342. isrequestCompression.setSelected(ws.__getIsrequestCompression());
  343. jCheckBox1.setSelected(ws.__getIsauthenticated());
  344. jTextField1.setText(ws.__getUsername());
  345. jPasswordField1.setText(ws.__getPassw());
  346. }
  347. }
  348. }//GEN-LAST:event_listMouseClicked
  349. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
  350. try {
  351. if (jCheckBox1.isSelected()) {
  352. mpv5.ui.dialogs.Popup.notice(new WSConnectionClient(new URL(urls.getText()), isrequestCompression.isSelected(), jTextField1.getText(), new String(jPasswordField1.getPassword())).test());
  353. } else {
  354. mpv5.ui.dialogs.Popup.notice(new WSConnectionClient(new URL(urls.getText()), isrequestCompression.isSelected(), null, null).test());
  355. }
  356. } catch (Exception x) {
  357. Log.Debug(x);
  358. mpv5.ui.dialogs.Popup.error(x);
  359. }
  360. }//GEN-LAST:event_jButton3ActionPerformed
  361. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
  362. try {
  363. WebShop ws = new WebShop();
  364. save(ws);
  365. WSIManager.instanceOf().reset();
  366. WSIManager.instanceOf().start();
  367. } catch (Exception x) {
  368. // Log.Debug(x);
  369. mpv5.ui.dialogs.Popup.error(x);
  370. }
  371. }//GEN-LAST:event_jButton4ActionPerformed
  372. private void jCheckBox1ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jCheckBox1ItemStateChanged
  373. jPasswordField1.setEnabled(jCheckBox1.isSelected());
  374. jTextField1.setEnabled(jCheckBox1.isSelected());
  375. jLabel5.setEnabled(jCheckBox1.isSelected());
  376. jLabel4.setEnabled(jCheckBox1.isSelected());
  377. jButton2.setEnabled(jCheckBox1.isSelected());
  378. }//GEN-LAST:event_jCheckBox1ItemStateChanged
  379. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  380. try {
  381. generate();
  382. } catch (Exception ex) {
  383. Log.Debug(ex);
  384. }
  385. }//GEN-LAST:event_jButton2ActionPerformed
  386. private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
  387. try {
  388. WebShop ws = (WebShop) list.getSelectedValue();
  389. WSDaemon d = new WSDaemon(ws);
  390. d.addJob(new newContactsJob(d));
  391. d.addJob(new newOrdersJob(d));
  392. d.addJob(new newSystemMessages(d));
  393. d.addJob(new updatedContactsJob(d));
  394. d.addJob(new updatedOrdersJob(d));
  395. d.addJob(new addContactJob(d));
  396. d.start();
  397. } catch (Exception ex) {
  398. Notificator.raiseNotification(ex, true);
  399. }
  400. }//GEN-LAST:event_jButton5ActionPerformed
  401. @Override
  402. public void setValues(PropertyStore values) {
  403. oldvalues = values;
  404. }
  405. @Override
  406. public String getUname() {
  407. return UNAME;
  408. }
  409. @Override
  410. public void reset() {
  411. setValues(oldvalues);
  412. }
  413. // Variables declaration - do not modify//GEN-BEGIN:variables
  414. private javax.swing.JTextArea descr;
  415. private mpv5.ui.beans.LabeledCombobox groupselect;
  416. private mpv5.ui.beans.LabeledSpinner intervals;
  417. private javax.swing.JCheckBox isrequestCompression;
  418. private javax.swing.JButton jButton1;
  419. private javax.swing.JButton jButton2;
  420. private javax.swing.JButton jButton3;
  421. private javax.swing.JButton jButton4;
  422. private javax.swing.JButton jButton5;
  423. private javax.swing.JCheckBox jCheckBox1;
  424. private javax.swing.JLabel jLabel1;
  425. private javax.swing.JLabel jLabel3;
  426. private javax.swing.JLabel jLabel4;
  427. private javax.swing.JLabel jLabel5;
  428. private javax.swing.JPanel jPanel2;
  429. private javax.swing.JPanel jPanel3;
  430. private javax.swing.JPanel jPanel5;
  431. private javax.swing.JPasswordField jPasswordField1;
  432. private javax.swing.JScrollPane jScrollPane1;
  433. private javax.swing.JScrollPane jScrollPane2;
  434. private javax.swing.JTextField jTextField1;
  435. private javax.swing.JList list;
  436. private mpv5.ui.beans.LabeledTextField urls;
  437. // End of variables declaration//GEN-END:variables
  438. private void refresh() {
  439. groupselect.triggerSearch();
  440. intervals.setValue(300);
  441. list.setModel(new DefaultListModel());
  442. list.validate();
  443. try {
  444. ArrayList<DatabaseObject> data = DatabaseObject.getObjects(Context.getWebShop());
  445. DefaultListModel xl = new DefaultListModel();
  446. Log.Debug(this, "Shops found: " + data.size());
  447. for (int i = 0; i < data.size(); i++) {
  448. DatabaseObject databaseObject = data.get(i);
  449. xl.addElement((WebShop) databaseObject);
  450. }
  451. list.setModel(xl);
  452. } catch (NodataFoundException nodataFoundException) {
  453. Log.Debug(this, nodataFoundException.getMessage());
  454. }
  455. }
  456. @Override
  457. public Component getAndRemoveActionPanel() {
  458. this.remove(jPanel2);
  459. validate();
  460. return jPanel2;
  461. }
  462. private void save(WebShop ws) throws MalformedURLException {
  463. new URL(urls.getText());//test
  464. ws.setUrl(urls.getText());
  465. ws.setDescription(descr.getText());
  466. ws.setInterv(Integer.valueOf(intervals.getSpinner().getValue().toString()));
  467. ws.setIsrequestCompression(isrequestCompression.isSelected());
  468. ws.setIsauthenticated(jCheckBox1.isSelected());
  469. ws.setUsername(jTextField1.getText());
  470. ws.setPassw(new String(jPasswordField1.getPassword()));
  471. if (groupselect.getSelectedItem() != null) {
  472. ws.setGroupsids(Integer.valueOf((groupselect.getSelectedItem()).getId()));
  473. } else {
  474. ws.setGroupsids(1);
  475. }
  476. ws.save();
  477. refresh();
  478. }
  479. @SuppressWarnings("Deprecated")
  480. private void generate() throws NoSuchAlgorithmException, IOException {
  481. try {
  482. String pwdir = new RandomText(8).getString();
  483. String user = new RandomText(8).getString();
  484. String password = new RandomText(8).getString();
  485. Log.Debug(this, "The SUPER SECRET password for the generated .htaccess file is: " + password);
  486. //apache codec base64encoder produces wrong values here
  487. String crypt = "{SHA}" + Base64.encode(java.security.MessageDigest.getInstance("SHA1").digest(password.getBytes()));
  488. String content1 =
  489. "AuthUserFile " + pwdir + "/.htpasswd\n" +
  490. "AuthGroupFile /dev/null\n" +
  491. "AuthName \"" + user + "\"\n" +
  492. "AuthType Basic\n" +
  493. "<Limit GET POST>\n" +
  494. "require valid-user\n" +
  495. "</Limit>\n" +
  496. "<Files *.ini>\n" +
  497. "Order Deny,Allow\n" +
  498. "Deny from all\n" +
  499. "</Files>\n";
  500. String content2 = user + ":" + crypt;
  501. String tmp = FileDirectoryHandler.getTempDir() + RandomText.getText();
  502. File f1 = new File(tmp + File.separator + ".htaccess");
  503. f1.getParentFile().mkdirs();
  504. f1.createNewFile();
  505. File f2 = new File(tmp + File.separator + pwdir + File.separator + ".htpasswd");
  506. f2.getParentFile().mkdirs();
  507. f2.createNewFile();
  508. FileReaderWriter htacc = new FileReaderWriter(f1);
  509. FileReaderWriter htpw = new FileReaderWriter(f2);
  510. if (htacc.write0(content1) && htpw.write0(content2)) {
  511. DialogForFile d = new DialogForFile(DialogForFile.FILES_ONLY);
  512. d.setSelectedFile(new File("generated.zip"));
  513. if (d.saveFile()) {
  514. Zip.zip(tmp, d.getFile().getPath());
  515. }
  516. jTextField1.setText(user);
  517. jPasswordField1.setText(password);
  518. }
  519. } catch (Exception e) {
  520. Popup.error(e);
  521. Log.Debug(e);
  522. }
  523. }
  524. }