From d28b503c49ddbf9f614e94ffdaa74c38a7567116 Mon Sep 17 00:00:00 2001
From: deadlocker8 <deadlocker@gmx.de>
Date: Tue, 26 Jul 2016 21:39:37 +0200
Subject: [PATCH] made it usable in other projects, add some comments

---
 bin/application/Controller$1.class            | Bin 1271 -> 0 bytes
 bin/application/Controller.class              | Bin 4869 -> 0 bytes
 bin/application/Main.class                    | Bin 1741 -> 0 bytes
 bin/commandLine/CommandLine.class             | Bin 0 -> 3951 bytes
 bin/commandLine/CommandLineController$1.class | Bin 0 -> 1368 bytes
 bin/commandLine/CommandLineController.class   | Bin 0 -> 4786 bytes
 .../commandLine/CommandLineGUI.fxml           |   2 +-
 .../commandLine}/_de.properties               |   5 +-
 bin/commands/Command.class                    | Bin 1167 -> 891 bytes
 bin/commands/CommandBundle.class              | Bin 0 -> 909 bytes
 bin/commands/CommandClear.class               | Bin 1119 -> 1248 bytes
 bin/commands/CommandHelp.class                | Bin 1666 -> 1987 bytes
 bin/commands/CommandList$1.class              | Bin 1042 -> 1042 bytes
 bin/commands/CommandList.class                | Bin 1789 -> 1909 bytes
 bin/commands/HistoryEntry.class               | Bin 1002 -> 1002 bytes
 bin/commands/PossibleCommands.class           | Bin 801 -> 801 bytes
 bin/test/Main$1.class                         | Bin 0 -> 1233 bytes
 bin/test/Main$2.class                         | Bin 0 -> 981 bytes
 bin/test/Main.class                           | Bin 0 -> 2320 bytes
 src/application/Main.java                     |  43 ------
 src/commandLine/CommandLine.java              | 133 ++++++++++++++++++
 .../CommandLineController.java}               |  76 +++++-----
 .../commandLine/CommandLineGUI.fxml           |   2 +-
 .../commandLine}/_de.properties               |   9 +-
 src/commands/Command.java                     |  15 +-
 src/commands/CommandBundle.java               |  42 ++++++
 src/commands/CommandClear.java                |  19 +--
 src/commands/CommandHelp.java                 |  26 +++-
 src/commands/CommandList.java                 |  15 +-
 src/commands/HistoryEntry.java                |   5 +
 src/commands/HistoryType.java                 |   2 +-
 src/commands/PossibleCommands.java            |  10 +-
 src/test/Main.java                            |  82 +++++++++++
 33 files changed, 363 insertions(+), 123 deletions(-)
 delete mode 100644 bin/application/Controller$1.class
 delete mode 100644 bin/application/Controller.class
 delete mode 100644 bin/application/Main.class
 create mode 100644 bin/commandLine/CommandLine.class
 create mode 100644 bin/commandLine/CommandLineController$1.class
 create mode 100644 bin/commandLine/CommandLineController.class
 rename src/application/MainGUI.fxml => bin/commandLine/CommandLineGUI.fxml (93%)
 rename {src/application => bin/commandLine}/_de.properties (81%)
 create mode 100644 bin/commands/CommandBundle.class
 create mode 100644 bin/test/Main$1.class
 create mode 100644 bin/test/Main$2.class
 create mode 100644 bin/test/Main.class
 delete mode 100644 src/application/Main.java
 create mode 100644 src/commandLine/CommandLine.java
 rename src/{application/Controller.java => commandLine/CommandLineController.java} (61%)
 rename bin/application/MainGUI.fxml => src/commandLine/CommandLineGUI.fxml (93%)
 rename {bin/application => src/commandLine}/_de.properties (75%)
 create mode 100644 src/commands/CommandBundle.java
 create mode 100644 src/test/Main.java

diff --git a/bin/application/Controller$1.class b/bin/application/Controller$1.class
deleted file mode 100644
index 9443f57368164992a75c52bf12b88f549fcef31f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1271
zcmX^0Z`VEs1_l!bH+BXlMh1z*f`XjP<iwK9{5*Z<{JfH){G6QBA{9e+1{OvJfvm)`
zME#t^ymWp4q^#8B5_SeQMg~ccXj+ASYFTPtiM}g{^hnH0$w@6@WMC`F$ShVdU}TW+
z!EUlOBLkaFW?p8A9V3IZ1};UKVT=qc&iN^+oD7T%ygUr-3>;hx%nbZI44e!Cj10^g
zAO-wBnR%&xrMXF|MInhvIjM{cLO%J)i8*13MVTNzRFDPaBt`})9CoP~f}E5A_5dS;
zf`$*&cg4x6d8zuDc?G2<`rfIPU~gJ$hH)`SFi5d8NHQ`=<59@NAk84d$iSYSS_1L~
zBZHiVCJuu^^46RTatsRW4DyT&QrJxesp4T!WKd#cV0HBiaSdW*kilml7lRyw3J-%S
zgBl|PTWVoxVoot5gDAvv$PsF-8O6n*!Jx&?pvlM}hCRx77_=F<7#TPclao`6i&YFj
zj@9L1&;vP!DKr42-++g~5Lt~ONR2TMg9%6tn`^MMV}L72of!{<IVb{ol5<iMi=6ZG
zit|D7#tKeKj100kyaWk+Mh4#ClEma}-^2oF)QUqqgqjw?k;KSg%flebAjZhR6`WsM
zl$`3839^VEk;L^t0nNz38JwA(msnC-l*-891GXL|c)%j4=0nrE4NMAaLb0=EWZ-wr
zOU}tJ&df{qO)bgDPvK#30r{N;l=>MNcs%p+Qj45(5{rvdiy0Ic7#Wxu7#Ua@7zG4C
z$(@0Lfti7Ufs=uYfsuimfq}t-fr){Mfq{WbOM5E=kJfeuzKskF3``7yATh8ENVgV)
z5Ca1P4+A4uRG2}8fq{V$6cA8Tra(=x)!xP+zKKD08-wyp1}?2F3_Lp+)FEOz$YS~s
zF(ZW7HU?9W#mr!f<rvr*7#Q>!co_^CL>NpM6dBAIG#D%yOc|^hY#408ju8Vp&Xxh<
z7zPGg1`7sD21W)e1_lOJ24)dqVF5=5Q3h+M3pJrG<kZqWz#y@W!3Ja-#G7njZ!v;R
m1qB5QgB>^s>=_)uv?GHP0|NsKg9d{$gDW@y7{NLi7#INZ+#~q_

diff --git a/bin/application/Controller.class b/bin/application/Controller.class
deleted file mode 100644
index abdd41f6c449844cf366c2927e5ce7fed4ffb582..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4869
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
O89-eiMutEJFaQAfJC)4<

diff --git a/bin/application/Main.class b/bin/application/Main.class
deleted file mode 100644
index b5b3eedf81bec76ca1d9917dcdd2460e72266410..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1741
zcmX^0Z`VEs1_l#`5_SeAMh1bzf`XjP<iwK9{5*Z%#LPT)1{OvJxva#p#Iy>1WJyPa
zLPiEQo6Nk-5<5l)W)00SMg|t={FGEK24)6M9tKthHbw@1pUk{eztY^K)S{5Yq?}Yn
z1|gsP<iwn?#G*_PA1cUFl95>ql0&u#<O*v>2G-(|#G(>L25}7^sB4N#64O)lgF&RV
zW*9qzAR~hqR4T0^H%H$s!q>+qKQSe>h>Jm(L6n_Agpol2q(DC>F)v-;KPf9UxrB#7
zj6s}{fg?S&#5pIixR{YaSVI$R14I>A(3*oml97Q2<P!H#Pd$+7Tny3-vg`~pj12q;
zBf*M!7~~k_85y|KQ%izUi}Op1l2aKOlpwB#m>FDBl$n=q4YejOwM0KO$j6$CL4ZLK
z6kbY<41!SQFgeXIkgN(1gDQg>BLhoLeqstEg9wU4A>OfOXV73|5C%CZtwO&zIW;d;
zKOnIvHLrx7L5q<=2t^_oB+cf~bbtW_xEM4U^g#COGcrg)>_;=g+QkLr5JLuIb_OFP
z!$2_ri3c7A69!X82A*QD-!rQ~am&cSq7kJT#=&6D$iVHKpPQSQmjX%-TnvT`mOKnr
z4AzVc9L1?6A(<thgdqyC8a1TCK#Fa780;AAA&S9HM@bAIzvzR7tu@2g9P%ANeqsRW
zbLL@iVQ_`G$~QC5BQ-NUqXgtC7m&hAusX0pPaXy@kV5X_)Dqv!yztDFk_=F|`|vRM
zg2J5_lt}XPN{aGxa#D-f8T=U;#E?^}GhB{~!H*%3harf8AL?9C5P<|kco;%K8G;3r
zUqFrv=V6Ed3lwMMmvb>hF~qPlL_=c`5(cgn$*BdP{K&%)3sT8nP?VWh5?qp)oE=h>
z2ufU_tdX9|$RGkvx1dM^SqF&`Yeoh(P;yBvVq}nj$%7IwQueTBWMC=E&o5zQ5QV8g
zPC4Mr2MS(f8$f($a5FM+CBuCVvITpXSTiy(roya1^O`jy125P|zKI2}vLH7xGmnu$
zOd}fXCWwY$XwC`aVqj#*<6+2W$N~8;u{19^gOPzHu_zssfwAadWZ()0XGOP6P$J_5
zWo123W?)ccU}RthrvYXLMo?+Rz{tSPz`&r-z{tSJz`($&wVi=uBLf2i69X3m0|Oga
zkduL%fq{Vs%w}caVc=z8U|?k6W8jBqX4Gb2XJBJsV949eAP}jwjX_9AVjF|hb_NAs
zoox)t2N=}-b~9*3>WVOEi!f+!XVA4`(Pr7kV4y8zwvE9;TaslPgAGJLgu!7OgOj!h
zgWEO+51nlc-Uk@`tXL&kwYM<@NV0BY2-e=l5Vo9w17vRGMzDKQ88R567?{DXbz=}@
zU|<kn5M&T!kYo^M&}0y0&|?r|Fkuj9uwsy4uxF5DaAS~S@MVx;2xE|Ch+&XpNMw*_
zNM%r9$Y4-p$YfAv$YoFk`_=;-EO}7hGBD&Z#4*G(Ffs@-gfJv9Br-5DNHX{^Brzm2
zFf(W}*f69pq%yEDgfZ|lq%ov3urg#aurOpWWHK-@WHB%>a56A`XUJe@h+<*jWXNX7
qfdm|bF+9|FFytaaor{5qfq_AjfrUW}>=sza7cdlpL%s+cKg9s80FMs<

diff --git a/bin/commandLine/CommandLine.class b/bin/commandLine/CommandLine.class
new file mode 100644
index 0000000000000000000000000000000000000000..9c81c321ce78cc0accd66fcc29f07531d8bf0ca9
GIT binary patch
literal 3951
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
VLj4D_k(q%}f`O6Y1UMs|1OO`OtRDaX

literal 0
HcmV?d00001

diff --git a/bin/commandLine/CommandLineController$1.class b/bin/commandLine/CommandLineController$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..880eccbdc686b23d4d6337cda0c8fa6005ac990d
GIT binary patch
literal 1368
zcmX^0Z`VEs1_l!bcXkFQMh4~N{M_8cycD0zyi|Q>1lu`3ucRnHCnvQ?#gLtWg^@uZ
zE3qt5KPNFSUEe<`D>b=<oq>&!K@udIR-vC-mYP?h?+PM467y1WQi~WF*h(@oi&YF5
z8I*kpT4K$}z-E(~msw)R$e^Y{gnG>|Mg|t={FGEq21W*69tL&>4lV{}27Vp}P6h!+
z24)SA0)CLM{7Q3^Qj0<olX6lS8H9ZDlM{2o5{oiHe5fD`$f1l3s)VgoF$6g@1MEXa
z1_cctsP~JLQ}a^wGxG{cOZ2@{E5YGltr^C}Ai*HT&LGLiAdN>M4}&y=3?l=3dTI&C
zLyQb^8k#r^2FY7<GRQF~urtUrGDu-J6{L!XL6Jd;k%86KFT^#7kwFHZfm{r73@SVf
zstjt33~Z@|rHMJkj0~a>&mqUSwPq9-g9d{ZJA)=8gCfB=<zdif;9_LpNK8&nEiP6u
z0J&S2hd~eIE~d}`kWmIa42H;R3_)s)c^FJUYS>(ZogD*QLF&wS7|cP@%9EUvnpotV
zpI4j@icMB<vSVbB#o;?hJTNlw2A3ozXZt1=KqFin;y2WE3yv>F23sBmQ3f$a2Cm@z
z(xT*4w@i>lQdo0_9w_)3890M8)AJHbN{dn%8GOJlK?yXl2&z@kEMfzb!kT>StQi^j
zUGtK2@{2R`(tT4)GV)V+7+e@!85vkWIfaoy24_aG2Bm%;&%C_UBIlgM;^Nd|1_cI2
z24)6E237_}0Rd2UVPIfjW?*38WZ+_8WZ-6CV6b3dVqjumVBpfy-patEwVi=)BLf2i
z6N4Z~3@iiEt;Qh4z`(%6zz7x<W)NXuU|<9V8Pt?1P*ZHRw=sxsVvya&pgfa-OKS@Q
z&khE4h?owtm_9_z2qCtO!4zaMGuUD|26hGp25kmj23-ab1_K5~1|tRy22%!826F}*
z21~GG#K4ZTWq>$_fx(u+g29r3k->_Afq|8QSwvV^z>z_e!5Zp9O{fbwwX_c~NNi)U
x0oexeCL7pWj9^niLBYac2Mz*z1_v<h$l%1lz`(+w!Qjl`1`Ys5unq<W1^@$SM?(Mr

literal 0
HcmV?d00001

diff --git a/bin/commandLine/CommandLineController.class b/bin/commandLine/CommandLineController.class
new file mode 100644
index 0000000000000000000000000000000000000000..599d4ef1c027c4c82ded9c8f7daf005973c1b040
GIT binary patch
literal 4786
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

literal 0
HcmV?d00001

diff --git a/src/application/MainGUI.fxml b/bin/commandLine/CommandLineGUI.fxml
similarity index 93%
rename from src/application/MainGUI.fxml
rename to bin/commandLine/CommandLineGUI.fxml
index 3d7ae6e..ea27a94 100644
--- a/src/application/MainGUI.fxml
+++ b/bin/commandLine/CommandLineGUI.fxml
@@ -6,7 +6,7 @@
 <?import javafx.scene.layout.AnchorPane?>
 <?import javafx.scene.layout.VBox?>
 
-<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.Controller">
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="commandLine.CommandLineController">
    <children>
       <VBox layoutX="14.0" layoutY="14.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0">
          <children>
diff --git a/src/application/_de.properties b/bin/commandLine/_de.properties
similarity index 81%
rename from src/application/_de.properties
rename to bin/commandLine/_de.properties
index 34e77ae..c7814cf 100644
--- a/src/application/_de.properties
+++ b/bin/commandLine/_de.properties
@@ -1,12 +1,13 @@
 app.name=CommandLine
 version.code=1
 version.name=1.0.0
-version.date=22.07.16
+version.date=26.07.16
 
 help.list=list - lists all possible commands
 help.help=help - shows help for given command\nSYNTAX:  help [COMMAND]
 help.clear=clear - clears the history
 
+error.general=An error occurred.
 error.unknown.command=Unknown command. Use \"list\" for a list of possible commands.
 error.invalid.arguments=Invalid arguments. Use \"help commandname\" for help.
-error.no.help=Unknown command as parameter. Can't display help. Use \"list\" for a list of possible commands
\ No newline at end of file
+error.no.help=Unknown command as parameter. Can't display help. Use \"list\" for a list of possible commands.
\ No newline at end of file
diff --git a/bin/commands/Command.class b/bin/commands/Command.class
index 40fddff4115933d253769c294cf92c52705ce2d1..b067f6d875a4100c0db43c42a623b8a050e419a2 100644
GIT binary patch
delta 469
zcmeC@{LRL7>ff$?3=9k=45|~k@+Zz0XXKmQ$ymTBHu)E$GNaUFIi?P=<ow*+#JrSZ
zeP;;6sWdMoCw1~3CXIS#21W)}1~vu;21W*U1`aUI3FfmgFfwp4a5FG6@Gvki=rb@f
zFfuSOuxf2*;N8f;z`(@7&%nR{QpCW(!63lEz`z4hz#zyV1U5#PK?Fnd76#D`$eQaJ
z7#IYw>K12^z@l4n4YF<q1_n{Anx%=bnt_2qilH8x!(|v`p;jj_FflNJ6l(8dNzvNE
zAi0o%55`==z{<Ra1>_!Pa8U3uFf%YP$TNsBC^ASesDj-k2GI=-5|D**4Dt+&3<?Yk
Y3@i*xVvIs8j0}nlO5pHP2765f0CKi0Z~y=R

literal 1167
zcmX^0Z`VEs1_l!bb9M$MMh1c8{M_8cyp&>nX9$CxfrXJlAS<yfQ9ma!FJ0e1DJwO(
zgpq+gJGHVrzbJ)~LC6Oo8(dP9nU`+O$iSCZnwykb<ewIhSd^Gs%*ep#$;iN&k(yIb
z5|Ua`!pOjuRGOEPlgh{-1<_twl9{6)lv<o$T9lmX1eUXAWMH$&%*!mXV`N~~&<tZ_
zU~$e*N#$Z-W)R?E;9=n9U=U(t;7Kef$jMAjEXmBz)8}LmVGv_y5QRAzY^qOwa$-&@
z4}&;^1S12xyK9iIqhBQ4-AGETxfrAvWY`&`85tzNegey(I*NxumO+k@fipd|1ma3Y
z1_up@7r@~I4FQM<SU<#iYfU5}R3oi985kK9co?`CxEUGveKPY>{lI}2l9&VvAR({;
zVTnbVAU;%(r6eP>7~}`^__AhX;7U&|@rK2Yhz8VRWY>W#)Zk%YWng1u5KK=kf!K$L
zEM^T&PmmfN9tL&>4n_v<^wbiM)SLoH)Ujt4hb87@rZ6&yX+%SOg>1NH6e9yW)LD!S
z!dO%=GVlhMBqnG3CKf=w!=74^np|3v%E+LH%}5{QICjp@D=Es)$w@7;2BitEU~rOg
z%LIiL4>Z;4fufH^k%5tcnSp_Ug@F;|R|W<KMv#BNG$#Wa0|SE~D9{-g7}yvXK?#b1
zk%5nafx(%9nSl``tF@hhUrR`E6NB&$2Fa}q@*5c#7?>Co85kJ&zy@<LurTm42rzIk
zC^0ZF@IW*%C^M*ltx#o9gBqyMzzCLO)!M?Kz5#9s$X1XW5Sm%xnl%};uxQp^gQi&w
z$!3IRUE*w(#;RG50pwgzI3zGIF)%SOFi2_dV@c84!l1p7fe*%9!obSBh6UstW~2a7
vU;sHtf<X;zvKT}+)K3fyQVa$Rh761hM&LMM5@TdxWH4qh0SA^T*kfh@=#=e7

diff --git a/bin/commands/CommandBundle.class b/bin/commands/CommandBundle.class
new file mode 100644
index 0000000000000000000000000000000000000000..cbeee66dd17083562222e69d6ffb1a2ea74dd485
GIT binary patch
literal 909
zcmX^0Z`VEs1_l!b1$G7|Mh3Cu{M_8cyp&>nX9&ZoG%qD5m7RfwkwG9Uu`E$PCowNw
z-#;lUHMxY5fh##bucRnHCnvRtkwMu9s@W$qFBPUA#CC=&vSwu90~t`7n4StTnUO)t
z2W)O>NoJ0IP-=00X;Cs%&YF>d%_cK1v&4>(fmuT{jFExGIX@+pi-DPemxqCqfs2uW
zA7s8?X>L+#QAlD^PAVgVkWYScVoq3MQ6`8F6=W&N$Sh`Lkbt=m&3o3247};7B?xyi
zGN@{3!W4t7z~LQE21W)^9tKthHbw@)^wbic#JqH5zsYE5;`SX#vm_4#I|BzJ18*^^
z^=cYK*bWL2!D38XWi@bH3ev+B3=U+sOmKLiM6@0#E*KOU7#Wxu7#Nrsm_U95v)CCp
z7#J8>85ltU&%nsQ&A`B5%)rRN2olxW&cL$~tc;I=fq{#GiGhJZh=GMcl!2dtfq@62
zh(Ulskb!}LkwJ(-7;1n%+<+|%A{*cauz@v5V%03hAdW?|1iEH9teT}5q@kMaz@B4Z
zVAImx${>R7c4Y=u1{JUgVqm|pLEX;4zy=Nwkhf(RWU-kgfo_%t11p0j4zoak3NlL$
H>~(nnj5@Sk

literal 0
HcmV?d00001

diff --git a/bin/commands/CommandClear.class b/bin/commands/CommandClear.class
index 71d46c5942d1e34952a7e6785b6a07bab70240e5..2cb70e91aff99f6a297a04b0f413288e9cca2d05 100644
GIT binary patch
delta 586
zcmcc5@qm--)W2Q(7#J8#82mPJnJ|ha=jY}o=A{(tJ3|;wrFkhisgpw(4eGfVR2bCQ
z8B`e=aH!&8P-oC!WZ+FtEpg7zD=Es)$w@6@WKh-6^nn`dlbM$aGa1B2D6<BcuEoQk
z&7i}`Aef$7;**${UYeMm3UL4<gAB8VrqAR%j1p?r91MDl4C1LpMfpW~nR#W2IhiSX
ziACw9xv6<2#as*q3`Xn>hLdkH$}$@>m`wi3Xs&O@V8PB{&d8uh&>cJsmJC*tLztAT
z%@}NW7;G8X7#Vnyb5awFJTi+*@{20D7|a;#c^Di(68y*#KKbb&IVT<l=gAwHgxSm(
zTzMGWCZA$5Qe;a4haw|`1S}xX!&i~HQjm**g@K2Gi-DJcpMj4-l!1TpYG(QRnGDPf
z%nS?+W?I_Y802R$i0Eu%P}bSTpedxgjX{4KgXu<)z%~YJ2xSMM93hm;Mg|53W(G+H
z1_mVt4h9AW5e5zhF$M_+aRx~SDFy`wX$Ex$83sKDSq4)EIR+^P1_lL)Z4A;3G7Jn1
n45|!f4DJjb42&QrFnBU}F)%TBgAHYrWME|QVPIfjV(<k3M^1~U

delta 523
zcmaFBd7p#p)W2Q(7#J8#7(6y|nJ|ha78K-UCMT9;=I7}<=jW9a<>%z27EKOeG^pof
zU}R9?VNhjIV`N}UD$PsDNo8b^^2tgpOVlqd$;{CYN-fSWElN&x0?S!*FlaC`h^H16
z<rnE?=9MMpWTxmP7NwWwrskCtb1`T!=&&<rGcrivGJuCcmqCw_fipd|B)Fs~b8;S&
zu8IMJ5j%q+BLfb1@-P@Pm`py!q!ePnV8+8>&cMdVz>}PlnpotKSzMA|RLR9)z+lP4
zU<H!kN0#u(PY21_@G#hd<RF@y^Ye=Hb5cPP_B;#@lO33iRJoGjp~A=@;e#W*CNozG
zvNNzSa58W)a53;Ra5IQ9@JyCvk+1J!U}j)uU|>+!(%!}(KZ`+7M{5g%vXJ^V2F+~@
z`Wtn&F_`LXW3bTK#$c_pjlpgs0|NsygCqk3gAxM=0|SE~0|$dJgD8UtgBXK2gA{`V
zgB*h-gA#)jgBpW0gA@Y;g95~O25ANv1`tqZaAa^|U<6so;LITA!obAf3O1BcjDeBC
Lje&uIiNPHJ?EZJI

diff --git a/bin/commands/CommandHelp.class b/bin/commands/CommandHelp.class
index 0ab23cd743bcbf327044dc67dc0c65fd44037e11..0c7dc7069c808f58fe85cef1fb778102f5b41da1 100644
GIT binary patch
delta 1099
zcmZqTJ<QK_>ff$?3=9k=3{@Ms3>d|d^K)|(^HPfSogoaT(!7+M)X4#i2K8JFDhz7u
z462L_I8^a4s559VGVrFSmN@6<l@#UY<fIlcGN@{3`aq5K$;?ZInG9khlv#sJ*WzK&
zX3$||5KK=k@kz`}FHKBOg*bqbK_*c{(<dvjEK$F-Br``pD784hv?v)WZOy@;$H*X_
zT2z!@q?egjmY9>7qL)~dUYeVlS5nNyV8CF+&S1#MAc4yO9tL9ulgVEh&GpR~EZ7;$
z85tA_I+=&TlEG?n0Fx4%4TBv!gYD!BCOKw%28YQrnRMBl7+lyHoF|`Ql3;daaGU&`
zNln3n!Hb>2laWCP;Rw%?)S|?a{30F(Zw8;qy39&!emo5R3;~lvnbp{W7(&<?f+sgJ
zi!z5YgiW5wtjriOc`vh!Y!o8{Yes5LfgTq_I718%11p0Sh!w}f5YLb>`5Uu!eK<oB
z4?{9T03!oONq%riQD$B`2SX|&11}_m(o^$NixP9V89W%$c^EPnG8q}zGZKsaQY%Ur
z8JIORqc|9{;fnL}^+1-fGvqQdC?TBgn^|0(nU@ZW2iJ<^)Pj=C{5(bm_T<T>EOLr$
zN#LZz$RGiWee^`NgGJ7UF_n=)1u0%}8EehRz#CkWn4ImKSP+t!l#|NNkU#l3OS&K*
z0}BH`0~dn;13!ZxgD8X0<ak!Odd4IMRt7c(28LcO?QIP5vlv8lwlOH{Y-7+A(%r_O
zzm36k<0b~{Z48c9EXx@JC0TYdxHB>wU|{ys-NxXn&0@5TA#f&xB}~t5hVV$C$n6Z#
zV42u$42cjkmNST2vBDGyr9cEXO0w*%XGmjYnDu`(TrLYL$H2&7!w|y|&yd5w%pl3Y
zz+lF}%fP@O&cMMS$soZX#URNb%b?F7&tSu#%n-w%!Vu4(%8<yQ&QQpp$xy@~%TU9h
z%h1E1#~=mHv#cN=GDtJXFn~ZWLmopu10w?iLqRV?0Yf1J6N5g3GeZ$WF#|J0B7*=!
z2}3CZD?=Fr1A{9AtK@$ME(TV121a&<a&`t426hGy28RC(R!Cy(49p-=Ms|iA!T$^l
SNHP%B42%pF3=9lR43z-erx1Gp

delta 768
zcmX@i-^9yx>ff$?3=9k=40#*53>d`{3kq^FlM_oa^Yiqb^YcoI@^f-hizWv!8i;W+
zFfyp{FsL%9F*2|vmFA`7q%tx{O=e`0Vbqu`$0Wn1#h}B^pgq}vNtRicL2q&blevlk
zgAqG}AtM70b9oqy8B8W0V^U%>W3XUnFrWO6Nsif)!D=!;v#z2IgB?4AEhB?)R$^JA
zerZW&j=p12QDUV}W^oA*gFS=8<XC1k1t$g<b_Qog1|fth&yv)l#FG3X9tKwix5<l{
zmDoIZ7(5xgCZA?jlk;KlV`uPXWDo$W&q>Tn*AFf!%FIjWVen@Nn9R?j%o4=NAU?U5
zMO>bPA%u~EH6t~rK#z+dkRgnRftA4o#ERfyh-8SGoWo-65Xcb2!w}2h#mK->k`FP7
zo56`8o`)fUA(4@RJtMK$FSVkCk%3u5Gm3*DnUR4vwWuh+NG~s64`lLWC03;nu4H&n
zGcri{V2=cAMh52O+!RIzA)n;@+}y;xlwy5n2*a9@fj77$F*(~eu^=QdDJPYkA$9V8
z)^tHm1{MY`1}+9}27U$}22lpy$>wZw^$b55SQ%Iu7#Q-kw6`(H&teeN(b~eGETq1T
zL30~}{>DuVrrQ{-tyq>bSW2?&WN>6;IKaT{r@M{8U7N*d8-w>u21T%j-3)<|Lc!Y^
zLczk}+Zdvu27q+MF*3~he;BMzC<!Xgz`(%FAX(4Az@Wvz#lXNI#K6HI!XU~Z${@xd
z!Jxw+#bC)G!w|+G%Mi{W!H~$H$dJdN#2^J$&jNBUgEWH-0|?|Zq%fp1FoMO>7}6P-
z7<3r488R3$8JHQe7#J8N7?{QWGjK7mvNJHUGi0+f7%;FiI59AoGB7f*=P)oZFfrr;
E0P}pRNB{r;

diff --git a/bin/commands/CommandList$1.class b/bin/commands/CommandList$1.class
index e3b2858a80d5ef11794f98dfb5e40c266a2e2159..1b8c80a8389195f474106bd200e123c29b063f40 100644
GIT binary patch
delta 46
xcmbQlF^OZtc_y*s{M_8cyp&>nX9&ZoG%qD5b@EfDXhwy}j?B)Cs*_updjXJx5JUg~

delta 46
zcmbQlF^OZtc_y*Mf`XjP<iwK9{5*Z<{JfH){G6QBqRCI0q8Vi-J2E>nDo$=??gaps
C<`9Vh

diff --git a/bin/commands/CommandList.class b/bin/commands/CommandList.class
index 0b0782e573ce2e8ead6b801933d467ba4ef11a9d..ab08f9baa6cc4cb97742718b23d7aed2708c6af9 100644
GIT binary patch
delta 912
zcmey%`<0LD)W2Q(7#J8#7z#IX88C_^=jY}o=A{(tJ3|;wrFkhisgna34eGfVR2bCQ
z8B`e=aH!&8P-oC!WZ+FtEpg7zD=Es)$w@6@WKh-6^nn`dlbM$aGa1B2D6<BcuEoQk
z&7i}`Aef$7;**${UYeMm3UL4<gG{1^rcYL4S)zVvNoJ0IP-=00X;Cs%+M0twkC8z<
zwWuh+NG~(5EHNiDMK7@^y)-v9ucVlZ!GOVtoxzZiK?0WnJPgJRCX>H1n(Lb}Sg<pg
zGcqU=bTSWvC4<%E0460i8wNXe2HVLMOmfWj3=WfLGU>87F*1lv6c7<qG2~)!WN_hO
zU}bP+WRTSGnJ6H_ZLJx`#o*51$<E+0nU7h5*^9w@vL>@Cqwi#YW*Igg22Ku!fXRi-
zG8{e(K|Bn>3?Y-JGFx-FGlcOlgfm1;zQL@Z=FSks!w}67!^pr=oLQC1$iS?j>B+$m
z$H>6Q#l_&mkif%`$dEKyj>SchEeRZlj0_U6Xh4tMc9uW&{0uA%0t{RXf(-l&LJXn|
z!VFRj3=BLBj0_A6Vhqv@G7Jn1j1002atw?N><kQyrVK0$Yzzzxbz0in802R$i0Eu%
zP}bSTpedxgjX{4KgXzXi4Ay?SyBQoKwYD=jZ)0%V&EONcox#tFMUq9xe;Y$!II|h+
zat3Wl7F|)+ZS@SH2N;;QFz|pRL|JvWF+{SY%xB=1WD$x53AL~?LPQt-zXY;Ll4To1
zJjfOX1_l-eNd^W6D+WFW1_lWR4hAU(2?l8fNd|caSq23LO$IFnBL-~-D+V0~2L?Tc
zAO?MgSO!CeR0bV}LIzWYS_U%)DTaCm20Ms<pnhdwsAEWGNCEr5jv<vHje&_lmLZWL
zoxy>DnZby`harO@lYxc7mcfJ}i$R!yl_47%UJz9|49pC<3=9nX3@noWK>5a<oxz7u
hg^7WQA&-H9fr%lXp@4ybfs28W!I6Q1fti7U0RZGj#-RWJ

delta 726
zcmey$_m`LJ)W2Q(7#J8#7_v8V88C_^78K-UCMT9;=I7}<=jW9a<>%z27EKOdG!Wxt
zU}R9?VNhjIV`N}UD$PsDNo8b^n#{-~!>BP?j!A}1i$RB-L3^?TlPt3?gWlu>CUX@7
z1|xO`Lq-N1=JGHYGnh<1#-zk%#$dtDU_SXBlN_@pgVkhyW?e>`$+pbW9M%kWJPfQ1
z_LCEs<rEzmoY@(i7#W1K63Y_xOG`3y^c{<e5-WW&i%WPITo_y@&u3O;ac5)@pUlT9
zuEWLP#=yzJ;Kj%w?wFIKP>^3-oSBr9s*s$Yo12)IQf$QqQsKkH;LG4QnVZF$!;v9?
zhar$5XtE!Rf|?^k2oFOjLl`3iOL1mZDkB54hNdS6Lj)rOBUoP)4?{FV%;YI7E~;F~
z@StL3knq6~h(B5W2=XwnFz_;PG4L_)Gw?HrG6+m&W0SAfXJBDqV_;yY(9+(<AU}&i
zP)BPEgR+qNHU`aY4Eh^4F_`-4?q;x#)Y{HqyN$tNH-lT`b_NeC7D*N%&ut9e;ml^N
z%NevKS#(8Nw=wu1U|`<DzylH&W!2rr5X_P?pMhJFMJOC3)WXUL5ncHIl8z+HHipP;
z4E6dO85kH?7$g}O7_1oh7#J8t88{fk8AKT*7{nN)8Kf9w7}OY48T1*{7|a>e8EhFe
z8T=Wv7@`<-7?K#&8S)qm7|Iz88Kf8(80;V(VUT8!VE};&hFFF;21bzQ7~&Zc7?>EO
z7~&Wb8LSwX8T1)E8Il;18GKk6tQbrfQW%68SQ%0o7#MgM7@^A27?>H-85kJ&8Cb;r
oF{rUKII=UiF{&^zFfn8>FfcGNWHMwiFfed2Ffv$!tYcsR03?l&UH||9

diff --git a/bin/commands/HistoryEntry.class b/bin/commands/HistoryEntry.class
index 555ac2bee0604b0272bb28b80dbf6e2bbba727d7..273d82bffe3ac7a4e47f974a862e35b85b9ae2a5 100644
GIT binary patch
delta 47
zcmaFG{)&CWH6~tO1{MZ>22KV620jMC$&Z-=CKoV^P4;9~pL~{?XL1d5Afx=`bIdXT
DAGQoE

delta 51
zcmaFG{)&CWH6~sT1{MY`22KWU20jL!$&Z-=7zHL5GK)_3WLBSS%q%v!joE#20W;6!
Ho6Ld$J;4l%

diff --git a/bin/commands/PossibleCommands.class b/bin/commands/PossibleCommands.class
index 3757d2e80d89e17e3c8bc2acd1889e00262fb30d..f89f06a53eb69b4c55cd2523a41972728870249d 100644
GIT binary patch
delta 63
zcmZ3;wvcVZUM5jq1}+9Z1`!5+1~~=+1~mp=27Ly>$(NXnWVspC85kIN7#JBC7+4uJ
S8MGJ}7#JC}85kIt7<2#@3I<~U

delta 63
zcmZ3;wvcVZUM5ja1}+9J1`!5s1~~>E1~mpw27LzJ$(NXnWZ4+h85kIN7#JBC7+4uJ
S8MGJ}7#JC}85kIt7<2#;K?X(u

diff --git a/bin/test/Main$1.class b/bin/test/Main$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..3524c51fd0d955d6f06fad56fb746d3ec7a2f3c1
GIT binary patch
literal 1233
zcmX^0Z`VEs1_l!bS9S&_Mh5PZ)Z!9--^9#36+?Cg7Dfhvti-ZJ{hY+SbbbG%tkmQZ
zb_O;^21$@;T7`aUS!!O1zAK3INX$#gNiAYzU@OVUELJgKWZ?FJ8)nVOz+RS^qmrDP
z!pI=$lboNMo0ym4lbM&Q?~GtuGcvH*Waed-*fBDwYar>ysX;T0k%7fIKP8oufsuiq
zhk>1e1H=;KVc=xo;$mQC5awavW)NXyVAcRB<p<g5SDKrYS`?C)l#|NHAmo#uoR|}q
zSd<CkLj_qtK44_vMYur45ahNDuooE_WHo$H{O_1tl9`_e4h3t?Fb)P8Mh0#qZ?QR4
zGJpY_L%su)kqM?5*!F*bFt`}h7&O=!)EODXaRd$zgC>I(BLjbNMt(Vx;fxG25Z6HB
zD7d63GcVoR1q`Az!?+l981&c~bQu|hK~C1s%-8qycdbZHEdV*0he00{IQ#`gnRz9_
zC5g$|Aw`MFsf-M);D}{pkizXzMh3=IMg~!^0yJZ-85wxNruiloK!a2q;z-maW33s+
z&S1{SAOUh3TnZ^PxfmE3EO{6t8Kf8)xPtRbi;`2_GC|SC2}+@QAZ?5coWYstd5I;Z
zMX8Joo)G6CC0A>(2;6XRBtes^4XPB9z1DWtj12s)dC58X#hH2OzNsY{`6=uS4vY+(
z@FdN{;Kbm}$iP}$l2}y2$bj%*aY<r&s(vttv<4+Q9?!hI)FS7c#Ny)AVg>~UMh0dE
zMg~>}CIJCZdSze`5CWxE1_lOZ1_lOh1|9}R23`gR23rOuun51F_ErWyEuF0l0$SS{
zgf=oTFfcKQGB7Z3F)%SOFfcN3F{m?$F))BNGBEHnh%-ol#U&Y}phk5t@Pmy~)!M=!
zAS5lqAS=Qk4<;2w7?edAl$p0Ns4i#V@YUJIpuLfSk%56hhC!Y|hk+Svkr)Fj0|SE|
zgA9W{gFJ%)g93vwg9?Kw*ir?E!B9&X7*rVy7z`O0859^;7>pQ<8JHMM7#JAX8JObP
z8FW|#92q1TOrfsQWMBgOfKyBR0E5{!1`CAO*uZXJ1ls`eBnyKT*xS|&HelM8!H$7}
UfrY`I!I8lQ92AUT9SjT%0381icmMzZ

literal 0
HcmV?d00001

diff --git a/bin/test/Main$2.class b/bin/test/Main$2.class
new file mode 100644
index 0000000000000000000000000000000000000000..3aab3c6a6671eb2faa5cea2791db11dc46128ba0
GIT binary patch
literal 981
zcmX^0Z`VEs1_l!bBX$NRMh5PZ)Z!9--^9#36(e>A7Dfhvti-ZJ{hY+SbbbG%tkmQZ
zb_O;^21$@;T7`aUS!!O1zAK3INX$#gNiAYzU@OVUELJgKWZ?FJ8)nVOz+RS^qmrDP
z!pI=$lboNMo0ym4lbM&Q?~GtuGcvH*Waed-*fBDwYar>ysX;T0k%7fIKP8oufsuiq
zhk>1e1H=;KVc=xo;$mQC5awavW)NXyVAcRB<p<g5SDKrYS`?C)l#|NHAmo#uoR|}q
zSd<CkLj_qtK44_vMYur42;{a5uooE_WHo$H{O_1tl9`_e4h3t?FfIle203;HSw;qN
z9RB2CkO#R*AUP+$I2FnNj0~*c0A*y5!fgQ~gE*S?FpJq4R2Uf~aJh_&fssLthe47-
zijjdUIKQ+gIn^x_6a<{0*wzDSV`ShA&P>lsEGaEYWn}OKy8$`st-&H#qumBo3OPjV
ztQi^jUGqSm&CE;pO)bgDPhn@!Wn|!lCl4M5eFg(Y2G-(|#G(>p4;Ggsrl;x$gGg&o
z1oC+1<)s!m=Oh*vrxr6PFfcMOGcYo+GB61Ufa0EkK|lx;^9&3O%nS?++zdPnj10UC
z3=FmmOkfdyE$yugd|EnN83eSpGYD;DU|?Wk5M^Ls;9_86U|?Wm;9{_15My8fYh+;H
zXAozQ0E<g9NI{KqU|<BR<<Q!~Ah3-=8r=+g26hGquo+?ybx<=H7&sUd7!(;81soY9
z8I+)=X)-W@RdH%*A7D`4#-NHYj*Wp4Y&FO^Ajh#VsDquW!JrAIwHUM+7#LU>bQts)
O48dMt1nXd6U;qHD_uB0M

literal 0
HcmV?d00001

diff --git a/bin/test/Main.class b/bin/test/Main.class
new file mode 100644
index 0000000000000000000000000000000000000000..27f2a876e6fcb195df6a10bc48a37326ad9f09b7
GIT binary patch
literal 2320
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
UtqcqdLJUj{p5PS3zz_$a0d7}F%m4rY

literal 0
HcmV?d00001

diff --git a/src/application/Main.java b/src/application/Main.java
deleted file mode 100644
index 4adcc79..0000000
--- a/src/application/Main.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package application;
-
-import javafx.application.Application;
-import javafx.fxml.FXMLLoader;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.stage.Stage;
-
-public class Main extends Application
-{
-	@Override
-	public void start(Stage stage)
-	{
-		try
-		{
-			FXMLLoader loader = new FXMLLoader(getClass().getResource("MainGUI.fxml"));
-			Parent root = (Parent)loader.load();
-
-			Scene scene = new Scene(root, 600, 600);
-
-			stage.setResizable(true);
-			stage.setTitle("CommandLine");
-			stage.setScene(scene);
-			stage.setResizable(true);
-			stage.setMinHeight(250);
-			stage.setMinWidth(400);
-			
-			Controller controller = (Controller)loader.getController();
-			controller.setStage(stage);	
-			controller.init();		
-			stage.show();		
-		}
-		catch(Exception e)
-		{
-			e.printStackTrace();
-		}
-	}
-
-	public static void main(String[] args)
-	{
-		launch(args);
-	}
-}
\ No newline at end of file
diff --git a/src/commandLine/CommandLine.java b/src/commandLine/CommandLine.java
new file mode 100644
index 0000000..16d1f8f
--- /dev/null
+++ b/src/commandLine/CommandLine.java
@@ -0,0 +1,133 @@
+package commandLine;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.ResourceBundle;
+
+import commands.CommandBundle;
+import commands.HistoryEntry;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.image.Image;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+
+/**
+ * CommandLine object, initialization and configuration for a new CommandLine stage
+ * @author deadlocker8
+ *
+ */
+public class CommandLine
+{
+	private Stage owner;
+	private Stage newStage;
+	private Image icon;
+	private ResourceBundle languageBundle;
+	public ArrayList<HistoryEntry> globalHistory = new ArrayList<>();
+	public int lastShownCommand = 1;
+	public ArrayList<HistoryEntry> history = new ArrayList<>();
+	private final String promptText = ">>>";	
+	private CommandBundle bundle;
+	
+	public CommandLine(Stage owner, Image icon, ResourceBundle languageBundle, CommandBundle commandBundle)
+	{
+		this.owner = owner;
+		this.icon = icon;
+		this.languageBundle = languageBundle;
+		this.bundle = commandBundle;
+	}	
+	
+	public Stage getOwner()
+	{
+		return owner;
+	}
+
+	public Stage getStage()
+	{
+		return newStage;
+	}
+
+	public Image getIcon()
+	{
+		return icon;
+	}	
+
+	public int getLastShwonCommand()
+	{
+		return lastShownCommand;
+	}
+	
+	public String getPromptText()
+	{
+		return promptText;
+	}
+
+	public ResourceBundle getLanguageBundle()
+	{
+		return languageBundle;
+	}
+	
+	public CommandBundle getBundle()
+	{
+		return bundle;
+	}
+
+	public void showCommandLine(String title, double width, double height, double minWidth, double minHeight, double positionX, double positionY, boolean dark) throws IOException
+	{		
+		if(newStage != null)
+		{
+			if(newStage.isShowing())
+			{
+				return;
+			}
+		}		
+		
+		FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/commandLine/CommandLineGUI.fxml"));
+
+		Parent root = (Parent)fxmlLoader.load();
+		newStage = new Stage();
+		newStage.setScene(new Scene(root, width, height));
+		newStage.setResizable(true);
+		newStage.setTitle(title);	
+		newStage.initOwner(owner);
+		
+		newStage.setMinWidth(minWidth);
+		newStage.setMinHeight(minHeight);	
+		if(positionX != -1)
+		{
+			newStage.setX(positionX);
+		}
+		if(positionY != -1)
+		{
+			newStage.setY(positionY);
+		}
+
+		if(dark)
+		{
+			root.setStyle("-fx-base: rgb(50, 50, 50); -fx-background: rgb(50, 50, 50); -fx-control-inner-background:  rgb(10, 10, 10);");
+		}
+		
+		if(icon != null)
+		{
+			newStage.getIcons().add(icon);
+		}
+
+		CommandLineController newController = fxmlLoader.getController();
+		newController.init(this);	
+
+		newStage.initModality(Modality.NONE);		
+		newStage.show();
+	}
+	
+	public void closeCommandLine()
+	{
+		if(newStage != null)
+		{
+			if(newStage.isShowing())
+			{
+				newStage.close();
+			}
+		}		
+	}
+}
\ No newline at end of file
diff --git a/src/application/Controller.java b/src/commandLine/CommandLineController.java
similarity index 61%
rename from src/application/Controller.java
rename to src/commandLine/CommandLineController.java
index 3066586..d4b4fc5 100644
--- a/src/application/Controller.java
+++ b/src/commandLine/CommandLineController.java
@@ -1,41 +1,37 @@
-package application;
+package commandLine;
 
 import java.util.ArrayList;
-import java.util.Locale;
-import java.util.ResourceBundle;
 
-import commands.PossibleCommands;
 import commands.Command;
 import commands.HistoryEntry;
 import commands.HistoryType;
+import commands.PossibleCommands;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.scene.control.TextArea;
 import javafx.scene.control.TextField;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
-import javafx.stage.Stage;
 
-public class Controller
+/**
+ * Controller for the CommandLine stage
+ * @author deadlocker8
+ *
+ */
+public class CommandLineController
 {
 	@FXML private TextArea textareaHistory;
 	@FXML private TextField textfieldInput;
 	
-	public Stage stage;		
-	private final ResourceBundle bundle = ResourceBundle.getBundle("application/", Locale.GERMANY);
-	
-	private ArrayList<HistoryEntry> globalHistory = new ArrayList<>();
-	private int lastShwonCommand = 1;
-	private ArrayList<HistoryEntry> history = new ArrayList<>();
-	private final String promptText = ">>>";
-
-	public void setStage(Stage stage)
-	{
-		this.stage = stage;
-	}	
+	private CommandLine commandLine; 
 	
-	public void init()
+	public void init(CommandLine commandLine)
 	{	
+		this.commandLine = commandLine;		
+		
+		commandLine.getBundle().setController(this);	
+		commandLine.getBundle().setLanguageBundle(commandLine.getLanguageBundle());	
+		
 		textareaHistory.setEditable(false);
 		textareaHistory.setWrapText(true);		
 		
@@ -59,8 +55,8 @@ public class Controller
 					clearConsole();
 	            }
 			}
-		});	  
-			
+		});	 	
+		
 		printPrompt();		
 	}	
 
@@ -72,7 +68,7 @@ public class Controller
 	
 	public void print(String message)
 	{		
-		history.add(new HistoryEntry(HistoryType.MESSAGE, message));
+		commandLine.history.add(new HistoryEntry(HistoryType.MESSAGE, message));
 		setConsoleText();
 		printPrompt();
 	}
@@ -84,7 +80,7 @@ public class Controller
 	
 	public void clearHistory()
 	{
-		history = new ArrayList<>();
+		commandLine.history = new ArrayList<>();
 	}
 	
 	public void clearConsole()
@@ -99,16 +95,16 @@ public class Controller
 		
 		StringBuilder sb = new StringBuilder();
 		boolean printedLastEntry = false;
-		for(int i = 0; i < history.size(); i++)		
+		for(int i = 0; i < commandLine.history.size(); i++)		
 		{							
-			HistoryEntry currentEntry = history.get(i);
+			HistoryEntry currentEntry = commandLine.history.get(i);
 			if(currentEntry.getType().equals(HistoryType.COMMAND))
 			{				
 				if(printedLastEntry)
 				{
 					sb.append("\n");
 				}
-				sb.append(promptText);
+				sb.append(commandLine.getPromptText());
 				sb.append(" ");
 				sb.append(currentEntry.getText());
 				printedLastEntry = true;
@@ -124,8 +120,8 @@ public class Controller
 			}
 		}	
 		
-		textareaHistory.setText(sb.toString());	
-		textareaHistory.positionCaret(sb.toString().length());
+		textareaHistory.setText(sb.toString());
+		textareaHistory.positionCaret(sb.toString().length());		
 	}
 	
 	private boolean executeCommand(String[] command)
@@ -133,8 +129,8 @@ public class Controller
 		for(Command cmd : PossibleCommands.possibleCommands)
 		{
 			if(cmd.getKeyword().equals(command[0]))
-			{
-				cmd.execute(command, this);		
+			{				
+				cmd.execute(command, commandLine.getBundle());		
 				return true;
 			}
 		}
@@ -151,14 +147,14 @@ public class Controller
 			return;
 		}	
 		
-		globalHistory.add(new HistoryEntry(HistoryType.COMMAND, input));
-		history.add(new HistoryEntry(HistoryType.COMMAND, input));
-		lastShwonCommand = -1;
+		commandLine.globalHistory.add(new HistoryEntry(HistoryType.COMMAND, input));
+		commandLine.history.add(new HistoryEntry(HistoryType.COMMAND, input));
+		commandLine.lastShownCommand = -1;
 		
 		String[] command = input.split(" ");		
 		if(!executeCommand(command))		
 		{
-			print(bundle.getString("error.unknown.command"));			
+			print(commandLine.getLanguageBundle().getString("error.unknown.command"));			
 		}
 		else
 		{
@@ -168,17 +164,17 @@ public class Controller
 	
 	private void showLastCommand()
 	{
-		if(globalHistory.size() > 0)
+		if(commandLine.globalHistory.size() > 0)
 		{
-			if(lastShwonCommand <= 0)
+			if(commandLine.lastShownCommand <= 0)
 			{
-				textfieldInput.setText(globalHistory.get(globalHistory.size()-1).getText());
-				lastShwonCommand = globalHistory.size()-1;
+				textfieldInput.setText(commandLine.globalHistory.get(commandLine.globalHistory.size()-1).getText());
+				commandLine.lastShownCommand = commandLine.globalHistory.size()-1;
 			}
 			else
 			{			
-				textfieldInput.setText(globalHistory.get(lastShwonCommand - 1).getText());
-				lastShwonCommand--;				
+				textfieldInput.setText(commandLine.globalHistory.get(commandLine.lastShownCommand - 1).getText());
+				commandLine.lastShownCommand--;				
 			}
 		}
 	}
diff --git a/bin/application/MainGUI.fxml b/src/commandLine/CommandLineGUI.fxml
similarity index 93%
rename from bin/application/MainGUI.fxml
rename to src/commandLine/CommandLineGUI.fxml
index 3d7ae6e..ea27a94 100644
--- a/bin/application/MainGUI.fxml
+++ b/src/commandLine/CommandLineGUI.fxml
@@ -6,7 +6,7 @@
 <?import javafx.scene.layout.AnchorPane?>
 <?import javafx.scene.layout.VBox?>
 
-<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.Controller">
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="commandLine.CommandLineController">
    <children>
       <VBox layoutX="14.0" layoutY="14.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="14.0">
          <children>
diff --git a/bin/application/_de.properties b/src/commandLine/_de.properties
similarity index 75%
rename from bin/application/_de.properties
rename to src/commandLine/_de.properties
index 1ea1c0a..c7814cf 100644
--- a/bin/application/_de.properties
+++ b/src/commandLine/_de.properties
@@ -1,12 +1,13 @@
 app.name=CommandLine
-version.code=0
-version.name=0.0.1
-version.date=22.07.16
+version.code=1
+version.name=1.0.0
+version.date=26.07.16
 
 help.list=list - lists all possible commands
 help.help=help - shows help for given command\nSYNTAX:  help [COMMAND]
 help.clear=clear - clears the history
 
+error.general=An error occurred.
 error.unknown.command=Unknown command. Use \"list\" for a list of possible commands.
 error.invalid.arguments=Invalid arguments. Use \"help commandname\" for help.
-error.no.help=Unknown command as parameter. Can't display help. Use \"list\" for a list of possible commands
\ No newline at end of file
+error.no.help=Unknown command as parameter. Can't display help. Use \"list\" for a list of possible commands.
\ No newline at end of file
diff --git a/src/commands/Command.java b/src/commands/Command.java
index 2f9d39e..68974cc 100644
--- a/src/commands/Command.java
+++ b/src/commands/Command.java
@@ -1,16 +1,15 @@
 package commands;
 
-import java.util.Locale;
-import java.util.ResourceBundle;
-
-import application.Controller;
-
+/**
+ * abstract class Command
+ * @author deadlocker8
+ *
+ */
 public abstract class Command
 {
 	public String keyword;
 	public int numberOfParams;
-	public String helptText;
-	public final ResourceBundle bundle = ResourceBundle.getBundle("application/", Locale.GERMANY);		
+	public String helptText;	
 	
 	public String getKeyword()
 	{
@@ -39,5 +38,5 @@ public abstract class Command
 		}
 	}
 	
-	public abstract void execute(String[] command, Controller controller);	
+	public abstract void execute(String[] command, CommandBundle bundle);	
 }
\ No newline at end of file
diff --git a/src/commands/CommandBundle.java b/src/commands/CommandBundle.java
new file mode 100644
index 0000000..16c8c5c
--- /dev/null
+++ b/src/commands/CommandBundle.java
@@ -0,0 +1,42 @@
+package commands;
+
+import java.util.ResourceBundle;
+
+import commandLine.CommandLineController;
+
+/**
+ * holds important objects that are needed by the commands
+ * --> fill in your variables (with getters and setters) here
+ * @author deadlocker8
+ *
+ */
+public class CommandBundle
+{
+	private CommandLineController controller;
+	private ResourceBundle languageBundle;	
+
+	public CommandBundle()
+	{
+		
+	}
+
+	public CommandLineController getController()
+	{
+		return controller;
+	}	
+	
+	public ResourceBundle getLanguageBundle()
+	{
+		return languageBundle;
+	}	
+
+	public void setController(CommandLineController controller)
+	{
+		this.controller = controller;
+	}
+
+	public void setLanguageBundle(ResourceBundle languageBundle)
+	{
+		this.languageBundle = languageBundle;
+	}	
+}
\ No newline at end of file
diff --git a/src/commands/CommandClear.java b/src/commands/CommandClear.java
index 1facf0b..853b054 100644
--- a/src/commands/CommandClear.java
+++ b/src/commands/CommandClear.java
@@ -1,7 +1,10 @@
 package commands;
 
-import application.Controller;
-
+/**
+ * Clears the history log and console
+ * @author deadlocker8
+ *
+ */
 public class CommandClear extends Command
 {
 	public CommandClear()
@@ -12,17 +15,17 @@ public class CommandClear extends Command
 	}
 
 	@Override
-	public void execute(String[] command, Controller controller)
+	public void execute(String[] command, CommandBundle bundle)
 	{		
 		if(!isValid(command))
 		{			
-			controller.print(bundle.getString("error.invalid.arguments"));
+			bundle.getController().print(bundle.getLanguageBundle().getString("error.invalid.arguments"));
 			return;
 		}	
 		
-		controller.clearHistory();
-		controller.clearHistoryLog();
-		controller.clearConsole();		
-		controller.printPrompt();
+		bundle.getController().clearHistory();
+		bundle.getController().clearHistoryLog();
+		bundle.getController().clearConsole();		
+		bundle.getController().printPrompt();
 	}
 }
\ No newline at end of file
diff --git a/src/commands/CommandHelp.java b/src/commands/CommandHelp.java
index 36fb39a..c8d25dd 100644
--- a/src/commands/CommandHelp.java
+++ b/src/commands/CommandHelp.java
@@ -1,7 +1,12 @@
 package commands;
 
-import application.Controller;
+import java.util.MissingResourceException;
 
+/**
+ * prints help for given command
+ * @author deadlocker8
+ *
+ */
 public class CommandHelp extends Command
 {
 	public CommandHelp()
@@ -13,23 +18,30 @@ public class CommandHelp extends Command
 	}
 
 	@Override
-	public void execute(String[] command, Controller controller)
+	public void execute(String[] command, CommandBundle bundle)
 	{		
 		if(!isValid(command))
 		{			
-			controller.print(bundle.getString("error.invalid.arguments"));
+			bundle.getController().print(bundle.getLanguageBundle().getString("error.invalid.arguments"));
 			return;
-		}	
+		}			
 		
 		for(Command cmd : PossibleCommands.possibleCommands)
 		{
 			if(cmd.getKeyword().equals(command[1]))
-			{				
-				controller.print(bundle.getString("help." + command[1]));		
+			{	
+				try
+				{
+					bundle.getController().print(bundle.getLanguageBundle().getString("help." + command[1]));
+				}
+				catch(MissingResourceException e)
+				{
+					bundle.getController().print(bundle.getLanguageBundle().getString("error.general"));
+				}
 				return;
 			}
 		}		
 				
-		controller.print(bundle.getString("error.no.help"));		
+		bundle.getController().print(bundle.getLanguageBundle().getString("error.no.help"));		
 	}
 }
diff --git a/src/commands/CommandList.java b/src/commands/CommandList.java
index 2deaa74..5435bb6 100644
--- a/src/commands/CommandList.java
+++ b/src/commands/CommandList.java
@@ -3,8 +3,11 @@ package commands;
 import java.util.ArrayList;
 import java.util.Comparator;
 
-import application.Controller;
-
+/**
+ * Lists all available commands
+ * @author deadlocker8
+ *
+ */
 public class CommandList extends Command
 {
 	public CommandList()
@@ -16,14 +19,15 @@ public class CommandList extends Command
 	}
 
 	@Override
-	public void execute(String[] command, Controller controller)
+	public void execute(String[] command, CommandBundle bundle)
 	{		
 		if(!isValid(command))
 		{			
-			controller.print(bundle.getString("error.invalid.arguments"));
+			bundle.getController().print(bundle.getLanguageBundle().getString("error.invalid.arguments"));
 			return;
 		}
 		
+		//sort possible commands alphabetically
 		ArrayList<Command> commands = PossibleCommands.possibleCommands;
 		commands.sort(new Comparator<Command>()
 		{
@@ -34,6 +38,7 @@ public class CommandList extends Command
 			}
 		});
 		
+		//loop through all possible commands and print keyword
 		StringBuilder sb = new StringBuilder();	
 		sb.append("All possible commands:\n");
 		for(int i = 0; i < commands.size(); i++)
@@ -45,6 +50,6 @@ public class CommandList extends Command
 			}
 		}
 		
-		controller.print(sb.toString());			
+		bundle.getController().print(sb.toString());			
 	}
 }
\ No newline at end of file
diff --git a/src/commands/HistoryEntry.java b/src/commands/HistoryEntry.java
index ffaf0a9..460aa8e 100644
--- a/src/commands/HistoryEntry.java
+++ b/src/commands/HistoryEntry.java
@@ -1,5 +1,10 @@
 package commands;
 
+/**
+ * Entry in the history log
+ * @author deadlocker8
+ *
+ */
 public class HistoryEntry
 {
 	private HistoryType type;
diff --git a/src/commands/HistoryType.java b/src/commands/HistoryType.java
index 169f897..218d868 100644
--- a/src/commands/HistoryType.java
+++ b/src/commands/HistoryType.java
@@ -3,4 +3,4 @@ package commands;
 public enum HistoryType
 {
 	COMMAND, MESSAGE
-}
+}
\ No newline at end of file
diff --git a/src/commands/PossibleCommands.java b/src/commands/PossibleCommands.java
index 8de7de2..bdf8a51 100644
--- a/src/commands/PossibleCommands.java
+++ b/src/commands/PossibleCommands.java
@@ -3,12 +3,16 @@ package commands;
 import java.util.ArrayList;
 import java.util.Arrays;
 
+/**
+ * contains all possible allowed commands
+ * @author deadlocker8
+ *
+ */
 public class PossibleCommands
-{	
-		
+{			
 	public static final ArrayList<Command> possibleCommands = new ArrayList<>(Arrays.asList(
 				new CommandList(),
 				new CommandHelp(),
-				new CommandClear()						
+				new CommandClear()				
 			));	
 }
\ No newline at end of file
diff --git a/src/test/Main.java b/src/test/Main.java
new file mode 100644
index 0000000..82ee1e1
--- /dev/null
+++ b/src/test/Main.java
@@ -0,0 +1,82 @@
+package test;
+
+import java.io.IOException;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import commandLine.CommandLine;
+import commands.CommandBundle;
+import javafx.application.Application;
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.layout.AnchorPane;
+import javafx.scene.layout.HBox;
+import javafx.stage.Stage;
+
+public class Main extends Application
+{
+	@Override
+	public void start(Stage stage)
+	{
+		try
+		{
+			AnchorPane mainPane = new AnchorPane();
+			Scene scene = new Scene(mainPane, 600, 600);
+		
+			stage.setTitle("Test");
+			stage.setScene(scene);
+			stage.setResizable(true);			
+			
+			CommandBundle cb = new CommandBundle();			
+			
+			CommandLine cmd = new CommandLine(stage, null, ResourceBundle.getBundle("commandLine/", Locale.GERMANY), cb);
+			
+			HBox hbox = new HBox();
+			
+			Button button = new Button("Open");
+			button.setOnAction(new EventHandler<ActionEvent>()
+			{				
+				@Override
+				public void handle(ActionEvent event)
+				{
+					try
+					{
+						cmd.showCommandLine("CommandLine", 400, 250, 400, 200, -1, -1, false);
+					}
+					catch(IOException e)
+					{
+						//ERRORHANDLING
+						e.printStackTrace();
+					}
+				}
+			});
+			hbox.getChildren().add(button);
+			
+			Button button2 = new Button("Close");
+			button2.setOnAction(new EventHandler<ActionEvent>()
+			{				
+				@Override
+				public void handle(ActionEvent event)
+				{
+					cmd.closeCommandLine();					
+				}
+			});
+			hbox.getChildren().add(button2);		
+			
+			mainPane.getChildren().add(hbox);
+						
+			stage.show();		
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+		}
+	}
+
+	public static void main(String[] args)
+	{
+		launch(args);
+	}
+}
\ No newline at end of file
-- 
GitLab