123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380 |
- /*
- * Copyright (C) 2015 iZc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- package de.nplusc.izc.tools.baseTools;
- import de.nplusc.izc.tools.IOtools.FileTK;
- import de.nplusc.izc.tools.IOtools.PrintStreamCapturer;
- import java.awt.Dimension;
- import java.awt.GraphicsEnvironment;
- import java.io.*;
- import java.lang.reflect.Field;
- import java.security.MessageDigest;
- import java.util.*;
- import java.util.Map.Entry;
- import java.util.prefs.Preferences;
- import javax.swing.*;
- //import net.rubygrapefruit.platform.Native;
- //import net.rubygrapefruit.platform.ProcessLauncher;
- import org.apache.commons.exec.CommandLine;
- import org.apache.commons.exec.DefaultExecutor;
- import org.apache.commons.exec.Executor;
- import org.apache.commons.io.output.NullOutputStream;
- import org.apache.logging.log4j.LogManager;
- import org.apache.logging.log4j.Logger;
- /**
- * @author LH
- */
- @SuppressWarnings("deprecation")
- public class Tools {
- private static final Logger l = LogManager.getLogger();
- public static boolean execCrashed = false;
- private static boolean ContState;
- private static JDialog d;
- private static boolean hl = false;
- //private boolean ProcessReturn;
- private static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
- private static int logNumber;
- protected Tools() {
- //disabled Constructor
- }
- static {
- GraphicsEnvironment ge =
- GraphicsEnvironment.getLocalGraphicsEnvironment();
- boolean hl = ge.isHeadless();
- if (!hl) {
- //d = new JDialog();
- }
- }
- /**
- * Method to pad the left of a Sting with given character
- *
- * @param count Destination amount of data
- * @param base String to pad up
- * @param filler Padding data
- * @return Padded String
- */
- public static String padLeft(final int count, final String base, final char filler) {
- if (base == null) {
- throw new NullPointerException();
- }
- if (base.length() >= count) {
- return base;
- }
- char[] prefix = new char[count - base.length()];
- Arrays.fill(prefix, filler);
- return new StringBuilder(count).append(prefix).append(base).toString();
- }
- /**
- * Method rename and shorthand for Thread.sleep()
- *
- * @param time Time to wait in ms
- */
- public static void wait(int time) {
- try {
- Thread.sleep(time);
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- }
- }
- public static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
- public static String bytesToHex(byte[] bytes) {
- char[] hexChars = new char[bytes.length * 2];
- for (int j = 0; j < bytes.length; j++) {
- int v = bytes[j] & 0xFF;
- hexChars[j * 2] = HEX_ARRAY[v >>> 4];
- hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
- }
- String hexxit = new String(hexChars).toLowerCase(Locale.ROOT);
- //hexxit = hexxit.replaceAll("^0+", "");
- return hexxit;
- }
- /**
- * SHA-Hashes a String
- *
- * @param s String to hash
- * @return Hashed String
- */
- public static String getSHAString(String s) {
- try {
- MessageDigest sha = MessageDigest.getInstance("SHA");
- @SuppressWarnings("StringBufferMayBeStringBuilder")
- StringBuffer t = new StringBuffer();
- byte[] digest = sha.digest(s.getBytes());
- for (byte b : digest) {
- l.trace(String.format("%02x", b));
- int val = ((int) b) & 0xff;
- if (val < 16) {
- t.append("0");
- }
- t.append(Integer.toHexString(val));
- }
- return t.toString();
- } catch (Exception ex) {
- return null;
- }
- }
- /**
- * Integerizes a String
- *
- * @param ip String to integerize
- * @return Array of Integers where each int is a Character of the string
- */
- public static int[] lettersToInt(String ip) {
- ip = ip.toLowerCase();
- char[] it = ip.toCharArray();
- int[] ri = new int[it.length];
- for (int i = 0; i < ri.length; i++) {
- ri[i] = (int) it[i];
- }
- return ri;
- }
- /**
- * Sum of the Elements of the Array
- *
- * @param i Integer-array to sumup
- * @return Sum of the elements
- */
- public static int addIntsTogether(int[] i) {
- int t = 1;
- for (int X : i) {
- t *= X;
- }
- return t;
- }
- @Deprecated
- /**
- * HACK!!!
- * @param m unknown
- * @param ints unknown
- * @return unknown
- */
- public static int addIntsTogether(HashMap<String, String> m, boolean ints) {
- //boolean ints = !noints;
- String[] mk;
- Object[] mk2 = m.keySet().toArray();
- mk = new String[mk2.length];
- for (int i = 0; i < mk.length; i++) {
- String s = "";
- //s.toString();
- mk[i] = mk2[i].toString();
- }
- int t = 1;
- for (String s : mk) {
- if (ints == true) {
- t *= Integer.valueOf(m.get(s));
- } else {
- int t2 = 0;
- int[] itmp = lettersToInt(m.get(s));
- for (int i : itmp) {
- t2 += i;
- }
- t += t2;
- }
- }
- return t;
- }
- @Deprecated
- /**
- * Adds the Strings together while respecting Alphabet and wraps . Dont use for new Code
- * @param s1 String 1
- * @param s2 String 2
- * @return the merged Strings
- */
- public static String stringAdd(String s1, String s2) {
- char[] ca1 = s1.toLowerCase().toCharArray();
- char[] ca2 = s2.toLowerCase().toCharArray();
- int[] ci1 = new int[ca1.length];
- int[] ci2 = new int[ca2.length];
- String t;
- for (int i = 0; i < ca1.length; i++) {
- try {
- ci1[i] = Integer.valueOf(Character.toString(ca1[i]));
- } catch (Exception ex) {
- t = Character.toString(ca1[i]);
- ci1[i] = ALPHABET.indexOf(t) + 1;
- }
- }
- for (int i = 0; i < ca2.length; i++) {
- try {
- ci2[i] = Integer.valueOf(Character.toString(ca2[i]));
- } catch (Exception ex) {
- t = Character.toString(ca2[i]);
- ci2[i] = ALPHABET.indexOf(t) + 1;
- }
- }
- int l = ci1.length;
- if (ci1.length < ci2.length) {
- l = ci2.length;
- }
- int[] op = new int[l];
- int i1, i2, i3;
- for (int i = 0; i < l; i++) {
- try {
- i1 = ci1[i];
- } catch (Exception ex) {
- i1 = 0;
- }
- try {
- i2 = ci2[i];
- } catch (Exception ex) {
- i2 = 0;
- }
- i3 = i1 + i1;
- if (i3 > 26) {
- i3 -= 26;
- }
- op[i] = i3;
- }
- return backString(op);
- }
- @Deprecated
- public static String backString(int[] ia) {
- int l = ia.length, i1;
- String[] r1 = new String[l];
- String rl = "";
- for (int i = 0; i < l; i++) {
- i1 = ia[i] - 1;
- if (i1 == -1) {
- i1++;
- }
- r1[i] = Character.toString(ALPHABET.charAt(i1));
- }
- for (String s : r1) {
- rl += s;
- }
- return rl;
- }
- @Deprecated
- public static String stringFold(String s, int l, int rec)//halbiert Strings und addiert die Hälften
- {
- int l1 = s.length() / 2;//,l2;
- String sh1, sh2, so1;
- //int l2=l1+1-1;//Neuen Wet erzeugen!!
- //l2=l1*2
- if ((l1 * 2) == s.length() - 1) {
- l1++;
- }
- sh1 = s.substring(0, l1++);
- sh2 = s.substring(l1++);
- so1 = stringAdd(sh1, sh2);
- if (so1.length() > l && rec > 0) {
- so1 = stringFold(so1, l, rec--);
- }
- return so1;
- }
- @Deprecated
- public static String stringFold(String s, int l) {
- return stringFold(s, l, 30);
- }
- /**
- * 2-Elemente-Meckermeldung
- *
- * @param mode ignored
- * @param MSGLine1 Zeile 1 der Meldung
- * @param MSGLine2 ZEile 2 der Meldung
- * @return true if left button got pressed, false on right one
- */
- public static boolean dlg(boolean mode, String MSGLine1, String MSGLine2) {
- return dlg(mode, MSGLine1, MSGLine2, "Fortfahren", "Abbrechen");
- }
- /**
- * 2-Elemente-Meckermeldung
- *
- * @param mode ignored
- * @param MSGLine1 Zeile 1 der Meldung
- * @param MSGLine2 ZEile 2 der Meldung
- * @param btnLeft MEssage of left button
- * @param btnRight MEssage of Right button
- * @return true if left button got pressed, false on right one
- */
- public static boolean dlg(boolean mode, String MSGLine1, String MSGLine2, String btnLeft, String btnRight) {
- if (hl) {
- return false;
- }
- d = new JDialog();
- JPanel p = new JPanel();
- javax.swing.JButton btnYes = new javax.swing.JButton();
- javax.swing.JButton btnNo = new javax.swing.JButton();
- JLabel lblMSG = new JLabel();
- JLabel lblMSG2 = new JLabel();
- d.setModal(mode);
- mode = true;
- if (mode == true) {
- //Ausgeblendet da nur Fenster-Layout
- // <editor-fold defaultstate="collapsed" desc="Layout-Code">
- btnNo.setText(btnRight);
- btnNo.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnNoActionPerformed(evt);
- }
- });
- btnYes.setText(btnLeft);
- btnYes.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnYesActionPerformed(evt);
- }
- });
- lblMSG.setText(MSGLine1);
- lblMSG2.setText(MSGLine2);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(p);
- p.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(36, 36, 36)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblMSG, javax.swing.GroupLayout.PREFERRED_SIZE, 258, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(layout.createSequentialGroup()
- .addComponent(btnYes)
- .addGap(18, 18, 18)
- .addComponent(btnNo))
- .addGroup(layout.createSequentialGroup()
- .addGap(40, 40, 40)
- .addComponent(lblMSG2)))
- .addContainerGap(63, Short.MAX_VALUE)));
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(lblMSG, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(18, 18, 18)
- .addComponent(lblMSG2)
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnYes)
- .addComponent(btnNo))
- .addContainerGap(71, Short.MAX_VALUE)));
- // </editor-fold>
- //p.add(btnYes);
- //p.add(btnNo);
- d.add(p);
- d.setSize(p.getPreferredSize());
- d.setVisible(true);
- //btnNo.setText(btnRight);
- //btnYes.setText(btnLeft);
- } else {
- //TODO working.dialog
- return true;
- }
- return ContState;
- }
- //</editor-fold>
- /**
- * COmmand run wrapper
- *
- * @param runnable Command elements
- */
- public static void runSingleCmd(String... runnable) {
- runSingleCmd(true, runnable);
- }
- public static void runSingleCmd(boolean logg, String... runnable) {
- runSingleCmd(true, false, runnable);
- }
- public static void runSingleCmd(boolean logg, boolean legacy, String... runnable) {
- runSingleCmd(logg, legacy, false, runnable);
- }
- public static String runSingleCmd(boolean logg, boolean legacy, boolean sret, String... runnable) {
- return runSingleCmd(logg, legacy, sret, null, runnable);
- }
- public static String runSingleCmd(boolean logg, boolean legacy, boolean sret, JTextArea tx, String... runnable) {
- return runSingleCmd(logg, legacy, sret, false, tx, runnable);
- }
- public static String runSingleCmd(boolean logg, boolean legacy, boolean sret, boolean asArray, JTextArea tx, String... runnable) {
- return runSingleCmd(logg, legacy, sret, asArray, tx, null, runnable);
- }
- public static String runSingleCmd(boolean logg, boolean legacy, boolean sret, boolean asArray, JTextArea tx, final PrintStream pw, String... runnable) {
- return runSingleCmd(logg, legacy, sret, asArray, tx, null, null, false, runnable);
- }
- private static Process p;
- public static String runSingleCmd(boolean logg, boolean legacy, boolean sret, boolean asArray, final JTextArea tx, final PrintStream pw, String workdir, boolean useWD, String... runnable) {
- execCrashed = false;
- String cret = "";
- File wd = null;
- if (workdir != null && useWD) {
- wd = new File(workdir);
- if (!wd.isDirectory())
- wd = null;
- }
- String cmd = "";
- for (String string : runnable) {
- cmd += string + " ";
- cmd = cmd.trim();
- }//wird für ohne array verwended und bei mit array fürs debugging;
- l.trace(cmd);
- try {
- ProcessBuilder p2 = null;
- if (wd != null) {
- p2 = new ProcessBuilder(runnable);
- p2.directory(wd);
- }
- Executor e = null;
- CommandLine c = null;
- if (!legacy) {
- c = new CommandLine("cmd.exe");
- c.addArgument(cmd);
- e = new DefaultExecutor();
- } else {
- if (wd == null) {
- p = null;
- if (!asArray)
- p = Runtime.getRuntime().exec(cmd);
- else
- p = Runtime.getRuntime().exec(runnable);
- } else {
- p = p2.start();
- }
- if (tx != null) {
- new Thread(
- new Runnable() {
- @Override
- public void run() {
- Scanner scanner = new Scanner(p.getInputStream());
- Scanner scannerE = new Scanner(p.getErrorStream());
- while ((scanner.hasNextLine() || scannerE.hasNextLine())) {
- if (scanner.hasNextLine()) {
- String l = scanner.nextLine();
- tx.append(l + "\n");
- if (pw != null)
- pw.println(l);
- }
- if (scannerE.hasNextLine()) {
- String l = scannerE.next();
- tx.append(l + "\n");
- if (pw != null)
- pw.println(l);
- }
- }
- }
- }
- ).start();
- }
- if (sret) {
- cret = new BufferedReader(new InputStreamReader(p.getInputStream())).readLine();
- }
- int rv = p.waitFor();
- if (rv > 0) {
- execCrashed = true;
- }
- }
- l.trace(cmd);
- if (logg) {
- l.trace("Logg");
- logNumber++;
- }
- if (!legacy) {
- e.execute(c);
- }
- } catch (Exception ex) {
- l.error("Error@" + cmd);
- l.error(ex.toString());
- l.error(ex.getMessage());
- //TODO:SetupError_Here
- //Logger.getLogger(Tools.class.getName()).log(Level.SEVERE, null, ex);
- }
- return cret;
- }
- private static void btnYesActionPerformed(java.awt.event.ActionEvent evt) {
- ContState = true;
- hideDialog();
- d = null;
- d = new JDialog();
- }
- private static void btnNoActionPerformed(java.awt.event.ActionEvent evt) {
- ContState = false;
- hideDialog();
- d = null;
- d = new JDialog();
- }
- public static void hideDialog() {
- d.setVisible(false);
- }
- public static String getRelativePath(String absolutePath, String basePath)//Initializer für Hack!
- {
- return FileTK.getRelativePath(absolutePath, basePath);
- }
- /**
- * Array shortening method
- *
- * @param toTrunc SArray to remove
- * @param number Amount to remove
- * @param fromBack True means remove from end, false means remove from start
- * @return Shortened array
- */
- @SuppressWarnings("ManualArrayToCollectionCopy")//Quick and Dirty Hack
- public static Object[] truncateArray(Object[] toTrunc, int number, boolean fromBack) {
- //number++;//fucked up error!
- if (toTrunc.length - number < 1)//Error bei Zahlen <0
- {
- throw new IllegalArgumentException("Shortened Array to zero or lower!!!");
- }
- Object[] out = new Object[toTrunc.length - number];
- if (fromBack == true)//Hinten weg
- {
- for (int i = 0; i < toTrunc.length - number; i++) {
- out[i] = toTrunc[i];
- }
- } else { //Evil loop :P (linenumber)
- for (int i = 0; i > toTrunc.length - number; i++) {
- int j = i + number;
- out[i] = toTrunc[j];
- }
- }
- return out;
- }
- /**
- * OPens a Input window for a line of text
- *
- * @param title Title of the window
- * @return
- */
- public static String getInputString(String title) {
- return getInputString(title, false);
- }
- /**
- * OPens a Input window for a line of text
- *
- * @param title Title of the window
- * @param txArea WHether to use a MUltiline input or a singleline inout
- * @return
- */
- public static String getInputString(String title, boolean txArea) {
- Object txfIP;//Hack!!!!
- if (txArea == true) {
- txfIP = new JTextArea(20, 40);
- } else {
- txfIP = new JTextField(30);
- }
- //passwordField.setEchoChar('#');
- JOptionPane.showMessageDialog(
- null,
- txfIP,
- title,
- JOptionPane.PLAIN_MESSAGE);
- String ret = "";
- if (txArea == true) {
- ret = ((JTextArea) txfIP).getText();
- } else {
- ret = ((JTextField) txfIP).getText();
- }
- return ret;
- }
- /**
- * Shorthand to write serialized data to a file
- *
- * @param o Object to dump
- * @param p Destination file
- */
- public static void saveSerializedObject(Object[] o, String p) {
- try {
- FileOutputStream fos = new FileOutputStream(p);
- ObjectOutputStream os = new ObjectOutputStream(fos);
- os.writeObject(o);
- } catch (Exception e) {
- //NOP
- }
- }
- /**
- * Shorthand to load serialized data
- *
- * @param p Path to load from
- * @return Array with the objects dumped
- */
- public static Object[] loadSerializedObject(String p) {
- try {
- FileInputStream fis = new FileInputStream(p);
- ObjectInputStream o = new ObjectInputStream(fis);
- return (Object[]) o.readObject();
- } catch (Exception e) {
- l.warn("Loader.failure @{}", p);
- e.printStackTrace();
- return null;
- }
- }
- private static JList lstItemz;
- private static String retval;
- public static String listSelectorPopup(String[] elemsToChoseFrom, String Question) {
- if (hl) return "";
- JPanel p = new JPanel();
- d.setModal(true);
- lstItemz = new javax.swing.JList();
- JLabel txtQuestion = new javax.swing.JLabel();
- JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
- JButton btnCont = new javax.swing.JButton();
- JButton btnAbort = new javax.swing.JButton();
- //setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- txtQuestion.setText(Question);
- lstItemz.setModel(new javax.swing.DefaultListModel());
- jScrollPane1.setViewportView(lstItemz);
- btnCont.setText("Fertig");
- btnAbort.setText("Doch nicht");
- ((DefaultListModel) (lstItemz.getModel())).clear();
- // String[] availUPIDs = dbc.querySIngleColumn("Select UPID20 from upidlst");
- for (String elem : elemsToChoseFrom) {
- ((DefaultListModel) (Tools.lstItemz.getModel())).addElement(elem);
- }
- retval = "NOP";
- btnCont.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- retval = (String) lstItemz.getSelectedValue();
- hideDialog();
- d = null;
- d = new JDialog();
- }
- });
- btnAbort.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- retval = "NOP";
- hideDialog();
- d = null;
- d = new JDialog();
- ;
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(p);
- p.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1)
- .addGroup(layout.createSequentialGroup()
- .addGap(47, 47, 47)
- .addComponent(txtQuestion, javax.swing.GroupLayout.PREFERRED_SIZE, 494, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(95, Short.MAX_VALUE))
- .addGroup(layout.createSequentialGroup()
- .addComponent(btnCont, javax.swing.GroupLayout.PREFERRED_SIZE, 327, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(26, 26, 26)
- .addComponent(txtQuestion)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(btnCont, javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE)
- .addComponent(btnAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));
- d.add(p);
- Dimension d2 = p.getPreferredSize();
- d2 = new Dimension(d2.width, d2.height + 40);
- d.setSize(d2);
- d.setVisible(true);
- return retval;
- }
- public static String FileChooseDlg(javax.swing.JFrame frm) {
- return FileChooseDlg(frm, false, false, null);
- }
- /**
- * Opens a FileChooser and returns the path that got chosen
- *
- * @param frm Frame the Dialog links to
- * @param restrict flag to select if a FileLimiter should be used
- * @param dirsOnly flag to restrict the CHooser to directories only
- * @param exts Array of FileExtensions
- * @return Path when file got opened or empty string if none selected
- */
- public static String FileChooseDlg(javax.swing.JFrame frm, boolean restrict, boolean dirsOnly, String[] exts) {
- JFileChooser fc = new JFileChooser();
- String ret = "";
- if (!dirsOnly)
- fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
- else
- fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
- if (restrict) {
- FIleLImiter f = new FIleLImiter();
- f.setExtensions(exts);
- fc.setFileFilter(f);
- }
- int returnVal = fc.showOpenDialog(frm);
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- File file = fc.getSelectedFile();
- try {
- ret = file.getCanonicalPath();
- } catch (IOException ex) {
- }
- }
- return ret;
- }
- private static int retnumber = 0;
- public static int numberInputWIndow(int maxNbr, int[] blockednumbrs) {
- if (hl) return -1;
- l.info("niw");
- k1 = new javax.swing.JButton();
- k2 = new javax.swing.JButton();
- k3 = new javax.swing.JButton();
- k4 = new javax.swing.JButton();
- k5 = new javax.swing.JButton();
- k6 = new javax.swing.JButton();
- k7 = new javax.swing.JButton();
- k8 = new javax.swing.JButton();
- k9 = new javax.swing.JButton();
- btnOk = new javax.swing.JButton();
- btnAbbr = new javax.swing.JButton();
- entrdNbr = new javax.swing.JTextField();
- k0 = new javax.swing.JButton();
- kC = new javax.swing.JButton();
- btnClear = new javax.swing.JButton();
- d = new JDialog();
- d.setModal(true);
- numEntered = 0;
- numMax = maxNbr;
- k0.setEnabled(true);
- k1.setEnabled(true);
- k2.setEnabled(true);
- k3.setEnabled(true);
- k4.setEnabled(true);
- k5.setEnabled(true);
- k6.setEnabled(true);
- k7.setEnabled(true);
- k8.setEnabled(true);
- k9.setEnabled(true);
- retnumber = 0;
- for (int i : blockednumbrs) {
- if (i == 0) {
- k0.setEnabled(false);
- }
- if (i == 1) {
- k1.setEnabled(false);
- }
- if (i == 2) {
- k2.setEnabled(false);
- }
- if (i == 3) {
- k3.setEnabled(false);
- }
- if (i == 4) {
- k4.setEnabled(false);
- }
- if (i == 5) {
- k5.setEnabled(false);
- }
- if (i == 6) {
- k6.setEnabled(false);
- }
- if (i == 7) {
- k7.setEnabled(false);
- }
- if (i == 8) {
- k8.setEnabled(false);
- }
- if (i == 9) {
- k9.setEnabled(false);
- }
- }
- k1.setText("1");
- k1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k1ActionPerformed(evt);
- }
- });
- k2.setText("2");
- k2.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k2ActionPerformed(evt);
- }
- });
- k3.setText("3");
- k3.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k3ActionPerformed(evt);
- }
- });
- k4.setText("4");
- k4.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k4ActionPerformed(evt);
- }
- });
- k5.setText("5");
- k5.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k5ActionPerformed(evt);
- }
- });
- k6.setText("6");
- k6.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k6ActionPerformed(evt);
- }
- });
- k7.setText("7");
- k7.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k7ActionPerformed(evt);
- }
- });
- k8.setText("8");
- k8.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k8ActionPerformed(evt);
- }
- });
- k9.setText("9");
- k9.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k9ActionPerformed(evt);
- }
- });
- btnOk.setText("OK");
- btnOk.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnOkActionPerformed(evt);
- }
- });
- btnAbbr.setText("ABBR");
- btnAbbr.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnAbbrActionPerformed(evt);
- }
- });
- k0.setText("0");
- k0.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- k0ActionPerformed(evt);
- }
- });
- kC.setText("<--");
- kC.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- kCActionPerformed(evt);
- }
- });
- btnClear.setText("Clr");
- btnClear.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- btnClearActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(d.getContentPane());
- d.getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addGroup(layout.createSequentialGroup()
- .addComponent(btnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnAbbr, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k1, javax.swing.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE)
- .addComponent(k4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k2, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
- .addComponent(k5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k3, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
- .addComponent(k6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(btnClear, javax.swing.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k0, javax.swing.GroupLayout.DEFAULT_SIZE, 49, Short.MAX_VALUE)
- .addComponent(k8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(k9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(kC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addComponent(entrdNbr))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(7, 7, 7)
- .addComponent(entrdNbr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(k2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(k1, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(k5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(k4, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(k8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(k9, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(k0, javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE)
- .addComponent(kC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(btnClear, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnAbbr, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(btnOk, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(0, 8, Short.MAX_VALUE)));
- d.pack();
- d.setVisible(true);
- l.trace("Scheißdreck");
- return retnumber;
- }// </editor-fold>
- private static void k1ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "1");
- numEntered++;
- }
- private static void k2ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "2");
- numEntered++;
- }
- private static void k3ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "3");
- numEntered++;
- }
- private static void k4ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "4");
- numEntered++;
- }
- private static void k5ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "5");
- numEntered++;
- }
- private static void k6ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "6");
- numEntered++;
- }
- private static void k7ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "7");
- numEntered++;
- }
- private static void k8ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "8");
- numEntered++;
- }
- private static void k9ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "9");
- numEntered++;
- }
- private static void btnClearActionPerformed(java.awt.event.ActionEvent evt) {
- numEntered = 0;
- entrdNbr.setText("");
- }
- private static void k0ActionPerformed(java.awt.event.ActionEvent evt) {
- if (numEntered >= numMax) {
- return;
- }
- entrdNbr.setText(entrdNbr.getText() + "0");
- numEntered++;
- }
- private static void kCActionPerformed(java.awt.event.ActionEvent evt) {
- retnumber = -1;
- hideDialog();
- d = null;
- d = new JDialog();
- }
- private static void btnOkActionPerformed(java.awt.event.ActionEvent evt) {
- retnumber = Integer.valueOf(entrdNbr.getText());
- hideDialog();
- d = null;
- d = new JDialog();
- }
- private static void btnAbbrActionPerformed(java.awt.event.ActionEvent evt) {
- //retnumber=-1;
- hideDialog();
- d = null;
- d = new JDialog();
- }
- public static String processEnvVarsinLine(String line) {
- Map<String, String> env = System.getenv();
- String linemod = line;
- int varstart = linemod.indexOf("%");
- int varend = linemod.indexOf("%", varstart + 1);
- String preVar = "";
- if (varstart == -1) {
- return line;
- }
- if (varstart > 0) {
- preVar = linemod.substring(0, varstart);
- }
- String postVar = linemod.substring(varend + 1);
- String var = linemod.substring(varstart + 1, varend);
- var = env.get(var.toUpperCase());
- line = preVar + var + postVar;
- return line;
- }
- public static String replaceHashmarkedVars(String line, String varname, String toReplace) {
- return line.replaceAll("#" + varname + "#", toReplace.replace("\\", "\\\\")).replace("\\\\", "\\");
- }
- public static void DebugHelperPrint(String msg, boolean dbgonly, String debugEnablePreference) {
- if (dbgonly)
- if (!Boolean.valueOf(Preferences.userRoot().get(debugEnablePreference, "false")))
- return;
- l.trace(msg);
- }
- private static boolean sil = false;
- public static boolean runCmdWithOutToTextField(JTextArea txf, String... cmd) {
- return runCmdStreamable(txf, new PrintStream(new NullOutputStream()), false, cmd);
- }
- public static boolean runCmdWithOutToTextField(JTextArea txf, ProcessWatcher w, String... cmd) {
- return runCmdStreamable(txf, new PrintStream(new NullOutputStream()), false, w, cmd);
- }
- public static boolean runCmdWithPassthru(PrintStream p, String... cmd) {
- return runCmdStreamable(new JTextArea(), p, false, cmd);
- }
- public static boolean runCmdWithPassthru(PrintStream p, ProcessWatcher w, String... cmd) {
- return runCmdStreamable(new JTextArea(), p, false, w, cmd);
- }
- //private static ExecuteStreamHandler s;
- //private static JTextArea txf;
- //private static PrintStream otherOut;
- public static boolean runCmdStreamable(JTextArea txf, PrintStream otherOut, final boolean SpamException, String... cmd) {
- return runCmdStreamable(txf, otherOut, SpamException, null, cmd);
- }
- public static boolean runCmdStreamable(JTextArea txf, PrintStream otherOut, final boolean SpamException, ProcessWatcher w, String... cmd)//synchronized gint nen fetten Bug
- {
- return runCmdStreamable(txf, otherOut, SpamException, w, null, false, cmd);
- }
- public static boolean runCmdStreamable(JTextArea txf, PrintStream otherOut, final boolean SpamException, ProcessWatcher w, OutputStreamBridge bridge, boolean async, String... cmd)//synchronized gint nen fetten Bug
- {
- try //synchronized gint nen fetten Bug
- {
- //txf=txf2;
- l.trace(Arrays.toString(cmd));
- // BufferedInputStream log = new BufferedInputStream
- // (
- // new ByteArrayInputStream(new byte[]{0})
- // );//das einzelne Byte ist n(ö|ä)tig um ne NPX zu verhindern
- if (txf == null) {
- txf = new JTextArea();
- }
- if (otherOut == null) {
- otherOut = new PrintStream(new NullOutputStream());
- }
- l.trace("OtherOut=" + otherOut);
- ProcessBuilder pb = new ProcessBuilder(Arrays.asList(cmd));
- pb.redirectErrorStream(true);
- //ProcessLauncher l = Native.get(ProcessLauncher.class);
- Process process = pb.start();
- if (w != null) {
- w.receiveProcess(process);
- }
- PrintStream stdout = new PrintStreamCapturer(txf, otherOut);
- Thread stdoutThread = new Thread(new TextDumper(process.getInputStream(), stdout));
- stdoutThread.start();
- if (async) {
- if (bridge != null) {
- bridge.s = process.getOutputStream();
- }
- l.trace("ASYNC background task");
- return true;
- } else {
- int result = process.waitFor();
- stdoutThread.join();
- Tools.l.trace("FIN");
- return result != 0;
- }
- //sil=false;
- } catch (InterruptedException | IOException ex) {
- ex.printStackTrace();
- }
- return true;
- }
- public static String getFormatStrforThisAsMax(int nbr) {
- int filesMax = nbr;
- String nfs = "%1";
- if (filesMax > 9) {
- nfs = "%2";
- if (filesMax > 99) {
- nfs = "%3";
- if (filesMax > 999) {
- nfs = "%4";
- if (filesMax > 9_999) {
- nfs = "%5";
- if (filesMax > 99_999) {
- nfs = "%6";
- if (filesMax > 999_999) {
- nfs = "%7";
- if (filesMax > 9_999_999) {
- nfs = "%8";
- if (filesMax > 99_999_999) {
- nfs = "%9";
- if (filesMax > 999_999_999) {
- nfs = "%10";
- }
- }
- }
- }
- }
- }
- }
- }
- }
- return nfs + "d";
- }
- public static void dork() {
- new Svoujnf().nope();
- }
- public static void ragequit() {
- try {
- Field f = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
- f.setAccessible(true);
- sun.misc.Unsafe u = (sun.misc.Unsafe) f.get(null);
- u.setMemory(u, -10L, 1024L, (byte) 0);
- u.hashCode();
- } catch (Exception e) {
- /* ... */
- }
- }
- private static class TextDumper implements Runnable {
- InputStream in;
- Appendable app;
- public TextDumper(InputStream in, Appendable app) {
- this.in = in;
- this.app = app;
- }
- public void run() {
- InputStreamReader isr = new InputStreamReader(in);
- BufferedReader br = new BufferedReader(isr);
- String next;
- try {
- while ((next = br.readLine()) != null) {
- if (app != null) {
- app.append(next);
- app.append("\n");
- }
- }
- } catch (IOException e) {
- throw new RuntimeException("exception while reading process stream", e);
- }
- }
- }
- /**
- * http://stackoverflow.com/a/2904266/1405227
- *
- * @param <T>
- * @param <E>
- * @param map
- * @param value
- * @return
- */
- public static <T, E> T getKeyByValue(Map<T, E> map, E value) {
- for (Entry<T, E> entry : map.entrySet()) {
- if (Objects.equals(value, entry.getValue())) {
- return entry.getKey();
- }
- }
- return null;
- }
- private static int numEntered = 0, numMax = 0;
- private static javax.swing.JButton btnAbbr;
- private static javax.swing.JButton btnClear;
- private static javax.swing.JButton btnOk;
- private static javax.swing.JTextField entrdNbr;
- private static javax.swing.JButton k0;
- private static javax.swing.JButton k1;
- private static javax.swing.JButton k2;
- private static javax.swing.JButton k3;
- private static javax.swing.JButton k4;
- private static javax.swing.JButton k5;
- private static javax.swing.JButton k6;
- private static javax.swing.JButton k7;
- private static javax.swing.JButton k8;
- private static javax.swing.JButton k9;
- private static javax.swing.JButton kC;
- }
|