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

http://mp-rechnungs-und-kundenverwaltung.googlecode.com/ · Java · 670 lines · 579 code · 78 blank · 13 comment · 18 complexity · 79b2c9d106139016ece2b0953c3822d7 MD5 · raw file

  1. package mpv5.ui.dialogs.subcomponents;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.FileWriter;
  6. import java.io.OutputStreamWriter;
  7. import java.sql.SQLException;
  8. import java.util.Collections;
  9. import java.util.Enumeration;
  10. import java.util.List;
  11. import java.util.Locale;
  12. import java.util.ResourceBundle;
  13. import javax.swing.ComboBoxModel;
  14. import javax.swing.DefaultComboBoxModel;
  15. import javax.swing.JFileChooser;
  16. import javax.swing.JTextField;
  17. import javax.swing.plaf.TextUI;
  18. import mpv5.data.PropertyStore;
  19. import mpv5.db.common.*;
  20. import mpv5.db.objects.User;
  21. import mpv5.globals.Constants;
  22. import mpv5.globals.Messages;
  23. import mpv5.i18n.LanguageManager;
  24. import mpv5.logging.Log;
  25. import mpv5.ui.dialogs.ControlApplet;
  26. import mpv5.ui.dialogs.DialogForFile;
  27. import mpv5.ui.dialogs.Notificator;
  28. import mpv5.ui.dialogs.Popup;
  29. import mpv5.ui.misc.TextFieldUtils;
  30. import mpv5.utils.files.FileDirectoryHandler;
  31. import mpv5.utils.files.FileReaderWriter;
  32. import mpv5.utils.models.MPComboBoxModelItem;
  33. import mpv5.utils.text.RandomText;
  34. import mpv5.utils.text.TypeConversion;
  35. /**
  36. *
  37. *
  38. */
  39. public class ControlPanel_Locale extends javax.swing.JPanel implements ControlApplet {
  40. private static final long serialVersionUID = 1L;
  41. /**
  42. * This unique name identifies this control applet
  43. */
  44. public final String UNAME = "locale";
  45. private PropertyStore oldvalues;
  46. private static ControlPanel_Locale ident;
  47. public ControlPanel_Locale() {
  48. initComponents();
  49. locales.setModel(getLocales());
  50. locales.setSelectedIndex(MPComboBoxModelItem.getItemID(Locale.getDefault().toString(),
  51. locales.getModel()));
  52. setLanguageSelection();
  53. isocode.set_ValueClass(java.lang.Integer.class);
  54. countryselect.setModel(LanguageManager.getCountriesAsComboBoxModel());
  55. setVisible(true);
  56. }
  57. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  58. private void initComponents() {
  59. jPanel5 = new javax.swing.JPanel();
  60. jLabel8 = new javax.swing.JLabel();
  61. jLabel9 = new javax.swing.JLabel();
  62. labeledTextChooser2 = new mpv5.ui.beans.LabeledTextChooser();
  63. jButton4 = new javax.swing.JButton();
  64. jPanel1 = new javax.swing.JPanel();
  65. isocode = new mpv5.ui.beans.LabeledTextField();
  66. countryname = new mpv5.ui.beans.LabeledTextField();
  67. jButton7 = new javax.swing.JButton();
  68. jPanel7 = new javax.swing.JPanel();
  69. jButton8 = new javax.swing.JButton();
  70. countryselect = new mpv5.ui.beans.LabeledCombobox();
  71. jPanel4 = new javax.swing.JPanel();
  72. jLabel5 = new javax.swing.JLabel();
  73. jLabel6 = new javax.swing.JLabel();
  74. labeledTextChooser1 = new mpv5.ui.beans.LabeledTextChooser();
  75. jButton3 = new javax.swing.JButton();
  76. langName = new mpv5.ui.beans.LabeledTextField();
  77. jLabel7 = new javax.swing.JLabel();
  78. jPanel3 = new javax.swing.JPanel();
  79. jLabel3 = new javax.swing.JLabel();
  80. jLabel4 = new javax.swing.JLabel();
  81. languages = new javax.swing.JComboBox();
  82. jButton5 = new javax.swing.JButton();
  83. jButton6 = new javax.swing.JButton();
  84. jPanel2 = new javax.swing.JPanel();
  85. jLabel2 = new javax.swing.JLabel();
  86. jLabel1 = new javax.swing.JLabel();
  87. locales = new javax.swing.JComboBox();
  88. jPanel6 = new javax.swing.JPanel();
  89. jButton2 = new javax.swing.JButton();
  90. jButton1 = new javax.swing.JButton();
  91. setBackground(new java.awt.Color(255, 255, 255));
  92. java.util.ResourceBundle bundle = mpv5.i18n.LanguageManager.getBundle(); // NOI18N
  93. setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Locale.border.title"))); // NOI18N
  94. setName("Form"); // NOI18N
  95. setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.PAGE_AXIS));
  96. jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  97. jPanel5.setName("jPanel5"); // NOI18N
  98. jLabel8.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  99. jLabel8.setText(bundle.getString("ControlPanel_Locale.jLabel8.text")); // NOI18N
  100. jLabel8.setName("jLabel8"); // NOI18N
  101. jLabel9.setFont(new java.awt.Font("Dialog", 0, 11)); // NOI18N
  102. jLabel9.setText(bundle.getString("ControlPanel_Locale.jLabel9.text")); // NOI18N
  103. jLabel9.setName("jLabel9"); // NOI18N
  104. labeledTextChooser2.set_Label(bundle.getString("ControlPanel_Locale.labeledTextChooser2._Label")); // NOI18N
  105. labeledTextChooser2.set_LabelFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
  106. labeledTextChooser2.setName("labeledTextChooser2"); // NOI18N
  107. jButton4.setText(bundle.getString("ControlPanel_Locale.jButton4.text")); // NOI18N
  108. jButton4.setName("jButton4"); // NOI18N
  109. jButton4.addActionListener(new java.awt.event.ActionListener() {
  110. public void actionPerformed(java.awt.event.ActionEvent evt) {
  111. jButton4ActionPerformed(evt);
  112. }
  113. });
  114. jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Locale.jPanel1.border.title"))); // NOI18N
  115. jPanel1.setName(bundle.getString("ControlPanel_Locale.jPanel1.name")); // NOI18N
  116. isocode.set_Label(bundle.getString("ControlPanel_Locale.isocode._Label")); // NOI18N
  117. isocode.setName(bundle.getString("ControlPanel_Locale.isocode.name")); // NOI18N
  118. countryname.set_Label(bundle.getString("ControlPanel_Locale.countryname._Label")); // NOI18N
  119. countryname.setName(bundle.getString("ControlPanel_Locale.countryname.name")); // NOI18N
  120. jButton7.setText(bundle.getString("ControlPanel_Locale.jButton7.text")); // NOI18N
  121. jButton7.setName(bundle.getString("ControlPanel_Locale.jButton7.name")); // NOI18N
  122. jButton7.addActionListener(new java.awt.event.ActionListener() {
  123. public void actionPerformed(java.awt.event.ActionEvent evt) {
  124. jButton7ActionPerformed(evt);
  125. }
  126. });
  127. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  128. jPanel1.setLayout(jPanel1Layout);
  129. jPanel1Layout.setHorizontalGroup(
  130. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  131. .addGroup(jPanel1Layout.createSequentialGroup()
  132. .addComponent(isocode, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
  133. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  134. .addComponent(countryname, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)
  135. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  136. .addComponent(jButton7)
  137. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  138. );
  139. jPanel1Layout.setVerticalGroup(
  140. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  141. .addComponent(jButton7, javax.swing.GroupLayout.Alignment.TRAILING)
  142. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  143. .addComponent(isocode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  144. .addComponent(countryname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  145. );
  146. jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(bundle.getString("ControlPanel_Locale.jPanel7.border.title"))); // NOI18N
  147. jPanel7.setName(bundle.getString("ControlPanel_Locale.jPanel7.name")); // NOI18N
  148. jButton8.setText(bundle.getString("ControlPanel_Locale.jButton8.text")); // NOI18N
  149. jButton8.setName(bundle.getString("ControlPanel_Locale.jButton8.name")); // NOI18N
  150. jButton8.addActionListener(new java.awt.event.ActionListener() {
  151. public void actionPerformed(java.awt.event.ActionEvent evt) {
  152. jButton8ActionPerformed(evt);
  153. }
  154. });
  155. countryselect.set_Label(bundle.getString("ControlPanel_Locale.countryselect._Label")); // NOI18N
  156. countryselect.setName(bundle.getString("ControlPanel_Locale.countryselect.name")); // NOI18N
  157. javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
  158. jPanel7.setLayout(jPanel7Layout);
  159. jPanel7Layout.setHorizontalGroup(
  160. jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  161. .addGroup(jPanel7Layout.createSequentialGroup()
  162. .addComponent(countryselect, javax.swing.GroupLayout.PREFERRED_SIZE, 328, javax.swing.GroupLayout.PREFERRED_SIZE)
  163. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  164. .addComponent(jButton8)
  165. .addContainerGap(28, Short.MAX_VALUE))
  166. );
  167. jPanel7Layout.setVerticalGroup(
  168. jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  169. .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  170. .addComponent(jButton8)
  171. .addComponent(countryselect, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  172. );
  173. javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
  174. jPanel5.setLayout(jPanel5Layout);
  175. jPanel5Layout.setHorizontalGroup(
  176. jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  177. .addGroup(jPanel5Layout.createSequentialGroup()
  178. .addContainerGap()
  179. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  180. .addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, 437, Short.MAX_VALUE)
  181. .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  182. .addGroup(jPanel5Layout.createSequentialGroup()
  183. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  184. .addGroup(jPanel5Layout.createSequentialGroup()
  185. .addComponent(labeledTextChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, 268, javax.swing.GroupLayout.PREFERRED_SIZE)
  186. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  187. .addComponent(jButton4))
  188. .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  189. .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  190. .addGap(0, 0, Short.MAX_VALUE)))
  191. .addContainerGap())
  192. );
  193. jPanel5Layout.setVerticalGroup(
  194. jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  195. .addGroup(jPanel5Layout.createSequentialGroup()
  196. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  197. .addComponent(jLabel8)
  198. .addGap(7, 7, 7)
  199. .addComponent(jLabel9)
  200. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  201. .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  202. .addComponent(labeledTextChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
  203. .addComponent(jButton4, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
  204. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  205. .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  206. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  207. .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  208. );
  209. add(jPanel5);
  210. jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  211. jPanel4.setName("jPanel4"); // NOI18N
  212. jLabel5.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  213. jLabel5.setText(bundle.getString("ControlPanel_Locale.jLabel5.text")); // NOI18N
  214. jLabel5.setName("jLabel5"); // NOI18N
  215. jLabel6.setFont(new java.awt.Font("Dialog", 0, 11)); // NOI18N
  216. jLabel6.setText(bundle.getString("ControlPanel_Locale.jLabel6.text")); // NOI18N
  217. jLabel6.setName("jLabel6"); // NOI18N
  218. labeledTextChooser1.set_Label(bundle.getString("ControlPanel_Locale.labeledTextChooser1._Label")); // NOI18N
  219. labeledTextChooser1.set_LabelFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
  220. labeledTextChooser1.setName("labeledTextChooser1"); // NOI18N
  221. jButton3.setText(bundle.getString("ControlPanel_Locale.jButton3.text")); // NOI18N
  222. jButton3.setName("jButton3"); // NOI18N
  223. jButton3.addActionListener(new java.awt.event.ActionListener() {
  224. public void actionPerformed(java.awt.event.ActionEvent evt) {
  225. jButton3ActionPerformed(evt);
  226. }
  227. });
  228. langName.set_Label(bundle.getString("ControlPanel_Locale.langName._Label")); // NOI18N
  229. langName.set_LabelFont(new java.awt.Font("Dialog", 0, 11)); // NOI18N
  230. langName.setName("langName"); // NOI18N
  231. jLabel7.setFont(new java.awt.Font("Dialog", 0, 11)); // NOI18N
  232. jLabel7.setText(bundle.getString("ControlPanel_Locale.jLabel7.text")); // NOI18N
  233. jLabel7.setName("jLabel7"); // NOI18N
  234. javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
  235. jPanel4.setLayout(jPanel4Layout);
  236. jPanel4Layout.setHorizontalGroup(
  237. jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  238. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
  239. .addContainerGap()
  240. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  241. .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
  242. .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  243. .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel4Layout.createSequentialGroup()
  244. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  245. .addComponent(langName, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
  246. .addGroup(jPanel4Layout.createSequentialGroup()
  247. .addComponent(labeledTextChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, 266, javax.swing.GroupLayout.PREFERRED_SIZE)
  248. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  249. .addComponent(jButton3)))
  250. .addGap(0, 0, Short.MAX_VALUE))
  251. .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  252. .addContainerGap())
  253. );
  254. jPanel4Layout.setVerticalGroup(
  255. jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  256. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
  257. .addContainerGap()
  258. .addComponent(jLabel5)
  259. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  260. .addComponent(jLabel7)
  261. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  262. .addComponent(langName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  263. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  264. .addComponent(jLabel6)
  265. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  266. .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  267. .addComponent(jButton3)
  268. .addGroup(jPanel4Layout.createSequentialGroup()
  269. .addGap(1, 1, 1)
  270. .addComponent(labeledTextChooser1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
  271. .addContainerGap())
  272. );
  273. add(jPanel4);
  274. jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  275. jPanel3.setName("jPanel3"); // NOI18N
  276. jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  277. jLabel3.setText(bundle.getString("ControlPanel_Locale.jLabel3.text")); // NOI18N
  278. jLabel3.setName("jLabel3"); // NOI18N
  279. jLabel4.setFont(new java.awt.Font("Dialog", 0, 11)); // NOI18N
  280. jLabel4.setText(bundle.getString("ControlPanel_Locale.jLabel4.text")); // NOI18N
  281. jLabel4.setName("jLabel4"); // NOI18N
  282. languages.setName("languages"); // NOI18N
  283. jButton5.setText(bundle.getString("ControlPanel_Locale.jButton5.text")); // NOI18N
  284. jButton5.setName("jButton5"); // NOI18N
  285. jButton5.addActionListener(new java.awt.event.ActionListener() {
  286. public void actionPerformed(java.awt.event.ActionEvent evt) {
  287. jButton5ActionPerformed(evt);
  288. }
  289. });
  290. jButton6.setText(bundle.getString("ControlPanel_Locale.jButton6.text")); // NOI18N
  291. jButton6.setName("jButton6"); // NOI18N
  292. jButton6.addActionListener(new java.awt.event.ActionListener() {
  293. public void actionPerformed(java.awt.event.ActionEvent evt) {
  294. jButton6ActionPerformed(evt);
  295. }
  296. });
  297. javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
  298. jPanel3.setLayout(jPanel3Layout);
  299. jPanel3Layout.setHorizontalGroup(
  300. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  301. .addGroup(jPanel3Layout.createSequentialGroup()
  302. .addContainerGap()
  303. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  304. .addGroup(jPanel3Layout.createSequentialGroup()
  305. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  306. .addComponent(languages, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE)
  307. .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE))
  308. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  309. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  310. .addComponent(jButton6)
  311. .addComponent(jButton5)))
  312. .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  313. .addContainerGap(27, Short.MAX_VALUE))
  314. );
  315. jPanel3Layout.setVerticalGroup(
  316. jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  317. .addGroup(jPanel3Layout.createSequentialGroup()
  318. .addContainerGap()
  319. .addComponent(jLabel3)
  320. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  321. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  322. .addComponent(jLabel4)
  323. .addComponent(jButton6))
  324. .addGap(18, 18, 18)
  325. .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
  326. .addComponent(languages, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  327. .addComponent(jButton5))
  328. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  329. );
  330. add(jPanel3);
  331. jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
  332. jPanel2.setName("jPanel2"); // NOI18N
  333. jLabel2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
  334. jLabel2.setText(bundle.getString("ControlPanel_Locale.jLabel2.text")); // NOI18N
  335. jLabel2.setName("jLabel2"); // NOI18N
  336. jLabel1.setFont(new java.awt.Font("Dialog", 0, 11)); // NOI18N
  337. jLabel1.setText(bundle.getString("ControlPanel_Locale.jLabel1.text")); // NOI18N
  338. jLabel1.setName("jLabel1"); // NOI18N
  339. locales.setName("locales"); // NOI18N
  340. javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
  341. jPanel2.setLayout(jPanel2Layout);
  342. jPanel2Layout.setHorizontalGroup(
  343. jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  344. .addGroup(jPanel2Layout.createSequentialGroup()
  345. .addContainerGap()
  346. .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  347. .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 356, Short.MAX_VALUE)
  348. .addComponent(jLabel2)
  349. .addComponent(locales, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE))
  350. .addContainerGap())
  351. );
  352. jPanel2Layout.setVerticalGroup(
  353. jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  354. .addGroup(jPanel2Layout.createSequentialGroup()
  355. .addContainerGap()
  356. .addComponent(jLabel2)
  357. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  358. .addComponent(jLabel1)
  359. .addGap(18, 18, 18)
  360. .addComponent(locales, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  361. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  362. );
  363. add(jPanel2);
  364. jPanel6.setBackground(new java.awt.Color(255, 255, 255));
  365. jPanel6.setName("jPanel6"); // NOI18N
  366. jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
  367. jButton2.setText(bundle.getString("ControlPanel_Locale.jButton2.text")); // NOI18N
  368. jButton2.setName("jButton2"); // NOI18N
  369. jButton2.addActionListener(new java.awt.event.ActionListener() {
  370. public void actionPerformed(java.awt.event.ActionEvent evt) {
  371. jButton2ActionPerformed(evt);
  372. }
  373. });
  374. jPanel6.add(jButton2);
  375. jButton1.setText(bundle.getString("ControlPanel_Locale.jButton1.text")); // NOI18N
  376. jButton1.setName("jButton1"); // NOI18N
  377. jButton1.addActionListener(new java.awt.event.ActionListener() {
  378. public void actionPerformed(java.awt.event.ActionEvent evt) {
  379. jButton1ActionPerformed(evt);
  380. }
  381. });
  382. jPanel6.add(jButton1);
  383. add(jPanel6);
  384. }// </editor-fold>//GEN-END:initComponents
  385. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
  386. setSettings();
  387. }//GEN-LAST:event_jButton2ActionPerformed
  388. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
  389. setSettings();
  390. mpv5.db.objects.User.getCurrentUser().save();
  391. cleanup();
  392. // mpv5.YabsViewProxy.instance().resetTables();
  393. Popup.notice(Messages.RESTART_REQUIRED);
  394. }//GEN-LAST:event_jButton1ActionPerformed
  395. private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
  396. if (QueryHandler.instanceOf().clone(Context.getLanguage()).checkUniqueness("longname", new JTextField[]{langName.getTextField()})) {
  397. if (!langName.hasText()) {
  398. langName.setText(new File(labeledTextChooser1.get_Text(false)).getName());
  399. }
  400. Runnable runnable = new Runnable() {
  401. @Override
  402. public void run() {
  403. try {
  404. mpv5.YabsViewProxy.instance().setWaiting(true);
  405. LanguageManager.importLanguage(langName.get_Text(), new File(labeledTextChooser1.get_Text(true)));
  406. setLanguageSelection();
  407. } catch (Exception e) {
  408. Log.Debug(e);
  409. } finally {
  410. cleanup();
  411. mpv5.YabsViewProxy.instance().setWaiting(false);
  412. }
  413. }
  414. };
  415. new Thread(runnable).start();
  416. }
  417. }//GEN-LAST:event_jButton3ActionPerformed
  418. private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
  419. if (labeledTextChooser2.hasText()) {
  420. LanguageManager.importCountries(new File(labeledTextChooser2.get_Text(true)));
  421. LanguageManager.COUNTRIES = null;
  422. countryselect.setModel(LanguageManager.getCountriesAsComboBoxModel());
  423. }
  424. }//GEN-LAST:event_jButton4ActionPerformed
  425. private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
  426. if (languages.getSelectedIndex() == -1) {
  427. Popup.warn(Messages.LANG_EMPTY.toString());
  428. } else {
  429. String languagestring = ((MPComboBoxModelItem) languages.getSelectedItem()).getId();
  430. try {
  431. int rows = QueryHandler.instanceOf().
  432. clone(Context.getUser()).
  433. selectCount("LANGUAGE=",
  434. "'" + languagestring + "'");
  435. if (rows != 0) {
  436. Popup.notice(Messages.LANG_USED.toString());
  437. } else {
  438. try {
  439. LanguageManager.removeLanguage(languagestring);
  440. setLanguageSelection();
  441. } catch (NodataFoundException ex) {
  442. Log.Debug(ex);
  443. }
  444. }
  445. } catch (SQLException ex) {
  446. Log.Debug(ex);
  447. }
  448. }
  449. }//GEN-LAST:event_jButton5ActionPerformed
  450. private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
  451. File f = null;
  452. String key;
  453. String lang_long = "export";
  454. if (languages.getSelectedIndex() == -1) {
  455. Popup.warn(Messages.LANG_EMPTY.toString());
  456. } else {
  457. try {
  458. lang_long = ((MPComboBoxModelItem) languages.getSelectedItem()).toString();
  459. f = FileDirectoryHandler.getTempFile(lang_long + "_" + Constants.VERSION, "yabs");
  460. FileReaderWriter rw = new FileReaderWriter(f, "utf-8");
  461. String lang = ((MPComboBoxModelItem) languages.getSelectedItem()).getId();
  462. ResourceBundle bundle = LanguageManager.getBundle(lang);
  463. Enumeration<String> keys = bundle.getKeys();
  464. List<String> list = Collections.list(keys);
  465. Collections.sort(list);
  466. String[] data = new String[list.size()];
  467. for (int i = 0; i < list.size(); i++) {
  468. key = list.get(i);
  469. data[i] = key + "=" + bundle.getString(key);
  470. }
  471. rw.write0WCharset(data);
  472. DialogForFile df = new DialogForFile(JFileChooser.FILES_AND_DIRECTORIES);
  473. df.saveFile(f);
  474. } catch (Exception ex) {
  475. Log.Debug(this, ex.getLocalizedMessage());
  476. }
  477. }
  478. }//GEN-LAST:event_jButton6ActionPerformed
  479. private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
  480. if (!isocode.hasText()) {
  481. TextFieldUtils.blinkerRed(isocode);
  482. }
  483. if (!countryname.hasText()) {
  484. TextFieldUtils.blinkerRed(countryname);
  485. } else {
  486. try {
  487. QueryData t = new QueryData();
  488. t.add("cname", countryname.getText());
  489. t.add("iso", isocode.getValue(0));
  490. t.add("groupsids", User.getCurrentUser().__getGroupsids());
  491. QueryHandler.instanceOf().clone(Context.getCountries()).insert(t, Messages.DONE.toString());
  492. Notificator.raiseNotification(Messages.DONE);
  493. LanguageManager.COUNTRIES = null;
  494. countryselect.setModel(LanguageManager.getCountriesAsComboBoxModel());
  495. } catch (Exception exception) {
  496. Log.Debug(LanguageManager.class, exception.getMessage());
  497. Notificator.raiseNotification("Isocode must be unique!");
  498. }
  499. }
  500. }//GEN-LAST:event_jButton7ActionPerformed
  501. private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
  502. String country_ = countryselect.getSelectedItem().getId();
  503. QueryCriteria2 q = new QueryCriteria2();
  504. q.and(new QueryParameter(Context.getCountries(), "iso", Integer.valueOf(country_), QueryParameter.EQUALS));
  505. QueryHandler.instanceOf().clone(Context.getCountries()).delete(q);
  506. LanguageManager.COUNTRIES = null;
  507. countryselect.setModel(LanguageManager.getCountriesAsComboBoxModel());
  508. Notificator.raiseNotification(Messages.DONE);
  509. }//GEN-LAST:event_jButton8ActionPerformed
  510. public void setValues(PropertyStore values) {
  511. oldvalues = values;
  512. }
  513. public String getUname() {
  514. return UNAME;
  515. }
  516. public void reset() {
  517. setValues(oldvalues);
  518. }
  519. // Variables declaration - do not modify//GEN-BEGIN:variables
  520. private mpv5.ui.beans.LabeledTextField countryname;
  521. private mpv5.ui.beans.LabeledCombobox countryselect;
  522. private mpv5.ui.beans.LabeledTextField isocode;
  523. private javax.swing.JButton jButton1;
  524. private javax.swing.JButton jButton2;
  525. private javax.swing.JButton jButton3;
  526. private javax.swing.JButton jButton4;
  527. private javax.swing.JButton jButton5;
  528. private javax.swing.JButton jButton6;
  529. private javax.swing.JButton jButton7;
  530. private javax.swing.JButton jButton8;
  531. private javax.swing.JLabel jLabel1;
  532. private javax.swing.JLabel jLabel2;
  533. private javax.swing.JLabel jLabel3;
  534. private javax.swing.JLabel jLabel4;
  535. private javax.swing.JLabel jLabel5;
  536. private javax.swing.JLabel jLabel6;
  537. private javax.swing.JLabel jLabel7;
  538. private javax.swing.JLabel jLabel8;
  539. private javax.swing.JLabel jLabel9;
  540. private javax.swing.JPanel jPanel1;
  541. private javax.swing.JPanel jPanel2;
  542. private javax.swing.JPanel jPanel3;
  543. private javax.swing.JPanel jPanel4;
  544. private javax.swing.JPanel jPanel5;
  545. private javax.swing.JPanel jPanel6;
  546. private javax.swing.JPanel jPanel7;
  547. private mpv5.ui.beans.LabeledTextChooser labeledTextChooser1;
  548. private mpv5.ui.beans.LabeledTextChooser labeledTextChooser2;
  549. private mpv5.ui.beans.LabeledTextField langName;
  550. private javax.swing.JComboBox languages;
  551. private javax.swing.JComboBox locales;
  552. // End of variables declaration//GEN-END:variables
  553. // End of variables declaration
  554. private void setLanguageSelection() {
  555. languages.setModel(getLanguages());
  556. languages.setSelectedIndex(MPComboBoxModelItem.getItemID(mpv5.db.objects.User.getCurrentUser().__getLanguage(),
  557. languages.getModel()));
  558. }
  559. // End of variables declaration
  560. private void setSettings() {
  561. String localestring = ((MPComboBoxModelItem) locales.getSelectedItem()).getId();
  562. String languagestring = ((MPComboBoxModelItem) languages.getSelectedItem()).getId();
  563. mpv5.db.objects.User.getCurrentUser().setLocale(localestring);
  564. mpv5.db.objects.User.getCurrentUser().setLanguage(languagestring);
  565. Locale.setDefault(TypeConversion.stringToLocale(localestring));
  566. }
  567. private DefaultComboBoxModel getLocales() {
  568. return LanguageManager.getLocalesAsComboBoxModel();
  569. }
  570. private ComboBoxModel getLanguages() {
  571. return LanguageManager.getLanguagesAsComboBoxModel();
  572. }
  573. private ComboBoxModel getCountries() {
  574. return LanguageManager.getCountriesAsComboBoxModel();
  575. }
  576. @Override
  577. public java.awt.Component getAndRemoveActionPanel() {
  578. this.remove(jPanel6);
  579. validate();
  580. return jPanel6;
  581. }
  582. private void cleanup() {
  583. try {
  584. for (File f : new File(FileDirectoryHandler.getTempDir2()).listFiles()) {
  585. if (f.getName().endsWith(".properties")) {
  586. f.deleteOnExit();
  587. }
  588. }
  589. } catch (Exception ex) {
  590. }
  591. }
  592. }