Tools.java 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807
  1. /*
  2. * Copyright (C) 2015 iZc
  3. *
  4. * This program 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. * This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. package de.nplusc.izc.tools.baseTools;
  18. import de.nplusc.izc.tools.IOtools.FileTK;
  19. import de.nplusc.izc.tools.IOtools.PrintStreamCapturer;
  20. import java.awt.Dimension;
  21. import java.awt.GraphicsEnvironment;
  22. import java.io.*;
  23. import java.lang.reflect.Field;
  24. import java.security.MessageDigest;
  25. import java.util.Arrays;
  26. import java.util.HashMap;
  27. import java.util.Map;
  28. import java.util.Scanner;
  29. import java.util.prefs.Preferences;
  30. import javax.swing.*;
  31. import net.rubygrapefruit.platform.Native;
  32. import net.rubygrapefruit.platform.ProcessLauncher;
  33. import org.apache.commons.exec.CommandLine;
  34. import org.apache.commons.exec.DefaultExecutor;
  35. import org.apache.commons.exec.Executor;
  36. import org.apache.commons.io.output.NullOutputStream;
  37. import org.apache.logging.log4j.LogManager;
  38. import org.apache.logging.log4j.Logger;
  39. /**
  40. *
  41. * @author LH
  42. */
  43. @SuppressWarnings( "deprecation" )
  44. public class Tools
  45. {
  46. private static final Logger l = LogManager.getLogger();
  47. public static boolean execCrashed = false;
  48. private static boolean ContState;
  49. private static JDialog d;
  50. private static boolean hl=false;
  51. //private boolean ProcessReturn;
  52. private static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
  53. private static int logNumber;
  54. protected Tools()
  55. {
  56. //disabled Constructor
  57. }
  58. static
  59. {
  60. GraphicsEnvironment ge =
  61. GraphicsEnvironment.getLocalGraphicsEnvironment();
  62. boolean hl = ge.isHeadless();
  63. if(!hl){
  64. //d = new JDialog();
  65. }
  66. }
  67. /**
  68. * Method to pad the left of a Sting with given character
  69. * @param count Destination amount of data
  70. * @param base String to pad up
  71. * @param filler Padding data
  72. * @return Padded String
  73. */
  74. public static String padLeft(final int count, final String base, final char filler)
  75. {
  76. if (base == null)
  77. {
  78. throw new NullPointerException();
  79. }
  80. if (base.length() >= count)
  81. {
  82. return base;
  83. }
  84. char[] prefix = new char[count - base.length()];
  85. Arrays.fill(prefix, filler);
  86. return new StringBuilder(count).append(prefix).append(base).toString();
  87. }
  88. /**
  89. * Method rename and shorthand for Thread.sleep()
  90. * @param time Time to wait in ms
  91. */
  92. public static void wait(int time)
  93. {
  94. try
  95. {
  96. Thread.sleep(time);
  97. }
  98. catch (InterruptedException ex)
  99. {
  100. ex.printStackTrace();
  101. }
  102. }
  103. /**
  104. * SHA-Hashes a String
  105. * @param s String to hash
  106. * @return Hashed String
  107. */
  108. public static String getSHAString(String s)
  109. {
  110. try
  111. {
  112. MessageDigest sha = MessageDigest.getInstance("SHA");
  113. @SuppressWarnings("StringBufferMayBeStringBuilder")
  114. StringBuffer t = new StringBuffer();
  115. byte[] digest = sha.digest(s.getBytes());
  116. for (byte b : digest)
  117. {
  118. l.trace(String.format("%02x", b));
  119. int val = ((int) b) & 0xff;
  120. if (val < 16)
  121. {
  122. t.append("0");
  123. }
  124. t.append(Integer.toHexString(val));
  125. }
  126. return t.toString();
  127. }
  128. catch (Exception ex)
  129. {
  130. return null;
  131. }
  132. }
  133. /**
  134. * Integerizes a String
  135. * @param ip String to integerize
  136. * @return Array of Integers where each int is a Character of the string
  137. */
  138. public static int[] lettersToInt(String ip)
  139. {
  140. ip = ip.toLowerCase();
  141. char[] it = ip.toCharArray();
  142. int[] ri = new int[it.length];
  143. for (int i = 0; i < ri.length; i++)
  144. {
  145. ri[i] = (int) it[i];
  146. }
  147. return ri;
  148. }
  149. /**
  150. * Sum of the Elements of the Array
  151. * @param i Integer-array to sumup
  152. * @return Sum of the elements
  153. */
  154. public static int addIntsTogether(int[] i)
  155. {
  156. int t = 1;
  157. for (int X : i)
  158. {
  159. t *= X;
  160. }
  161. return t;
  162. }
  163. @Deprecated
  164. /**
  165. * HACK!!!
  166. * @param m unknown
  167. * @param ints unknown
  168. * @return unknown
  169. */
  170. public static int addIntsTogether(HashMap<String, String> m, boolean ints)
  171. {
  172. //boolean ints = !noints;
  173. String[] mk;
  174. Object[] mk2 = m.keySet().toArray();
  175. mk = new String[mk2.length];
  176. for (int i = 0; i < mk.length; i++)
  177. {
  178. String s = "";
  179. //s.toString();
  180. mk[i] = mk2[i].toString();
  181. }
  182. int t = 1;
  183. for (String s : mk)
  184. {
  185. if (ints == true)
  186. {
  187. t *= Integer.valueOf(m.get(s));
  188. }
  189. else
  190. {
  191. int t2 = 0;
  192. int[] itmp = lettersToInt(m.get(s));
  193. for (int i : itmp)
  194. {
  195. t2 += i;
  196. }
  197. t += t2;
  198. }
  199. }
  200. return t;
  201. }
  202. @Deprecated
  203. /**
  204. * Adds the Strings together while respecting Alphabet and wraps . Dont use for new Code
  205. * @param s1 String 1
  206. * @param s2 String 2
  207. * @return the merged Strings
  208. */
  209. public static String stringAdd(String s1, String s2)
  210. {
  211. char[] ca1 = s1.toLowerCase().toCharArray();
  212. char[] ca2 = s2.toLowerCase().toCharArray();
  213. int[] ci1 = new int[ca1.length];
  214. int[] ci2 = new int[ca2.length];
  215. String t;
  216. for (int i = 0; i < ca1.length; i++)
  217. {
  218. try
  219. {
  220. ci1[i] = Integer.valueOf(Character.toString(ca1[i]));
  221. }
  222. catch (Exception ex)
  223. {
  224. t = Character.toString(ca1[i]);
  225. ci1[i] = ALPHABET.indexOf(t) + 1;
  226. }
  227. }
  228. for (int i = 0; i < ca2.length; i++)
  229. {
  230. try
  231. {
  232. ci2[i] = Integer.valueOf(Character.toString(ca2[i]));
  233. }
  234. catch (Exception ex)
  235. {
  236. t = Character.toString(ca2[i]);
  237. ci2[i] = ALPHABET.indexOf(t) + 1;
  238. }
  239. }
  240. int l = ci1.length;
  241. if (ci1.length < ci2.length)
  242. {
  243. l = ci2.length;
  244. }
  245. int[] op = new int[l];
  246. int i1, i2, i3;
  247. for (int i = 0; i < l; i++)
  248. {
  249. try
  250. {
  251. i1 = ci1[i];
  252. }
  253. catch (Exception ex)
  254. {
  255. i1 = 0;
  256. }
  257. try
  258. {
  259. i2 = ci2[i];
  260. }
  261. catch (Exception ex)
  262. {
  263. i2 = 0;
  264. }
  265. i3 = i1 + i1;
  266. if (i3 > 26)
  267. {
  268. i3 -= 26;
  269. }
  270. op[i] = i3;
  271. }
  272. return backString(op);
  273. }
  274. @Deprecated
  275. public static String backString(int[] ia)
  276. {
  277. int l = ia.length, i1;
  278. String[] r1 = new String[l];
  279. String rl = "";
  280. for (int i = 0; i < l; i++)
  281. {
  282. i1 = ia[i] - 1;
  283. if (i1 == -1)
  284. {
  285. i1++;
  286. }
  287. r1[i] = Character.toString(ALPHABET.charAt(i1));
  288. }
  289. for (String s : r1)
  290. {
  291. rl += s;
  292. }
  293. return rl;
  294. }
  295. @Deprecated
  296. public static String stringFold(String s, int l, int rec)//halbiert Strings und addiert die Hälften
  297. {
  298. int l1 = s.length() / 2;//,l2;
  299. String sh1, sh2, so1;
  300. //int l2=l1+1-1;//Neuen Wet erzeugen!!
  301. //l2=l1*2
  302. if ((l1 * 2) == s.length() - 1)
  303. {
  304. l1++;
  305. }
  306. sh1 = s.substring(0, l1++);
  307. sh2 = s.substring(l1++);
  308. so1 = stringAdd(sh1, sh2);
  309. if (so1.length() > l && rec > 0)
  310. {
  311. so1 = stringFold(so1, l, rec--);
  312. }
  313. return so1;
  314. }
  315. @Deprecated
  316. public static String stringFold(String s, int l)
  317. {
  318. return stringFold(s, l, 30);
  319. }
  320. /**
  321. * 2-Elemente-Meckermeldung
  322. * @param mode ignored
  323. * @param MSGLine1 Zeile 1 der Meldung
  324. * @param MSGLine2 ZEile 2 der Meldung
  325. * @return true if left button got pressed, false on right one
  326. */
  327. public static boolean dlg(boolean mode, String MSGLine1, String MSGLine2)
  328. {
  329. return dlg(mode, MSGLine1, MSGLine2, "Fortfahren", "Abbrechen");
  330. }
  331. /**
  332. * 2-Elemente-Meckermeldung
  333. * @param mode ignored
  334. * @param MSGLine1 Zeile 1 der Meldung
  335. * @param MSGLine2 ZEile 2 der Meldung
  336. * @param btnLeft MEssage of left button
  337. * @param btnRight MEssage of Right button
  338. * @return true if left button got pressed, false on right one
  339. */
  340. public static boolean dlg(boolean mode, String MSGLine1, String MSGLine2, String btnLeft, String btnRight)
  341. {
  342. if(hl)
  343. {
  344. return false;
  345. }
  346. d=new JDialog();
  347. JPanel p = new JPanel();
  348. javax.swing.JButton btnYes = new javax.swing.JButton();
  349. javax.swing.JButton btnNo = new javax.swing.JButton();
  350. JLabel lblMSG = new JLabel();
  351. JLabel lblMSG2 = new JLabel();
  352. d.setModal(mode);
  353. mode = true;
  354. if (mode == true)
  355. {
  356. //Ausgeblendet da nur Fenster-Layout
  357. // <editor-fold defaultstate="collapsed" desc="Layout-Code">
  358. btnNo.setText(btnRight);
  359. btnNo.addActionListener(new java.awt.event.ActionListener()
  360. {
  361. public void actionPerformed(java.awt.event.ActionEvent evt)
  362. {
  363. btnNoActionPerformed(evt);
  364. }
  365. });
  366. btnYes.setText(btnLeft);
  367. btnYes.addActionListener(new java.awt.event.ActionListener()
  368. {
  369. public void actionPerformed(java.awt.event.ActionEvent evt)
  370. {
  371. btnYesActionPerformed(evt);
  372. }
  373. });
  374. lblMSG.setText(MSGLine1);
  375. lblMSG2.setText(MSGLine2);
  376. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(p);
  377. p.setLayout(layout);
  378. layout.setHorizontalGroup(
  379. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  380. .addGroup(layout.createSequentialGroup()
  381. .addGap(36, 36, 36)
  382. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  383. .addComponent(lblMSG, javax.swing.GroupLayout.PREFERRED_SIZE, 258, javax.swing.GroupLayout.PREFERRED_SIZE)
  384. .addGroup(layout.createSequentialGroup()
  385. .addComponent(btnYes)
  386. .addGap(18, 18, 18)
  387. .addComponent(btnNo))
  388. .addGroup(layout.createSequentialGroup()
  389. .addGap(40, 40, 40)
  390. .addComponent(lblMSG2)))
  391. .addContainerGap(63, Short.MAX_VALUE)));
  392. layout.setVerticalGroup(
  393. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  394. .addGroup(layout.createSequentialGroup()
  395. .addContainerGap()
  396. .addComponent(lblMSG, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
  397. .addGap(18, 18, 18)
  398. .addComponent(lblMSG2)
  399. .addGap(18, 18, 18)
  400. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  401. .addComponent(btnYes)
  402. .addComponent(btnNo))
  403. .addContainerGap(71, Short.MAX_VALUE)));
  404. // </editor-fold>
  405. //Auskommentierter Fail!
  406. // <editor-fold defaultstate="collapsed" desc="FailTry">
  407. /*javax.swing.JButton btnYes = new javax.swing.JButton();
  408. btnYes.addActionListener
  409. (
  410. new java.awt.event.ActionListener()
  411. {
  412. public void actionPerformed(java.awt.event.ActionEvent evt)
  413. {
  414. btnCTNActionPerformed(evt);
  415. }
  416. }
  417. );
  418. javax.swing.JButton btnNo = new javax.swing.JButton();
  419. btnNo.addActionListener
  420. (
  421. new java.awt.event.ActionListener()
  422. {
  423. public void actionPerformed(java.awt.event.ActionEvent evt)
  424. {
  425. btnSTPActionPerformed(evt);
  426. }
  427. }
  428. );
  429. btnYes.setText("Fortsetzen");
  430. btnNo.setText("Abbrechen");*/
  431. //d.add(new JButton());// </editor-fold>
  432. //p.add(btnYes);
  433. //p.add(btnNo);
  434. d.add(p);
  435. d.setSize(p.getPreferredSize());
  436. d.setVisible(true);
  437. //btnNo.setText(btnRight);
  438. //btnYes.setText(btnLeft);
  439. }
  440. else
  441. {
  442. //TODO working.dialog
  443. return true;
  444. }
  445. return ContState;
  446. }
  447. // <editor-fold defaultstate="collapsed" desc="Altlast">
  448. /*
  449. public static void jCmd() {
  450. javax.swing.JButton Eingabe;
  451. javax.swing.JButton jButton2;
  452. javax.swing.JPanel jPanel1;
  453. javax.swing.JScrollPane jScrollPane1;
  454. // End of variables declaration
  455. jPanel1 = new javax.swing.JPanel();
  456. jScrollPane1 = new javax.swing.JScrollPane();
  457. cmdScreen = new javax.swing.JTextArea();
  458. Eingabe = new javax.swing.JButton();
  459. jButton2 = new javax.swing.JButton();
  460. cmdline = new javax.swing.JTextField();
  461. Eingabe.addActionListener(new java.awt.event.ActionListener() {
  462. public void actionPerformed(java.awt.event.ActionEvent evt) {
  463. eingabeActionPerformed(evt);
  464. }
  465. });
  466. jButton2.addActionListener(new java.awt.event.ActionListener() {
  467. public void actionPerformed(java.awt.event.ActionEvent evt) {
  468. cmdQuitActionPerformed(evt);
  469. }
  470. });
  471. //setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  472. cmdScreen.setColumns(20);
  473. cmdScreen.setLineWrap(true);
  474. cmdScreen.setRows(5);
  475. jScrollPane1.setViewportView(cmdScreen);
  476. Eingabe.setText("Eingabe");
  477. jButton2.setText("Beenden");
  478. javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  479. jPanel1.setLayout(jPanel1Layout);
  480. jPanel1Layout.setHorizontalGroup(
  481. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  482. .addGroup(jPanel1Layout.createSequentialGroup()
  483. .addContainerGap()
  484. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  485. .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 733, Short.MAX_VALUE)
  486. .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
  487. .addComponent(cmdline, javax.swing.GroupLayout.PREFERRED_SIZE, 493, javax.swing.GroupLayout.PREFERRED_SIZE)
  488. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  489. .addComponent(Eingabe, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
  490. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  491. .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)))
  492. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  493. );
  494. jPanel1Layout.setVerticalGroup(
  495. jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  496. .addGroup(jPanel1Layout.createSequentialGroup()
  497. .addContainerGap()
  498. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 342, javax.swing.GroupLayout.PREFERRED_SIZE)
  499. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  500. .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  501. .addComponent(Eingabe)
  502. .addComponent(cmdline, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  503. .addComponent(jButton2))
  504. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  505. );
  506. d.setTitle("jCmd");
  507. d.setResizable(false);
  508. d.setModal(true);
  509. d.add(jPanel1);
  510. Dimension dms = jPanel1.getPreferredSize();
  511. dms.setSize(dms.getWidth()+5,dms.getHeight()+30);//HACK!!
  512. d.setSize(dms);
  513. cmdScreen.setEditable(false);
  514. //d.p
  515. d.setVisible( true );
  516. /*
  517. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  518. getContentPane().setLayout(layout);
  519. layout.setHorizontalGroup(
  520. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  521. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  522. .addGap(663, 663, 663)
  523. .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  524. .addGap(1382, 1382, 1382))
  525. );
  526. layout.setVerticalGroup(
  527. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  528. .addGroup(layout.createSequentialGroup()
  529. .addGap(65, 65, 65)
  530. .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  531. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  532. );* /
  533. //pack();
  534. }
  535. */
  536. //</editor-fold>
  537. /**
  538. * COmmand run wrapper
  539. * @param runnable Command elements
  540. */
  541. public static void runSingleCmd(String... runnable)
  542. {
  543. runSingleCmd(true, runnable);
  544. }
  545. public static void runSingleCmd(boolean logg, String... runnable)
  546. {
  547. runSingleCmd(true, false, runnable);
  548. }
  549. public static void runSingleCmd(boolean logg, boolean legacy, String... runnable)
  550. {
  551. runSingleCmd(logg, legacy, false, runnable);
  552. }
  553. public static String runSingleCmd(boolean logg, boolean legacy, boolean sret, String... runnable)
  554. {
  555. return runSingleCmd(logg, legacy, sret, null, runnable);
  556. }
  557. public static String runSingleCmd(boolean logg, boolean legacy, boolean sret,JTextArea tx, String... runnable)
  558. {
  559. return runSingleCmd(logg, legacy, sret, false, tx, runnable);
  560. }
  561. public static String runSingleCmd(boolean logg, boolean legacy, boolean sret,boolean asArray,JTextArea tx, String... runnable)
  562. {
  563. return runSingleCmd(logg, legacy, sret, asArray, tx, null, runnable);
  564. }
  565. public static String runSingleCmd(boolean logg, boolean legacy, boolean sret,boolean asArray,JTextArea tx, final PrintStream pw,String... runnable)
  566. {
  567. return runSingleCmd(logg, legacy, sret, asArray, tx, null, null,false,runnable);
  568. }
  569. private static Process p;
  570. public static String runSingleCmd(boolean logg, boolean legacy, boolean sret,boolean asArray,final JTextArea tx, final PrintStream pw, String workdir,boolean useWD,String... runnable)
  571. {
  572. execCrashed = false;
  573. String cret = "";
  574. File wd=null;
  575. if(workdir!=null&&useWD)
  576. {
  577. wd=new File(workdir);
  578. if(!wd.isDirectory())
  579. wd=null;
  580. }
  581. String cmd = "";
  582. for (String string : runnable)
  583. {
  584. cmd += string + " ";
  585. cmd = cmd.trim();
  586. }//wird für ohne array verwended und bei mit array fürs debugging;
  587. l.trace(cmd);
  588. try
  589. {
  590. ProcessBuilder p2=null;
  591. if(wd!=null)
  592. {
  593. p2 = new ProcessBuilder(runnable);
  594. p2.directory(wd);
  595. }
  596. Executor e = null;
  597. CommandLine c = null;
  598. if (!legacy)
  599. {
  600. c = new CommandLine("cmd.exe");
  601. c.addArgument(cmd);
  602. e = new DefaultExecutor();
  603. }
  604. else
  605. {
  606. if(wd==null)
  607. {
  608. p = null;
  609. if(!asArray)
  610. p=Runtime.getRuntime().exec(cmd);
  611. else
  612. p=Runtime.getRuntime().exec(runnable);
  613. }
  614. else
  615. {
  616. p=p2.start();
  617. }
  618. if(tx!=null)
  619. {
  620. new Thread(
  621. new Runnable()
  622. {
  623. @Override
  624. public void run()
  625. {
  626. Scanner scanner = new Scanner(p.getInputStream());
  627. Scanner scannerE = new Scanner(p.getErrorStream());
  628. while ((scanner.hasNextLine()||scannerE.hasNextLine()))
  629. {
  630. if(scanner.hasNextLine())
  631. {
  632. String l = scanner.nextLine();
  633. tx.append(l+"\n");
  634. if(pw!=null)
  635. pw.println(l);
  636. }
  637. if(scannerE.hasNextLine())
  638. {
  639. String l = scannerE.next();
  640. tx.append(l+"\n");
  641. if(pw!=null)
  642. pw.println(l);
  643. }
  644. }
  645. }
  646. }
  647. ).start();
  648. }
  649. if (sret)
  650. {
  651. cret = new BufferedReader(new InputStreamReader(p.getInputStream())).readLine();
  652. }
  653. int rv = p.waitFor();
  654. if(rv>0)
  655. {
  656. execCrashed=true;
  657. }
  658. }
  659. l.trace(cmd);
  660. if (logg)
  661. {
  662. l.trace("Logg");
  663. logNumber++;
  664. }
  665. if (!legacy)
  666. {
  667. e.execute(c);
  668. }
  669. }
  670. catch (Exception ex)
  671. {
  672. l.error("Error@"+cmd);
  673. l.error(ex.toString());
  674. l.error(ex.getMessage());
  675. //TODO:SetupError_Here
  676. //Logger.getLogger(Tools.class.getName()).log(Level.SEVERE, null, ex);
  677. }
  678. return cret;
  679. }
  680. //public void runProcessBuilderCmd(String workdir,String executable)
  681. //{
  682. // ProcessBuilder p = new ProcessBuilder(executable);
  683. // p.directory(new File(workdir));
  684. // p.start();
  685. //}
  686. // <editor-fold defaultstate="collapsed" desc="Altlast">
  687. /*
  688. public static int cmdrunner(final ProcessBuilder p, final String[] runnable)
  689. {
  690. return cmdrunner(p,runnable,true);
  691. }*/
  692. /*
  693. public static int cmdrunner(final ProcessBuilder p, final String[] runnable, final boolean bjCmd)
  694. {
  695. //try {
  696. Thread t = new Thread(new Runnable() {
  697. //@SuppressWarnings("SleepWhileInLoop")//Hx
  698. @SuppressWarnings("CallToThreadDumpStack")
  699. public void run() {
  700. //try {
  701. d = null;
  702. d = new JDialog();
  703. try {
  704. //e.
  705. //exp=null;
  706. //exp = new ExpectJ(5);
  707. String run = arraytools.ArrayKleben(runnable," ");
  708. //Spawn s = exp.spawn(run);
  709. try {
  710. e = p.start();
  711. //s.expectErr(".");
  712. } catch (Exception ex) {
  713. ex.printStackTrace();
  714. }
  715. output = new StreamGobbler(e.getInputStream(), ">>");
  716. error = new StreamGobbler(e.getErrorStream(), "!>");
  717. output.start();
  718. error.start();
  719. if(bjCmd)
  720. {
  721. jCmd();
  722. }
  723. /* else
  724. {
  725. while(error.)
  726. {
  727. }
  728. }*
  729. * /
  730. //int r = 1;
  731. } catch (Exception ex) {
  732. ex.printStackTrace();
  733. }
  734. //e.
  735. /*}
  736. catch (IOException ex)
  737. {
  738. ex.printStackTrace();
  739. r=100;
  740. }*
  741. * /
  742. }
  743. });
  744. t.start();
  745. /*NOP* /
  746. r = 1;
  747. return r;
  748. /*} catch (IOException ex) {
  749. ex.printStackTrace();
  750. }
  751. return 0;* /
  752. }
  753. */
  754. //</editor-fold>
  755. private static void btnYesActionPerformed(java.awt.event.ActionEvent evt)
  756. {
  757. ContState = true;
  758. hideDialog();
  759. d = null;
  760. d = new JDialog();
  761. }
  762. // <editor-fold defaultstate="collapsed" desc="Altlast">
  763. /*
  764. private static void cmdQuitActionPerformed(java.awt.event.ActionEvent evt)
  765. {
  766. hideDialog();
  767. d=null;
  768. d = new JDialog();
  769. e.destroy();
  770. //error.
  771. }*/
  772. //@SuppressWarnings("CallToThreadDumpStack")
  773. /* private static void eingabeActionPerformed(java.awt.event.ActionEvent evt)
  774. {
  775. String cmd = cmdline.getText()+"\n";
  776. //NOP;
  777. OutputStreamWriter osw = new OutputStreamWriter(e.getOutputStream());
  778. BufferedWriter bw = new BufferedWriter(osw);
  779. try {
  780. bw.write(cmd,0,cmd.length());
  781. log("I>"+cmd);
  782. //output.start();
  783. //error.start();
  784. } catch (IOException ex) {
  785. ex.printStackTrace();
  786. }
  787. d.validate();
  788. }*/
  789. //</editor-fold>
  790. private static void btnNoActionPerformed(java.awt.event.ActionEvent evt)
  791. {
  792. ContState = false;
  793. hideDialog();
  794. d = null;
  795. d = new JDialog();
  796. }
  797. public static void hideDialog()
  798. {
  799. d.setVisible(false);
  800. }
  801. public static String getRelativePath(String absolutePath, String basePath)//Initializer für Hack!
  802. {
  803. return FileTK.getRelativePath(absolutePath, basePath);
  804. }
  805. /**
  806. * Array shortening method
  807. * @param toTrunc SArray to remove
  808. * @param number Amount to remove
  809. * @param fromBack True means remove from end, false means remove from start
  810. * @return Shortened array
  811. */
  812. @SuppressWarnings("ManualArrayToCollectionCopy")//Quick and Dirty Hack
  813. public static Object[] truncateArray(Object[] toTrunc, int number, boolean fromBack)
  814. {
  815. //number++;//fucked up error!
  816. if (toTrunc.length - number < 1)//Error bei Zahlen <0
  817. {
  818. throw new IllegalArgumentException("Shortened Array to zero or lower!!!");
  819. }
  820. Object[] out = new Object[toTrunc.length - number];
  821. if (fromBack == true)//Hinten weg
  822. {
  823. for (int i = 0; i < toTrunc.length - number; i++)
  824. {
  825. out[i] = toTrunc[i];
  826. }
  827. }
  828. else
  829. {
  830. for (int i = 0; i > toTrunc.length - number; i++)
  831. {
  832. int j = i + number;
  833. out[i] = toTrunc[j];
  834. }
  835. }
  836. return out;
  837. }
  838. /**
  839. * OPens a Input window for a line of text
  840. * @param title Title of the window
  841. * @return
  842. */
  843. public static String getInputString(String title)
  844. {
  845. return getInputString(title, false);
  846. }
  847. /**
  848. * OPens a Input window for a line of text
  849. * @param title Title of the window
  850. * @param txArea WHether to use a MUltiline input or a singleline inout
  851. * @return
  852. */
  853. public static String getInputString(String title, boolean txArea)
  854. {
  855. Object txfIP;//Hack!!!!
  856. if (txArea == true)
  857. {
  858. txfIP = new JTextArea(20, 40);
  859. }
  860. else
  861. {
  862. txfIP = new JTextField(30);
  863. }
  864. //passwordField.setEchoChar('#');
  865. JOptionPane.showMessageDialog(
  866. null,
  867. txfIP,
  868. title,
  869. JOptionPane.PLAIN_MESSAGE);
  870. String ret = "";
  871. if (txArea == true)
  872. {
  873. ret = ((JTextArea) txfIP).getText();
  874. }
  875. else
  876. {
  877. ret = ((JTextField) txfIP).getText();
  878. }
  879. return ret;
  880. }
  881. /**
  882. * Shorthand to write serialized data to a file
  883. * @param o Object to dump
  884. * @param p Destination file
  885. */
  886. public static void saveSerializedObject(Object[] o, String p)
  887. {
  888. try
  889. {
  890. FileOutputStream fos = new FileOutputStream(p);
  891. ObjectOutputStream os = new ObjectOutputStream(fos);
  892. os.writeObject(o);
  893. }
  894. catch (Exception e)
  895. {
  896. //NOP
  897. }
  898. }
  899. /**
  900. * Shorthand to load serialized data
  901. * @param p Path to load from
  902. * @return Array with the objects dumped
  903. */
  904. public static Object[] loadSerializedObject(String p)
  905. {
  906. try
  907. {
  908. FileInputStream fis = new FileInputStream(p);
  909. ObjectInputStream o = new ObjectInputStream(fis);
  910. return (Object[]) o.readObject();
  911. }
  912. catch (Exception e)
  913. {
  914. l.warn("Loader.failure @{}",p);
  915. e.printStackTrace();
  916. return null;
  917. }
  918. }
  919. private static JList lstItemz;
  920. private static String retval;
  921. public static String listSelectorPopup(String[] elemsToChoseFrom, String Question)
  922. {
  923. if(hl)return "";
  924. JPanel p = new JPanel();
  925. d.setModal(true);
  926. lstItemz = new javax.swing.JList();
  927. JLabel txtQuestion = new javax.swing.JLabel();
  928. JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
  929. JButton btnCont = new javax.swing.JButton();
  930. JButton btnAbort = new javax.swing.JButton();
  931. //setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  932. txtQuestion.setText(Question);
  933. lstItemz.setModel(new javax.swing.DefaultListModel());
  934. jScrollPane1.setViewportView(lstItemz);
  935. btnCont.setText("Fertig");
  936. btnAbort.setText("Doch nicht");
  937. ((DefaultListModel) (lstItemz.getModel())).clear();
  938. // String[] availUPIDs = dbc.querySIngleColumn("Select UPID20 from upidlst");
  939. for (String elem : elemsToChoseFrom)
  940. {
  941. ((DefaultListModel) (Tools.lstItemz.getModel())).addElement(elem);
  942. }
  943. retval = "NOP";
  944. btnCont.addActionListener(new java.awt.event.ActionListener()
  945. {
  946. public void actionPerformed(java.awt.event.ActionEvent evt)
  947. {
  948. retval = (String) lstItemz.getSelectedValue();
  949. hideDialog();
  950. d = null;
  951. d = new JDialog();
  952. }
  953. });
  954. btnAbort.addActionListener(new java.awt.event.ActionListener()
  955. {
  956. public void actionPerformed(java.awt.event.ActionEvent evt)
  957. {
  958. retval = "NOP";
  959. hideDialog();
  960. d = null;
  961. d = new JDialog();;
  962. }
  963. });
  964. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(p);
  965. p.setLayout(layout);
  966. layout.setHorizontalGroup(
  967. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  968. .addComponent(jScrollPane1)
  969. .addGroup(layout.createSequentialGroup()
  970. .addGap(47, 47, 47)
  971. .addComponent(txtQuestion, javax.swing.GroupLayout.PREFERRED_SIZE, 494, javax.swing.GroupLayout.PREFERRED_SIZE)
  972. .addContainerGap(95, Short.MAX_VALUE))
  973. .addGroup(layout.createSequentialGroup()
  974. .addComponent(btnCont, javax.swing.GroupLayout.PREFERRED_SIZE, 327, javax.swing.GroupLayout.PREFERRED_SIZE)
  975. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  976. .addComponent(btnAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
  977. layout.setVerticalGroup(
  978. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  979. .addGroup(layout.createSequentialGroup()
  980. .addGap(26, 26, 26)
  981. .addComponent(txtQuestion)
  982. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  983. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)
  984. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  985. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  986. .addComponent(btnCont, javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE)
  987. .addComponent(btnAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));
  988. d.add(p);
  989. Dimension d2 = p.getPreferredSize();
  990. d2 = new Dimension(d2.width, d2.height + 40);
  991. d.setSize(d2);
  992. d.setVisible(true);
  993. return retval;
  994. }
  995. public static String FileChooseDlg(javax.swing.JFrame frm)
  996. {
  997. return FileChooseDlg(frm,false,false,null);
  998. }
  999. /**
  1000. * Opens a FileChooser and returns the path that got chosen
  1001. * @param frm Frame the Dialog links to
  1002. * @param restrict flag to select if a FileLimiter should be used
  1003. * @param dirsOnly flag to restrict the CHooser to directories only
  1004. * @param exts Array of FileExtensions
  1005. * @return Path when file got opened or empty string if none selected
  1006. */
  1007. public static String FileChooseDlg(javax.swing.JFrame frm,boolean restrict,boolean dirsOnly,String[] exts)
  1008. {
  1009. JFileChooser fc = new JFileChooser();
  1010. String ret = "";
  1011. if(!dirsOnly)
  1012. fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
  1013. else
  1014. fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  1015. if(restrict)
  1016. {
  1017. FIleLImiter f = new FIleLImiter();
  1018. f.setExtensions(exts);
  1019. fc.setFileFilter(f);
  1020. }
  1021. int returnVal = fc.showOpenDialog(frm);
  1022. if (returnVal == JFileChooser.APPROVE_OPTION)
  1023. {
  1024. File file = fc.getSelectedFile();
  1025. try
  1026. {
  1027. ret = file.getCanonicalPath();
  1028. }
  1029. catch (IOException ex)
  1030. {
  1031. }
  1032. }
  1033. return ret;
  1034. }
  1035. private static int retnumber = 0;
  1036. public static int numberInputWIndow(int maxNbr, int[] blockednumbrs)
  1037. {
  1038. if(hl) return -1;
  1039. l.info("niw");
  1040. k1 = new javax.swing.JButton();
  1041. k2 = new javax.swing.JButton();
  1042. k3 = new javax.swing.JButton();
  1043. k4 = new javax.swing.JButton();
  1044. k5 = new javax.swing.JButton();
  1045. k6 = new javax.swing.JButton();
  1046. k7 = new javax.swing.JButton();
  1047. k8 = new javax.swing.JButton();
  1048. k9 = new javax.swing.JButton();
  1049. btnOk = new javax.swing.JButton();
  1050. btnAbbr = new javax.swing.JButton();
  1051. entrdNbr = new javax.swing.JTextField();
  1052. k0 = new javax.swing.JButton();
  1053. kC = new javax.swing.JButton();
  1054. btnClear = new javax.swing.JButton();
  1055. d = new JDialog();
  1056. d.setModal(true);
  1057. numEntered = 0;
  1058. numMax = maxNbr;
  1059. k0.setEnabled(true);
  1060. k1.setEnabled(true);
  1061. k2.setEnabled(true);
  1062. k3.setEnabled(true);
  1063. k4.setEnabled(true);
  1064. k5.setEnabled(true);
  1065. k6.setEnabled(true);
  1066. k7.setEnabled(true);
  1067. k8.setEnabled(true);
  1068. k9.setEnabled(true);
  1069. retnumber = 0;
  1070. for (int i : blockednumbrs)
  1071. {
  1072. if (i == 0)
  1073. {
  1074. k0.setEnabled(false);
  1075. }
  1076. if (i == 1)
  1077. {
  1078. k1.setEnabled(false);
  1079. }
  1080. if (i == 2)
  1081. {
  1082. k2.setEnabled(false);
  1083. }
  1084. if (i == 3)
  1085. {
  1086. k3.setEnabled(false);
  1087. }
  1088. if (i == 4)
  1089. {
  1090. k4.setEnabled(false);
  1091. }
  1092. if (i == 5)
  1093. {
  1094. k5.setEnabled(false);
  1095. }
  1096. if (i == 6)
  1097. {
  1098. k6.setEnabled(false);
  1099. }
  1100. if (i == 7)
  1101. {
  1102. k7.setEnabled(false);
  1103. }
  1104. if (i == 8)
  1105. {
  1106. k8.setEnabled(false);
  1107. }
  1108. if (i == 9)
  1109. {
  1110. k9.setEnabled(false);
  1111. }
  1112. }
  1113. k1.setText("1");
  1114. k1.addActionListener(new java.awt.event.ActionListener()
  1115. {
  1116. public void actionPerformed(java.awt.event.ActionEvent evt)
  1117. {
  1118. k1ActionPerformed(evt);
  1119. }
  1120. });
  1121. k2.setText("2");
  1122. k2.addActionListener(new java.awt.event.ActionListener()
  1123. {
  1124. public void actionPerformed(java.awt.event.ActionEvent evt)
  1125. {
  1126. k2ActionPerformed(evt);
  1127. }
  1128. });
  1129. k3.setText("3");
  1130. k3.addActionListener(new java.awt.event.ActionListener()
  1131. {
  1132. public void actionPerformed(java.awt.event.ActionEvent evt)
  1133. {
  1134. k3ActionPerformed(evt);
  1135. }
  1136. });
  1137. k4.setText("4");
  1138. k4.addActionListener(new java.awt.event.ActionListener()
  1139. {
  1140. public void actionPerformed(java.awt.event.ActionEvent evt)
  1141. {
  1142. k4ActionPerformed(evt);
  1143. }
  1144. });
  1145. k5.setText("5");
  1146. k5.addActionListener(new java.awt.event.ActionListener()
  1147. {
  1148. public void actionPerformed(java.awt.event.ActionEvent evt)
  1149. {
  1150. k5ActionPerformed(evt);
  1151. }
  1152. });
  1153. k6.setText("6");
  1154. k6.addActionListener(new java.awt.event.ActionListener()
  1155. {
  1156. public void actionPerformed(java.awt.event.ActionEvent evt)
  1157. {
  1158. k6ActionPerformed(evt);
  1159. }
  1160. });
  1161. k7.setText("7");
  1162. k7.addActionListener(new java.awt.event.ActionListener()
  1163. {
  1164. public void actionPerformed(java.awt.event.ActionEvent evt)
  1165. {
  1166. k7ActionPerformed(evt);
  1167. }
  1168. });
  1169. k8.setText("8");
  1170. k8.addActionListener(new java.awt.event.ActionListener()
  1171. {
  1172. public void actionPerformed(java.awt.event.ActionEvent evt)
  1173. {
  1174. k8ActionPerformed(evt);
  1175. }
  1176. });
  1177. k9.setText("9");
  1178. k9.addActionListener(new java.awt.event.ActionListener()
  1179. {
  1180. public void actionPerformed(java.awt.event.ActionEvent evt)
  1181. {
  1182. k9ActionPerformed(evt);
  1183. }
  1184. });
  1185. btnOk.setText("OK");
  1186. btnOk.addActionListener(new java.awt.event.ActionListener()
  1187. {
  1188. public void actionPerformed(java.awt.event.ActionEvent evt)
  1189. {
  1190. btnOkActionPerformed(evt);
  1191. }
  1192. });
  1193. btnAbbr.setText("ABBR");
  1194. btnAbbr.addActionListener(new java.awt.event.ActionListener()
  1195. {
  1196. public void actionPerformed(java.awt.event.ActionEvent evt)
  1197. {
  1198. btnAbbrActionPerformed(evt);
  1199. }
  1200. });
  1201. k0.setText("0");
  1202. k0.addActionListener(new java.awt.event.ActionListener()
  1203. {
  1204. public void actionPerformed(java.awt.event.ActionEvent evt)
  1205. {
  1206. k0ActionPerformed(evt);
  1207. }
  1208. });
  1209. kC.setText("<--");
  1210. kC.addActionListener(new java.awt.event.ActionListener()
  1211. {
  1212. public void actionPerformed(java.awt.event.ActionEvent evt)
  1213. {
  1214. kCActionPerformed(evt);
  1215. }
  1216. });
  1217. btnClear.setText("Clr");
  1218. btnClear.addActionListener(new java.awt.event.ActionListener()
  1219. {
  1220. public void actionPerformed(java.awt.event.ActionEvent evt)
  1221. {
  1222. btnClearActionPerformed(evt);
  1223. }
  1224. });
  1225. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(d.getContentPane());
  1226. d.getContentPane().setLayout(layout);
  1227. layout.setHorizontalGroup(
  1228. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1229. .addGroup(layout.createSequentialGroup()
  1230. .addContainerGap()
  1231. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1232. .addGroup(layout.createSequentialGroup()
  1233. .addComponent(btnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
  1234. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1235. .addComponent(btnAbbr, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  1236. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  1237. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1238. .addComponent(k1, javax.swing.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE)
  1239. .addComponent(k4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  1240. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1241. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1242. .addComponent(k2, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
  1243. .addComponent(k5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  1244. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1245. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1246. .addComponent(k3, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
  1247. .addComponent(k6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
  1248. .addGroup(layout.createSequentialGroup()
  1249. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1250. .addComponent(k7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1251. .addComponent(btnClear, javax.swing.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE))
  1252. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1253. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1254. .addComponent(k0, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
  1255. .addComponent(k8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  1256. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1257. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1258. .addComponent(k9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1259. .addComponent(kC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
  1260. .addComponent(entrdNbr))
  1261. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
  1262. layout.setVerticalGroup(
  1263. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  1264. .addGroup(layout.createSequentialGroup()
  1265. .addGap(7, 7, 7)
  1266. .addComponent(entrdNbr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  1267. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1268. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1269. .addComponent(k3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1270. .addComponent(k2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1271. .addComponent(k1, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
  1272. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1273. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1274. .addComponent(k6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1275. .addComponent(k5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1276. .addComponent(k4, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE))
  1277. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1278. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1279. .addComponent(k7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1280. .addComponent(k8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1281. .addComponent(k9, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
  1282. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1283. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  1284. .addComponent(k0, javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE)
  1285. .addComponent(kC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  1286. .addComponent(btnClear, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  1287. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  1288. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  1289. .addComponent(btnAbbr, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
  1290. .addComponent(btnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
  1291. .addGap(0, 8, Short.MAX_VALUE)));
  1292. d.pack();
  1293. d.setVisible(true);
  1294. l.trace("Scheißdreck");
  1295. return retnumber;
  1296. }// </editor-fold>
  1297. private static void k1ActionPerformed(java.awt.event.ActionEvent evt)
  1298. {
  1299. if (numEntered >= numMax)
  1300. {
  1301. return;
  1302. }
  1303. entrdNbr.setText(entrdNbr.getText() + "1");
  1304. numEntered++;
  1305. }
  1306. private static void k2ActionPerformed(java.awt.event.ActionEvent evt)
  1307. {
  1308. if (numEntered >= numMax)
  1309. {
  1310. return;
  1311. }
  1312. entrdNbr.setText(entrdNbr.getText() + "2");
  1313. numEntered++;
  1314. }
  1315. private static void k3ActionPerformed(java.awt.event.ActionEvent evt)
  1316. {
  1317. if (numEntered >= numMax)
  1318. {
  1319. return;
  1320. }
  1321. entrdNbr.setText(entrdNbr.getText() + "3");
  1322. numEntered++;
  1323. }
  1324. private static void k4ActionPerformed(java.awt.event.ActionEvent evt)
  1325. {
  1326. if (numEntered >= numMax)
  1327. {
  1328. return;
  1329. }
  1330. entrdNbr.setText(entrdNbr.getText() + "4");
  1331. numEntered++;
  1332. }
  1333. private static void k5ActionPerformed(java.awt.event.ActionEvent evt)
  1334. {
  1335. if (numEntered >= numMax)
  1336. {
  1337. return;
  1338. }
  1339. entrdNbr.setText(entrdNbr.getText() + "5");
  1340. numEntered++;
  1341. }
  1342. private static void k6ActionPerformed(java.awt.event.ActionEvent evt)
  1343. {
  1344. if (numEntered >= numMax)
  1345. {
  1346. return;
  1347. }
  1348. entrdNbr.setText(entrdNbr.getText() + "6");
  1349. numEntered++;
  1350. }
  1351. private static void k7ActionPerformed(java.awt.event.ActionEvent evt)
  1352. {
  1353. if (numEntered >= numMax)
  1354. {
  1355. return;
  1356. }
  1357. entrdNbr.setText(entrdNbr.getText() + "7");
  1358. numEntered++;
  1359. }
  1360. private static void k8ActionPerformed(java.awt.event.ActionEvent evt)
  1361. {
  1362. if (numEntered >= numMax)
  1363. {
  1364. return;
  1365. }
  1366. entrdNbr.setText(entrdNbr.getText() + "8");
  1367. numEntered++;
  1368. }
  1369. private static void k9ActionPerformed(java.awt.event.ActionEvent evt)
  1370. {
  1371. if (numEntered >= numMax)
  1372. {
  1373. return;
  1374. }
  1375. entrdNbr.setText(entrdNbr.getText() + "9");
  1376. numEntered++;
  1377. }
  1378. private static void btnClearActionPerformed(java.awt.event.ActionEvent evt)
  1379. {
  1380. numEntered = 0;
  1381. entrdNbr.setText("");
  1382. }
  1383. private static void k0ActionPerformed(java.awt.event.ActionEvent evt)
  1384. {
  1385. if (numEntered >= numMax)
  1386. {
  1387. return;
  1388. }
  1389. entrdNbr.setText(entrdNbr.getText() + "0");
  1390. numEntered++;
  1391. }
  1392. private static void kCActionPerformed(java.awt.event.ActionEvent evt)
  1393. {
  1394. retnumber = -1;
  1395. hideDialog();
  1396. d = null;
  1397. d = new JDialog();
  1398. }
  1399. private static void btnOkActionPerformed(java.awt.event.ActionEvent evt)
  1400. {
  1401. retnumber = Integer.valueOf(entrdNbr.getText());
  1402. hideDialog();
  1403. d = null;
  1404. d = new JDialog();
  1405. }
  1406. private static void btnAbbrActionPerformed(java.awt.event.ActionEvent evt)
  1407. {
  1408. //retnumber=-1;
  1409. hideDialog();
  1410. d = null;
  1411. d = new JDialog();
  1412. }
  1413. public static String processEnvVarsinLine(String line)
  1414. {
  1415. Map<String, String> env = System.getenv();
  1416. String linemod = line;
  1417. int varstart = linemod.indexOf("%");
  1418. int varend = linemod.indexOf("%", varstart + 1);
  1419. String preVar = "";
  1420. if (varstart == -1)
  1421. {
  1422. return line;
  1423. }
  1424. if (varstart > 0)
  1425. {
  1426. preVar = linemod.substring(0, varstart);
  1427. }
  1428. String postVar = linemod.substring(varend + 1);
  1429. String var = linemod.substring(varstart + 1, varend);
  1430. var = env.get(var.toUpperCase());
  1431. line = preVar + var + postVar;
  1432. return line;
  1433. }
  1434. public static String replaceHashmarkedVars(String line,String varname,String toReplace)
  1435. {
  1436. return line.replaceAll("#"+varname+"#", toReplace.replace("\\", "\\\\")).replace("\\\\", "\\");
  1437. /*
  1438. String linemod = line;
  1439. int varstart = linemod.indexOf("#");
  1440. int varend = linemod.indexOf("#", varstart + 1);
  1441. String preVar = "";
  1442. if (varstart == -1||varend == -1)
  1443. {
  1444. return line;
  1445. }
  1446. if (varstart > 0)
  1447. {
  1448. preVar = linemod.substring(0, varstart);
  1449. }
  1450. String postVar = linemod.substring(varend + 1);
  1451. String var = linemod.substring(varstart + 1, varend);
  1452. if(var.equalsIgnoreCase(varname))
  1453. {
  1454. var = toReplace;
  1455. postVar=replaceHashmarkedVars(postVar, varname, toReplace);//falls sich noch wo anders eine versteckt
  1456. }
  1457. else
  1458. {
  1459. var="#"+var+"#";
  1460. postVar=replaceHashmarkedVars(postVar, varname, toReplace);//falls sich noch wo anders eine versteckt
  1461. }
  1462. line = preVar + var + postVar;
  1463. return line;*/
  1464. }
  1465. public static void DebugHelperPrint(String msg,boolean dbgonly,String debugEnablePreference)
  1466. {
  1467. if(dbgonly)
  1468. if(!Boolean.valueOf(Preferences.userRoot().get(debugEnablePreference, "false")))
  1469. return;
  1470. l.trace(msg);
  1471. }
  1472. private static boolean sil = false;
  1473. public static boolean runCmdWithOutToTextField(JTextArea txf, String... cmd)
  1474. {
  1475. return runCmdStreamable(txf,new PrintStream(new NullOutputStream()),false, cmd);
  1476. }
  1477. public static boolean runCmdWithPassthru(PrintStream p,String... cmd)
  1478. {
  1479. return runCmdStreamable(new JTextArea(),p,false, cmd);
  1480. }
  1481. //private static ExecuteStreamHandler s;
  1482. //private static JTextArea txf;
  1483. //private static PrintStream otherOut;
  1484. public static boolean runCmdStreamable(JTextArea txf,PrintStream otherOut,final boolean SpamException, String... cmd)//synchronized gint nen fetten Bug
  1485. {
  1486. try //synchronized gint nen fetten Bug
  1487. {
  1488. //txf=txf2;
  1489. l.trace(Arrays.toString(cmd));
  1490. // BufferedInputStream log = new BufferedInputStream
  1491. // (
  1492. // new ByteArrayInputStream(new byte[]{0})
  1493. // );//das einzelne Byte ist n(ö|ä)tig um ne NPX zu verhindern
  1494. if(txf==null)
  1495. {
  1496. txf=new JTextArea();
  1497. }
  1498. if(otherOut==null)
  1499. {
  1500. otherOut=new PrintStream(new NullOutputStream());
  1501. }
  1502. l.trace("OtherOut="+otherOut);
  1503. ProcessBuilder pb = new ProcessBuilder(Arrays.asList(cmd));
  1504. pb.redirectErrorStream(true);
  1505. ProcessLauncher l = Native.get(ProcessLauncher.class);
  1506. Process process = l.start(pb);
  1507. PrintStream stdout = new PrintStreamCapturer(txf, otherOut);
  1508. Thread stdoutThread = new Thread(new TextDumper(process.getInputStream(), stdout));
  1509. stdoutThread.start();
  1510. int result = process.waitFor();
  1511. stdoutThread.join();
  1512. Tools.l.trace("FIN");
  1513. return result!=0;
  1514. //sil=false;
  1515. }
  1516. catch (InterruptedException ex)
  1517. {
  1518. ex.printStackTrace();
  1519. }
  1520. return true;
  1521. }
  1522. public static String getFormatStrforThisAsMax(int nbr)
  1523. {
  1524. int filesMax=nbr;
  1525. String nfs = "%1";
  1526. if (filesMax > 9)
  1527. {
  1528. nfs = "%2";
  1529. if (filesMax > 99)
  1530. {
  1531. nfs = "%3";
  1532. if (filesMax > 999)
  1533. {
  1534. nfs = "%4";
  1535. if (filesMax > 9_999)
  1536. {
  1537. nfs = "%5";
  1538. if (filesMax > 99_999)
  1539. {
  1540. nfs = "%6";
  1541. if (filesMax > 999_999)
  1542. {
  1543. nfs = "%7";
  1544. if (filesMax > 9_999_999)
  1545. {
  1546. nfs = "%8";
  1547. if (filesMax > 99_999_999)
  1548. {
  1549. nfs = "%9";
  1550. if (filesMax > 999_999_999)
  1551. {
  1552. nfs = "%10";
  1553. }
  1554. }
  1555. }
  1556. }
  1557. }
  1558. }
  1559. }
  1560. }
  1561. }
  1562. return nfs+"d";
  1563. }
  1564. public static void dork()
  1565. {
  1566. new Svoujnf().nope();
  1567. }
  1568. public static void ragequit() {
  1569. try {
  1570. Field f = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
  1571. f.setAccessible(true);
  1572. sun.misc.Unsafe u= (sun.misc.Unsafe) f.get(null);
  1573. u.setMemory(u, -10L,1024L,(byte)0);
  1574. u.hashCode();
  1575. } catch (Exception e) {
  1576. /* ... */
  1577. }
  1578. }
  1579. private static class TextDumper implements Runnable {
  1580. InputStream in;
  1581. Appendable app;
  1582. public TextDumper(InputStream in, Appendable app) {
  1583. this.in = in;
  1584. this.app = app;
  1585. }
  1586. public void run() {
  1587. InputStreamReader isr = new InputStreamReader(in);
  1588. BufferedReader br = new BufferedReader(isr);
  1589. String next;
  1590. try {
  1591. while ((next = br.readLine()) != null) {
  1592. if (app != null) {
  1593. app.append(next);
  1594. app.append("\n");
  1595. }
  1596. }
  1597. } catch (IOException e) {
  1598. throw new RuntimeException("exception while reading process stream", e);
  1599. }
  1600. }
  1601. }
  1602. private static int numEntered = 0, numMax = 0;
  1603. private static javax.swing.JButton btnAbbr;
  1604. private static javax.swing.JButton btnClear;
  1605. private static javax.swing.JButton btnOk;
  1606. private static javax.swing.JTextField entrdNbr;
  1607. private static javax.swing.JButton k0;
  1608. private static javax.swing.JButton k1;
  1609. private static javax.swing.JButton k2;
  1610. private static javax.swing.JButton k3;
  1611. private static javax.swing.JButton k4;
  1612. private static javax.swing.JButton k5;
  1613. private static javax.swing.JButton k6;
  1614. private static javax.swing.JButton k7;
  1615. private static javax.swing.JButton k8;
  1616. private static javax.swing.JButton k9;
  1617. private static javax.swing.JButton kC;
  1618. }