PageRenderTime 667ms CodeModel.GetById 651ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/
Java | 386 lines | 323 code | 50 blank | 13 comment | 4 complexity | 3f9871c108978c2e6b92290efe64f7d2 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 ag.ion.bion.officelayer.application.IApplicationAssistant;
  3. import ag.ion.bion.officelayer.application.ILazyApplicationInfo;
  4. import ag.ion.bion.officelayer.application.OfficeApplicationException;
  5. import ag.ion.bion.officelayer.internal.application.ApplicationAssistant;
  6. import enoa.connection.NoaConnection;
  7. import java.awt.Component;
  8. import java.io.File;
  9. import java.io.IOException;
  10. import java.util.logging.Level;
  11. import java.util.logging.Logger;
  12. import javax.swing.SwingUtilities;
  13. import mpv5.YabsViewProxy;
  14. import mpv5.data.PropertyStore;
  15. import mpv5.globals.LocalSettings;
  16. import mpv5.globals.Messages;
  17. import mpv5.logging.Log;
  18. import mpv5.ui.dialogs.ControlApplet;
  19. import mpv5.ui.dialogs.Popup;
  20. /**
  21. *
  22. *
  23. */
  24. public class ControlPanel_External extends javax.swing.JPanel implements ControlApplet {
  25. private static final long serialVersionUID = 1L;
  26. /**
  27. * This unique name identifies this control applet
  28. */
  29. public final String UNAME = "ooo";
  30. private PropertyStore oldvalues;
  31. private static ControlPanel_External ident;
  32. public ControlPanel_External() {
  33. initComponents();
  34. setValues(null);
  35. setVisible(true);
  36. }
  37. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  38. private void initComponents() {
  39. jPanel2 = new javax.swing.JPanel();
  40. labeledTextChooser2 = new mpv5.ui.beans.LabeledTextChooser();
  41. jCheckBox3 = new javax.swing.JCheckBox();
  42. labeledTextField1 = new mpv5.ui.beans.LabeledTextField();
  43. labeledTextField2 = new mpv5.ui.beans.LabeledTextField();
  44. jLabel3 = new javax.swing.JLabel();
  45. jCheckBox1 = new javax.swing.JCheckBox();
  46. jButton5 = new javax.swing.JButton();
  47. jCheckBox2 = new javax.swing.JCheckBox();
  48. jPanel3 = new javax.swing.JPanel();
  49. labeledTextField3 = new mpv5.ui.beans.LabeledTextField();
  50. jPanel1 = new javax.swing.JPanel();
  51. jButton4 = new javax.swing.JButton();
  52. jButton1 = new javax.swing.JButton();
  53. jButton2 = new javax.swing.JButton();
  54. jButton3 = new javax.swing.JButton();
  55. setBackground(new java.awt.Color(255, 255, 255));
  56. setName("Form"); // NOI18N
  57. setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS));
  58. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  59. jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_External.jPanel2.border.title"))); // NOI18N
  60. jPanel2.setName("jPanel2"); // NOI18N
  61. labeledTextChooser2.set_Label(bundle.getString("ControlPanel_External.labeledTextChooser2._Label")); // NOI18N
  62. labeledTextChooser2.setName("labeledTextChooser2"); // NOI18N
  63. jCheckBox3.setText(bundle.getString("ControlPanel_External.jCheckBox3.text")); // NOI18N
  64. jCheckBox3.setName("jCheckBox3"); // NOI18N
  65. jCheckBox3.addItemListener(new java.awt.event.ItemListener() {
  66. public void itemStateChanged(java.awt.event.ItemEvent evt) {
  67. jCheckBox3ItemStateChanged(evt);
  68. }
  69. });
  70. labeledTextField1.set_Label(bundle.getString("ControlPanel_External.labeledTextField1._Label")); // NOI18N
  71. labeledTextField1.set_Text(bundle.getString("ControlPanel_External.labeledTextField1._Text")); // NOI18N
  72. labeledTextField1.setEnabled(false);
  73. labeledTextField1.setName("labeledTextField1"); // NOI18N
  74. labeledTextField2.set_Label(bundle.getString("ControlPanel_External.labeledTextField2._Label")); // NOI18N
  75. labeledTextField2.setEnabled(false);
  76. labeledTextField2.setName("labeledTextField2"); // NOI18N
  77. jLabel3.setText(bundle.getString("ControlPanel_External.jLabel3.text")); // NOI18N
  78. jLabel3.setName("jLabel3"); // NOI18N
  79. jCheckBox1.setText(bundle.getString("ControlPanel_External.jCheckBox1.text")); // NOI18N
  80. jCheckBox1.setName("jCheckBox1"); // NOI18N
  81. jButton5.setText(bundle.getString("ControlPanel_External.jButton5.text")); // NOI18N
  82. jButton5.setName(bundle.getString("ControlPanel_External.jButton5.name")); // NOI18N
  83. jButton5.addActionListener(new java.awt.event.ActionListener() {
  84. public void actionPerformed(java.awt.event.ActionEvent evt) {
  85. jButton5ActionPerformed(evt);
  86. }
  87. });
  88. jCheckBox2.setText(bundle.getString("ControlPanel_External.jCheckBox2.text")); // NOI18N
  89. jCheckBox2.setName("jCheckBox2"); // NOI18N
  90. javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
  91. jPanel2.setLayout(jPanel2Layout);
  92. jPanel2Layout.setHorizontalGroup(
  93. jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  94. .addGroup(jPanel2Layout.createSequentialGroup()
  95. .addContainerGap()
  96. .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  97. .addGroup(jPanel2Layout.createSequentialGroup()
  98. .addComponent(jCheckBox3, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
  99. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  100. .addComponent(labeledTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 236, Short.MAX_VALUE)
  101. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  102. .addComponent(labeledTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE))
  103. .addGroup(jPanel2Layout.createSequentialGroup()
  104. .addComponent(jLabel3)
  105. .addGap(0, 474, Short.MAX_VALUE))
  106. .addGroup(jPanel2Layout.createSequentialGroup()
  107. .addComponent(labeledTextChooser2, javax.swing.GroupLayout.DEFAULT_SIZE, 404, Short.MAX_VALUE)
  108. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  109. .addComponent(jButton5))
  110. .addComponent(jCheckBox1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE)
  111. .addComponent(jCheckBox2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE))
  112. .addContainerGap())
  113. );
  114. jPanel2Layout.setVerticalGroup(
  115. jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  116. .addGroup(jPanel2Layout.createSequentialGroup()
  117. .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  118. .addComponent(labeledTextChooser2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  119. .addComponent(jButton5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  120. .addGap(3, 3, 3)
  121. .addComponent(jLabel3)
  122. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  123. .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  124. .addComponent(jCheckBox3)
  125. .addComponent(labeledTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  126. .addComponent(labeledTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  127. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  128. .addComponent(jCheckBox1)
  129. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  130. .addComponent(jCheckBox2)
  131. .addContainerGap(25, Short.MAX_VALUE))
  132. );
  133. add(jPanel2);
  134. jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_External.jPanel3.border.title"))); // NOI18N
  135. jPanel3.setName("jPanel3"); // NOI18N
  136. labeledTextField3.set_Label(bundle.getString("ControlPanel_External.labeledTextField3._Label")); // NOI18N
  137. labeledTextField3.setName("labeledTextField3"); // NOI18N
  138. javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
  139. jPanel3.setLayout(jPanel3Layout);
  140. jPanel3Layout.setHorizontalGroup(
  141. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  142. .addGroup(jPanel3Layout.createSequentialGroup()
  143. .addContainerGap()
  144. .addComponent(labeledTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 293, javax.swing.GroupLayout.PREFERRED_SIZE)
  145. .addContainerGap(216, Short.MAX_VALUE))
  146. );
  147. jPanel3Layout.setVerticalGroup(
  148. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  149. .addGroup(jPanel3Layout.createSequentialGroup()
  150. .addContainerGap()
  151. .addComponent(labeledTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  152. .addContainerGap(30, Short.MAX_VALUE))
  153. );
  154. add(jPanel3);
  155. jPanel1.setBackground(new java.awt.Color(255, 255, 255));
  156. jPanel1.setName("jPanel1"); // NOI18N
  157. jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
  158. jButton4.setText(bundle.getString("ControlPanel_External.jButton4.text")); // NOI18N
  159. jButton4.setName("jButton4"); // NOI18N
  160. jButton4.addActionListener(new java.awt.event.ActionListener() {
  161. public void actionPerformed(java.awt.event.ActionEvent evt) {
  162. jButton4ActionPerformed(evt);
  163. }
  164. });
  165. jPanel1.add(jButton4);
  166. jButton1.setText(bundle.getString("ControlPanel_External.jButton1.text")); // NOI18N
  167. jButton1.setName("jButton1"); // NOI18N
  168. jButton1.addActionListener(new java.awt.event.ActionListener() {
  169. public void actionPerformed(java.awt.event.ActionEvent evt) {
  170. jButton1ActionPerformed(evt);
  171. }
  172. });
  173. jPanel1.add(jButton1);
  174. jButton2.setText(bundle.getString("ControlPanel_External.jButton2.text")); // NOI18N
  175. jButton2.setName("jButton2"); // NOI18N
  176. jButton2.addActionListener(new java.awt.event.ActionListener() {
  177. public void actionPerformed(java.awt.event.ActionEvent evt) {
  178. jButton2ActionPerformed(evt);
  179. }
  180. });
  181. jPanel1.add(jButton2);
  182. jButton3.setText(bundle.getString("ControlPanel_External.jButton3.text")); // NOI18N
  183. jButton3.setName("jButton3"); // NOI18N
  184. jButton3.addActionListener(new java.awt.event.ActionListener() {
  185. public void actionPerformed(java.awt.event.ActionEvent evt) {
  186. jButton3ActionPerformed(evt);
  187. }
  188. });
  189. jPanel1.add(jButton3);
  190. add(jPanel1);
  191. }// </editor-fold>//GEN-END:initComponents
  192. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  193. setSettings();
  194. LocalSettings.save();
  195. Popup.notice(Messages.RESTART_REQUIRED);
  196. }//GEN-LAST:event_jButton1ActionPerformed
  197. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
  198. reset();
  199. }//GEN-LAST:event_jButton3ActionPerformed
  200. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  201. setSettings();
  202. Popup.notice(Messages.RESTART_REQUIRED);
  203. }//GEN-LAST:event_jButton2ActionPerformed
  204. private void jCheckBox3ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jCheckBox3ItemStateChanged
  205. labeledTextField1.setEnabled(jCheckBox3.isSelected());
  206. labeledTextField2.setEnabled(jCheckBox3.isSelected());
  207. labeledTextChooser2.setEnabled(!jCheckBox3.isSelected());
  208. }//GEN-LAST:event_jCheckBox3ItemStateChanged
  209. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
  210. NoaConnection.clearConnection();
  211. Runnable runnable2 = new Runnable() {
  212. @Override
  213. public void run() {
  214. //Caching the old values
  215. String host = LocalSettings.getProperty(LocalSettings.OFFICE_HOST);
  216. String Port = LocalSettings.getProperty(LocalSettings.OFFICE_PORT);
  217. String Remote = LocalSettings.getProperty(LocalSettings.OFFICE_REMOTE);
  218. String home = LocalSettings.getProperty(LocalSettings.OFFICE_HOME);
  219. String use = LocalSettings.getProperty(LocalSettings.OFFICE_USE);
  220. //Setting Values to test ...
  221. LocalSettings.setProperty(LocalSettings.OFFICE_HOST, labeledTextField1.getText());
  222. LocalSettings.setProperty(LocalSettings.OFFICE_PORT, jCheckBox3.isSelected() ? labeledTextField2.getText() : "0");
  223. LocalSettings.setProperty(LocalSettings.OFFICE_REMOTE, Boolean.toString(jCheckBox3.isSelected()));
  224. LocalSettings.setProperty(LocalSettings.OFFICE_USE, "true");
  225. LocalSettings.setProperty(LocalSettings.OFFICE_HOME, labeledTextChooser2.get_Text(false));
  226. mpv5.YabsViewProxy.instance().setWaiting(true);
  227. try {
  228. NoaConnection.getConnection().getDesktopService().getFramesCount();
  229. Popup.notice(Messages.OO_DONE_LOADING);
  230. } catch (Exception e) {
  231. Popup.notice(Messages.ERROR_OCCURED);
  232. } finally {
  233. try {
  234. NoaConnection.getConnection().getDesktopService().terminate();
  235. setSettings();
  236. LocalSettings.save();
  237. Popup.notice(Messages.RESTART_REQUIRED);
  238. } catch (Exception ex) {
  239. Log.Debug(ex);
  240. }
  241. }
  242. mpv5.YabsViewProxy.instance().setWaiting(false);
  243. //Restore old Values ....
  244. LocalSettings.setProperty(LocalSettings.OFFICE_HOST, host);
  245. LocalSettings.setProperty(LocalSettings.OFFICE_PORT, Port);
  246. LocalSettings.setProperty(LocalSettings.OFFICE_REMOTE, Remote);
  247. LocalSettings.setProperty(LocalSettings.OFFICE_HOME, home);
  248. LocalSettings.setProperty(LocalSettings.OFFICE_USE, use);
  249. }
  250. };
  251. final Thread startServerThread = new Thread(runnable2);
  252. startServerThread.start();
  253. }//GEN-LAST:event_jButton4ActionPerformed
  254. private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
  255. Runnable runnable = new Runnable() {
  256. public void run() {
  257. try {
  258. NoaConnection.definePath();
  259. YabsViewProxy.instance().setWaiting(true);
  260. IApplicationAssistant applicationAssistant = new ApplicationAssistant();
  261. ILazyApplicationInfo appInfo = applicationAssistant.getLatestLocalLibreOfficeApplication();
  262. if (appInfo == null) {
  263. appInfo = applicationAssistant.getLatestLocalOpenOfficeOrgApplication();
  264. }
  265. labeledTextChooser2.setText(appInfo.getHome());
  266. YabsViewProxy.instance().setWaiting(false);
  267. } catch (OfficeApplicationException ex) {
  268. Log.Debug(ex);
  269. }
  270. }
  271. };
  272. SwingUtilities.invokeLater(runnable);
  273. }//GEN-LAST:event_jButton5ActionPerformed
  274. public void setValues(PropertyStore values) {
  275. oldvalues = values;
  276. try {
  277. labeledTextChooser2.set_Text(LocalSettings.getProperty(LocalSettings.OFFICE_HOME));
  278. jCheckBox3.setSelected(LocalSettings.getBooleanProperty(LocalSettings.OFFICE_REMOTE));
  279. jCheckBox1.setSelected(!LocalSettings.getBooleanProperty(LocalSettings.OFFICE_USE));
  280. jCheckBox2.setSelected(LocalSettings.getBooleanProperty(LocalSettings.OFFICE_LOCALSERVER));
  281. labeledTextField1.setText(LocalSettings.getProperty(LocalSettings.OFFICE_HOST));
  282. labeledTextField2.setText(LocalSettings.getProperty(LocalSettings.OFFICE_PORT));
  283. labeledTextField3.setText(LocalSettings.getProperty(LocalSettings.CALCULATOR));
  284. } catch (Exception e) {
  285. Log.Debug(this, e);
  286. }
  287. }
  288. public String getUname() {
  289. return UNAME;
  290. }
  291. public void reset() {
  292. setValues(oldvalues);
  293. }
  294. // Variables declaration - do not modify//GEN-BEGIN:variables
  295. private javax.swing.JButton jButton1;
  296. private javax.swing.JButton jButton2;
  297. private javax.swing.JButton jButton3;
  298. private javax.swing.JButton jButton4;
  299. private javax.swing.JButton jButton5;
  300. private javax.swing.JCheckBox jCheckBox1;
  301. private javax.swing.JCheckBox jCheckBox2;
  302. private javax.swing.JCheckBox jCheckBox3;
  303. private javax.swing.JLabel jLabel3;
  304. private javax.swing.JPanel jPanel1;
  305. private javax.swing.JPanel jPanel2;
  306. private javax.swing.JPanel jPanel3;
  307. private mpv5.ui.beans.LabeledTextChooser labeledTextChooser2;
  308. private mpv5.ui.beans.LabeledTextField labeledTextField1;
  309. private mpv5.ui.beans.LabeledTextField labeledTextField2;
  310. private mpv5.ui.beans.LabeledTextField labeledTextField3;
  311. // End of variables declaration//GEN-END:variables
  312. private void setSettings() {
  313. File f = new File(labeledTextChooser2.get_Text(false));
  314. if (!jCheckBox3.isSelected() && !f.isDirectory()) {
  315. try {
  316. labeledTextChooser2.setText(f.getParentFile().getCanonicalPath());
  317. } catch (IOException ex) {
  318. Log.Debug(ex);
  319. }
  320. }
  321. LocalSettings.setProperty(LocalSettings.OFFICE_HOME, labeledTextChooser2.get_Text(false));
  322. LocalSettings.setProperty(LocalSettings.OFFICE_LOCALSERVER, Boolean.toString( jCheckBox2.isSelected()));
  323. LocalSettings.setProperty(LocalSettings.OFFICE_USE, Boolean.toString(!jCheckBox1.isSelected()));
  324. LocalSettings.setProperty(LocalSettings.OFFICE_REMOTE, Boolean.toString(jCheckBox3.isSelected()));
  325. LocalSettings.setProperty(LocalSettings.OFFICE_HOST, labeledTextField1.getText());
  326. LocalSettings.setProperty(LocalSettings.OFFICE_PORT, labeledTextField2.getText());
  327. LocalSettings.setProperty(LocalSettings.CALCULATOR, labeledTextField3.getText());
  328. LocalSettings.apply();
  329. }
  330. @Override
  331. public Component getAndRemoveActionPanel() {
  332. this.remove(jPanel1);
  333. validate();
  334. return jPanel1;
  335. }
  336. }