diff --git a/algorithmen/GraphAlgo.ctxt b/algorithmen/GraphAlgo.ctxt
index 654a170..b1f785c 100644
--- a/algorithmen/GraphAlgo.ctxt
+++ b/algorithmen/GraphAlgo.ctxt
@@ -1,44 +1,44 @@
-#BlueJ class context
-comment0.target=GraphAlgo
-comment0.text=\r\n\r\n\ description\r\n\r\n\ @version\ 1.0\ from\ 26.04.2019\r\n\ @author\ \r\n
-comment1.params=
-comment1.target=GraphAlgo()
-comment10.params=delay
-comment10.target=void\ setSpeed(int)
-comment11.params=
-comment11.target=void\ run()
-comment12.params=k
-comment12.target=void\ setStartKnoten(graph.Knoten)
-comment13.params=
-comment13.target=graph.Knoten\ getStartKnoten()
-comment14.params=
-comment14.target=void\ fuehreAlgorithmusAus()
-comment15.params=
-comment15.target=java.lang.String\ getBezeichnung()
-comment16.params=s
-comment16.target=void\ melde(java.lang.String)
-comment17.params=s
-comment17.target=void\ info(java.lang.String)
-comment18.params=
-comment18.target=void\ resetInfo()
-comment19.params=
-comment19.target=void\ infoIndentMore()
-comment2.params=graphPlotter\ hilfe
-comment2.target=void\ setGUIElemente(graph.GraphPlotter,\ graph.Hilfe)
-comment20.params=
-comment20.target=void\ infoIndentLess()
-comment3.params=g
-comment3.target=void\ setGraph(graph.Graph)
-comment4.params=
-comment4.target=void\ step()
-comment5.params=
-comment5.target=boolean\ getWaitforrepaint()
-comment6.params=waitforrepaintNeu
-comment6.target=void\ setWaitforrepaint(boolean)
-comment7.params=
-comment7.target=boolean\ getWaitforclick()
-comment8.params=waitforclickNeu
-comment8.target=void\ setWaitforclick(boolean)
-comment9.params=stepping
-comment9.target=void\ setStepping(boolean)
-numComments=21
+#BlueJ class context
+comment0.target=GraphAlgo
+comment0.text=\n\n\ description\n\n\ @version\ 1.0\ from\ 26.04.2019\n\ @author\ \n
+comment1.params=
+comment1.target=GraphAlgo()
+comment10.params=delay
+comment10.target=void\ setSpeed(int)
+comment11.params=
+comment11.target=void\ run()
+comment12.params=k
+comment12.target=void\ setStartKnoten(graph.Knoten)
+comment13.params=
+comment13.target=graph.Knoten\ getStartKnoten()
+comment14.params=
+comment14.target=void\ fuehreAlgorithmusAus()
+comment15.params=
+comment15.target=java.lang.String\ getBezeichnung()
+comment16.params=s
+comment16.target=void\ melde(java.lang.String)
+comment17.params=s
+comment17.target=void\ info(java.lang.String)
+comment18.params=
+comment18.target=void\ resetInfo()
+comment19.params=
+comment19.target=void\ infoIndentMore()
+comment2.params=graphPlotter\ hilfe
+comment2.target=void\ setGUIElemente(graph.GraphPlotter,\ graph.Hilfe)
+comment20.params=
+comment20.target=void\ infoIndentLess()
+comment3.params=g
+comment3.target=void\ setGraph(graph.Graph)
+comment4.params=
+comment4.target=void\ step()
+comment5.params=
+comment5.target=boolean\ getWaitforrepaint()
+comment6.params=waitforrepaintNeu
+comment6.target=void\ setWaitforrepaint(boolean)
+comment7.params=
+comment7.target=boolean\ getWaitforclick()
+comment8.params=waitforclickNeu
+comment8.target=void\ setWaitforclick(boolean)
+comment9.params=stepping
+comment9.target=void\ setStepping(boolean)
+numComments=21
diff --git a/algorithmen/package.bluej b/algorithmen/package.bluej
index 62d89bb..b06e9a3 100644
--- a/algorithmen/package.bluej
+++ b/algorithmen/package.bluej
@@ -23,16 +23,16 @@ dependency7.type=UsesDependency
dependency8.from=GraphAlgo_DominatingSetGreedyH
dependency8.to=GraphAlgo_Moore
dependency8.type=UsesDependency
-objectbench.height=157
-objectbench.width=1892
+objectbench.height=135
+objectbench.width=1273
package.divider.horizontal=0.6003172085646312
-package.divider.vertical=0.8295218295218295
-package.editor.height=791
-package.editor.width=1765
-package.editor.x=0
-package.editor.y=0
-package.frame.height=1053
-package.frame.width=1920
+package.divider.vertical=0.8287092882991556
+package.editor.height=666
+package.editor.width=1142
+package.editor.x=533
+package.editor.y=122
+package.frame.height=928
+package.frame.width=1297
package.numDependencies=8
package.numTargets=31
package.showExtends=true
@@ -46,14 +46,14 @@ target1.height=50
target1.name=GraphAlgo_ColoringGreedyRandom
target1.showInterface=false
target1.type=ClassTarget
-target1.width=290
+target1.width=250
target1.x=600
target1.y=590
target10.height=50
target10.name=GraphAlgo_DominatingSetGreedyF
target10.showInterface=false
target10.type=ClassTarget
-target10.width=280
+target10.width=250
target10.x=290
target10.y=420
target11.height=50
@@ -67,56 +67,56 @@ target12.height=50
target12.name=GraphAlgo_DominatingSetGreedyG
target12.showInterface=false
target12.type=ClassTarget
-target12.width=290
+target12.width=250
target12.x=290
target12.y=470
target13.height=50
-target13.name=GraphAlgo_TSPGenetisch
+target13.name=GraphAlgo_DominatingSetGreedyD
target13.showInterface=false
target13.type=ClassTarget
-target13.width=230
-target13.x=600
-target13.y=340
+target13.width=250
+target13.x=290
+target13.y=320
target14.height=50
-target14.name=GraphAlgo_DominatingSetGreedyD
+target14.name=GraphAlgo_TSPGenetisch
target14.showInterface=false
target14.type=ClassTarget
-target14.width=290
-target14.x=290
-target14.y=320
+target14.width=230
+target14.x=600
+target14.y=340
target15.height=50
target15.name=GraphAlgo_DominatingSetGreedyE
target15.showInterface=false
target15.type=ClassTarget
-target15.width=280
+target15.width=250
target15.x=290
target15.y=370
target16.height=50
target16.name=GraphAlgo_DominatingSetGenetisch
target16.showInterface=false
target16.type=ClassTarget
-target16.width=300
+target16.width=260
target16.x=290
target16.y=640
target17.height=50
target17.name=GraphAlgo_ZyklusBacktracking
target17.showInterface=false
target17.type=ClassTarget
-target17.width=260
+target17.width=230
target17.x=20
target17.y=640
target18.height=50
target18.name=GraphAlgo_DominatingSetGreedyH
target18.showInterface=false
target18.type=ClassTarget
-target18.width=290
+target18.width=250
target18.x=290
target18.y=520
target19.height=50
target19.name=GraphAlgo_DominatingSetGreedyI
target19.showInterface=false
target19.type=ClassTarget
-target19.width=280
+target19.width=240
target19.x=290
target19.y=570
target2.height=50
@@ -124,8 +124,8 @@ target2.name=GraphAlgo_Tiefensuche
target2.showInterface=false
target2.type=ClassTarget
target2.width=210
-target2.x=1230
-target2.y=150
+target2.x=20
+target2.y=170
target20.height=50
target20.name=GraphAlgo_Moore
target20.showInterface=false
@@ -145,20 +145,20 @@ target22.name=GraphAlgo_Breitensuche
target22.showInterface=false
target22.type=ClassTarget
target22.width=210
-target22.x=1220
-target22.y=80
+target22.x=20
+target22.y=290
target23.height=50
target23.name=GraphAlgo_toplogischeSortierung
target23.showInterface=false
target23.type=ClassTarget
-target23.width=280
+target23.width=240
target23.x=20
target23.y=370
target24.height=50
target24.name=GraphAlgo_DominatingSetBacktracking
target24.showInterface=false
target24.type=ClassTarget
-target24.width=320
+target24.width=280
target24.x=290
target24.y=100
target25.height=50
@@ -172,36 +172,36 @@ target26.height=50
target26.name=GraphAlgo_EulerkreisExistenz
target26.showInterface=false
target26.type=ClassTarget
-target26.width=250
+target26.width=220
target26.x=20
target26.y=100
target27.height=50
-target27.name=GraphAlgo_TiefensucheRek
+target27.name=GraphAlgo_TSPGreedy2
target27.showInterface=false
target27.type=ClassTarget
target27.width=230
-target27.x=750
-target27.y=20
+target27.x=600
+target27.y=220
target28.height=50
-target28.name=GraphAlgo_TSPGreedy2
+target28.name=GraphAlgo_TiefensucheRek
target28.showInterface=false
target28.type=ClassTarget
-target28.width=230
-target28.x=600
-target28.y=220
+target28.width=210
+target28.x=20
+target28.y=230
target29.height=50
target29.name=GraphAlgo_ColoringBacktracking
target29.showInterface=false
target29.type=ClassTarget
-target29.width=270
+target29.width=240
target29.x=600
target29.y=470
target3.height=50
-target3.name=GraphAlgo_MST_Prim
+target3.name=GraphAlgo_TSPBacktracking
target3.showInterface=false
target3.type=ClassTarget
target3.width=230
-target3.x=890
+target3.x=600
target3.y=100
target30.height=50
target30.name=GraphAlgo_Dijkstra
@@ -218,31 +218,31 @@ target31.width=230
target31.x=600
target31.y=280
target4.height=50
-target4.name=GraphAlgo_TSPBacktracking
+target4.name=GraphAlgo_MST_Prim
target4.showInterface=false
target4.type=ClassTarget
-target4.width=240
-target4.x=600
+target4.width=230
+target4.x=890
target4.y=100
target5.height=50
target5.name=GraphAlgo_DominatingSetGreedyB
target5.showInterface=false
target5.type=ClassTarget
-target5.width=290
+target5.width=250
target5.x=290
target5.y=220
target6.height=50
target6.name=GraphAlgo_DominatingSetGreedyC
target6.showInterface=false
target6.type=ClassTarget
-target6.width=290
+target6.width=250
target6.x=290
target6.y=270
target7.height=50
target7.name=GraphAlgo
target7.showInterface=false
target7.type=AbstractTarget
-target7.width=100
+target7.width=90
target7.x=310
target7.y=10
target8.height=50
@@ -256,6 +256,6 @@ target9.height=50
target9.name=GraphAlgo_DominatingSetGreedyA
target9.showInterface=false
target9.type=ClassTarget
-target9.width=290
+target9.width=250
target9.x=290
target9.y=170
diff --git a/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv b/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv
index 443b508..8c6f82f 100644
--- a/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv
+++ b/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv
@@ -16,12 +16,12 @@ directed,1
# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht.
list,infotext
Farm,285,101,1,3
-Mühle,531,105,2
-Bäckerei,694,159
+Mühle,531,105,2
+Bäckerei,694,159
Schweinefarm,119,239,4
Metzger,167,409
Kohlemine,423,445,7,8
Erzmine,724,314,7
Eisenschmelze,537,326,8
Werkzeugmacher,389,246,0,4
-Fischerhütte,741,456,6,5
+Fischerhütte,741,456,6,5
\ No newline at end of file
diff --git a/control/Controller.ctxt b/control/Controller.ctxt
index 9c35c5d..960abe6 100644
--- a/control/Controller.ctxt
+++ b/control/Controller.ctxt
@@ -1,66 +1,66 @@
-#BlueJ class context
-comment0.target=Controller
-comment0.text=\r\n\ Die\ Klasse\ Controller\ stellt\ den\ Controller\ des\ Hauptfensters\ /\ Menu\ dar.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=
-comment1.target=void\ initialize()
-comment10.params=event
-comment10.target=void\ mExperimentiereAuswahl(javafx.event.ActionEvent)
-comment11.params=event
-comment11.target=void\ mBeenden(javafx.event.ActionEvent)
-comment12.params=
-comment12.target=void\ menuChangeAnsicht()
-comment13.params=event
-comment13.target=void\ mChangeOptionBild(javafx.event.ActionEvent)
-comment14.params=event
-comment14.target=void\ mChangeOptionKantengewichte(javafx.event.ActionEvent)
-comment15.params=event
-comment15.target=void\ mChangeOptionKnoteninfo(javafx.event.ActionEvent)
-comment16.params=event
-comment16.target=void\ mChangeOptionKnotenname(javafx.event.ActionEvent)
-comment17.params=event
-comment17.target=void\ mChangeOptionKnotenwerte(javafx.event.ActionEvent)
-comment18.params=event
-comment18.target=void\ mChangeHilfefenster(javafx.event.ActionEvent)
-comment19.params=event
-comment19.target=void\ mOeffnen(javafx.event.ActionEvent)
-comment2.params=tabOld\ tabNew
-comment2.target=void\ changeTab(javafx.scene.control.Tab,\ javafx.scene.control.Tab)
-comment20.params=dateiname
-comment20.target=void\ graphLaden(java.lang.String)
-comment21.params=event
-comment21.target=void\ mSchliessen(javafx.event.ActionEvent)
-comment22.params=event
-comment22.target=void\ mSpeichern(javafx.event.ActionEvent)
-comment23.params=event
-comment23.target=void\ mBildExportieren(javafx.event.ActionEvent)
-comment24.params=event
-comment24.target=void\ mUeber(javafx.event.ActionEvent)
-comment25.params=event
-comment25.target=void\ mResetAlles(javafx.event.ActionEvent)
-comment26.params=event
-comment26.target=void\ mResetBesucht(javafx.event.ActionEvent)
-comment27.params=event
-comment27.target=void\ mResetFarbe(javafx.event.ActionEvent)
-comment28.params=event
-comment28.target=void\ mResetGeloescht(javafx.event.ActionEvent)
-comment29.params=event
-comment29.target=void\ mResetKantenmarkierung(javafx.event.ActionEvent)
-comment3.params=
-comment3.target=void\ oeffneHauptTab()
-comment30.params=event
-comment30.target=void\ mResetMarkierung(javafx.event.ActionEvent)
-comment31.params=event
-comment31.target=void\ mResetWert(javafx.event.ActionEvent)
-comment4.params=event
-comment4.target=void\ mNeuerGraph(javafx.event.ActionEvent)
-comment5.params=
-comment5.target=void\ schliesseTabs()
-comment6.params=event
-comment6.target=void\ mBearbeiten(javafx.scene.input.MouseEvent)
-comment7.params=event
-comment7.target=void\ mSimuliere(javafx.scene.input.MouseEvent)
-comment8.params=event
-comment8.target=void\ mExperimentiereKanten(javafx.event.ActionEvent)
-comment9.params=event
-comment9.target=void\ mExperimentiereKnoten(javafx.event.ActionEvent)
-numComments=32
+#BlueJ class context
+comment0.target=Controller
+comment0.text=\n\ Die\ Klasse\ Controller\ stellt\ den\ Controller\ des\ Hauptfensters\ /\ Menu\ dar.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=
+comment1.target=void\ initialize()
+comment10.params=event
+comment10.target=void\ mExperimentiereAuswahl(javafx.event.ActionEvent)
+comment11.params=event
+comment11.target=void\ mBeenden(javafx.event.ActionEvent)
+comment12.params=
+comment12.target=void\ menuChangeAnsicht()
+comment13.params=event
+comment13.target=void\ mChangeOptionBild(javafx.event.ActionEvent)
+comment14.params=event
+comment14.target=void\ mChangeOptionKantengewichte(javafx.event.ActionEvent)
+comment15.params=event
+comment15.target=void\ mChangeOptionKnoteninfo(javafx.event.ActionEvent)
+comment16.params=event
+comment16.target=void\ mChangeOptionKnotenname(javafx.event.ActionEvent)
+comment17.params=event
+comment17.target=void\ mChangeOptionKnotenwerte(javafx.event.ActionEvent)
+comment18.params=event
+comment18.target=void\ mChangeHilfefenster(javafx.event.ActionEvent)
+comment19.params=event
+comment19.target=void\ mOeffnen(javafx.event.ActionEvent)
+comment2.params=tabOld\ tabNew
+comment2.target=void\ changeTab(javafx.scene.control.Tab,\ javafx.scene.control.Tab)
+comment20.params=dateiname
+comment20.target=void\ graphLaden(java.lang.String)
+comment21.params=event
+comment21.target=void\ mSchliessen(javafx.event.ActionEvent)
+comment22.params=event
+comment22.target=void\ mSpeichern(javafx.event.ActionEvent)
+comment23.params=event
+comment23.target=void\ mBildExportieren(javafx.event.ActionEvent)
+comment24.params=event
+comment24.target=void\ mUeber(javafx.event.ActionEvent)
+comment25.params=event
+comment25.target=void\ mResetAlles(javafx.event.ActionEvent)
+comment26.params=event
+comment26.target=void\ mResetBesucht(javafx.event.ActionEvent)
+comment27.params=event
+comment27.target=void\ mResetFarbe(javafx.event.ActionEvent)
+comment28.params=event
+comment28.target=void\ mResetGeloescht(javafx.event.ActionEvent)
+comment29.params=event
+comment29.target=void\ mResetKantenmarkierung(javafx.event.ActionEvent)
+comment3.params=
+comment3.target=void\ oeffneHauptTab()
+comment30.params=event
+comment30.target=void\ mResetMarkierung(javafx.event.ActionEvent)
+comment31.params=event
+comment31.target=void\ mResetWert(javafx.event.ActionEvent)
+comment4.params=event
+comment4.target=void\ mNeuerGraph(javafx.event.ActionEvent)
+comment5.params=
+comment5.target=void\ schliesseTabs()
+comment6.params=event
+comment6.target=void\ mBearbeiten(javafx.scene.input.MouseEvent)
+comment7.params=event
+comment7.target=void\ mSimuliere(javafx.scene.input.MouseEvent)
+comment8.params=event
+comment8.target=void\ mExperimentiereKanten(javafx.event.ActionEvent)
+comment9.params=event
+comment9.target=void\ mExperimentiereKnoten(javafx.event.ActionEvent)
+numComments=32
diff --git a/control/EditTabMitController.ctxt b/control/EditTabMitController.ctxt
index 25d1b7e..e9d546f 100644
--- a/control/EditTabMitController.ctxt
+++ b/control/EditTabMitController.ctxt
@@ -1,32 +1,32 @@
-#BlueJ class context
-comment0.target=EditTabMitController
-comment0.text=\r\n\ Die\ Klasse\ EditTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\r\n\ zur\ Editierung\ eines\ Graphs\ dar.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=graph\ options
-comment1.target=EditTabMitController(graph.Graph,\ graph.GraphOptions)
-comment10.params=event
-comment10.target=void\ bDistanzenBestimmen(javafx.event.ActionEvent)
-comment11.params=event
-comment11.target=void\ graphClicked(javafx.scene.input.MouseEvent)
-comment12.params=
-comment12.target=void\ mLoesche()
-comment13.params=
-comment13.target=void\ mWertAendern()
-comment14.params=
-comment14.target=void\ mInfotextAendern()
-comment2.params=
-comment2.target=void\ initialize()
-comment3.params=size
-comment3.target=void\ sGroesseAendern(java.lang.Number)
-comment4.params=gerichtet
-comment4.target=void\ setGerichtet(boolean)
-comment5.params=gewichtet
-comment5.target=void\ setGewichtet(boolean)
-comment6.params=anzeigen
-comment6.target=void\ setInfotext(boolean)
-comment7.params=t
-comment7.target=void\ setKnotenTyp(javafx.scene.control.Toggle)
-comment8.params=event
-comment8.target=void\ bBildLaden(javafx.event.ActionEvent)
-comment9.params=event
-comment9.target=void\ bBildLoeschen(javafx.event.ActionEvent)
-numComments=15
+#BlueJ class context
+comment0.target=EditTabMitController
+comment0.text=\n\ Die\ Klasse\ EditTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\n\ zur\ Editierung\ eines\ Graphs\ dar.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=graph\ options
+comment1.target=EditTabMitController(graph.Graph,\ graph.GraphOptions)
+comment10.params=event
+comment10.target=void\ bDistanzenBestimmen(javafx.event.ActionEvent)
+comment11.params=event
+comment11.target=void\ graphClicked(javafx.scene.input.MouseEvent)
+comment12.params=
+comment12.target=void\ mLoesche()
+comment13.params=
+comment13.target=void\ mWertAendern()
+comment14.params=
+comment14.target=void\ mInfotextAendern()
+comment2.params=
+comment2.target=void\ initialize()
+comment3.params=size
+comment3.target=void\ sGroesseAendern(java.lang.Number)
+comment4.params=gerichtet
+comment4.target=void\ setGerichtet(boolean)
+comment5.params=gewichtet
+comment5.target=void\ setGewichtet(boolean)
+comment6.params=anzeigen
+comment6.target=void\ setInfotext(boolean)
+comment7.params=t
+comment7.target=void\ setKnotenTyp(javafx.scene.control.Toggle)
+comment8.params=event
+comment8.target=void\ bBildLaden(javafx.event.ActionEvent)
+comment9.params=event
+comment9.target=void\ bBildLoeschen(javafx.event.ActionEvent)
+numComments=15
diff --git a/control/HauptTabMitController.ctxt b/control/HauptTabMitController.ctxt
index aa2f6a7..8d7cd54 100644
--- a/control/HauptTabMitController.ctxt
+++ b/control/HauptTabMitController.ctxt
@@ -1,8 +1,8 @@
-#BlueJ class context
-comment0.target=HauptTabMitController
-comment0.text=\r\n\ Die\ Klasse\ HauptTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\r\n\ f\u00FCr\ das\ Hauptfenster\ des\ Graphentesters\ dar.\ Einzelne\ Knoten\ oder\ Kanten\ k\u00F6nnen\ \r\n\ selektiert\ werden.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=graph\ options
-comment1.target=HauptTabMitController(graph.Graph,\ graph.GraphOptions)
-comment2.params=
-comment2.target=void\ initialize()
-numComments=3
+#BlueJ class context
+comment0.target=HauptTabMitController
+comment0.text=\n\ Die\ Klasse\ HauptTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\n\ f\u00FCr\ das\ Hauptfenster\ des\ Graphentesters\ dar.\ Einzelne\ Knoten\ oder\ Kanten\ k\u00F6nnen\ \n\ selektiert\ werden.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=graph\ options
+comment1.target=HauptTabMitController(graph.Graph,\ graph.GraphOptions)
+comment2.params=
+comment2.target=void\ initialize()
+numComments=3
diff --git a/control/Hilfefenster.ctxt b/control/Hilfefenster.ctxt
index 326eb6e..288e563 100644
--- a/control/Hilfefenster.ctxt
+++ b/control/Hilfefenster.ctxt
@@ -1,36 +1,36 @@
-#BlueJ class context
-comment0.target=Hilfefenster
-comment0.text=\r\n\ Die\ Klasse\ Hilfefenster\ stellt\ ein\ Hilfefenster\ f\u00FCr\ die\ Simulation\ eines\r\n\ Algorithmus\ bereit.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=
-comment1.target=void\ initialize()
-comment10.params=
-comment10.target=void\ run()
-comment11.params=a
-comment11.target=void\ setReviewAllowed(boolean)
-comment12.params=
-comment12.target=void\ showState()
-comment13.params=
-comment13.target=void\ run()
-comment14.params=t\ search\ nr
-comment14.target=int\ calculateIndex(javafx.scene.control.TreeItem,\ javafx.scene.control.TreeItem,\ int)
-comment15.params=event
-comment15.target=void\ bCopyClicked(javafx.event.ActionEvent)
-comment16.params=t\ tab
-comment16.target=java.lang.String\ generateClipboardContent(javafx.scene.control.TreeItem,\ java.lang.String)
-comment2.params=gp
-comment2.target=void\ setGraphPlotter(graph.GraphPlotter)
-comment3.params=
-comment3.target=void\ loescheAlles()
-comment4.params=
-comment4.target=void\ run()
-comment5.params=text
-comment5.target=void\ append(java.lang.String)
-comment6.params=
-comment6.target=void\ run()
-comment7.params=
-comment7.target=void\ indentMore()
-comment8.params=
-comment8.target=void\ run()
-comment9.params=
-comment9.target=void\ indentLess()
-numComments=17
+#BlueJ class context
+comment0.target=Hilfefenster
+comment0.text=\n\ Die\ Klasse\ Hilfefenster\ stellt\ ein\ Hilfefenster\ f\u00FCr\ die\ Simulation\ eines\n\ Algorithmus\ bereit.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=
+comment1.target=void\ initialize()
+comment10.params=
+comment10.target=void\ run()
+comment11.params=a
+comment11.target=void\ setReviewAllowed(boolean)
+comment12.params=
+comment12.target=void\ showState()
+comment13.params=
+comment13.target=void\ run()
+comment14.params=t\ search\ nr
+comment14.target=int\ calculateIndex(javafx.scene.control.TreeItem,\ javafx.scene.control.TreeItem,\ int)
+comment15.params=event
+comment15.target=void\ bCopyClicked(javafx.event.ActionEvent)
+comment16.params=t\ tab
+comment16.target=java.lang.String\ generateClipboardContent(javafx.scene.control.TreeItem,\ java.lang.String)
+comment2.params=gp
+comment2.target=void\ setGraphPlotter(graph.GraphPlotter)
+comment3.params=
+comment3.target=void\ loescheAlles()
+comment4.params=
+comment4.target=void\ run()
+comment5.params=text
+comment5.target=void\ append(java.lang.String)
+comment6.params=
+comment6.target=void\ run()
+comment7.params=
+comment7.target=void\ indentMore()
+comment8.params=
+comment8.target=void\ run()
+comment9.params=
+comment9.target=void\ indentLess()
+numComments=17
diff --git a/control/MyClassLoader.ctxt b/control/MyClassLoader.ctxt
index 924a73f..01ccb96 100644
--- a/control/MyClassLoader.ctxt
+++ b/control/MyClassLoader.ctxt
@@ -1,8 +1,8 @@
-#BlueJ class context
-comment0.target=MyClassLoader
-comment0.text=\r\n\ Hilfsklasse,\ um\ Algorithmen-Classen\ dynamisch\ nachladen\ zu\ k\u00F6nnen\ und\ \r\n\ aktualisierte\ Class-Dateien\ w\u00E4hrend\ der\ Laufzeit\ erneut\ laden\ zu\ k\u00F6nnen.\r\n\ \r\n\ @author\ Schaller\ (nach\ http\://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html)\r\n\ @version\ 16.02.2021\r\n
-comment1.params=parent
-comment1.target=MyClassLoader(java.lang.ClassLoader)
-comment2.params=name
-comment2.target=java.lang.Class\ loadClass(java.lang.String)
-numComments=3
+#BlueJ class context
+comment0.target=MyClassLoader
+comment0.text=\n\ Hilfsklasse,\ um\ Algorithmen-Classen\ dynamisch\ nachladen\ zu\ k\u00F6nnen\ und\ \n\ aktualisierte\ Class-Dateien\ w\u00E4hrend\ der\ Laufzeit\ erneut\ laden\ zu\ k\u00F6nnen.\n\ \n\ @author\ Schaller\ (nach\ http\://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html)\n\ @version\ 16.02.2021\n
+comment1.params=parent
+comment1.target=MyClassLoader(java.lang.ClassLoader)
+comment2.params=name
+comment2.target=java.lang.Class\ loadClass(java.lang.String)
+numComments=3
diff --git a/control/SimulationTabMitController.ctxt b/control/SimulationTabMitController.ctxt
index 61eb47b..2497958 100644
--- a/control/SimulationTabMitController.ctxt
+++ b/control/SimulationTabMitController.ctxt
@@ -1,24 +1,24 @@
-#BlueJ class context
-comment0.target=SimulationTabMitController
-comment0.text=\r\n\ Die\ Klasse\ SimulationTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\r\n\ zur\ Simulation\ eines\ Algorithmus\ dar.\ Der\ Algorithmus\ kann\ ausgew\u00E4hlt\ und\ schrittweise\ \r\n\ durchgef\u00FChrt\ werden.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=graph\ options
-comment1.target=SimulationTabMitController(graph.Graph,\ graph.GraphOptions)
-comment10.params=event
-comment10.target=void\ mBreak(javafx.event.ActionEvent)
-comment2.params=
-comment2.target=void\ initialize()
-comment3.params=
-comment3.target=void\ afterClosing()
-comment4.params=
-comment4.target=void\ hilfefensterErzeugen()
-comment5.params=b
-comment5.target=void\ showHilfe(boolean)
-comment6.params=graph\ options
-comment6.target=void\ setGraph(graph.Graph,\ graph.GraphOptions)
-comment7.params=event
-comment7.target=void\ mReset(javafx.event.ActionEvent)
-comment8.params=event
-comment8.target=void\ mStep(javafx.event.ActionEvent)
-comment9.params=event
-comment9.target=void\ mStart(javafx.event.ActionEvent)
-numComments=11
+#BlueJ class context
+comment0.target=SimulationTabMitController
+comment0.text=\n\ Die\ Klasse\ SimulationTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\n\ zur\ Simulation\ eines\ Algorithmus\ dar.\ Der\ Algorithmus\ kann\ ausgew\u00E4hlt\ und\ schrittweise\ \n\ durchgef\u00FChrt\ werden.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=graph\ options
+comment1.target=SimulationTabMitController(graph.Graph,\ graph.GraphOptions)
+comment10.params=event
+comment10.target=void\ mBreak(javafx.event.ActionEvent)
+comment2.params=
+comment2.target=void\ initialize()
+comment3.params=
+comment3.target=void\ afterClosing()
+comment4.params=
+comment4.target=void\ hilfefensterErzeugen()
+comment5.params=b
+comment5.target=void\ showHilfe(boolean)
+comment6.params=graph\ options
+comment6.target=void\ setGraph(graph.Graph,\ graph.GraphOptions)
+comment7.params=event
+comment7.target=void\ mReset(javafx.event.ActionEvent)
+comment8.params=event
+comment8.target=void\ mStep(javafx.event.ActionEvent)
+comment9.params=event
+comment9.target=void\ mStart(javafx.event.ActionEvent)
+numComments=11
diff --git a/control/TabMitController.ctxt b/control/TabMitController.ctxt
index afcfc92..4dd3be9 100644
--- a/control/TabMitController.ctxt
+++ b/control/TabMitController.ctxt
@@ -1,16 +1,16 @@
-#BlueJ class context
-comment0.target=TabMitController
-comment0.text=\r\n\ Die\ Klasse\ TabMitController\ stellt\ die\ Oberklasse\ f\u00FCr\ alle\ Tabs\ des\ Graphentesters\r\n\ dar.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=
-comment1.target=void\ initialize()
-comment2.params=taboptions
-comment2.target=void\ tabOeffnen(graph.GraphOptions)
-comment3.params=
-comment3.target=graph.GraphOptions\ getGraphOptions()
-comment4.params=
-comment4.target=void\ update()
-comment5.params=graph\ options
-comment5.target=void\ setGraph(graph.Graph,\ graph.GraphOptions)
-comment6.params=
-comment6.target=graph.GraphPlotter\ getViewer()
-numComments=7
+#BlueJ class context
+comment0.target=TabMitController
+comment0.text=\n\ Die\ Klasse\ TabMitController\ stellt\ die\ Oberklasse\ f\u00FCr\ alle\ Tabs\ des\ Graphentesters\n\ dar.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=
+comment1.target=void\ initialize()
+comment2.params=taboptions
+comment2.target=void\ tabOeffnen(graph.GraphOptions)
+comment3.params=
+comment3.target=graph.GraphOptions\ getGraphOptions()
+comment4.params=
+comment4.target=void\ update()
+comment5.params=graph\ options
+comment5.target=void\ setGraph(graph.Graph,\ graph.GraphOptions)
+comment6.params=
+comment6.target=graph.GraphPlotter\ getViewer()
+numComments=7
diff --git a/control/UnterTabMitController.ctxt b/control/UnterTabMitController.ctxt
index b673542..4126cf0 100644
--- a/control/UnterTabMitController.ctxt
+++ b/control/UnterTabMitController.ctxt
@@ -1,78 +1,78 @@
-#BlueJ class context
-comment0.target=UnterTabMitController
-comment0.text=\r\n\ Die\ Klasse\ UnterTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\r\n\ zur\ h\u00E4ndischen\ Erforschung\ eines\ Algorithmus.\ Es\ wird\ immer\ ein\ einzelner\ Knoten\ \r\n\ oder\ eine\ Kante\ fokussiert.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=graph\ options
-comment1.target=UnterTabMitController(graph.Graph,\ graph.GraphOptions)
-comment10.params=event
-comment10.target=void\ bBesucht(javafx.event.ActionEvent)
-comment11.params=event
-comment11.target=void\ bEnde(javafx.event.ActionEvent)
-comment12.params=event
-comment12.target=void\ knotenFarbe(javafx.scene.input.MouseEvent)
-comment13.params=event
-comment13.target=void\ bMarkieren(javafx.event.ActionEvent)
-comment14.params=
-comment14.target=void\ updateInfofeld()
-comment15.params=event
-comment15.target=void\ graphClicked(javafx.scene.input.MouseEvent)
-comment16.params=event
-comment16.target=void\ bHinzufuegenAnfang(javafx.event.ActionEvent)
-comment17.params=event
-comment17.target=void\ bHinzufuegenEnde(javafx.event.ActionEvent)
-comment18.params=event
-comment18.target=void\ bLoeschenAusListe(javafx.event.ActionEvent)
-comment19.params=event
-comment19.target=void\ bNaechster(javafx.event.ActionEvent)
-comment2.params=
-comment2.target=void\ initialize()
-comment20.params=event
-comment20.target=void\ bSort(javafx.event.ActionEvent)
-comment21.params=event
-comment21.target=void\ bVoheriger(javafx.event.ActionEvent)
-comment22.params=event
-comment22.target=void\ bWertAendern(javafx.event.ActionEvent)
-comment23.params=event
-comment23.target=void\ bGeheZu(javafx.event.ActionEvent)
-comment24.params=event
-comment24.target=void\ mBeenden(javafx.event.ActionEvent)
-comment25.params=event
-comment25.target=void\ mBesucheKnoten(javafx.event.ActionEvent)
-comment26.params=event
-comment26.target=void\ mBesuchtLoeschen(javafx.event.ActionEvent)
-comment27.params=event
-comment27.target=void\ mFaerbeKnoten(javafx.event.ActionEvent)
-comment28.params=event
-comment28.target=void\ mMarkiereKnoten(javafx.event.ActionEvent)
-comment29.params=event
-comment29.target=void\ mMarkierungenLoeschen(javafx.event.ActionEvent)
-comment3.params=graph\ options
-comment3.target=void\ setGraph(graph.Graph,\ graph.GraphOptions)
-comment30.params=event
-comment30.target=void\ mOeffnen(javafx.event.ActionEvent)
-comment31.params=event
-comment31.target=void\ mSchliessen(javafx.event.ActionEvent)
-comment32.params=event
-comment32.target=void\ mSpeichern(javafx.event.ActionEvent)
-comment33.params=event
-comment33.target=void\ mUeber(javafx.event.ActionEvent)
-comment34.params=event
-comment34.target=void\ mWertSetzen(javafx.event.ActionEvent)
-comment35.params=event
-comment35.target=void\ mZurueck(javafx.event.ActionEvent)
-comment36.params=event
-comment36.target=void\ bStatusRestore(javafx.event.ActionEvent)
-comment37.params=event
-comment37.target=void\ bStatusSave(javafx.event.ActionEvent)
-comment4.params=
-comment4.target=void\ buildAuswahl()
-comment5.params=
-comment5.target=void\ update()
-comment6.params=
-comment6.target=void\ fillLvAuswahl()
-comment7.params=
-comment7.target=void\ showAuswahl()
-comment8.params=auswahl
-comment8.target=void\ setAuswahl(java.util.List)
-comment9.params=event
-comment9.target=void\ bAnfang(javafx.event.ActionEvent)
-numComments=38
+#BlueJ class context
+comment0.target=UnterTabMitController
+comment0.text=\n\ Die\ Klasse\ UnterTabMitController\ stellt\ einen\ Tab\ inclusive\ ihres\ Controllers\n\ zur\ h\u00E4ndischen\ Erforschung\ eines\ Algorithmus.\ Es\ wird\ immer\ ein\ einzelner\ Knoten\ \n\ oder\ eine\ Kante\ fokussiert.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=graph\ options
+comment1.target=UnterTabMitController(graph.Graph,\ graph.GraphOptions)
+comment10.params=event
+comment10.target=void\ bBesucht(javafx.event.ActionEvent)
+comment11.params=event
+comment11.target=void\ bEnde(javafx.event.ActionEvent)
+comment12.params=event
+comment12.target=void\ knotenFarbe(javafx.scene.input.MouseEvent)
+comment13.params=event
+comment13.target=void\ bMarkieren(javafx.event.ActionEvent)
+comment14.params=
+comment14.target=void\ updateInfofeld()
+comment15.params=event
+comment15.target=void\ graphClicked(javafx.scene.input.MouseEvent)
+comment16.params=event
+comment16.target=void\ bHinzufuegenAnfang(javafx.event.ActionEvent)
+comment17.params=event
+comment17.target=void\ bHinzufuegenEnde(javafx.event.ActionEvent)
+comment18.params=event
+comment18.target=void\ bLoeschenAusListe(javafx.event.ActionEvent)
+comment19.params=event
+comment19.target=void\ bNaechster(javafx.event.ActionEvent)
+comment2.params=
+comment2.target=void\ initialize()
+comment20.params=event
+comment20.target=void\ bSort(javafx.event.ActionEvent)
+comment21.params=event
+comment21.target=void\ bVoheriger(javafx.event.ActionEvent)
+comment22.params=event
+comment22.target=void\ bWertAendern(javafx.event.ActionEvent)
+comment23.params=event
+comment23.target=void\ bGeheZu(javafx.event.ActionEvent)
+comment24.params=event
+comment24.target=void\ mBeenden(javafx.event.ActionEvent)
+comment25.params=event
+comment25.target=void\ mBesucheKnoten(javafx.event.ActionEvent)
+comment26.params=event
+comment26.target=void\ mBesuchtLoeschen(javafx.event.ActionEvent)
+comment27.params=event
+comment27.target=void\ mFaerbeKnoten(javafx.event.ActionEvent)
+comment28.params=event
+comment28.target=void\ mMarkiereKnoten(javafx.event.ActionEvent)
+comment29.params=event
+comment29.target=void\ mMarkierungenLoeschen(javafx.event.ActionEvent)
+comment3.params=graph\ options
+comment3.target=void\ setGraph(graph.Graph,\ graph.GraphOptions)
+comment30.params=event
+comment30.target=void\ mOeffnen(javafx.event.ActionEvent)
+comment31.params=event
+comment31.target=void\ mSchliessen(javafx.event.ActionEvent)
+comment32.params=event
+comment32.target=void\ mSpeichern(javafx.event.ActionEvent)
+comment33.params=event
+comment33.target=void\ mUeber(javafx.event.ActionEvent)
+comment34.params=event
+comment34.target=void\ mWertSetzen(javafx.event.ActionEvent)
+comment35.params=event
+comment35.target=void\ mZurueck(javafx.event.ActionEvent)
+comment36.params=event
+comment36.target=void\ bStatusRestore(javafx.event.ActionEvent)
+comment37.params=event
+comment37.target=void\ bStatusSave(javafx.event.ActionEvent)
+comment4.params=
+comment4.target=void\ buildAuswahl()
+comment5.params=
+comment5.target=void\ update()
+comment6.params=
+comment6.target=void\ fillLvAuswahl()
+comment7.params=
+comment7.target=void\ showAuswahl()
+comment8.params=auswahl
+comment8.target=void\ setAuswahl(java.util.List)
+comment9.params=event
+comment9.target=void\ bAnfang(javafx.event.ActionEvent)
+numComments=38
diff --git a/control/package.bluej b/control/package.bluej
index 9095c86..ed43742 100644
--- a/control/package.bluej
+++ b/control/package.bluej
@@ -1,97 +1,97 @@
-#BlueJ package file
-dependency1.from=TabMitController
-dependency1.to=UnterTabMitController
-dependency1.type=UsesDependency
-dependency2.from=SimulationTabMitController
-dependency2.to=Hilfefenster
-dependency2.type=UsesDependency
-dependency3.from=SimulationTabMitController
-dependency3.to=MyClassLoader
-dependency3.type=UsesDependency
-dependency4.from=Controller
-dependency4.to=TabMitController
-dependency4.type=UsesDependency
-dependency5.from=Controller
-dependency5.to=HauptTabMitController
-dependency5.type=UsesDependency
-dependency6.from=Controller
-dependency6.to=SimulationTabMitController
-dependency6.type=UsesDependency
-dependency7.from=Controller
-dependency7.to=EditTabMitController
-dependency7.type=UsesDependency
-objectbench.height=93
-objectbench.width=451
-package.divider.horizontal=0.599476439790576
-package.divider.vertical=0.8
-package.editor.height=393
-package.editor.width=636
-package.editor.x=193
-package.editor.y=208
-package.frame.height=600
-package.frame.width=800
-package.numDependencies=7
-package.numTargets=8
-package.showExtends=true
-package.showUses=true
-readme.height=60
-readme.name=@README
-readme.width=49
-readme.x=10
-readme.y=10
-target1.height=50
-target1.name=EditTabMitController
-target1.showInterface=false
-target1.type=ClassTarget
-target1.width=160
-target1.x=10
-target1.y=80
-target2.height=50
-target2.name=HauptTabMitController
-target2.showInterface=false
-target2.type=ClassTarget
-target2.width=170
-target2.x=10
-target2.y=140
-target3.height=50
-target3.name=Hilfefenster
-target3.showInterface=false
-target3.type=ClassTarget
-target3.width=100
-target3.x=500
-target3.y=60
-target4.height=50
-target4.name=TabMitController
-target4.showInterface=false
-target4.type=ClassTarget
-target4.width=130
-target4.x=300
-target4.y=110
-target5.height=50
-target5.name=SimulationTabMitController
-target5.showInterface=false
-target5.type=ClassTarget
-target5.width=200
-target5.x=10
-target5.y=210
-target6.height=50
-target6.name=Controller
-target6.showInterface=false
-target6.type=ClassTarget
-target6.width=90
-target6.x=500
-target6.y=250
-target7.height=70
-target7.name=MyClassLoader
-target7.showInterface=false
-target7.type=ClassTarget
-target7.width=120
-target7.x=140
-target7.y=330
-target8.height=50
-target8.name=UnterTabMitController
-target8.showInterface=false
-target8.type=ClassTarget
-target8.width=170
-target8.x=10
-target8.y=270
+#BlueJ package file
+dependency1.from=TabMitController
+dependency1.to=UnterTabMitController
+dependency1.type=UsesDependency
+dependency2.from=SimulationTabMitController
+dependency2.to=Hilfefenster
+dependency2.type=UsesDependency
+dependency3.from=SimulationTabMitController
+dependency3.to=MyClassLoader
+dependency3.type=UsesDependency
+dependency4.from=Controller
+dependency4.to=TabMitController
+dependency4.type=UsesDependency
+dependency5.from=Controller
+dependency5.to=HauptTabMitController
+dependency5.type=UsesDependency
+dependency6.from=Controller
+dependency6.to=SimulationTabMitController
+dependency6.type=UsesDependency
+dependency7.from=Controller
+dependency7.to=EditTabMitController
+dependency7.type=UsesDependency
+objectbench.height=93
+objectbench.width=776
+package.divider.horizontal=0.599476439790576
+package.divider.vertical=0.8003992015968064
+package.editor.height=394
+package.editor.width=645
+package.editor.x=1056
+package.editor.y=332
+package.frame.height=600
+package.frame.width=800
+package.numDependencies=7
+package.numTargets=8
+package.showExtends=true
+package.showUses=true
+readme.height=60
+readme.name=@README
+readme.width=49
+readme.x=10
+readme.y=10
+target1.height=50
+target1.name=Hilfefenster
+target1.showInterface=false
+target1.type=ClassTarget
+target1.width=100
+target1.x=500
+target1.y=60
+target2.height=50
+target2.name=HauptTabMitController
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=170
+target2.x=10
+target2.y=140
+target3.height=50
+target3.name=EditTabMitController
+target3.showInterface=false
+target3.type=ClassTarget
+target3.width=160
+target3.x=10
+target3.y=80
+target4.height=50
+target4.name=TabMitController
+target4.showInterface=false
+target4.type=ClassTarget
+target4.width=130
+target4.x=300
+target4.y=110
+target5.height=50
+target5.name=SimulationTabMitController
+target5.showInterface=false
+target5.type=ClassTarget
+target5.width=200
+target5.x=10
+target5.y=210
+target6.height=50
+target6.name=Controller
+target6.showInterface=false
+target6.type=ClassTarget
+target6.width=90
+target6.x=500
+target6.y=250
+target7.height=70
+target7.name=MyClassLoader
+target7.showInterface=false
+target7.type=ClassTarget
+target7.width=120
+target7.x=140
+target7.y=330
+target8.height=50
+target8.name=UnterTabMitController
+target8.showInterface=false
+target8.type=ClassTarget
+target8.width=170
+target8.x=10
+target8.y=270
diff --git a/doc/element-list b/doc/element-list
index 082d709..52fdfdd 100644
--- a/doc/element-list
+++ b/doc/element-list
@@ -1 +1 @@
-graph
+graph
diff --git a/doc/graph/Graph.html b/doc/graph/Graph.html
index 349a3d9..ebe68e4 100644
--- a/doc/graph/Graph.html
+++ b/doc/graph/Graph.html
@@ -1,1317 +1,914 @@
-
-
-
-
-
-Graph (1_graphentester)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-JavaScript is disabled on your browser.
-
-
-
-
-
-
-
-
-
-
-
-
-JavaScript is disabled on your browser.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-public class Graph
-extends Object
-Dies ist das Herz vom "GraphTester" - der Graph selber, gepeichert als Adjazenzliste.
- Die Klasse erlaubt durch geeignete Methoden:
- - die Speicherung als Adjazenzmatrix,
- - das Hinzufuegen und Loeschen von knoten und Kanten,
- - das Markieren von Knoten und Kanten,
- - eine Aussage darueber, ob Knoten oder Kanten enthalten sind und
- - eine Ausgabe des Graphen in textueller Form sowie als csv-Datei.
-
-Version:
-31.01.2021 (v6.5)
-Author:
-Dirk Zechnall, Thomas Schaller
-
-
-
-
-
-
-
-
-
-
-
-
-
-Constructor Summary
-
-Constructors
-
-Constructor
-Description
-
-
-Graph ()
-
-Der Konstruktor erstellt einen neuen ungerichteten, ungewichteten Graphen (genauer eine neue Adjazenzliste)
-
-
-
-Graph (boolean isGerichtet,
- boolean isGewichtet)
-
-Der Konstruktor erstellt einen neuen Graphen (genauer eine neue Adjazenzliste)
-
-
-
-
-
-
-
-
-
-
-
-
-Method Summary
-
-All Methods Instance Methods Concrete Methods
-
-Modifier and Type
-Method
-Description
-
-
-void
-ausgabe ()
-
-Konsolenausgabe der textuellen Repraesentation des Graphen.
-
-
-
-void
-entferneKante (int startnr,
- int zielnr)
-
-Entfernt eine Kante aus dem Graphen.
-
-
-
-void
-entferneKante (Kante e)
-
-Entfernt eine Kante aus dem Graphen.
-
-
-
-void
-entferneKante (Knoten start,
- Knoten ziel)
-
-Entfernt eine Kante aus dem Graphen.
-
-
-
-void
-entferneKnoten (int knotennr)
-
-Entfernt einen Knoten aus dem Graphen
-
-
-
-boolean
-entferneKnoten (Knoten k)
-
-Entfernt einen Knoten aus dem Graphen
-
-
-
-void
-entferneMarkierungBeiAllenKnoten ()
-
-Entfernt die Markierung bei allen Knoten des Graphen.
-
-
-
-double[][]
-getAdjazenzMatrix ()
-
-Die Methode getAdjazenzMatrix() gibt die Adjazenzmatrix zurueck.
-
-
-
-List <Kante >
-getAlleKanten (Predicate <Kante >... filter)
-
-Gibt eine Liste aller Kanten des Graphen zurück.
-
-
-
-List <Knoten >
-getAlleKnoten (Predicate <Knoten >... filter)
-
-Gibt eine Liste aller Knoten des Graphen zurueck.
-
-
-
-int
-getAnzahlKnoten ()
-
-Gibt die Anzahl der Knoten im Graph zurueck
-
-
-
-List <Kante >
-getAusgehendeKanten (int knotennr,
- Predicate <Kante >... filter)
-
-Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
-
-
-
-List <Kante >
-getAusgehendeKanten (Knoten k,
- Predicate <Kante >... filter)
-
-Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
-
-
-
-List <Kante >
-getEingehendeKanten (int knotennr,
- Predicate <Kante >... filter)
-
-Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
-
-
-
-List <Kante >
-getEingehendeKanten (Knoten k,
- Predicate <Kante >... filter)
-
-Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
-
-
-
-Kante
-getKante (int startnr,
- int zielnr)
-
-Gibt eine gesuchte Kante aus dem Graphen zurueck.
-
-
-
-Kante
-getKante (Knoten start,
- Knoten ziel)
-
-Gibt eine gesuchte Kante aus dem Graphen zurueck.
-
-
-
-Knoten
-getKnoten (int knotennr)
-
-Liefert einen Knoten des Graphen
-
-
-
-String
-getKnoteninfo (Knoten k,
- boolean zeigeWert)
-
-Info über einen Knoten zurückgeben
-
-
-
-List <Knoten >
-getNachbarknoten (Knoten k,
- Predicate <Knoten >... filter)
-
-Gibt die Liste aller Nachbarknoten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
-
-
-
-int
-getNummer (Kante k)
-
-Gibt die Nummer einer Kante zurück
-
-
-
-int
-getNummer (Knoten k)
-
-Gibt die Nummer eines Knotens im Graphen zurück
-
-
-
-List <String >
-getStatus ()
-
-Speichert den Zustand des Graphen als String-List
-
-
-
-void
-initialisiereAlleKanten ()
-
-Initialisiert alle Kanten des Graphen.
-
-
-
-void
-initialisiereAlleKnoten ()
-
-Initialisiert alle Knoten des Graphen.
-
-
-
-boolean
-isGerichtet ()
-
-Gibt zurueck, ob der Graph gerichtet oder ungerichtet ist.
-
-
-
-boolean
-isGewichtet ()
-
-Gibt zurueck, ob der Graph gewichtet oder ungewichtet ist
-
-
-
-boolean
-isKanteEnthalten (int startNr,
- int zielNr)
-
-Ueberprueft, ob eine Kante im Graphen enthalten ist.
-
-
-
-boolean
-isKanteEnthalten (Kante e)
-
-Ueberprueft, ob eine Kante im Graphen enthalten ist.
-
-
-
-boolean
-isKanteEnthalten (Knoten start,
- Knoten ziel)
-
-Ueberprueft, ob eine Kante im Graphen enthalten ist.
-
-
-
-boolean
-isKnotenEnthalten (Knoten k)
-
-Ueberprueft, ob ein Knoten in der Knotenliste enthalten ist.
-
-
-
-boolean
-isLeer ()
-
-Ueberprueft, ob die Adjazenzliste leer ist, d.h. keine Knoten im Graphen enthalten sind.
-
-
-
-boolean
-ladeGraph (Table csvParser)
-
-Ein Graph wird aus einer csv-Datei erstellt, die entweder
- eine Matrix oder eine Adjazenzliste enthält, die den Graph beschreibt.
-
-
-
-void
-loescheAlles ()
-
-Loescht den gesamten Graphen
-
-
-
-void
-loescheGraph ()
-
-Löscht alle Knoten und Kanten eines Graphen und stellt auf ungerichtet und ungewichtet zurück.
-
-
-
-void
-neueKante (Kante e)
-
-Fuegt eine Kante dem Graphen hinzu.
-
-
-
-void
-neueKante (Knoten start,
- Knoten ziel,
- double gewicht)
-
-Fuegt eine Kante dem Graphen hinzu.
-
-
-
-void
-neuerKnoten (Knoten k)
-
-Fügt einen Knoten dem Graph hinzu.
-
-
-
-void
-setGerichtet (boolean isGerichtet)
-
-Legt fest, ob der Graph gerichtet oder ungerichtet ist.
-
-
-
-void
-setGewichtet (boolean isGewichtet)
-
-Legt fest, ob der Graph gewichtet oder ungewichtet ist.
-
-
-
-void
-setStatus (List <String > status)
-
-Stellt den Zustand des Graphen aus String-List wieder her
-
-
-
-String
-toCSVString (boolean asMatrix)
-
-Die Methode erstellt eine CSV-Ausgabe des Graphen entweder als Adjazenzliste oder als Adjazenzmatrix.
-
-
-
-String
-toString ()
-
-Textuelle Repraesentation des Graphen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Constructor Detail
-
-
-
-
-
-Graph
-public Graph(boolean isGerichtet,
- boolean isGewichtet)
-Der Konstruktor erstellt einen neuen Graphen (genauer eine neue Adjazenzliste)
-
-Parameters:
-isGerichtet - gibt an, ob es sich um einen gerichteten Graphen handelt
-isGewichtet - gibt an, ob die Kanten gewichtet sind.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Method Detail
-
-
-
-
-
-
-
-
-
-ladeGraph
-public boolean ladeGraph(Table csvParser)
-Ein Graph wird aus einer csv-Datei erstellt, die entweder
- eine Matrix oder eine Adjazenzliste enthält, die den Graph beschreibt.
-
-Parameters:
-csvParser - Eine CSV-Datei als Table-Objekt
-Returns:
-gibt zurück, ob das Laden erfolgreich war
-
-
-
-
-
-
-
-
-setGewichtet
-public void setGewichtet(boolean isGewichtet)
-Legt fest, ob der Graph gewichtet oder ungewichtet ist.
-
-Parameters:
-isGewichtet - neuer Wert
-
-
-
-
-
-
-
-
-
-
-
-
-setGerichtet
-public void setGerichtet(boolean isGerichtet)
-Legt fest, ob der Graph gerichtet oder ungerichtet ist.
-
-Parameters:
-isGerichtet - neuer Wert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-isKnotenEnthalten
-public boolean isKnotenEnthalten(Knoten k)
-Ueberprueft, ob ein Knoten in der Knotenliste enthalten ist.
- Sobald in der Knotenliste der Knoten k gefunden wird, wird true ausgegeben.
-
-Parameters:
-k - Der gesuchte Knoten
-Returns:
-true= ist enthalten, false = ist nicht enthalten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-getNachbarknoten
-public List <Knoten > getNachbarknoten(Knoten k,
- Predicate <Knoten >... filter)
-Gibt die Liste aller Nachbarknoten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
-
-Parameters:
-k - Der Knoten, zu dem die Adjazenzliste gesucht wird
-filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
-Returns:
-Liste der Nachbarknoten
-
-
-
-
-
-
-
-
-getAusgehendeKanten
-public List <Kante > getAusgehendeKanten(Knoten k,
- Predicate <Kante >... filter)
-Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
- Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
- unterschieden.
-
-Parameters:
-k - Der Knoten, zu dem die Kanten gesucht werden
-filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
-Returns:
-Liste der ausgehenden Kanten.
-
-
-
-
-
-
-
-
-getAusgehendeKanten
-public List <Kante > getAusgehendeKanten(int knotennr,
- Predicate <Kante >... filter)
-Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
- Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
- unterschieden.
-
-Parameters:
-knotennr - Nummer des Knoten, zu dem die Kanten gesucht werden
-filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
-Returns:
-Liste der ausgehenden Kanten.
-
-
-
-
-
-
-
-
-getEingehendeKanten
-public List <Kante > getEingehendeKanten(int knotennr,
- Predicate <Kante >... filter)
-Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
- Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
- unterschieden.
-
-Parameters:
-knotennr - Die Nummer des Knotens, zu dem die Kanten gesucht werden
-filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
-Returns:
-Liste der eingehenden Kanten.
-
-
-
-
-
-
-
-
-getEingehendeKanten
-public List <Kante > getEingehendeKanten(Knoten k,
- Predicate <Kante >... filter)
-Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
- Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
- unterschieden.
-
-Parameters:
-k - Knoten, zu dem die Kanten gesucht werden
-filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
-Returns:
-Liste der eingehenden Kanten.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-isKanteEnthalten
-public boolean isKanteEnthalten(int startNr,
- int zielNr)
-Ueberprueft, ob eine Kante im Graphen enthalten ist.
- In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
-
-Parameters:
-startNr - Nummer des Startknotens
-zielNr - Nummer des Zielknotens
-Returns:
-boolean Kante enthalten (true) oder nicht (false)
-
-
-
-
-
-
-
-
-isKanteEnthalten
-public boolean isKanteEnthalten(Knoten start,
- Knoten ziel)
-Ueberprueft, ob eine Kante im Graphen enthalten ist.
- In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
-
-Parameters:
-start - Startknoten
-ziel - Zielknoten
-Returns:
-boolean Kante enthalten (true) oder nicht (false)
-
-
-
-
-
-
-
-
-getKante
-public Kante getKante(Knoten start,
- Knoten ziel)
-Gibt eine gesuchte Kante aus dem Graphen zurueck.
- In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
-
-Parameters:
-start - Der StartKnoten
-ziel - Der StartKnoten
-Returns:
-Die gesuchte Kante
-
-
-
-
-
-
-
-
-getKante
-public Kante getKante(int startnr,
- int zielnr)
-Gibt eine gesuchte Kante aus dem Graphen zurueck.
- In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
-
-Parameters:
-startnr - Der Nummer des StartKnoten
-zielnr - Die Nummer des Zielknoten
-Returns:
-Die gesuchte Kante
-
-
-
-
-
-
-
-
-neueKante
-public void neueKante(Kante e)
-Fuegt eine Kante dem Graphen hinzu.
- Dabei wird ueberprueft, ob die Kante schon im Graphen enthalten ist.
-
- Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" erstellt.
-
-Parameters:
-e - Die Kante, die hinzugefuegt werden soll
-
-
-
-
-
-
-
-
-neueKante
-public void neueKante(Knoten start,
- Knoten ziel,
- double gewicht)
-Fuegt eine Kante dem Graphen hinzu.
- Dabei wird ueberprueft, ob die Kante schon im Graphen enthalten ist.
-
- Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" erstellt.
-
-Parameters:
-start - Der StartKnoten der Kante, die hinzugefuegt werden soll
-ziel - Der ZielKnoten der Kante, die hinzugefuegt werden soll
-gewicht - Das Gewicht der Kante, die hinzugefuegt werden soll
-
-
-
-
-
-
-
-
-entferneKante
-public void entferneKante(Kante e)
-Entfernt eine Kante aus dem Graphen.
- Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" entfernt.
-
-Parameters:
-e - Die zu entfernende Kante
-
-
-
-
-
-
-
-
-entferneKante
-public void entferneKante(Knoten start,
- Knoten ziel)
-Entfernt eine Kante aus dem Graphen.
- Dabei wird ueberprueft, ob die Kante ueberhaupt im Graphen enthalten ist.
-
- Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" entfernt.
-
-Parameters:
-start - StartKnotens
-ziel - ZielKnotens
-
-
-
-
-
-
-
-
-entferneKante
-public void entferneKante(int startnr,
- int zielnr)
-Entfernt eine Kante aus dem Graphen.
- Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" entfernt.
-
-Parameters:
-startnr - Nummer des StartKnotens
-zielnr - Nummer des ZielKnotens
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-JavaScript is disabled on your browser.
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+Graph
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+public class Graph
+
extends Object
+Dies ist das Herz vom "GraphTester" - der Graph selber, gepeichert als Adjazenzliste.
+ Die Klasse erlaubt durch geeignete Methoden:
+ - die Speicherung als Adjazenzmatrix,
+ - das Hinzufuegen und Loeschen von knoten und Kanten,
+ - das Markieren von Knoten und Kanten,
+ - eine Aussage darueber, ob Knoten oder Kanten enthalten sind und
+ - eine Ausgabe des Graphen in textueller Form sowie als csv-Datei.
+
+Version:
+31.01.2021 (v6.5)
+Author:
+Dirk Zechnall, Thomas Schaller
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Der Konstruktor erstellt einen neuen ungerichteten, ungewichteten Graphen (genauer eine neue Adjazenzliste)
+
+
Graph (boolean isGerichtet,
+ boolean isGewichtet)
+
+
Der Konstruktor erstellt einen neuen Graphen (genauer eine neue Adjazenzliste)
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Konsolenausgabe der textuellen Repraesentation des Graphen.
+
+
void
+
+
+
Entfernt eine Kante aus dem Graphen.
+
+
void
+
+
+
Entfernt eine Kante aus dem Graphen.
+
+
void
+
+
+
Entfernt eine Kante aus dem Graphen.
+
+
void
+
+
+
Entfernt einen Knoten aus dem Graphen
+
+
boolean
+
+
+
Entfernt einen Knoten aus dem Graphen
+
+
void
+
+
+
Entfernt die Markierung bei allen Knoten des Graphen.
+
+
double[][]
+
+
+
Die Methode getAdjazenzMatrix() gibt die Adjazenzmatrix zurueck.
+
+
+
+
+
Gibt eine Liste aller Kanten des Graphen zurück.
+
+
+
+
+
Gibt eine Liste aller Knoten des Graphen zurueck.
+
+
int
+
+
+
Gibt die Anzahl der Knoten im Graph zurueck
+
+
+
+
+
Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+
+
+
+
+
Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+
+
+
+
+
Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+
+
+
+
+
Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+
+
graph.Kante
+
+
+
Gibt eine gesuchte Kante aus dem Graphen zurueck.
+
+
graph.Kante
+
getKante (graph.Knoten start,
+ graph.Knoten ziel)
+
+
Gibt eine gesuchte Kante aus dem Graphen zurueck.
+
+
graph.Knoten
+
+
+
Liefert einen Knoten des Graphen
+
+
+
+
+
Info über einen Knoten zurückgeben
+
+
+
+
+
Gibt die Liste aller Nachbarknoten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+
+
int
+
+
+
Gibt die Nummer einer Kante zurück
+
+
int
+
+
+
Gibt die Nummer eines Knotens im Graphen zurück
+
+
+
+
+
Speichert den Zustand des Graphen als String-List
+
+
void
+
+
+
Initialisiert alle Kanten des Graphen.
+
+
void
+
+
+
Initialisiert alle Knoten des Graphen.
+
+
boolean
+
+
+
Gibt zurueck, ob der Graph gerichtet oder ungerichtet ist.
+
+
boolean
+
+
+
Gibt zurueck, ob der Graph gewichtet oder ungewichtet ist
+
+
boolean
+
+
+
Ueberprueft, ob eine Kante im Graphen enthalten ist.
+
+
boolean
+
+
+
Ueberprueft, ob eine Kante im Graphen enthalten ist.
+
+
boolean
+
+
+
Ueberprueft, ob eine Kante im Graphen enthalten ist.
+
+
boolean
+
+
+
Ueberprueft, ob ein Knoten in der Knotenliste enthalten ist.
+
+
boolean
+
+
+
Ueberprueft, ob die Adjazenzliste leer ist, d.h. keine Knoten im Graphen enthalten sind.
+
+
boolean
+
+
+
Ein Graph wird aus einer csv-Datei erstellt, die entweder
+ eine Matrix oder eine Adjazenzliste enthält, die den Graph beschreibt.
+
+
void
+
+
+
Loescht den gesamten Graphen
+
+
void
+
+
+
Löscht alle Knoten und Kanten eines Graphen und stellt auf ungerichtet und ungewichtet zurück.
+
+
void
+
+
+
Fuegt eine Kante dem Graphen hinzu.
+
+
void
+
neueKante (graph.Knoten start,
+ graph.Knoten ziel,
+ double gewicht)
+
+
Fuegt eine Kante dem Graphen hinzu.
+
+
void
+
+
+
Fügt einen Knoten dem Graph hinzu.
+
+
void
+
+
+
Legt fest, ob der Graph gerichtet oder ungerichtet ist.
+
+
void
+
+
+
Legt fest, ob der Graph gewichtet oder ungewichtet ist.
+
+
void
+
+
+
Stellt den Zustand des Graphen aus String-List wieder her
+
+
+
+
+
Die Methode erstellt eine CSV-Ausgabe des Graphen entweder als Adjazenzliste oder als Adjazenzmatrix.
+
+
+
+
+
Textuelle Repraesentation des Graphen.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+Graph
+public Graph (boolean isGerichtet,
+ boolean isGewichtet)
+Der Konstruktor erstellt einen neuen Graphen (genauer eine neue Adjazenzliste)
+
+Parameters:
+isGerichtet - gibt an, ob es sich um einen gerichteten Graphen handelt
+isGewichtet - gibt an, ob die Kanten gewichtet sind.
+
+
+
+
+
+Graph
+public Graph ()
+Der Konstruktor erstellt einen neuen ungerichteten, ungewichteten Graphen (genauer eine neue Adjazenzliste)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+loescheGraph
+public void loescheGraph ()
+Löscht alle Knoten und Kanten eines Graphen und stellt auf ungerichtet und ungewichtet zurück.
+
+
+
+
+ladeGraph
+public boolean ladeGraph (imp.Table csvParser)
+Ein Graph wird aus einer csv-Datei erstellt, die entweder
+ eine Matrix oder eine Adjazenzliste enthält, die den Graph beschreibt.
+
+Parameters:
+csvParser - Eine CSV-Datei als Table-Objekt
+Returns:
+gibt zurück, ob das Laden erfolgreich war
+
+
+
+
+
+setGewichtet
+public void setGewichtet (boolean isGewichtet)
+Legt fest, ob der Graph gewichtet oder ungewichtet ist.
+
+Parameters:
+isGewichtet - neuer Wert
+
+
+
+
+
+isGewichtet
+public boolean isGewichtet ()
+Gibt zurueck, ob der Graph gewichtet oder ungewichtet ist
+
+Returns:
+gewichtet? (true/false)
+
+
+
+
+
+setGerichtet
+public void setGerichtet (boolean isGerichtet)
+Legt fest, ob der Graph gerichtet oder ungerichtet ist.
+
+Parameters:
+isGerichtet - neuer Wert
+
+
+
+
+
+isGerichtet
+public boolean isGerichtet ()
+Gibt zurueck, ob der Graph gerichtet oder ungerichtet ist.
+
+Returns:
+gerichtet? (true/false)
+
+
+
+
+
+getNummer
+public int getNummer (graph.Knoten k)
+Gibt die Nummer eines Knotens im Graphen zurück
+
+Parameters:
+k - gesuchter Knoten
+Returns:
+Nummer des Knotens (mit 0 beginnend)
+
+
+
+
+
+getNummer
+public int getNummer (graph.Kante k)
+Gibt die Nummer einer Kante zurück
+
+Parameters:
+k - gesuchte Kante
+Returns:
+Nummer der Kante (mit 0 beginnend)
+
+
+
+
+
+getAdjazenzMatrix
+public double[][] getAdjazenzMatrix ()
+Die Methode getAdjazenzMatrix() gibt die Adjazenzmatrix zurueck.
+
+Returns:
+double[][] Die AdjazenzMatrix als zweidimensionales Array
+
+
+
+
+
+getAlleKanten
+public List <graph.Kante> getAlleKanten (Predicate <graph.Kante>... filter)
+Gibt eine Liste aller Kanten des Graphen zurück.
+
+Parameters:
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Liste aller Kanten
+
+
+
+
+
+entferneMarkierungBeiAllenKnoten
+public void entferneMarkierungBeiAllenKnoten ()
+Entfernt die Markierung bei allen Knoten des Graphen.
+
+
+
+
+initialisiereAlleKnoten
+public void initialisiereAlleKnoten ()
+Initialisiert alle Knoten des Graphen.
+
+
+
+
+initialisiereAlleKanten
+public void initialisiereAlleKanten ()
+Initialisiert alle Kanten des Graphen.
+
+
+
+
+isKnotenEnthalten
+public boolean isKnotenEnthalten (graph.Knoten k)
+Ueberprueft, ob ein Knoten in der Knotenliste enthalten ist.
+ Sobald in der Knotenliste der Knoten k gefunden wird, wird true ausgegeben.
+
+Parameters:
+k - Der gesuchte Knoten
+Returns:
+true= ist enthalten, false = ist nicht enthalten
+
+
+
+
+
+getAnzahlKnoten
+public int getAnzahlKnoten ()
+Gibt die Anzahl der Knoten im Graph zurueck
+
+Returns:
+Anzahl der Knoten
+
+
+
+
+
+getAlleKnoten
+public List <graph.Knoten> getAlleKnoten (Predicate <graph.Knoten>... filter)
+Gibt eine Liste aller Knoten des Graphen zurueck.
+
+Parameters:
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Die Knotenliste. Falls leer wird eine leere Liste zurueckgegeben
+
+
+
+
+
+getNachbarknoten
+public List <graph.Knoten> getNachbarknoten (graph.Knoten k,
+ Predicate <graph.Knoten>... filter)
+Gibt die Liste aller Nachbarknoten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+
+Parameters:
+k - Der Knoten, zu dem die Adjazenzliste gesucht wird
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Liste der Nachbarknoten
+
+
+
+
+
+getAusgehendeKanten
+public List <graph.Kante> getAusgehendeKanten (graph.Knoten k,
+ Predicate <graph.Kante>... filter)
+Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+ Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
+ unterschieden.
+
+Parameters:
+k - Der Knoten, zu dem die Kanten gesucht werden
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Liste der ausgehenden Kanten.
+
+
+
+
+
+getAusgehendeKanten
+public List <graph.Kante> getAusgehendeKanten (int knotennr,
+ Predicate <graph.Kante>... filter)
+Gibt eine Liste der ausgehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+ Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
+ unterschieden.
+
+Parameters:
+knotennr - Nummer des Knoten, zu dem die Kanten gesucht werden
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Liste der ausgehenden Kanten.
+
+
+
+
+
+getEingehendeKanten
+public List <graph.Kante> getEingehendeKanten (int knotennr,
+ Predicate <graph.Kante>... filter)
+Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+ Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
+ unterschieden.
+
+Parameters:
+knotennr - Die Nummer des Knotens, zu dem die Kanten gesucht werden
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Liste der eingehenden Kanten.
+
+
+
+
+
+getEingehendeKanten
+public List <graph.Kante> getEingehendeKanten (graph.Knoten k,
+ Predicate <graph.Kante>... filter)
+Gibt eine Liste der eingehenden Kanten eines Knotens k zurueck, falls k in der Knotenliste vorhanden ist.
+ Bei ungerichteten Graphen wird nicht zwischen eingehenden und ausgehenden Kanten
+ unterschieden.
+
+Parameters:
+k - Knoten, zu dem die Kanten gesucht werden
+filter - optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+Returns:
+Liste der eingehenden Kanten.
+
+
+
+
+
+getKnoten
+public graph.Knoten getKnoten (int knotennr)
+Liefert einen Knoten des Graphen
+
+Parameters:
+knotennr - Nummer der Knoten (beginnend mit 0)
+Returns:
+liefert den Knoten mit dieser Nummer
+
+
+
+
+
+neuerKnoten
+public void neuerKnoten (graph.Knoten k)
+Fügt einen Knoten dem Graph hinzu.
+
+Parameters:
+k - Der Knoten, der hinzugefuegt werden soll
+
+
+
+
+
+entferneKnoten
+public void entferneKnoten (int knotennr)
+Entfernt einen Knoten aus dem Graphen
+
+Parameters:
+knotennr - Nummer des Knotens, der geloescht werden soll
+
+
+
+
+
+entferneKnoten
+public boolean entferneKnoten (graph.Knoten k)
+Entfernt einen Knoten aus dem Graphen
+
+Parameters:
+k - Knoten, der geloescht werden soll
+Returns:
+gibt zurück, ob der Knoten erfolgreich entfernt wurde.
+
+
+
+
+
+isKanteEnthalten
+public boolean isKanteEnthalten (graph.Kante e)
+Ueberprueft, ob eine Kante im Graphen enthalten ist.
+
+Parameters:
+e - Die zu suchende Kante
+Returns:
+Kante enthalten (true) oder nicht (false)
+
+
+
+
+
+isKanteEnthalten
+public boolean isKanteEnthalten (int startNr,
+ int zielNr)
+Ueberprueft, ob eine Kante im Graphen enthalten ist.
+ In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
+
+Parameters:
+startNr - Nummer des Startknotens
+zielNr - Nummer des Zielknotens
+Returns:
+boolean Kante enthalten (true) oder nicht (false)
+
+
+
+
+
+isKanteEnthalten
+public boolean isKanteEnthalten (graph.Knoten start,
+ graph.Knoten ziel)
+Ueberprueft, ob eine Kante im Graphen enthalten ist.
+ In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
+
+Parameters:
+start - Startknoten
+ziel - Zielknoten
+Returns:
+boolean Kante enthalten (true) oder nicht (false)
+
+
+
+
+
+getKante
+public graph.Kante getKante (graph.Knoten start,
+ graph.Knoten ziel)
+Gibt eine gesuchte Kante aus dem Graphen zurueck.
+ In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
+
+Parameters:
+start - Der StartKnoten
+ziel - Der StartKnoten
+Returns:
+Die gesuchte Kante
+
+
+
+
+
+getKante
+public graph.Kante getKante (int startnr,
+ int zielnr)
+Gibt eine gesuchte Kante aus dem Graphen zurueck.
+ In ungerichteten Graphen wird nicht zwischen Start- und Zielknoten unterschieden
+
+Parameters:
+startnr - Der Nummer des StartKnoten
+zielnr - Die Nummer des Zielknoten
+Returns:
+Die gesuchte Kante
+
+
+
+
+
+neueKante
+public void neueKante (graph.Kante e)
+Fuegt eine Kante dem Graphen hinzu.
+ Dabei wird ueberprueft, ob die Kante schon im Graphen enthalten ist.
+
+ Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" erstellt.
+
+Parameters:
+e - Die Kante, die hinzugefuegt werden soll
+
+
+
+
+
+neueKante
+public void neueKante (graph.Knoten start,
+ graph.Knoten ziel,
+ double gewicht)
+Fuegt eine Kante dem Graphen hinzu.
+ Dabei wird ueberprueft, ob die Kante schon im Graphen enthalten ist.
+
+ Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" erstellt.
+
+Parameters:
+start - Der StartKnoten der Kante, die hinzugefuegt werden soll
+ziel - Der ZielKnoten der Kante, die hinzugefuegt werden soll
+gewicht - Das Gewicht der Kante, die hinzugefuegt werden soll
+
+
+
+
+
+entferneKante
+public void entferneKante (graph.Kante e)
+Entfernt eine Kante aus dem Graphen.
+ Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" entfernt.
+
+Parameters:
+e - Die zu entfernende Kante
+
+
+
+
+
+entferneKante
+public void entferneKante (graph.Knoten start,
+ graph.Knoten ziel)
+Entfernt eine Kante aus dem Graphen.
+ Dabei wird ueberprueft, ob die Kante ueberhaupt im Graphen enthalten ist.
+
+ Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" entfernt.
+
+Parameters:
+start - StartKnotens
+ziel - ZielKnotens
+
+
+
+
+
+entferneKante
+public void entferneKante (int startnr,
+ int zielnr)
+Entfernt eine Kante aus dem Graphen.
+ Ist der Graph ungerichtet, werden sowohl "Hin-" und "RueckKante" entfernt.
+
+Parameters:
+startnr - Nummer des StartKnotens
+zielnr - Nummer des ZielKnotens
+
+
+
+
+
+isLeer
+public boolean isLeer ()
+Ueberprueft, ob die Adjazenzliste leer ist, d.h. keine Knoten im Graphen enthalten sind.
+
+Returns:
+true, wenn die Liste leer ist, sonst false
+
+
+
+
+
+loescheAlles
+public void loescheAlles ()
+Loescht den gesamten Graphen
+
+
+
+
+toCSVString
+public String toCSVString (boolean asMatrix)
+Die Methode erstellt eine CSV-Ausgabe des Graphen entweder als Adjazenzliste oder als Adjazenzmatrix.
+
+Parameters:
+asMatrix - true, falls die CSV-Ausgabe eine AdjazenzMatrix sein soll, sonst false
+Returns:
+CSV-Ausgabe
+
+
+
+
+
+toString
+
+Textuelle Repraesentation des Graphen.
+
+Overrides:
+toString in class Object
+Returns:
+Der Graph als Stringrepraesentation
+
+
+
+
+
+ausgabe
+public void ausgabe ()
+Konsolenausgabe der textuellen Repraesentation des Graphen.
+
+
+
+
+getKnoteninfo
+public String getKnoteninfo (graph.Knoten k,
+ boolean zeigeWert)
+Info über einen Knoten zurückgeben
+
+Parameters:
+k - Knoten, des Info ermittelt werden soll
+zeigeWert - Soll der Wert des Knoten in der Info enthalten sein
+Returns:
+Infotext oder Nummer des Knoten und ggf. sein Wert
+
+
+
+
+
+getStatus
+
+Speichert den Zustand des Graphen als String-List
+
+Returns:
+List mit Zustand
+
+
+
+
+
+setStatus
+
+Stellt den Zustand des Graphen aus String-List wieder her
+
+Parameters:
+status - List mit Zustand
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/graph/package-summary.html b/doc/graph/package-summary.html
index dae7b33..646f996 100644
--- a/doc/graph/package-summary.html
+++ b/doc/graph/package-summary.html
@@ -1,53 +1,48 @@
-
-
-
-
-
-graph
-
-
-
-
-
-
-
-
-JavaScript is disabled on your browser.
-
-
-
-
-
-
-
-Class Summary
-
-Class
-Description
-
-
-
-GraphPlotter
-
-Der GraphPlotter ist das Herzstueck der Visualisierung und dient als Schnittstelle zur GUI.
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+graph
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+package graph
+
+
+
+
+
Classes
+
+
+
+
+
+
Dies ist das Herz vom "GraphTester" - der Graph selber, gepeichert als Adjazenzliste.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/index.html b/doc/index.html
index 39f7728..4a8d7a0 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -1,23 +1,26 @@
-
-
-
-
-
-Generated Documentation (Untitled)
-
-
-
-
-
-
-
-
-
-
-
-JavaScript is disabled on your browser.
-
-graph/package-summary.html
-
-
-
+
+
+
+
+Generated Documentation (Untitled)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+graph/package-summary.html
+
+
+
diff --git a/doc/legal/ADDITIONAL_LICENSE_INFO b/doc/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 0000000..ff700cd
--- /dev/null
+++ b/doc/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1,37 @@
+ ADDITIONAL INFORMATION ABOUT LICENSING
+
+Certain files distributed by Oracle America, Inc. and/or its affiliates are
+subject to the following clarification and special exception to the GPLv2,
+based on the GNU Project exception for its Classpath libraries, known as the
+GNU Classpath Exception.
+
+Note that Oracle includes multiple, independent programs in this software
+package. Some of those programs are provided under licenses deemed
+incompatible with the GPLv2 by the Free Software Foundation and others.
+For example, the package includes programs licensed under the Apache
+License, Version 2.0 and may include FreeType. Such programs are licensed
+to you under their original licenses.
+
+Oracle facilitates your further distribution of this package by adding the
+Classpath Exception to the necessary parts of its GPLv2 code, which permits
+you to use that code in combination with other independent modules not
+licensed under the GPLv2. However, note that this would not permit you to
+commingle code under an incompatible license with Oracle's GPLv2 licensed
+code by, for example, cutting and pasting such code into a file also
+containing Oracle's GPLv2 licensed code and then distributing the result.
+
+Additionally, if you were to remove the Classpath Exception from any of the
+files to which it applies and distribute the result, you would likely be
+required to license some or all of the other code in that distribution under
+the GPLv2 as well, and since the GPLv2 is incompatible with the license terms
+of some items included in the distribution by Oracle, removing the Classpath
+Exception could therefore effectively compromise your ability to further
+distribute the package.
+
+Failing to distribute notices associated with some files may also create
+unexpected legal consequences.
+
+Proceed with caution and we recommend that you obtain the advice of a lawyer
+skilled in open source matters before removing the Classpath Exception or
+making modifications to this package which may subsequently be redistributed
+and/or involve the use of third party software.
diff --git a/doc/legal/ASSEMBLY_EXCEPTION b/doc/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 0000000..065b8d9
--- /dev/null
+++ b/doc/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1,27 @@
+
+OPENJDK ASSEMBLY EXCEPTION
+
+The OpenJDK source code made available by Oracle America, Inc. (Oracle) at
+openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU
+General Public License version 2
+only ("GPL2"), with the following clarification and special exception.
+
+ Linking this OpenJDK Code statically or dynamically with other code
+ is making a combined work based on this library. Thus, the terms
+ and conditions of GPL2 cover the whole combination.
+
+ As a special exception, Oracle gives you permission to link this
+ OpenJDK Code with certain code licensed by Oracle as indicated at
+ http://openjdk.java.net/legal/exception-modules-2007-05-08.html
+ ("Designated Exception Modules") to produce an executable,
+ regardless of the license terms of the Designated Exception Modules,
+ and to copy and distribute the resulting executable under GPL2,
+ provided that the Designated Exception Modules continue to be
+ governed by the licenses under which they were offered by Oracle.
+
+As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code
+to build an executable that includes those portions of necessary code that
+Oracle could not provide under GPL2 (or that Oracle has provided under GPL2
+with the Classpath exception). If you modify or add to the OpenJDK code,
+that new GPL2 code may still be combined with Designated Exception Modules
+if the new code is made subject to this exception by its copyright holder.
diff --git a/doc/legal/LICENSE b/doc/legal/LICENSE
new file mode 100644
index 0000000..8b400c7
--- /dev/null
+++ b/doc/legal/LICENSE
@@ -0,0 +1,347 @@
+The GNU General Public License (GPL)
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software--to make sure the
+software is free for all its users. This General Public License applies to
+most of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you
+can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny
+you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must
+make sure that they, too, receive or can get the source code. And you must
+show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced
+by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program proprietary.
+To prevent this, we have made it clear that any patent must be licensed for
+everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms of
+this General Public License. The "Program", below, refers to any such program
+or work, and a "work based on the Program" means either the Program or any
+derivative work under copyright law: that is to say, a work containing the
+Program or a portion of it, either verbatim or with modifications and/or
+translated into another language. (Hereinafter, translation is included
+without limitation in the term "modification".) Each licensee is addressed as
+"you".
+
+Activities other than copying, distribution and modification are not covered by
+this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made by
+running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as
+you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus
+forming a work based on the Program, and copy and distribute such modifications
+or work under the terms of Section 1 above, provided that you also meet all of
+these conditions:
+
+ a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in whole or
+ in part contains or is derived from the Program or any part thereof, to be
+ licensed as a whole at no charge to all third parties under the terms of
+ this License.
+
+ c) If the modified program normally reads commands interactively when run,
+ you must cause it, when started running for such interactive use in the
+ most ordinary way, to print or display an announcement including an
+ appropriate copyright notice and a notice that there is no warranty (or
+ else, saying that you provide a warranty) and that users may redistribute
+ the program under these conditions, and telling the user how to view a copy
+ of this License. (Exception: if the Program itself is interactive but does
+ not normally print such an announcement, your work based on the Program is
+ not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Program, the distribution of the whole must be on the terms
+of this License, whose permissions for other licensees extend to the entire
+whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on
+the Program.
+
+In addition, mere aggregation of another work not based on the Program with the
+Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1 and
+2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2 above
+ on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three years, to
+ give any third party, for a charge no more than your cost of physically
+ performing source distribution, a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of Sections 1
+ and 2 above on a medium customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed only
+ for noncommercial distribution and only if you received the program in
+ object code or executable form with such an offer, in accord with
+ Subsection b above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and installation
+of the executable. However, as a special exception, the source code
+distributed need not include anything that is normally distributed (in either
+source or binary form) with the major components (compiler, kernel, and so on)
+of the operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the source
+code from the same place counts as distribution of the source code, even though
+third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy, modify,
+sublicense or distribute the Program is void, and will automatically terminate
+your rights under this License. However, parties who have received copies, or
+rights, from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the Program
+or its derivative works. These actions are prohibited by law if you do not
+accept this License. Therefore, by modifying or distributing the Program (or
+any work based on the Program), you indicate your acceptance of this License to
+do so, and all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program),
+the recipient automatically receives a license from the original licensor to
+copy, distribute or modify the Program subject to these terms and conditions.
+You may not impose any further restrictions on the recipients' exercise of the
+rights granted herein. You are not responsible for enforcing compliance by
+third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the
+General Public License from time to time. Such new versions will be similar in
+spirit to the present version, but may differ in detail to address new problems
+or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software Foundation.
+If the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software Foundation,
+write to the Free Software Foundation; we sometimes make exceptions for this.
+Our decision will be guided by the two goals of preserving the free status of
+all derivatives of our free software and of promoting the sharing and reuse of
+software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
+PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
+BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
+OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach
+them to the start of each source file to most effectively convey the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found.
+
+ One line to give the program's name and a brief idea of what it does.
+
+ Copyright (C)
+
+ 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 2 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, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it
+starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
+ with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
+ software, and you are welcome to redistribute it under certain conditions;
+ type 'show c' for details.
+
+The hypothetical commands 'show w' and 'show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than 'show w' and 'show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school,
+if any, to sign a "copyright disclaimer" for the program, if necessary. Here
+is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ 'Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ signature of Ty Coon, 1 April 1989
+
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.
+
+
+"CLASSPATH" EXCEPTION TO THE GPL
+
+Certain source files distributed by Oracle America and/or its affiliates are
+subject to the following clarification and special exception to the GPL, but
+only where Oracle has expressly included in the particular source file's header
+the words "Oracle designates this particular file as subject to the "Classpath"
+exception as provided by Oracle in the LICENSE file that accompanied this code."
+
+ Linking this library statically or dynamically with other modules is making
+ a combined work based on this library. Thus, the terms and conditions of
+ the GNU General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,
+ and to copy and distribute the resulting executable under terms of your
+ choice, provided that you also meet, for each linked independent module,
+ the terms and conditions of the license of that module. An independent
+ module is a module which is not derived from or based on this library. If
+ you modify this library, you may extend this exception to your version of
+ the library, but you are not obligated to do so. If you do not wish to do
+ so, delete this exception statement from your version.
diff --git a/doc/logfile.txt b/doc/logfile.txt
index 21268ef..a34a098 100644
--- a/doc/logfile.txt
+++ b/doc/logfile.txt
@@ -1,42 +1,74 @@
-Class documentation
-<---- javadoc command: ---->
-E:\Programme\Informatik\BlueJ5.0\jdk\bin\javadoc.exe
--author
--version
--nodeprecated
--package
--Xdoclint:none
--noindex
--notree
--nohelp
--nonavbar
--source
-11
--classpath
-E:\Programme\Informatik\BlueJ5.0\lib\bluejcore.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-4.12.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-jupiter-5.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-jupiter-api-5.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-jupiter-engine-5.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-jupiter-migrationsupport-5.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-jupiter-params-5.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-commons-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-console-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-console-standalone-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-engine-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-launcher-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-reporting-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-runner-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-suite-api-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-platform-testkit-1.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-quickcheck-core-0.9.jar;E:\Programme\Informatik\BlueJ5.0\lib\junit-vintage-engine-5.5.2.jar;E:\Programme\Informatik\BlueJ5.0\lib\hamcrest-core-1.3.jar;E:\Programme\Informatik\BlueJ5.0\lib\hamcrest-library-1.3.jar;E:\Programme\Informatik\BlueJ5.0\lib\lang-stride.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.base.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.controls.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.fxml.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.graphics.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.media.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.properties.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.swing.jar;E:\Programme\Informatik\BlueJ5.0\lib\javafx\lib\javafx.web.jar;F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\+libs\commons-io-2.4.jar;F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\+libs\csv.jar;F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\+libs\jdom-1.1.3.jar;F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester
--d
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc
--encoding
-UTF-8
--charset
-UTF-8
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java
-<---- end of javadoc command ---->
-Loading source file F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java...
-Constructing Javadoc information...
-Standard Doclet version 11.0.2
-Building tree for all the packages and classes...
-Generating F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc\graph\GraphPlotter.html...
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java:47: warning - invalid usage of tag &Drop
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java:47: warning - invalid usage of tag &Drop
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java:49: warning - @param argument "boolean" is not a parameter name.
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java:50: warning - @param argument "boolean" is not a parameter name.
-F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\graph\GraphPlotter.java:51: warning - @param argument "String" is not a parameter name.
-Generating F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc\graph\package-summary.html...
-Generating F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc\constant-values.html...
-Building index for all the packages and classes...
-Building index for all classes...
-Generating F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc\allclasses.html...
-Generating F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc\allclasses.html...
-Generating F:\Informatik\Fortbildung ZPG KS\ZPG -20210212-Veröffentlichen\3_vorlagen_tauschordner\1_graphentester\doc\index.html...
-5 warnings
+Class documentation
+<---- javadoc command: ---->
+/usr/share/bluej/jdk/bin/javadoc
+-author
+-version
+-nodeprecated
+-package
+-Xdoclint:none
+-noindex
+-notree
+-nohelp
+-nonavbar
+-source
+17
+-classpath
+/usr/share/bluej/bluejcore.jar:/usr/share/bluej/junit-jupiter-migrationsupport-5.5.2.jar:/usr/share/bluej/junit-platform-suite-api-1.5.2.jar:/usr/share/bluej/junit-platform-launcher-1.5.2.jar:/usr/share/bluej/junit-jupiter-5.5.2.jar:/usr/share/bluej/junit-platform-console-1.5.2.jar:/usr/share/bluej/junit-quickcheck-core-0.9.jar:/usr/share/bluej/junit-platform-runner-1.5.2.jar:/usr/share/bluej/junit-platform-console-standalone-1.5.2.jar:/usr/share/bluej/junit-platform-engine-1.5.2.jar:/usr/share/bluej/junit-jupiter-api-5.5.2.jar:/usr/share/bluej/junit-vintage-engine-5.5.2.jar:/usr/share/bluej/junit-jupiter-engine-5.5.2.jar:/usr/share/bluej/junit-jupiter-params-5.5.2.jar:/usr/share/bluej/junit-platform-testkit-1.5.2.jar:/usr/share/bluej/junit-platform-commons-1.5.2.jar:/usr/share/bluej/junit-platform-reporting-1.5.2.jar:/usr/share/bluej/hamcrest-core-1.3.jar:/usr/share/bluej/hamcrest-library-1.3.jar:/usr/share/bluej/lang-stride.jar:/usr/share/bluej/javafx/lib/javafx.base.jar:/usr/share/bluej/javafx/lib/javafx.controls.jar:/usr/share/bluej/javafx/lib/javafx.fxml.jar:/usr/share/bluej/javafx/lib/javafx.graphics.jar:/usr/share/bluej/javafx/lib/javafx.media.jar:/usr/share/bluej/javafx/lib/javafx.properties.jar:/usr/share/bluej/javafx/lib/javafx.swing.jar:/usr/share/bluej/javafx/lib/javafx.web.jar:/home/sbel/gt/1_graphentester/+libs/jdom-1.1.3.jar:/home/sbel/gt/1_graphentester/+libs/commons-io-2.4.jar:/home/sbel/gt/1_graphentester/+libs/csv.jar:/home/sbel/gt/1_graphentester
+-d
+/home/sbel/gt/1_graphentester/doc
+-encoding
+UTF-8
+-charset
+UTF-8
+/home/sbel/gt/1_graphentester/graph/Graph.java
+<---- end of javadoc command ---->
+Loading source file /home/sbel/gt/1_graphentester/graph/Graph.java...
+Constructing Javadoc information...
+Standard Doclet version 17.0.4+8
+Building tree for all the packages and classes...
+Generating /home/sbel/gt/1_graphentester/doc/graph/Graph.html...
+/home/sbel/gt/1_graphentester/graph/Graph.java:240: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:240: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:302: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:302: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:320: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:320: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:346: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:346: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:370: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:370: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:394: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:394: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:410: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+/home/sbel/gt/1_graphentester/graph/Graph.java:410: warning: invalid input: '&'
+ * @param filter optionaler Filter, der auf die Liste angewendet wird. Er muss einen boolean-Wert zurückgeben: z.B. @literal{k->k.isMarkiert() && k.isBesucht()}
+ ^
+Generating /home/sbel/gt/1_graphentester/doc/graph/package-summary.html...
+Generating /home/sbel/gt/1_graphentester/doc/index.html...
+14 warnings
diff --git a/doc/script.js b/doc/script.js
index d33d3ab..864989c 100644
--- a/doc/script.js
+++ b/doc/script.js
@@ -1,139 +1,132 @@
-/*
- * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code 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
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-var moduleSearchIndex;
-var packageSearchIndex;
-var typeSearchIndex;
-var memberSearchIndex;
-var tagSearchIndex;
-function loadScripts(doc, tag) {
- createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
- createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
- if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
- window.navigator.userAgent.indexOf('Edge/') > 0) {
- createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
- }
- createElem(doc, tag, 'search.js');
-
- $.get(pathtoroot + "module-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
- var zip = new JSZip(data);
- zip.load(data);
- moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText());
- });
- });
- $.get(pathtoroot + "package-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
- var zip = new JSZip(data);
- zip.load(data);
- packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText());
- });
- });
- $.get(pathtoroot + "type-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
- var zip = new JSZip(data);
- zip.load(data);
- typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText());
- });
- });
- $.get(pathtoroot + "member-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
- var zip = new JSZip(data);
- zip.load(data);
- memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText());
- });
- });
- $.get(pathtoroot + "tag-search-index.zip")
- .done(function() {
- JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
- var zip = new JSZip(data);
- zip.load(data);
- tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText());
- });
- });
- if (!moduleSearchIndex) {
- createElem(doc, tag, 'module-search-index.js');
- }
- if (!packageSearchIndex) {
- createElem(doc, tag, 'package-search-index.js');
- }
- if (!typeSearchIndex) {
- createElem(doc, tag, 'type-search-index.js');
- }
- if (!memberSearchIndex) {
- createElem(doc, tag, 'member-search-index.js');
- }
- if (!tagSearchIndex) {
- createElem(doc, tag, 'tag-search-index.js');
- }
- $(window).resize(function() {
- $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
- });
-}
-
-function createElem(doc, tag, path) {
- var script = doc.createElement(tag);
- var scriptElement = doc.getElementsByTagName(tag)[0];
- script.src = pathtoroot + path;
- scriptElement.parentNode.insertBefore(script, scriptElement);
-}
-
-function show(type) {
- count = 0;
- for (var key in data) {
- var row = document.getElementById(key);
- if ((data[key] & type) !== 0) {
- row.style.display = '';
- row.className = (count++ % 2) ? rowColor : altColor;
- }
- else
- row.style.display = 'none';
- }
- updateTabs(type);
-}
-
-function updateTabs(type) {
- for (var value in tabs) {
- var sNode = document.getElementById(tabs[value][0]);
- var spanNode = sNode.firstChild;
- if (value == type) {
- sNode.className = activeTableTab;
- spanNode.innerHTML = tabs[value][1];
- }
- else {
- sNode.className = tableTab;
- spanNode.innerHTML = "" + tabs[value][1] + " ";
- }
- }
-}
-
-function updateModuleFrame(pFrame, cFrame) {
- top.packageFrame.location = pFrame;
- top.classFrame.location = cFrame;
-}
+/*
+ * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+ createElem(doc, tag, 'search.js');
+
+ createElem(doc, tag, 'module-search-index.js');
+ createElem(doc, tag, 'package-search-index.js');
+ createElem(doc, tag, 'type-search-index.js');
+ createElem(doc, tag, 'member-search-index.js');
+ createElem(doc, tag, 'tag-search-index.js');
+}
+
+function createElem(doc, tag, path) {
+ var script = doc.createElement(tag);
+ var scriptElement = doc.getElementsByTagName(tag)[0];
+ script.src = pathtoroot + path;
+ scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(tableId, selected, columns) {
+ if (tableId !== selected) {
+ document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
+ .forEach(function(elem) {
+ elem.style.display = 'none';
+ });
+ }
+ document.querySelectorAll('div.' + selected)
+ .forEach(function(elem, index) {
+ elem.style.display = '';
+ var isEvenRow = index % (columns * 2) < columns;
+ elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
+ elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
+ });
+ updateTabs(tableId, selected);
+}
+
+function updateTabs(tableId, selected) {
+ document.querySelector('div#' + tableId +' .summary-table')
+ .setAttribute('aria-labelledby', selected);
+ document.querySelectorAll('button[id^="' + tableId + '"]')
+ .forEach(function(tab, index) {
+ if (selected === tab.id || (tableId === selected && index === 0)) {
+ tab.className = activeTableTab;
+ tab.setAttribute('aria-selected', true);
+ tab.setAttribute('tabindex',0);
+ } else {
+ tab.className = tableTab;
+ tab.setAttribute('aria-selected', false);
+ tab.setAttribute('tabindex',-1);
+ }
+ });
+}
+
+function switchTab(e) {
+ var selected = document.querySelector('[aria-selected=true]');
+ if (selected) {
+ if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
+ // left or up arrow key pressed: move focus to previous tab
+ selected.previousSibling.click();
+ selected.previousSibling.focus();
+ e.preventDefault();
+ } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
+ // right or down arrow key pressed: move focus to next tab
+ selected.nextSibling.click();
+ selected.nextSibling.focus();
+ e.preventDefault();
+ }
+ }
+}
+
+var updateSearchResults = function() {};
+
+function indexFilesLoaded() {
+ return moduleSearchIndex
+ && packageSearchIndex
+ && typeSearchIndex
+ && memberSearchIndex
+ && tagSearchIndex;
+}
+
+// Workaround for scroll position not being included in browser history (8249133)
+document.addEventListener("DOMContentLoaded", function(e) {
+ var contentDiv = document.querySelector("div.flex-content");
+ window.addEventListener("popstate", function(e) {
+ if (e.state !== null) {
+ contentDiv.scrollTop = e.state;
+ }
+ });
+ window.addEventListener("hashchange", function(e) {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ });
+ contentDiv.addEventListener("scroll", function(e) {
+ var timeoutID;
+ if (!timeoutID) {
+ timeoutID = setTimeout(function() {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ timeoutID = null;
+ }, 100);
+ }
+ });
+ if (!location.hash) {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ }
+});
diff --git a/doc/stylesheet.css b/doc/stylesheet.css
index c027275..836c62d 100644
--- a/doc/stylesheet.css
+++ b/doc/stylesheet.css
@@ -1,906 +1,865 @@
-/*
- * Javadoc style sheet
- */
-
-@import url('resources/fonts/dejavu.css');
-
-/*
- * Styles for individual HTML elements.
- *
- * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
- * HTML element throughout the page.
- */
-
-body {
- background-color:#ffffff;
- color:#353833;
- font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
- font-size:14px;
- margin:0;
- padding:0;
- height:100%;
- width:100%;
-}
-iframe {
- margin:0;
- padding:0;
- height:100%;
- width:100%;
- overflow-y:scroll;
- border:none;
-}
-a:link, a:visited {
- text-decoration:none;
- color:#4A6782;
-}
-a[href]:hover, a[href]:focus {
- text-decoration:none;
- color:#bb7a2a;
-}
-a[name] {
- color:#353833;
-}
-a[name]:before, a[name]:target, a[id]:before, a[id]:target {
- content:"";
- display:inline-block;
- position:relative;
- padding-top:129px;
- margin-top:-129px;
-}
-pre {
- font-family:'DejaVu Sans Mono', monospace;
- font-size:14px;
-}
-h1 {
- font-size:20px;
-}
-h2 {
- font-size:18px;
-}
-h3 {
- font-size:16px;
- font-style:italic;
-}
-h4 {
- font-size:13px;
-}
-h5 {
- font-size:12px;
-}
-h6 {
- font-size:11px;
-}
-ul {
- list-style-type:disc;
-}
-code, tt {
- font-family:'DejaVu Sans Mono', monospace;
- font-size:14px;
- padding-top:4px;
- margin-top:8px;
- line-height:1.4em;
-}
-dt code {
- font-family:'DejaVu Sans Mono', monospace;
- font-size:14px;
- padding-top:4px;
-}
-table tr td dt code {
- font-family:'DejaVu Sans Mono', monospace;
- font-size:14px;
- vertical-align:top;
- padding-top:4px;
-}
-sup {
- font-size:8px;
-}
-
-/*
- * Styles for HTML generated by javadoc.
- *
- * These are style classes that are used by the standard doclet to generate HTML documentation.
- */
-
-/*
- * Styles for document title and copyright.
- */
-.clear {
- clear:both;
- height:0px;
- overflow:hidden;
-}
-.aboutLanguage {
- float:right;
- padding:0px 21px;
- font-size:11px;
- z-index:200;
- margin-top:-9px;
-}
-.legalCopy {
- margin-left:.5em;
-}
-.bar a, .bar a:link, .bar a:visited, .bar a:active {
- color:#FFFFFF;
- text-decoration:none;
-}
-.bar a:hover, .bar a:focus {
- color:#bb7a2a;
-}
-.tab {
- background-color:#0066FF;
- color:#ffffff;
- padding:8px;
- width:5em;
- font-weight:bold;
-}
-/*
- * Styles for navigation bar.
- */
-.bar {
- background-color:#4D7A97;
- color:#FFFFFF;
- padding:.8em .5em .4em .8em;
- height:auto;/*height:1.8em;*/
- font-size:11px;
- margin:0;
-}
-.navPadding {
- padding-top: 107px;
-}
-.fixedNav {
- position:fixed;
- width:100%;
- z-index:999;
- background-color:#ffffff;
-}
-.topNav {
- background-color:#4D7A97;
- color:#FFFFFF;
- float:left;
- padding:0;
- width:100%;
- clear:right;
- height:2.8em;
- padding-top:10px;
- overflow:hidden;
- font-size:12px;
-}
-.bottomNav {
- margin-top:10px;
- background-color:#4D7A97;
- color:#FFFFFF;
- float:left;
- padding:0;
- width:100%;
- clear:right;
- height:2.8em;
- padding-top:10px;
- overflow:hidden;
- font-size:12px;
-}
-.subNav {
- background-color:#dee3e9;
- float:left;
- width:100%;
- overflow:hidden;
- font-size:12px;
-}
-.subNav div {
- clear:left;
- float:left;
- padding:0 0 5px 6px;
- text-transform:uppercase;
-}
-ul.navList, ul.subNavList {
- float:left;
- margin:0 25px 0 0;
- padding:0;
-}
-ul.navList li{
- list-style:none;
- float:left;
- padding: 5px 6px;
- text-transform:uppercase;
-}
-ul.navListSearch {
- float:right;
- margin:0 0 0 0;
- padding:0;
-}
-ul.navListSearch li {
- list-style:none;
- float:right;
- padding: 5px 6px;
- text-transform:uppercase;
-}
-ul.navListSearch li label {
- position:relative;
- right:-16px;
-}
-ul.subNavList li {
- list-style:none;
- float:left;
-}
-.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
- color:#FFFFFF;
- text-decoration:none;
- text-transform:uppercase;
-}
-.topNav a:hover, .bottomNav a:hover {
- text-decoration:none;
- color:#bb7a2a;
- text-transform:uppercase;
-}
-.navBarCell1Rev {
- background-color:#F8981D;
- color:#253441;
- margin: auto 5px;
-}
-.skipNav {
- position:absolute;
- top:auto;
- left:-9999px;
- overflow:hidden;
-}
-/*
- * Styles for page header and footer.
- */
-.header, .footer {
- clear:both;
- margin:0 20px;
- padding:5px 0 0 0;
-}
-.indexNav {
- position:relative;
- font-size:12px;
- background-color:#dee3e9;
-}
-.indexNav ul {
- margin-top:0;
- padding:5px;
-}
-.indexNav ul li {
- display:inline;
- list-style-type:none;
- padding-right:10px;
- text-transform:uppercase;
-}
-.indexNav h1 {
- font-size:13px;
-}
-.title {
- color:#2c4557;
- margin:10px 0;
-}
-.subTitle {
- margin:5px 0 0 0;
-}
-.header ul {
- margin:0 0 15px 0;
- padding:0;
-}
-.footer ul {
- margin:20px 0 5px 0;
-}
-.header ul li, .footer ul li {
- list-style:none;
- font-size:13px;
-}
-/*
- * Styles for headings.
- */
-div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
- background-color:#dee3e9;
- border:1px solid #d0d9e0;
- margin:0 0 6px -8px;
- padding:7px 5px;
-}
-ul.blockList ul.blockList ul.blockList li.blockList h3 {
- background-color:#dee3e9;
- border:1px solid #d0d9e0;
- margin:0 0 6px -8px;
- padding:7px 5px;
-}
-ul.blockList ul.blockList li.blockList h3 {
- padding:0;
- margin:15px 0;
-}
-ul.blockList li.blockList h2 {
- padding:0px 0 20px 0;
-}
-/*
- * Styles for page layout containers.
- */
-.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
-.allClassesContainer, .allPackagesContainer {
- clear:both;
- padding:10px 20px;
- position:relative;
-}
-.indexContainer {
- margin:10px;
- position:relative;
- font-size:12px;
-}
-.indexContainer h2 {
- font-size:13px;
- padding:0 0 3px 0;
-}
-.indexContainer ul {
- margin:0;
- padding:0;
-}
-.indexContainer ul li {
- list-style:none;
- padding-top:2px;
-}
-.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
- font-size:12px;
- font-weight:bold;
- margin:10px 0 0 0;
- color:#4E4E4E;
-}
-.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
- margin:5px 0 10px 0px;
- font-size:14px;
- font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
-}
-.serializedFormContainer dl.nameValue dt {
- margin-left:1px;
- font-size:1.1em;
- display:inline;
- font-weight:bold;
-}
-.serializedFormContainer dl.nameValue dd {
- margin:0 0 0 1px;
- font-size:1.1em;
- display:inline;
-}
-/*
- * Styles for lists.
- */
-li.circle {
- list-style:circle;
-}
-ul.horizontal li {
- display:inline;
- font-size:0.9em;
-}
-ul.inheritance {
- margin:0;
- padding:0;
-}
-ul.inheritance li {
- display:inline;
- list-style:none;
-}
-ul.inheritance li ul.inheritance {
- margin-left:15px;
- padding-left:15px;
- padding-top:1px;
-}
-ul.blockList, ul.blockListLast {
- margin:10px 0 10px 0;
- padding:0;
-}
-ul.blockList li.blockList, ul.blockListLast li.blockList {
- list-style:none;
- margin-bottom:15px;
- line-height:1.4;
-}
-ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
- padding:0px 20px 5px 10px;
- border:1px solid #ededed;
- background-color:#f8f8f8;
-}
-ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
- padding:0 0 5px 8px;
- background-color:#ffffff;
- border:none;
-}
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
- margin-left:0;
- padding-left:0;
- padding-bottom:15px;
- border:none;
-}
-ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
- list-style:none;
- border-bottom:none;
- padding-bottom:0;
-}
-table tr td dl, table tr td dl dt, table tr td dl dd {
- margin-top:0;
- margin-bottom:1px;
-}
-/*
- * Styles for tables.
- */
-.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
-.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
- width:100%;
- border-spacing:0;
- border-left:1px solid #EEE;
- border-right:1px solid #EEE;
- border-bottom:1px solid #EEE;
-}
-.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
- padding:0px;
-}
-.overviewSummary caption, .memberSummary caption, .typeSummary caption,
-.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
-.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
- position:relative;
- text-align:left;
- background-repeat:no-repeat;
- color:#253441;
- font-weight:bold;
- clear:none;
- overflow:hidden;
- padding:0px;
- padding-top:10px;
- padding-left:1px;
- margin:0px;
- white-space:pre;
-}
-.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
-.constantsSummary caption a:link, .deprecatedSummary caption a:link,
-.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
-.usesSummary caption a:link,
-.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
-.constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
-.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
-.usesSummary caption a:hover,
-.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
-.constantsSummary caption a:active, .deprecatedSummary caption a:active,
-.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
-.usesSummary caption a:active,
-.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
-.constantsSummary caption a:visited, .deprecatedSummary caption a:visited,
-.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
-.usesSummary caption a:visited {
- color:#FFFFFF;
-}
-.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active,
-.useSummary caption a:visited {
- color:#1f389c;
-}
-.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
-.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
-.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
-.usesSummary caption span {
- white-space:nowrap;
- padding-top:5px;
- padding-left:12px;
- padding-right:12px;
- padding-bottom:7px;
- display:inline-block;
- float:left;
- background-color:#F8981D;
- border: none;
- height:16px;
-}
-.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,
-.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {
- white-space:nowrap;
- padding-top:5px;
- padding-left:12px;
- padding-right:12px;
- margin-right:3px;
- display:inline-block;
- float:left;
- background-color:#F8981D;
- height:16px;
-}
-.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,
-.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {
- white-space:nowrap;
- padding-top:5px;
- padding-left:12px;
- padding-right:12px;
- margin-right:3px;
- display:inline-block;
- float:left;
- background-color:#4D7A97;
- height:16px;
-}
-.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,
-.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,
-.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,
-.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {
- padding-top:0px;
- padding-left:0px;
- padding-right:0px;
- background-image:none;
- float:none;
- display:inline;
-}
-.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
-.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
-.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
- display:none;
- width:5px;
- position:relative;
- float:left;
- background-color:#F8981D;
-}
-.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd,
-.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd {
- display:none;
- width:5px;
- margin-right:3px;
- position:relative;
- float:left;
- background-color:#F8981D;
-}
-.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd,
-.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd {
- display:none;
- width:5px;
- margin-right:3px;
- position:relative;
- background-color:#4D7A97;
- float:left;
-}
-.rowColor th, .altColor th {
- font-weight:normal;
-}
-.overviewSummary td, .memberSummary td, .typeSummary td,
-.useSummary td, .constantsSummary td, .deprecatedSummary td,
-.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
- text-align:left;
- padding:0px 0px 12px 10px;
-}
-th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
-.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
-.constantsSummary td {
- vertical-align:top;
- padding-right:0px;
- padding-top:8px;
- padding-bottom:3px;
-}
-th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
-.packagesSummary th {
- background:#dee3e9;
- text-align:left;
- padding:8px 3px 3px 7px;
-}
-td.colFirst, th.colFirst {
- font-size:13px;
-}
-td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
- font-size:13px;
-}
-.constantsSummary th, .packagesSummary th {
- font-size:13px;
-}
-.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
-.providesSummary td.colLast {
- white-space:normal;
- font-size:13px;
-}
-.overviewSummary td.colFirst, .overviewSummary th.colFirst,
-.requiresSummary td.colFirst, .requiresSummary th.colFirst,
-.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
-.usesSummary td.colFirst, .usesSummary th.colFirst,
-.providesSummary td.colFirst, .providesSummary th.colFirst,
-.memberSummary td.colFirst, .memberSummary th.colFirst,
-.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
-.typeSummary td.colFirst, .typeSummary th.colFirst {
- vertical-align:top;
-}
-.packagesSummary th.colLast, .packagesSummary td.colLast {
- white-space:normal;
-}
-td.colFirst a:link, td.colFirst a:visited,
-td.colSecond a:link, td.colSecond a:visited,
-th.colFirst a:link, th.colFirst a:visited,
-th.colSecond a:link, th.colSecond a:visited,
-th.colConstructorName a:link, th.colConstructorName a:visited,
-th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited,
-.constantValuesContainer td a:link, .constantValuesContainer td a:visited,
-.allClassesContainer td a:link, .allClassesContainer td a:visited,
-.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
- font-weight:bold;
-}
-.tableSubHeadingColor {
- background-color:#EEEEFF;
-}
-.altColor, .altColor th {
- background-color:#FFFFFF;
-}
-.rowColor, .rowColor th {
- background-color:#EEEEEF;
-}
-/*
- * Styles for contents.
- */
-.description pre {
- margin-top:0;
-}
-.deprecatedContent {
- margin:0;
- padding:10px 0;
-}
-.docSummary {
- padding:0;
-}
-ul.blockList ul.blockList ul.blockList li.blockList h3 {
- font-style:normal;
-}
-div.block {
- font-size:14px;
- font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
-}
-td.colLast div {
- padding-top:0px;
-}
-td.colLast a {
- padding-bottom:3px;
-}
-/*
- * Styles for formatting effect.
- */
-.sourceLineNo {
- color:green;
- padding:0 30px 0 0;
-}
-h1.hidden {
- visibility:hidden;
- overflow:hidden;
- font-size:10px;
-}
-.block {
- display:block;
- margin:3px 10px 2px 0px;
- color:#474747;
-}
-.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
-.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
-.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
-.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
- font-weight:bold;
-}
-.deprecationComment, .emphasizedPhrase, .interfaceName {
- font-style:italic;
-}
-.deprecationBlock {
- font-size:14px;
- font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
- border-style:solid;
- border-width:thin;
- border-radius:10px;
- padding:10px;
- margin-bottom:10px;
- margin-right:10px;
- display:inline-block;
-}
-div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
-div.block div.block span.interfaceName {
- font-style:normal;
-}
-div.contentContainer ul.blockList li.blockList h2 {
- padding-bottom:0px;
-}
-/*
- * Styles for IFRAME.
- */
-.mainContainer {
- margin:0 auto;
- padding:0;
- height:100%;
- width:100%;
- position:fixed;
- top:0;
- left:0;
-}
-.leftContainer {
- height:100%;
- position:fixed;
- width:320px;
-}
-.leftTop {
- position:relative;
- float:left;
- width:315px;
- top:0;
- left:0;
- height:30%;
- border-right:6px solid #ccc;
- border-bottom:6px solid #ccc;
-}
-.leftBottom {
- position:relative;
- float:left;
- width:315px;
- bottom:0;
- left:0;
- height:70%;
- border-right:6px solid #ccc;
- border-top:1px solid #000;
-}
-.rightContainer {
- position:absolute;
- left:320px;
- top:0;
- bottom:0;
- height:100%;
- right:0;
- border-left:1px solid #000;
-}
-.rightIframe {
- margin:0;
- padding:0;
- height:100%;
- right:30px;
- width:100%;
- overflow:visible;
- margin-bottom:30px;
-}
-/*
- * Styles specific to HTML5 elements.
- */
-main, nav, header, footer, section {
- display:block;
-}
-/*
- * Styles for javadoc search.
- */
-.ui-autocomplete-category {
- font-weight:bold;
- font-size:15px;
- padding:7px 0 7px 3px;
- background-color:#4D7A97;
- color:#FFFFFF;
-}
-.resultItem {
- font-size:13px;
-}
-.ui-autocomplete {
- max-height:85%;
- max-width:65%;
- overflow-y:scroll;
- overflow-x:scroll;
- white-space:nowrap;
- box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
-}
-ul.ui-autocomplete {
- position:fixed;
- z-index:999999;
-}
-ul.ui-autocomplete li {
- float:left;
- clear:both;
- width:100%;
-}
-.resultHighlight {
- font-weight:bold;
-}
-#search {
- background-image:url('resources/glass.png');
- background-size:13px;
- background-repeat:no-repeat;
- background-position:2px 3px;
- padding-left:20px;
- position:relative;
- right:-18px;
-}
-#reset {
- background-color: rgb(255,255,255);
- background-image:url('resources/x.png');
- background-position:center;
- background-repeat:no-repeat;
- background-size:12px;
- border:0 none;
- width:16px;
- height:17px;
- position:relative;
- left:-4px;
- top:-4px;
- font-size:0px;
-}
-.watermark {
- color:#545454;
-}
-.searchTagDescResult {
- font-style:italic;
- font-size:11px;
-}
-.searchTagHolderResult {
- font-style:italic;
- font-size:12px;
-}
-.searchTagResult:before, .searchTagResult:target {
- color:red;
-}
-.moduleGraph span {
- display:none;
- position:absolute;
-}
-.moduleGraph:hover span {
- display:block;
- margin: -100px 0 0 100px;
- z-index: 1;
-}
-.methodSignature {
- white-space:normal;
-}
-
-/*
- * Styles for user-provided tables.
- *
- * borderless:
- * No borders, vertical margins, styled caption.
- * This style is provided for use with existing doc comments.
- * In general, borderless tables should not be used for layout purposes.
- *
- * plain:
- * Plain borders around table and cells, vertical margins, styled caption.
- * Best for small tables or for complex tables for tables with cells that span
- * rows and columns, when the "striped" style does not work well.
- *
- * striped:
- * Borders around the table and vertical borders between cells, striped rows,
- * vertical margins, styled caption.
- * Best for tables that have a header row, and a body containing a series of simple rows.
- */
-
-table.borderless,
-table.plain,
-table.striped {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-table.borderless > caption,
-table.plain > caption,
-table.striped > caption {
- font-weight: bold;
- font-size: smaller;
-}
-table.borderless th, table.borderless td,
-table.plain th, table.plain td,
-table.striped th, table.striped td {
- padding: 2px 5px;
-}
-table.borderless,
-table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
-table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
- border: none;
-}
-table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
- background-color: transparent;
-}
-table.plain {
- border-collapse: collapse;
- border: 1px solid black;
-}
-table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
- background-color: transparent;
-}
-table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
-table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
- border: 1px solid black;
-}
-table.striped {
- border-collapse: collapse;
- border: 1px solid black;
-}
-table.striped > thead {
- background-color: #E3E3E3;
-}
-table.striped > thead > tr > th, table.striped > thead > tr > td {
- border: 1px solid black;
-}
-table.striped > tbody > tr:nth-child(even) {
- background-color: #EEE
-}
-table.striped > tbody > tr:nth-child(odd) {
- background-color: #FFF
-}
-table.striped > tbody > tr > th, table.striped > tbody > tr > td {
- border-left: 1px solid black;
- border-right: 1px solid black;
-}
-table.striped > tbody > tr > th {
- font-weight: normal;
-}
+/*
+ * Javadoc style sheet
+ */
+
+@import url('resources/fonts/dejavu.css');
+
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+}
+iframe {
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+ overflow-y:scroll;
+ border:none;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[href]:hover, a[href]:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a[name] {
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+}
+h4 {
+ font-size:15px;
+}
+h5 {
+ font-size:14px;
+}
+h6 {
+ font-size:13px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+}
+:not(h1, h2, h3, h4, h5, h6) > code,
+:not(h1, h2, h3, h4, h5, h6) > tt {
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+.summary-table dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+button {
+ font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size: 14px;
+}
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.clear {
+ clear:both;
+ height:0;
+ overflow:hidden;
+}
+.about-language {
+ float:right;
+ padding:0 21px 8px 8px;
+ font-size:11px;
+ margin-top:-9px;
+ height:2.9em;
+}
+.legal-copy {
+ margin-left:.5em;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+ * Styles for navigation bar.
+ */
+@media screen {
+ .flex-box {
+ position:fixed;
+ display:flex;
+ flex-direction:column;
+ height: 100%;
+ width: 100%;
+ }
+ .flex-header {
+ flex: 0 0 auto;
+ }
+ .flex-content {
+ flex: 1 1 auto;
+ overflow-y: auto;
+ }
+}
+.top-nav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ min-height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.sub-nav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.sub-nav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+.sub-nav .nav-list {
+ padding-top:5px;
+}
+ul.nav-list {
+ display:block;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.sub-nav-list {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.nav-list li {
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+.sub-nav .nav-list-search {
+ float:right;
+ margin:0 0 0 0;
+ padding:5px 6px;
+ clear:none;
+}
+.nav-list-search label {
+ position:relative;
+ right:-16px;
+}
+ul.sub-nav-list li {
+ list-style:none;
+ float:left;
+ padding-top:10px;
+}
+.top-nav a:link, .top-nav a:active, .top-nav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.top-nav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.nav-bar-cell1-rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skip-nav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+ * Hide navigation links and search box in print layout
+ */
+@media print {
+ ul.nav-list, div.sub-nav {
+ display:none;
+ }
+}
+/*
+ * Styles for page header and footer.
+ */
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.sub-title {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+ * Styles for headings.
+ */
+body.class-declaration-page .summary h2,
+body.class-declaration-page .details h2,
+body.class-use-page h2,
+body.module-declaration-page .block-list h2 {
+ font-style: italic;
+ padding:0;
+ margin:15px 0;
+}
+body.class-declaration-page .summary h3,
+body.class-declaration-page .details h3,
+body.class-declaration-page .summary .inherited-list h2 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+/*
+ * Styles for page layout containers.
+ */
+main {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+dl.notes > dt {
+ font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+dl.notes > dd {
+ margin:5px 10px 10px 0;
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+dl.name-value > dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+dl.name-value > dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+ * Styles for lists.
+ */
+li.circle {
+ list-style:circle;
+}
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+div.inheritance {
+ margin:0;
+ padding:0;
+}
+div.inheritance div.inheritance {
+ margin-left:2em;
+}
+ul.block-list,
+ul.details-list,
+ul.member-list,
+ul.summary-list {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.block-list > li,
+ul.details-list > li,
+ul.member-list > li,
+ul.summary-list > li {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+.summary-table dl, .summary-table dl dt, .summary-table dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+ul.see-list, ul.see-list-long {
+ padding-left: 0;
+ list-style: none;
+}
+ul.see-list li {
+ display: inline;
+}
+ul.see-list li:not(:last-child):after,
+ul.see-list-long li:not(:last-child):after {
+ content: ", ";
+ white-space: pre-wrap;
+}
+/*
+ * Styles for tables.
+ */
+.summary-table, .details-table {
+ width:100%;
+ border-spacing:0;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+ padding:0;
+}
+.caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0;
+ white-space:pre;
+}
+.caption a:link, .caption a:visited {
+ color:#1f389c;
+}
+.caption a:hover,
+.caption a:active {
+ color:#FFFFFF;
+}
+.caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+div.table-tabs {
+ padding:10px 0 0 1px;
+ margin:0;
+}
+div.table-tabs > button {
+ border: none;
+ cursor: pointer;
+ padding: 5px 12px 7px 12px;
+ font-weight: bold;
+ margin-right: 3px;
+}
+div.table-tabs > button.active-table-tab {
+ background: #F8981D;
+ color: #253441;
+}
+div.table-tabs > button.table-tab {
+ background: #4D7A97;
+ color: #FFFFFF;
+}
+.two-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+}
+.three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
+}
+.four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
+}
+@media screen and (max-width: 600px) {
+ .two-column-summary {
+ display: grid;
+ grid-template-columns: 1fr;
+ }
+}
+@media screen and (max-width: 800px) {
+ .three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
+ }
+ .three-column-summary .col-last {
+ grid-column-end: span 2;
+ }
+}
+@media screen and (max-width: 1000px) {
+ .four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+ }
+}
+.summary-table > div, .details-table > div {
+ text-align:left;
+ padding: 8px 3px 3px 7px;
+}
+.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name {
+ vertical-align:top;
+ padding-right:0;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+.table-header {
+ background:#dee3e9;
+ font-weight: bold;
+}
+.col-first, .col-first {
+ font-size:13px;
+}
+.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last {
+ font-size:13px;
+}
+.col-first, .col-second, .col-constructor-name {
+ vertical-align:top;
+ overflow: auto;
+}
+.col-last {
+ white-space:normal;
+}
+.col-first a:link, .col-first a:visited,
+.col-second a:link, .col-second a:visited,
+.col-first a:link, .col-first a:visited,
+.col-second a:link, .col-second a:visited,
+.col-constructor-name a:link, .col-constructor-name a:visited,
+.col-summary-item-name a:link, .col-summary-item-name a:visited,
+.constant-values-container a:link, .constant-values-container a:visited,
+.all-classes-container a:link, .all-classes-container a:visited,
+.all-packages-container a:link, .all-packages-container a:visited {
+ font-weight:bold;
+}
+.table-sub-heading-color {
+ background-color:#EEEEFF;
+}
+.even-row-color, .even-row-color .table-header {
+ background-color:#FFFFFF;
+}
+.odd-row-color, .odd-row-color .table-header {
+ background-color:#EEEEEF;
+}
+/*
+ * Styles for contents.
+ */
+.deprecated-content {
+ margin:0;
+ padding:10px 0;
+}
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+.col-last div {
+ padding-top:0;
+}
+.col-last a {
+ padding-bottom:3px;
+}
+.module-signature,
+.package-signature,
+.type-signature,
+.member-signature {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ margin:14px 0;
+ white-space: pre-wrap;
+}
+.module-signature,
+.package-signature,
+.type-signature {
+ margin-top: 0;
+}
+.member-signature .type-parameters-long,
+.member-signature .parameters,
+.member-signature .exceptions {
+ display: inline-block;
+ vertical-align: top;
+ white-space: pre;
+}
+.member-signature .type-parameters {
+ white-space: normal;
+}
+/*
+ * Styles for formatting effect.
+ */
+.source-line-no {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:0 10px 5px 0;
+ color:#474747;
+}
+.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link,
+.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type,
+.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label {
+ font-weight:bold;
+}
+.deprecation-comment, .help-footnote, .preview-comment {
+ font-style:italic;
+}
+.deprecation-block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+ border-style:solid;
+ border-width:thin;
+ border-radius:10px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+.preview-block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+ border-style:solid;
+ border-width:thin;
+ border-radius:10px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+div.block div.deprecation-comment {
+ font-style:normal;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+ display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-autocomplete-category {
+ font-weight:bold;
+ font-size:15px;
+ padding:7px 0 7px 3px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+}
+.result-item {
+ font-size:13px;
+}
+.ui-autocomplete {
+ max-height:85%;
+ max-width:65%;
+ overflow-y:scroll;
+ overflow-x:scroll;
+ white-space:nowrap;
+ box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+ position:fixed;
+ z-index:999999;
+}
+ul.ui-autocomplete li {
+ float:left;
+ clear:both;
+ width:100%;
+}
+.result-highlight {
+ font-weight:bold;
+}
+#search-input {
+ background-image:url('resources/glass.png');
+ background-size:13px;
+ background-repeat:no-repeat;
+ background-position:2px 3px;
+ padding-left:20px;
+ position:relative;
+ right:-18px;
+ width:400px;
+}
+#reset-button {
+ background-color: rgb(255,255,255);
+ background-image:url('resources/x.png');
+ background-position:center;
+ background-repeat:no-repeat;
+ background-size:12px;
+ border:0 none;
+ width:16px;
+ height:16px;
+ position:relative;
+ left:-4px;
+ top:-4px;
+ font-size:0px;
+}
+.watermark {
+ color:#545454;
+}
+.search-tag-desc-result {
+ font-style:italic;
+ font-size:11px;
+}
+.search-tag-holder-result {
+ font-style:italic;
+ font-size:12px;
+}
+.search-tag-result:target {
+ background-color:yellow;
+}
+.module-graph span {
+ display:none;
+ position:absolute;
+}
+.module-graph:hover span {
+ display:block;
+ margin: -100px 0 0 100px;
+ z-index: 1;
+}
+.inherited-list {
+ margin: 10px 0 10px 0;
+}
+section.class-description {
+ line-height: 1.4;
+}
+.summary section[class$="-summary"], .details section[class$="-details"],
+.class-uses .detail, .serialized-class-details {
+ padding: 0px 20px 5px 10px;
+ border: 1px solid #ededed;
+ background-color: #f8f8f8;
+}
+.inherited-list, section[class$="-details"] .detail {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+.vertical-separator {
+ padding: 0 5px;
+}
+ul.help-section-list {
+ margin: 0;
+}
+ul.help-subtoc > li {
+ display: inline-block;
+ padding-right: 5px;
+ font-size: smaller;
+}
+ul.help-subtoc > li::before {
+ content: "\2022" ;
+ padding-right:2px;
+}
+span.help-note {
+ font-style: italic;
+}
+/*
+ * Indicator icon for external links.
+ */
+main a[href*="://"]::after {
+ content:"";
+ display:inline-block;
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+ background-size:100% 100%;
+ width:7px;
+ height:7px;
+ margin-left:2px;
+ margin-bottom:4px;
+}
+main a[href*="://"]:hover::after,
+main a[href*="://"]:focus::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+}
+
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ * No borders, vertical margins, styled caption.
+ * This style is provided for use with existing doc comments.
+ * In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ * Plain borders around table and cells, vertical margins, styled caption.
+ * Best for small tables or for complex tables for tables with cells that span
+ * rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ * Borders around the table and vertical borders between cells, striped rows,
+ * vertical margins, styled caption.
+ * Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+ font-weight: bold;
+ font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+ padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+ border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+ background-color: transparent;
+}
+table.plain {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+ background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+ border: 1px solid black;
+}
+table.striped {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+table.striped > thead {
+ background-color: #E3E3E3;
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+ border: 1px solid black;
+}
+table.striped > tbody > tr:nth-child(even) {
+ background-color: #EEE
+}
+table.striped > tbody > tr:nth-child(odd) {
+ background-color: #FFF
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+ border-left: 1px solid black;
+ border-right: 1px solid black;
+}
+table.striped > tbody > tr > th {
+ font-weight: normal;
+}
+/**
+ * Tweak font sizes and paddings for small screens.
+ */
+@media screen and (max-width: 1050px) {
+ #search-input {
+ width: 300px;
+ }
+}
+@media screen and (max-width: 800px) {
+ #search-input {
+ width: 200px;
+ }
+ .top-nav,
+ .bottom-nav {
+ font-size: 11px;
+ padding-top: 6px;
+ }
+ .sub-nav {
+ font-size: 11px;
+ }
+ .about-language {
+ padding-right: 16px;
+ }
+ ul.nav-list li,
+ .sub-nav .nav-list-search {
+ padding: 6px;
+ }
+ ul.sub-nav-list li {
+ padding-top: 5px;
+ }
+ main {
+ padding: 10px;
+ }
+ .summary section[class$="-summary"], .details section[class$="-details"],
+ .class-uses .detail, .serialized-class-details {
+ padding: 0 8px 5px 8px;
+ }
+ body {
+ -webkit-text-size-adjust: none;
+ }
+}
+@media screen and (max-width: 500px) {
+ #search-input {
+ width: 150px;
+ }
+ .top-nav,
+ .bottom-nav {
+ font-size: 10px;
+ }
+ .sub-nav {
+ font-size: 10px;
+ }
+ .about-language {
+ font-size: 10px;
+ padding-right: 12px;
+ }
+}
diff --git a/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.ctxt b/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.ctxt
index e010467..2f5ba81 100644
--- a/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.ctxt
+++ b/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.ctxt
@@ -1,8 +1,8 @@
-#BlueJ class context
-comment0.target=GraphAlgo_Coloring_Schueler
-comment0.text=\r\n\ Dieser\ Algorithmus\ f\u00E4rbt\ einen\ Graphen,\ so\ dass\ keine\ benachbarten\ Knoten\r\n\ die\ gleiche\ Farbe\ haben\ und\ m\u00F6glichst\ wenige\ Farben\ benutzt\ werden.\r\n\ Algorithmus\:\ Beispieldatei,\ in\ der\ Sch\u00FCler\ den\ Algorithmus\ selbst\ umsetzen\ k\u00F6nnen\r\n\r\n\ @version\ 1.0\ from\ 10.12.2020\r\n\ @author\ Thomas\ Schaller\r\n
-comment1.params=
-comment1.target=java.lang.String\ getBezeichnung()
-comment2.params=
-comment2.target=void\ fuehreAlgorithmusAus()
-numComments=3
+#BlueJ class context
+comment0.target=GraphAlgo_Coloring_Schueler
+comment0.text=\n\ Dieser\ Algorithmus\ f\u00E4rbt\ einen\ Graphen,\ so\ dass\ keine\ benachbarten\ Knoten\n\ die\ gleiche\ Farbe\ haben\ und\ m\u00F6glichst\ wenige\ Farben\ benutzt\ werden.\n\ Algorithmus\:\ Beispieldatei,\ in\ der\ Sch\u00FCler\ den\ Algorithmus\ selbst\ umsetzen\ k\u00F6nnen\n\n\ @version\ 1.0\ from\ 10.12.2020\n\ @author\ Thomas\ Schaller\n
+comment1.params=
+comment1.target=java.lang.String\ getBezeichnung()
+comment2.params=
+comment2.target=void\ fuehreAlgorithmusAus()
+numComments=3
diff --git a/eigeneAlgorithmen/package.bluej b/eigeneAlgorithmen/package.bluej
index f28b2bf..ed5c45c 100644
--- a/eigeneAlgorithmen/package.bluej
+++ b/eigeneAlgorithmen/package.bluej
@@ -1,14 +1,14 @@
#BlueJ package file
-objectbench.height=185
-objectbench.width=1892
+objectbench.height=93
+objectbench.width=776
package.divider.horizontal=0.599476439790576
-package.divider.vertical=0.8004158004158004
-package.editor.height=763
-package.editor.width=1765
-package.editor.x=0
-package.editor.y=0
-package.frame.height=1053
-package.frame.width=1920
+package.divider.vertical=0.8003992015968064
+package.editor.height=394
+package.editor.width=659
+package.editor.x=819
+package.editor.y=382
+package.frame.height=600
+package.frame.width=800
package.numDependencies=0
package.numTargets=1
package.showExtends=true
@@ -22,6 +22,6 @@ target1.height=50
target1.name=GraphAlgo_Coloring_Schueler
target1.showInterface=false
target1.type=ClassTarget
-target1.width=250
+target1.width=220
target1.x=10
target1.y=90
diff --git a/graph/Graph.ctxt b/graph/Graph.ctxt
index 67e23ff..a77a112 100644
--- a/graph/Graph.ctxt
+++ b/graph/Graph.ctxt
@@ -1,139 +1,139 @@
-#BlueJ class context
-comment0.target=Graph
-comment0.text=\r\n\ Dies\ ist\ das\ Herz\ vom\ "GraphTester"\ -\ der\ Graph\ selber,\ gepeichert\ als\ Adjazenzliste.\r\n\ Die\ Klasse\ erlaubt\ durch\ geeignete\ Methoden\:\r\n\ -\ die\ Speicherung\ als\ Adjazenzmatrix,\r\n\ -\ das\ Hinzufuegen\ und\ Loeschen\ von\ knoten\ und\ Kanten,\r\n\ -\ das\ Markieren\ von\ Knoten\ und\ Kanten,\r\n\ -\ eine\ Aussage\ darueber,\ ob\ Knoten\ oder\ Kanten\ enthalten\ sind\ und\r\n\ -\ eine\ Ausgabe\ des\ Graphen\ in\ textueller\ Form\ sowie\ als\ csv-Datei.\r\n\ \r\n\ \r\n\ @author\ Dirk\ Zechnall,\ Thomas\ Schaller\r\n\ @version\ 31.01.2021\ (v6.5)\r\n
-comment1.params=isGerichtet\ isGewichtet
-comment1.target=Graph(boolean,\ boolean)
-comment1.text=\r\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Graphen\ (genauer\ eine\ neue\ Adjazenzliste)\r\n\ @param\ isGerichtet\ gibt\ an,\ ob\ es\ sich\ um\ einen\ gerichteten\ Graphen\ handelt\r\n\ @param\ isGewichtet\ gibt\ an,\ ob\ die\ Kanten\ gewichtet\ sind.\r\n
-comment10.params=k
-comment10.target=int\ getNummer(Kante)
-comment10.text=\ Gibt\ die\ Nummer\ einer\ Kante\ zur\u00FCck\r\n\ @param\ \ k\ gesuchte\ Kante\r\n\ @return\ Nummer\ der\ Kante\ (mit\ 0\ beginnend)\r\n
-comment11.params=
-comment11.target=double[][]\ getAdjazenzMatrix()
-comment11.text=\r\n\ Die\ Methode\ getAdjazenzMatrix()\ gibt\ die\ Adjazenzmatrix\ zurueck.\r\n\ \r\n\ @return\ \ double[][]\ Die\ AdjazenzMatrix\ als\ zweidimensionales\ Array\r\n
-comment12.params=filter
-comment12.target=java.util.List\ getAlleKanten(java.util.function.Predicate[])
-comment12.text=\r\n\ Gibt\ eine\ Liste\ aller\ Kanten\ des\ Graphen\ zur\u00FCck.\r\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ Liste\ aller\ Kanten\r\n
-comment13.params=
-comment13.target=void\ entferneMarkierungBeiAllenKnoten()
-comment13.text=\r\n\ Entfernt\ die\ Markierung\ bei\ allen\ Knoten\ des\ Graphen.\r\n
-comment14.params=
-comment14.target=void\ initialisiereAlleKnoten()
-comment14.text=\r\n\ Initialisiert\ alle\ Knoten\ des\ Graphen.\r\n
-comment15.params=
-comment15.target=void\ initialisiereAlleKanten()
-comment15.text=\r\n\ Initialisiert\ alle\ Kanten\ des\ Graphen.\r\n
-comment16.params=k
-comment16.target=boolean\ isKnotenEnthalten(Knoten)
-comment16.text=\r\n\ Ueberprueft,\ ob\ ein\ Knoten\ in\ der\ Knotenliste\ enthalten\ ist.\r\n\ Sobald\ in\ der\ Knotenliste\ der\ Knoten\ k\ gefunden\ wird,\ wird\ true\ ausgegeben.\r\n\ \r\n\ @param\ \ k\ \ Der\ gesuchte\ Knoten\r\n\ @return\ \ true\=\ ist\ enthalten,\ false\ \=\ ist\ nicht\ enthalten\r\n
-comment17.params=
-comment17.target=int\ getAnzahlKnoten()
-comment17.text=\r\n\ Gibt\ die\ Anzahl\ der\ Knoten\ im\ Graph\ zurueck\r\n\ \r\n\ @return\ \ Anzahl\ der\ Knoten\r\n
-comment18.params=filter
-comment18.target=java.util.List\ getAlleKnoten(java.util.function.Predicate[])
-comment18.text=\r\n\ Gibt\ eine\ Liste\ aller\ Knoten\ des\ Graphen\ zurueck.\ \r\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ \ Die\ Knotenliste.\ Falls\ leer\ wird\ eine\ leere\ Liste\ \ zurueckgegeben\r\n
-comment19.params=k\ filter
-comment19.target=java.util.List\ getNachbarknoten(Knoten,\ java.util.function.Predicate[])
-comment19.text=\r\n\ Gibt\ die\ Liste\ aller\ Nachbarknoten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \r\n\r\n\ @param\ \ \ k\ \ \ \ Der\ Knoten,\ zu\ dem\ die\ Adjazenzliste\ gesucht\ wird\r\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ \ Liste\ der\ Nachbarknoten\r\n
-comment2.params=
-comment2.target=Graph()
-comment2.text=\r\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ ungerichteten,\ ungewichteten\ Graphen\ (genauer\ eine\ neue\ Adjazenzliste)\r\n
-comment20.params=k\ filter
-comment20.target=java.util.List\ getAusgehendeKanten(Knoten,\ java.util.function.Predicate[])
-comment20.text=\r\n\ Gibt\ eine\ Liste\ der\ ausgehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \r\n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \r\n\ unterschieden.\r\n\r\n\ @param\ \ \ k\ \ \ \ Der\ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\r\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ \ Liste\ der\ ausgehenden\ Kanten.\r\n
-comment21.params=knotennr\ filter
-comment21.target=java.util.List\ getAusgehendeKanten(int,\ java.util.function.Predicate[])
-comment21.text=\r\n\ Gibt\ eine\ Liste\ der\ ausgehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \r\n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \r\n\ unterschieden.\r\n\r\n\ @param\ \ \ knotennr\ \ \ \ Nummer\ des\ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\r\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ \ Liste\ der\ ausgehenden\ Kanten.\r\n
-comment22.params=knotennr\ filter
-comment22.target=java.util.List\ getEingehendeKanten(int,\ java.util.function.Predicate[])
-comment22.text=\r\n\ Gibt\ eine\ Liste\ der\ eingehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \r\n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \r\n\ unterschieden.\r\n\r\n\ @param\ \ \ knotennr\ \ \ \ Die\ Nummer\ des\ Knotens,\ zu\ dem\ die\ Kanten\ gesucht\ werden\r\n\ @param\ \ \ filter\ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ \ Liste\ der\ eingehenden\ Kanten.\r\n
-comment23.params=k\ filter
-comment23.target=java.util.List\ getEingehendeKanten(Knoten,\ java.util.function.Predicate[])
-comment23.text=\r\n\ Gibt\ eine\ Liste\ der\ eingehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \r\n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \r\n\ unterschieden.\r\n\r\n\ @param\ \ \ k\ \ \ \ \ \ \ \ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\r\n\ @param\ \ \ filter\ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\r\n\ @return\ \ Liste\ der\ eingehenden\ Kanten.\r\n
-comment24.params=knotennr
-comment24.target=Knoten\ getKnoten(int)
-comment24.text=\r\n\ Liefert\ einen\ Knoten\ des\ Graphen\r\n\ @param\ knotennr\ Nummer\ der\ Knoten\ (beginnend\ mit\ 0)\r\n\ @return\ liefert\ den\ Knoten\ mit\ dieser\ Nummer\r\n
-comment25.params=k
-comment25.target=void\ neuerKnoten(Knoten)
-comment25.text=\r\n\ F\u00FCgt\ einen\ Knoten\ dem\ Graph\ hinzu.\r\n\ @param\ \ k\ \ \ \ Der\ Knoten,\ der\ hinzugefuegt\ werden\ soll\r\n
-comment26.params=knotennr
-comment26.target=void\ entferneKnoten(int)
-comment26.text=\r\n\ Entfernt\ einen\ Knoten\ aus\ dem\ Graphen\r\n\r\n\ @param\ \ \ knotennr\ \ \ \ Nummer\ des\ Knotens,\ der\ geloescht\ werden\ soll\r\n
-comment27.params=k
-comment27.target=boolean\ entferneKnoten(Knoten)
-comment27.text=\r\n\ Entfernt\ einen\ Knoten\ aus\ dem\ Graphen\r\n\r\n\ @param\ \ \ k\ \ \ \ Knoten,\ der\ geloescht\ werden\ soll\r\n\ @return\ \ gibt\ zur\u00FCck,\ ob\ der\ Knoten\ erfolgreich\ entfernt\ wurde.\r\n
-comment28.params=e
-comment28.target=boolean\ isKanteEnthalten(Kante)
-comment28.text=\r\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\r\n\r\n\ @param\ \ \ e\ \ \ \ \ Die\ zu\ suchende\ Kante\r\n\ @return\ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\r\n
-comment29.params=startNr\ zielNr
-comment29.target=boolean\ isKanteEnthalten(int,\ int)
-comment29.text=\r\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\ \r\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\r\n\r\n\ @param\ \ \ startNr\ \ \ \ Nummer\ des\ Startknotens\r\n\ @param\ \ \ zielNr\ \ \ \ \ Nummer\ des\ Zielknotens\r\n\ @return\ \ boolean\ \ \ \ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\r\n
-comment3.params=
-comment3.target=void\ loescheGraph()
-comment3.text=\r\n\ L\u00F6scht\ alle\ Knoten\ und\ Kanten\ eines\ Graphen\ und\ stellt\ auf\ ungerichtet\ und\ ungewichtet\ zur\u00FCck.\r\n
-comment30.params=start\ ziel
-comment30.target=boolean\ isKanteEnthalten(Knoten,\ Knoten)
-comment30.text=\r\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\ \r\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\r\n\r\n\ @param\ \ \ start\ \ \ \ Startknoten\r\n\ @param\ \ \ ziel\ \ \ \ \ Zielknoten\r\n\ @return\ \ boolean\ \ \ \ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\r\n
-comment31.params=start\ ziel
-comment31.target=Kante\ getKante(Knoten,\ Knoten)
-comment31.text=\r\n\ Gibt\ eine\ gesuchte\ Kante\ aus\ dem\ Graphen\ zurueck.\r\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\r\n\r\n\ @param\ \ \ start\ \ \ \ Der\ StartKnoten\r\n\ @param\ \ \ ziel\ \ \ \ \ Der\ StartKnoten\r\n\ @return\ \ \ \ Die\ gesuchte\ Kante\r\n
-comment32.params=startnr\ zielnr
-comment32.target=Kante\ getKante(int,\ int)
-comment32.text=\r\n\ Gibt\ eine\ gesuchte\ Kante\ aus\ dem\ Graphen\ zurueck.\r\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\r\n\r\n\ @param\ \ \ startnr\ \ \ \ Der\ Nummer\ des\ StartKnoten\r\n\ @param\ \ \ zielnr\ \ \ \ \ Die\ Nummer\ des\ Zielknoten\r\n\ @return\ \ Die\ gesuchte\ Kante\r\n
-comment33.params=e
-comment33.target=void\ neueKante(Kante)
-comment33.text=\r\n\ Fuegt\ eine\ Kante\ dem\ Graphen\ hinzu.\r\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ schon\ im\ Graphen\ enthalten\ ist.\r\n\ \r\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ erstellt.\r\n\r\n\ @param\ \ \ e\ \ \ \ \ Die\ Kante,\ die\ hinzugefuegt\ werden\ soll\r\n
-comment34.params=start\ ziel\ gewicht
-comment34.target=void\ neueKante(Knoten,\ Knoten,\ double)
-comment34.text=\r\n\ Fuegt\ eine\ Kante\ dem\ Graphen\ hinzu.\r\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ schon\ im\ Graphen\ enthalten\ ist.\r\n\ \r\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ erstellt.\r\n\r\n\ @param\ \ \ start\ \ \ \ \ Der\ StartKnoten\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\r\n\ @param\ \ \ ziel\ \ \ \ \ Der\ ZielKnoten\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\r\n\ @param\ \ \ gewicht\ \ \ \ \ Das\ Gewicht\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\r\n
-comment35.params=e
-comment35.target=void\ entferneKante(Kante)
-comment35.text=\r\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\r\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\r\n\r\n\ @param\ \ \ e\ Die\ zu\ entfernende\ Kante\r\n
-comment36.params=start\ ziel
-comment36.target=void\ entferneKante(Knoten,\ Knoten)
-comment36.text=\r\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\r\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ ueberhaupt\ im\ Graphen\ enthalten\ ist.\r\n\ \r\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\r\n\r\n\ @param\ \ \ start\ \ \ \ StartKnotens\r\n\ @param\ \ \ ziel\ \ \ \ \ ZielKnotens\r\n
-comment37.params=startnr\ zielnr
-comment37.target=void\ entferneKante(int,\ int)
-comment37.text=\r\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\r\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\r\n\r\n\ @param\ \ \ startnr\ \ \ \ Nummer\ des\ StartKnotens\r\n\ @param\ \ \ zielnr\ \ \ \ \ Nummer\ des\ ZielKnotens\r\n
-comment38.params=
-comment38.target=boolean\ isLeer()
-comment38.text=\r\n\ Ueberprueft,\ ob\ die\ Adjazenzliste\ leer\ ist,\ d.h.\ keine\ Knoten\ im\ Graphen\ enthalten\ sind.\r\n\ \r\n\ @return\ \ \ true,\ wenn\ die\ Liste\ leer\ ist,\ sonst\ false\r\n
-comment39.params=
-comment39.target=void\ loescheAlles()
-comment39.text=\r\n\ Loescht\ den\ gesamten\ Graphen\r\n
-comment4.params=csvParser
-comment4.target=boolean\ ladeGraph(imp.Table)
-comment4.text=\r\n\ Ein\ Graph\ wird\ aus\ einer\ csv-Datei\ erstellt,\ die\ entweder\r\n\ eine\ Matrix\ oder\ eine\ Adjazenzliste\ enth\u00E4lt,\ die\ den\ Graph\ beschreibt.\r\n\r\n\ @param\ \ csvParser\ \ \ Eine\ CSV-Datei\ als\ Table-Objekt\r\n\ @return\ gibt\ zur\u00FCck,\ ob\ das\ Laden\ erfolgreich\ war\r\n
-comment40.params=asMatrix
-comment40.target=java.lang.String\ toCSVString(boolean)
-comment40.text=\r\n\ Die\ Methode\ erstellt\ eine\ CSV-Ausgabe\ des\ Graphen\ entweder\ als\ Adjazenzliste\ oder\ als\ Adjazenzmatrix.\r\n\r\n\ @param\ \ \ asMatrix\ \ \ \ true,\ falls\ die\ CSV-Ausgabe\ eine\ AdjazenzMatrix\ sein\ soll,\ sonst\ false\r\n\ @return\ \ CSV-Ausgabe\r\n
-comment41.params=
-comment41.target=java.lang.String\ toString()
-comment41.text=\r\n\ Textuelle\ Repraesentation\ des\ Graphen.\r\n\ \r\n\ @return\ \ Der\ Graph\ als\ Stringrepraesentation\r\n
-comment42.params=
-comment42.target=void\ ausgabe()
-comment42.text=\r\n\ Konsolenausgabe\ der\ textuellen\ Repraesentation\ des\ Graphen.\r\n
-comment43.params=k\ zeigeWert
-comment43.target=java.lang.String\ getKnoteninfo(Knoten,\ boolean)
-comment43.text=\r\n\ Info\ \u00FCber\ einen\ Knoten\ zur\u00FCckgeben\ \r\n\ @param\ k\ Knoten,\ des\ Info\ ermittelt\ werden\ soll\r\n\ @param\ zeigeWert\ Soll\ der\ Wert\ des\ Knoten\ in\ der\ Info\ enthalten\ sein\r\n\ @return\ Infotext\ oder\ Nummer\ des\ Knoten\ und\ ggf.\ sein\ Wert\r\n
-comment44.params=
-comment44.target=java.util.List\ getStatus()
-comment44.text=\ Speichert\ den\ Zustand\ des\ Graphen\ als\ String-List\r\n\ @return\ List\ mit\ Zustand\r\n
-comment45.params=status
-comment45.target=void\ setStatus(java.util.List)
-comment45.text=\ Stellt\ den\ Zustand\ des\ Graphen\ aus\ String-List\ wieder\ her\r\n\ @param\ status\ List\ mit\ Zustand\r\n
-comment5.params=isGewichtet
-comment5.target=void\ setGewichtet(boolean)
-comment5.text=\r\n\ Legt\ fest,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist.\r\n\r\n\ @param\ isGewichtet\ neuer\ Wert\r\n
-comment6.params=
-comment6.target=boolean\ isGewichtet()
-comment6.text=\r\n\ Gibt\ zurueck,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist\r\n\r\n\ @return\ gewichtet?\ (true/false)\r\n
-comment7.params=isGerichtet
-comment7.target=void\ setGerichtet(boolean)
-comment7.text=\r\n\ Legt\ fest,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist.\r\n\r\n\ @param\ \ isGerichtet\ neuer\ Wert\r\n
-comment8.params=
-comment8.target=boolean\ isGerichtet()
-comment8.text=\r\n\ Gibt\ zurueck,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist.\r\n\r\n\ @return\ \ gerichtet?\ (true/false)\r\n
-comment9.params=k
-comment9.target=int\ getNummer(Knoten)
-comment9.text=\ Gibt\ die\ Nummer\ eines\ Knotens\ im\ Graphen\ zur\u00FCck\r\n\ @param\ \ k\ \ gesuchter\ Knoten\r\n\ @return\ Nummer\ des\ Knotens\ (mit\ 0\ beginnend)\r\n
-numComments=46
+#BlueJ class context
+comment0.target=Graph
+comment0.text=\n\ Dies\ ist\ das\ Herz\ vom\ "GraphTester"\ -\ der\ Graph\ selber,\ gepeichert\ als\ Adjazenzliste.\n\ Die\ Klasse\ erlaubt\ durch\ geeignete\ Methoden\:\n\ -\ die\ Speicherung\ als\ Adjazenzmatrix,\n\ -\ das\ Hinzufuegen\ und\ Loeschen\ von\ knoten\ und\ Kanten,\n\ -\ das\ Markieren\ von\ Knoten\ und\ Kanten,\n\ -\ eine\ Aussage\ darueber,\ ob\ Knoten\ oder\ Kanten\ enthalten\ sind\ und\n\ -\ eine\ Ausgabe\ des\ Graphen\ in\ textueller\ Form\ sowie\ als\ csv-Datei.\n\ \n\ \n\ @author\ Dirk\ Zechnall,\ Thomas\ Schaller\n\ @version\ 31.01.2021\ (v6.5)\n
+comment1.params=isGerichtet\ isGewichtet
+comment1.target=Graph(boolean,\ boolean)
+comment1.text=\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Graphen\ (genauer\ eine\ neue\ Adjazenzliste)\n\ @param\ isGerichtet\ gibt\ an,\ ob\ es\ sich\ um\ einen\ gerichteten\ Graphen\ handelt\n\ @param\ isGewichtet\ gibt\ an,\ ob\ die\ Kanten\ gewichtet\ sind.\n
+comment10.params=k
+comment10.target=int\ getNummer(Kante)
+comment10.text=\ Gibt\ die\ Nummer\ einer\ Kante\ zur\u00FCck\n\ @param\ \ k\ gesuchte\ Kante\n\ @return\ Nummer\ der\ Kante\ (mit\ 0\ beginnend)\n
+comment11.params=
+comment11.target=double[][]\ getAdjazenzMatrix()
+comment11.text=\n\ Die\ Methode\ getAdjazenzMatrix()\ gibt\ die\ Adjazenzmatrix\ zurueck.\n\ \n\ @return\ \ double[][]\ Die\ AdjazenzMatrix\ als\ zweidimensionales\ Array\n
+comment12.params=filter
+comment12.target=java.util.List\ getAlleKanten(java.util.function.Predicate[])
+comment12.text=\n\ Gibt\ eine\ Liste\ aller\ Kanten\ des\ Graphen\ zur\u00FCck.\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ Liste\ aller\ Kanten\n
+comment13.params=
+comment13.target=void\ entferneMarkierungBeiAllenKnoten()
+comment13.text=\n\ Entfernt\ die\ Markierung\ bei\ allen\ Knoten\ des\ Graphen.\n
+comment14.params=
+comment14.target=void\ initialisiereAlleKnoten()
+comment14.text=\n\ Initialisiert\ alle\ Knoten\ des\ Graphen.\n
+comment15.params=
+comment15.target=void\ initialisiereAlleKanten()
+comment15.text=\n\ Initialisiert\ alle\ Kanten\ des\ Graphen.\n
+comment16.params=k
+comment16.target=boolean\ isKnotenEnthalten(Knoten)
+comment16.text=\n\ Ueberprueft,\ ob\ ein\ Knoten\ in\ der\ Knotenliste\ enthalten\ ist.\n\ Sobald\ in\ der\ Knotenliste\ der\ Knoten\ k\ gefunden\ wird,\ wird\ true\ ausgegeben.\n\ \n\ @param\ \ k\ \ Der\ gesuchte\ Knoten\n\ @return\ \ true\=\ ist\ enthalten,\ false\ \=\ ist\ nicht\ enthalten\n
+comment17.params=
+comment17.target=int\ getAnzahlKnoten()
+comment17.text=\n\ Gibt\ die\ Anzahl\ der\ Knoten\ im\ Graph\ zurueck\n\ \n\ @return\ \ Anzahl\ der\ Knoten\n
+comment18.params=filter
+comment18.target=java.util.List\ getAlleKnoten(java.util.function.Predicate[])
+comment18.text=\n\ Gibt\ eine\ Liste\ aller\ Knoten\ des\ Graphen\ zurueck.\ \n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Die\ Knotenliste.\ Falls\ leer\ wird\ eine\ leere\ Liste\ \ zurueckgegeben\n
+comment19.params=k\ filter
+comment19.target=java.util.List\ getNachbarknoten(Knoten,\ java.util.function.Predicate[])
+comment19.text=\n\ Gibt\ die\ Liste\ aller\ Nachbarknoten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\n\ @param\ \ \ k\ \ \ \ Der\ Knoten,\ zu\ dem\ die\ Adjazenzliste\ gesucht\ wird\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ Nachbarknoten\n
+comment2.params=
+comment2.target=Graph()
+comment2.text=\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ ungerichteten,\ ungewichteten\ Graphen\ (genauer\ eine\ neue\ Adjazenzliste)\n
+comment20.params=k\ filter
+comment20.target=java.util.List\ getAusgehendeKanten(Knoten,\ java.util.function.Predicate[])
+comment20.text=\n\ Gibt\ eine\ Liste\ der\ ausgehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ k\ \ \ \ Der\ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ ausgehenden\ Kanten.\n
+comment21.params=knotennr\ filter
+comment21.target=java.util.List\ getAusgehendeKanten(int,\ java.util.function.Predicate[])
+comment21.text=\n\ Gibt\ eine\ Liste\ der\ ausgehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ knotennr\ \ \ \ Nummer\ des\ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ ausgehenden\ Kanten.\n
+comment22.params=knotennr\ filter
+comment22.target=java.util.List\ getEingehendeKanten(int,\ java.util.function.Predicate[])
+comment22.text=\n\ Gibt\ eine\ Liste\ der\ eingehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ knotennr\ \ \ \ Die\ Nummer\ des\ Knotens,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ eingehenden\ Kanten.\n
+comment23.params=k\ filter
+comment23.target=java.util.List\ getEingehendeKanten(Knoten,\ java.util.function.Predicate[])
+comment23.text=\n\ Gibt\ eine\ Liste\ der\ eingehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ k\ \ \ \ \ \ \ \ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ eingehenden\ Kanten.\n
+comment24.params=knotennr
+comment24.target=Knoten\ getKnoten(int)
+comment24.text=\n\ Liefert\ einen\ Knoten\ des\ Graphen\n\ @param\ knotennr\ Nummer\ der\ Knoten\ (beginnend\ mit\ 0)\n\ @return\ liefert\ den\ Knoten\ mit\ dieser\ Nummer\n
+comment25.params=k
+comment25.target=void\ neuerKnoten(Knoten)
+comment25.text=\n\ F\u00FCgt\ einen\ Knoten\ dem\ Graph\ hinzu.\n\ @param\ \ k\ \ \ \ Der\ Knoten,\ der\ hinzugefuegt\ werden\ soll\n
+comment26.params=knotennr
+comment26.target=void\ entferneKnoten(int)
+comment26.text=\n\ Entfernt\ einen\ Knoten\ aus\ dem\ Graphen\n\n\ @param\ \ \ knotennr\ \ \ \ Nummer\ des\ Knotens,\ der\ geloescht\ werden\ soll\n
+comment27.params=k
+comment27.target=boolean\ entferneKnoten(Knoten)
+comment27.text=\n\ Entfernt\ einen\ Knoten\ aus\ dem\ Graphen\n\n\ @param\ \ \ k\ \ \ \ Knoten,\ der\ geloescht\ werden\ soll\n\ @return\ \ gibt\ zur\u00FCck,\ ob\ der\ Knoten\ erfolgreich\ entfernt\ wurde.\n
+comment28.params=e
+comment28.target=boolean\ isKanteEnthalten(Kante)
+comment28.text=\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\n\n\ @param\ \ \ e\ \ \ \ \ Die\ zu\ suchende\ Kante\n\ @return\ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\n
+comment29.params=startNr\ zielNr
+comment29.target=boolean\ isKanteEnthalten(int,\ int)
+comment29.text=\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\ \n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ startNr\ \ \ \ Nummer\ des\ Startknotens\n\ @param\ \ \ zielNr\ \ \ \ \ Nummer\ des\ Zielknotens\n\ @return\ \ boolean\ \ \ \ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\n
+comment3.params=
+comment3.target=void\ loescheGraph()
+comment3.text=\n\ L\u00F6scht\ alle\ Knoten\ und\ Kanten\ eines\ Graphen\ und\ stellt\ auf\ ungerichtet\ und\ ungewichtet\ zur\u00FCck.\n
+comment30.params=start\ ziel
+comment30.target=boolean\ isKanteEnthalten(Knoten,\ Knoten)
+comment30.text=\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\ \n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ start\ \ \ \ Startknoten\n\ @param\ \ \ ziel\ \ \ \ \ Zielknoten\n\ @return\ \ boolean\ \ \ \ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\n
+comment31.params=start\ ziel
+comment31.target=Kante\ getKante(Knoten,\ Knoten)
+comment31.text=\n\ Gibt\ eine\ gesuchte\ Kante\ aus\ dem\ Graphen\ zurueck.\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ start\ \ \ \ Der\ StartKnoten\n\ @param\ \ \ ziel\ \ \ \ \ Der\ StartKnoten\n\ @return\ \ \ \ Die\ gesuchte\ Kante\n
+comment32.params=startnr\ zielnr
+comment32.target=Kante\ getKante(int,\ int)
+comment32.text=\n\ Gibt\ eine\ gesuchte\ Kante\ aus\ dem\ Graphen\ zurueck.\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ startnr\ \ \ \ Der\ Nummer\ des\ StartKnoten\n\ @param\ \ \ zielnr\ \ \ \ \ Die\ Nummer\ des\ Zielknoten\n\ @return\ \ Die\ gesuchte\ Kante\n
+comment33.params=e
+comment33.target=void\ neueKante(Kante)
+comment33.text=\n\ Fuegt\ eine\ Kante\ dem\ Graphen\ hinzu.\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ schon\ im\ Graphen\ enthalten\ ist.\n\ \n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ erstellt.\n\n\ @param\ \ \ e\ \ \ \ \ Die\ Kante,\ die\ hinzugefuegt\ werden\ soll\n
+comment34.params=start\ ziel\ gewicht
+comment34.target=void\ neueKante(Knoten,\ Knoten,\ double)
+comment34.text=\n\ Fuegt\ eine\ Kante\ dem\ Graphen\ hinzu.\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ schon\ im\ Graphen\ enthalten\ ist.\n\ \n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ erstellt.\n\n\ @param\ \ \ start\ \ \ \ \ Der\ StartKnoten\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\n\ @param\ \ \ ziel\ \ \ \ \ Der\ ZielKnoten\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\n\ @param\ \ \ gewicht\ \ \ \ \ Das\ Gewicht\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\n
+comment35.params=e
+comment35.target=void\ entferneKante(Kante)
+comment35.text=\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\n\n\ @param\ \ \ e\ Die\ zu\ entfernende\ Kante\n
+comment36.params=start\ ziel
+comment36.target=void\ entferneKante(Knoten,\ Knoten)
+comment36.text=\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ ueberhaupt\ im\ Graphen\ enthalten\ ist.\n\ \n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\n\n\ @param\ \ \ start\ \ \ \ StartKnotens\n\ @param\ \ \ ziel\ \ \ \ \ ZielKnotens\n
+comment37.params=startnr\ zielnr
+comment37.target=void\ entferneKante(int,\ int)
+comment37.text=\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\n\n\ @param\ \ \ startnr\ \ \ \ Nummer\ des\ StartKnotens\n\ @param\ \ \ zielnr\ \ \ \ \ Nummer\ des\ ZielKnotens\n
+comment38.params=
+comment38.target=boolean\ isLeer()
+comment38.text=\n\ Ueberprueft,\ ob\ die\ Adjazenzliste\ leer\ ist,\ d.h.\ keine\ Knoten\ im\ Graphen\ enthalten\ sind.\n\ \n\ @return\ \ \ true,\ wenn\ die\ Liste\ leer\ ist,\ sonst\ false\n
+comment39.params=
+comment39.target=void\ loescheAlles()
+comment39.text=\n\ Loescht\ den\ gesamten\ Graphen\n
+comment4.params=csvParser
+comment4.target=boolean\ ladeGraph(imp.Table)
+comment4.text=\n\ Ein\ Graph\ wird\ aus\ einer\ csv-Datei\ erstellt,\ die\ entweder\n\ eine\ Matrix\ oder\ eine\ Adjazenzliste\ enth\u00E4lt,\ die\ den\ Graph\ beschreibt.\n\n\ @param\ \ csvParser\ \ \ Eine\ CSV-Datei\ als\ Table-Objekt\n\ @return\ gibt\ zur\u00FCck,\ ob\ das\ Laden\ erfolgreich\ war\n
+comment40.params=asMatrix
+comment40.target=java.lang.String\ toCSVString(boolean)
+comment40.text=\n\ Die\ Methode\ erstellt\ eine\ CSV-Ausgabe\ des\ Graphen\ entweder\ als\ Adjazenzliste\ oder\ als\ Adjazenzmatrix.\n\n\ @param\ \ \ asMatrix\ \ \ \ true,\ falls\ die\ CSV-Ausgabe\ eine\ AdjazenzMatrix\ sein\ soll,\ sonst\ false\n\ @return\ \ CSV-Ausgabe\n
+comment41.params=
+comment41.target=java.lang.String\ toString()
+comment41.text=\n\ Textuelle\ Repraesentation\ des\ Graphen.\n\ \n\ @return\ \ Der\ Graph\ als\ Stringrepraesentation\n
+comment42.params=
+comment42.target=void\ ausgabe()
+comment42.text=\n\ Konsolenausgabe\ der\ textuellen\ Repraesentation\ des\ Graphen.\n
+comment43.params=k\ zeigeWert
+comment43.target=java.lang.String\ getKnoteninfo(Knoten,\ boolean)
+comment43.text=\n\ Info\ \u00FCber\ einen\ Knoten\ zur\u00FCckgeben\ \n\ @param\ k\ Knoten,\ des\ Info\ ermittelt\ werden\ soll\n\ @param\ zeigeWert\ Soll\ der\ Wert\ des\ Knoten\ in\ der\ Info\ enthalten\ sein\n\ @return\ Infotext\ oder\ Nummer\ des\ Knoten\ und\ ggf.\ sein\ Wert\n
+comment44.params=
+comment44.target=java.util.List\ getStatus()
+comment44.text=\ Speichert\ den\ Zustand\ des\ Graphen\ als\ String-List\n\ @return\ List\ mit\ Zustand\n
+comment45.params=status
+comment45.target=void\ setStatus(java.util.List)
+comment45.text=\ Stellt\ den\ Zustand\ des\ Graphen\ aus\ String-List\ wieder\ her\n\ @param\ status\ List\ mit\ Zustand\n
+comment5.params=isGewichtet
+comment5.target=void\ setGewichtet(boolean)
+comment5.text=\n\ Legt\ fest,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist.\n\n\ @param\ isGewichtet\ neuer\ Wert\n
+comment6.params=
+comment6.target=boolean\ isGewichtet()
+comment6.text=\n\ Gibt\ zurueck,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist\n\n\ @return\ gewichtet?\ (true/false)\n
+comment7.params=isGerichtet
+comment7.target=void\ setGerichtet(boolean)
+comment7.text=\n\ Legt\ fest,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist.\n\n\ @param\ \ isGerichtet\ neuer\ Wert\n
+comment8.params=
+comment8.target=boolean\ isGerichtet()
+comment8.text=\n\ Gibt\ zurueck,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist.\n\n\ @return\ \ gerichtet?\ (true/false)\n
+comment9.params=k
+comment9.target=int\ getNummer(Knoten)
+comment9.text=\ Gibt\ die\ Nummer\ eines\ Knotens\ im\ Graphen\ zur\u00FCck\n\ @param\ \ k\ \ gesuchter\ Knoten\n\ @return\ Nummer\ des\ Knotens\ (mit\ 0\ beginnend)\n
+numComments=46
diff --git a/graph/GraphElement.ctxt b/graph/GraphElement.ctxt
index 4c76bf2..dcc5d91 100644
--- a/graph/GraphElement.ctxt
+++ b/graph/GraphElement.ctxt
@@ -1,10 +1,10 @@
-#BlueJ class context
-comment0.target=GraphElement
-comment0.text=\r\n\ Die\ Klasse\ GraphElement\ ist\ eine\ Oberklasse\ von\ Knoten\ und\ Kanten.\r\n\ Sie\ ist\ nur\ f\u00FCr\ die\ interne\ Verarbeitung\ wichtig.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v1.1\r\n
-comment1.params=e
-comment1.target=int\ compareTo(GraphElement)
-comment2.params=
-comment2.target=java.lang.String\ getStatus()
-comment3.params=status
-comment3.target=void\ setStatus(java.lang.String)
-numComments=4
+#BlueJ class context
+comment0.target=GraphElement
+comment0.text=\n\ Die\ Klasse\ GraphElement\ ist\ eine\ Oberklasse\ von\ Knoten\ und\ Kanten.\n\ Sie\ ist\ nur\ f\u00FCr\ die\ interne\ Verarbeitung\ wichtig.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v1.1\n
+comment1.params=e
+comment1.target=int\ compareTo(GraphElement)
+comment2.params=
+comment2.target=java.lang.String\ getStatus()
+comment3.params=status
+comment3.target=void\ setStatus(java.lang.String)
+numComments=4
diff --git a/graph/GraphOptions.ctxt b/graph/GraphOptions.ctxt
index 04588c9..ebf18f0 100644
--- a/graph/GraphOptions.ctxt
+++ b/graph/GraphOptions.ctxt
@@ -1,12 +1,12 @@
-#BlueJ class context
-comment0.target=GraphOptions
-comment0.text=\r\n\ Die\ Klasse\ GraphOptions\ speichert,\ wie\ ein\ Graph\ in\ einem\ Fenster\ vom\ \r\n\ GraphPlotter\ angezeigt\ wird.\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ v6.7\ (9.12.2020)\r\n
-comment1.params=
-comment1.target=GraphOptions()
-comment2.params=csvParser
-comment2.target=void\ ladeGraph(imp.Table)
-comment3.params=
-comment3.target=java.lang.String\ getText()
-comment4.params=
-comment4.target=GraphOptions\ copy()
-numComments=5
+#BlueJ class context
+comment0.target=GraphOptions
+comment0.text=\n\ Die\ Klasse\ GraphOptions\ speichert,\ wie\ ein\ Graph\ in\ einem\ Fenster\ vom\ \n\ GraphPlotter\ angezeigt\ wird.\n\n\ @author\ Thomas\ Schaller\n\ @version\ v6.7\ (9.12.2020)\n
+comment1.params=
+comment1.target=GraphOptions()
+comment2.params=csvParser
+comment2.target=void\ ladeGraph(imp.Table)
+comment3.params=
+comment3.target=java.lang.String\ getText()
+comment4.params=
+comment4.target=GraphOptions\ copy()
+numComments=5
diff --git a/graph/GraphPlotter.ctxt b/graph/GraphPlotter.ctxt
index 54417da..9460701 100644
--- a/graph/GraphPlotter.ctxt
+++ b/graph/GraphPlotter.ctxt
@@ -1,57 +1,57 @@
-#BlueJ class context
-comment0.target=GraphPlotter
-comment0.text=\r\n\ Der\ GraphPlotter\ ist\ das\ Herzstueck\ der\ Visualisierung\ und\ dient\ als\ Schnittstelle\ zur\ GUI.\r\n\ \r\n\ @author\ Thomas\ Schaller\r\n\ @version\ 09.12.2020\ (v6.7)\r\n
-comment1.params=
-comment1.target=GraphPlotter()
-comment1.text=\r\n\ Der\ Konstruktor\ legt\ sowohl\ Einstellungen\ des\ mxGraphen\ (Drag&Drop,\ Editable,\ ...)\ als\ auch\ des\ Graphen\ (gewichtet,\ gerichtet,\ ...)\ fest.\r\n\r\n\ @param\ \ boolean\ isDirected\ \ Gibt\ an,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist\r\n\ @param\ \ boolean\ isWeighted\ \ Gibt\ an,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist\r\n\ @param\ \ String\ hintergrundBild\ \ \ Gibt\ den\ Namen\ eines\ Hintergrundbildes\ an\r\n
-comment10.params=x\ y
-comment10.target=Knoten\ getKnotenAt(int,\ int)
-comment11.params=x\ y
-comment11.target=Kante\ getKanteAt(int,\ int)
-comment12.params=p\ startx\ starty\ endx\ endy
-comment12.target=void\ drawArrow(imp.Picture,\ int,\ int,\ int,\ int)
-comment13.params=color
-comment13.target=java.lang.String\ darker(java.lang.String)
-comment14.params=color
-comment14.target=java.lang.String\ brighter(java.lang.String)
-comment15.params=d
-comment15.target=java.lang.String\ format(double)
-comment16.params=
-comment16.target=imp.Picture\ updateImage()
-comment17.params=
-comment17.target=GraphOptions\ getGraphOptions()
-comment18.params=
-comment18.target=Graph\ getGraph()
-comment18.text=\r\n\ Gibt\ den\ Graphen\ zurueck.\r\n\ \r\n\ @return\ \ Graph\r\n
-comment19.params=
-comment19.target=Knoten\ getSelectedKnoten()
-comment19.text=\r\n\ Gibt\ das\ selektierte\ Knotenobjekt\ zurueck.\r\n\ \r\n\ @return\ \ Object\r\n
-comment2.params=
-comment2.target=void\ setEditable()
-comment20.params=
-comment20.target=java.util.List\ getSelectedKnotenListe()
-comment20.text=\r\n\ Gibt\ die\ selektierte\ KnotenobjektListe\ (als\ Array)\ zurueck.\r\n\ \r\n\ @return\ \ Object[]\r\n
-comment21.params=
-comment21.target=Kante\ getSelectedKante()
-comment21.text=\r\n\ Gibt\ das\ selektierte\ Kantenobjekt\ zurueck.\r\n\ \r\n\ @return\ \ Object\r\n
-comment22.params=
-comment22.target=java.lang.String\ toString()
-comment22.text=\r\n\ Ueberschreibt\ die\ Methode\ toString.\ Eine\ String-Repraesentation\ des\ GraphPlotters\ wird\ ausgegeben.\r\n\r\n\ @return\ \ String\ \ Die\ String-Repraesentation\ des\ GraphPlotters\r\n
-comment23.params=
-comment23.target=void\ ausgabe()
-comment23.text=\r\n\ Gibt\ die\ String-Repraesentation\ des\ GraphPlotters\ auf\ der\ Konsole\ aus.\r\n
-comment3.params=graph\ options
-comment3.target=void\ setGraph(Graph,\ GraphOptions)
-comment4.params=k
-comment4.target=void\ setRestrictTo(GraphElement)
-comment5.params=
-comment5.target=GraphElement\ getRestrictTo()
-comment6.params=mouseEvent
-comment6.target=void\ mouseClicked(javafx.scene.input.MouseEvent)
-comment7.params=mouseEvent
-comment7.target=void\ mouseDown(javafx.scene.input.MouseEvent)
-comment8.params=mouseEvent
-comment8.target=void\ mouseDragged(javafx.scene.input.MouseEvent)
-comment9.params=mouseEvent
-comment9.target=void\ mouseUp(javafx.scene.input.MouseEvent)
-numComments=24
+#BlueJ class context
+comment0.target=GraphPlotter
+comment0.text=\n\ Der\ GraphPlotter\ ist\ das\ Herzstueck\ der\ Visualisierung\ und\ dient\ als\ Schnittstelle\ zur\ GUI.\n\ \n\ @author\ Thomas\ Schaller\n\ @version\ 09.12.2020\ (v6.7)\n
+comment1.params=
+comment1.target=GraphPlotter()
+comment1.text=\n\ Der\ Konstruktor\ legt\ sowohl\ Einstellungen\ des\ mxGraphen\ (Drag&Drop,\ Editable,\ ...)\ als\ auch\ des\ Graphen\ (gewichtet,\ gerichtet,\ ...)\ fest.\n\n\ @param\ \ boolean\ isDirected\ \ Gibt\ an,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist\n\ @param\ \ boolean\ isWeighted\ \ Gibt\ an,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist\n\ @param\ \ String\ hintergrundBild\ \ \ Gibt\ den\ Namen\ eines\ Hintergrundbildes\ an\n
+comment10.params=x\ y
+comment10.target=Knoten\ getKnotenAt(int,\ int)
+comment11.params=x\ y
+comment11.target=Kante\ getKanteAt(int,\ int)
+comment12.params=p\ startx\ starty\ endx\ endy
+comment12.target=void\ drawArrow(imp.Picture,\ int,\ int,\ int,\ int)
+comment13.params=color
+comment13.target=java.lang.String\ darker(java.lang.String)
+comment14.params=color
+comment14.target=java.lang.String\ brighter(java.lang.String)
+comment15.params=d
+comment15.target=java.lang.String\ format(double)
+comment16.params=
+comment16.target=imp.Picture\ updateImage()
+comment17.params=
+comment17.target=GraphOptions\ getGraphOptions()
+comment18.params=
+comment18.target=Graph\ getGraph()
+comment18.text=\n\ Gibt\ den\ Graphen\ zurueck.\n\ \n\ @return\ \ Graph\n
+comment19.params=
+comment19.target=Knoten\ getSelectedKnoten()
+comment19.text=\n\ Gibt\ das\ selektierte\ Knotenobjekt\ zurueck.\n\ \n\ @return\ \ Object\n
+comment2.params=
+comment2.target=void\ setEditable()
+comment20.params=
+comment20.target=java.util.List\ getSelectedKnotenListe()
+comment20.text=\n\ Gibt\ die\ selektierte\ KnotenobjektListe\ (als\ Array)\ zurueck.\n\ \n\ @return\ \ Object[]\n
+comment21.params=
+comment21.target=Kante\ getSelectedKante()
+comment21.text=\n\ Gibt\ das\ selektierte\ Kantenobjekt\ zurueck.\n\ \n\ @return\ \ Object\n
+comment22.params=
+comment22.target=java.lang.String\ toString()
+comment22.text=\n\ Ueberschreibt\ die\ Methode\ toString.\ Eine\ String-Repraesentation\ des\ GraphPlotters\ wird\ ausgegeben.\n\n\ @return\ \ String\ \ Die\ String-Repraesentation\ des\ GraphPlotters\n
+comment23.params=
+comment23.target=void\ ausgabe()
+comment23.text=\n\ Gibt\ die\ String-Repraesentation\ des\ GraphPlotters\ auf\ der\ Konsole\ aus.\n
+comment3.params=graph\ options
+comment3.target=void\ setGraph(Graph,\ GraphOptions)
+comment4.params=k
+comment4.target=void\ setRestrictTo(GraphElement)
+comment5.params=
+comment5.target=GraphElement\ getRestrictTo()
+comment6.params=mouseEvent
+comment6.target=void\ mouseClicked(javafx.scene.input.MouseEvent)
+comment7.params=mouseEvent
+comment7.target=void\ mouseDown(javafx.scene.input.MouseEvent)
+comment8.params=mouseEvent
+comment8.target=void\ mouseDragged(javafx.scene.input.MouseEvent)
+comment9.params=mouseEvent
+comment9.target=void\ mouseUp(javafx.scene.input.MouseEvent)
+numComments=24
diff --git a/graph/Hilfe.ctxt b/graph/Hilfe.ctxt
index 1e51ba8..5908eb5 100644
--- a/graph/Hilfe.ctxt
+++ b/graph/Hilfe.ctxt
@@ -1,15 +1,15 @@
-#BlueJ class context
-comment0.target=Hilfe
-comment1.params=
-comment1.target=void\ loescheAlles()
-comment2.params=text
-comment2.target=void\ append(java.lang.String)
-comment3.params=
-comment3.target=void\ indentMore()
-comment4.params=
-comment4.target=void\ indentLess()
-comment5.params=gp
-comment5.target=void\ setGraphPlotter(GraphPlotter)
-comment6.params=a
-comment6.target=void\ setReviewAllowed(boolean)
-numComments=7
+#BlueJ class context
+comment0.target=Hilfe
+comment1.params=
+comment1.target=void\ loescheAlles()
+comment2.params=text
+comment2.target=void\ append(java.lang.String)
+comment3.params=
+comment3.target=void\ indentMore()
+comment4.params=
+comment4.target=void\ indentLess()
+comment5.params=gp
+comment5.target=void\ setGraphPlotter(GraphPlotter)
+comment6.params=a
+comment6.target=void\ setReviewAllowed(boolean)
+numComments=7
diff --git a/graph/Kante.ctxt b/graph/Kante.ctxt
index 37da916..2be0d9a 100644
--- a/graph/Kante.ctxt
+++ b/graph/Kante.ctxt
@@ -1,64 +1,64 @@
-#BlueJ class context
-comment0.target=Kante
-comment0.text=\r\n\ Die\ Klasse\ Kante\ beschreibt\ die\ Datenstruktur\ einer\ Kante,\ bestehend\ aus\ Startknoten,\ Gewicht\ und\ Zielknoten.\r\n\ Da\ Kanten\ innerhalb\ von\ Adjazenzlisten\ und\ -Matrizen\ repraesentiert\ werden,\ ist\ diese\ Klasse\ eigentlich\ unnoetig\!\r\n\ Sie\ wurde\ zum\ Zweck\ der\ Vereinfachung\ -\ sozusagen\ als\ Zwischenspeicher\ von\ Kanten\ -\ eingefuehrt.\r\n\ Auch\ soll\ sie\ das\ Kantengewicht\ verwalten\ und\ Aufschluss\ darueber\ geben,\ ob\ sie\ gefaerbt/geloescht\ ist\ oder\ nicht.\r\n\ \r\n\ @author\ \ Dirk\ Zechnall,\ Thomas\ Schaller\r\n\ @version\ 22.07.2020\ (v6.4)\r\n
-comment1.params=neuerStart\ neuerZiel\ neuesGewicht
-comment1.target=Kante(Knoten,\ Knoten,\ double)
-comment1.text=\r\n\ Der\ Konstruktor\ erstellt\ eine\ neue\ Kante\ mit\ Start-\ und\ Zielknoten\ und\ Kantengewicht.\r\n\ Die\ Kante\ ist\ zu\ Beginn\ ungefaerbt.\r\n\r\n\ @param\ \ neuerStart\ \ Der\ neue\ Startknoten\r\n\ @param\ \ neuerZiel\ \ Der\ neue\ Zielknoten\r\n\ @param\ \ neuesGewicht\ \ Das\ neue\ Kantengewicht\r\n
-comment10.params=
-comment10.target=Knoten\ getZiel()
-comment10.text=\r\n\ Gibt\ den\ Zielknoten\ der\ Kante\ zurueck\r\n\ \r\n\ @return\ \ Zielknoten\r\n
-comment11.params=k
-comment11.target=Knoten\ getAnderesEnde(Knoten)
-comment11.text=\r\n\ Gibt\ Knoten\ am\ anderen\ Ende\ der\ Kante\ zurueck\r\n\ @param\ k\ Knoten\ am\ ersten\ Ende\ der\ Kante\r\n\ @return\ \ Knoten\ am\ anderen\ Ende\r\n
-comment12.params=wert
-comment12.target=void\ setMarkiert(boolean)
-comment12.text=\r\n\ Setzt\ das\ markiert-Attribut\ der\ Kante\r\n\r\n\ @param\ \ wert\ \ Der\ neu\ zu\ setzende\ markiert-Wert\r\n
-comment13.params=
-comment13.target=boolean\ isMarkiert()
-comment13.text=\r\n\ Gibt\ zur\u00FCck,\ ob\ die\ Kanten\ markiert\ ist\r\n\ \r\n\ @return\ \ markiert?\r\n
-comment14.params=wert
-comment14.target=void\ setGeloescht(boolean)
-comment14.text=\r\n\ Setzt\ das\ gel\u00F6scht-Attribut\ der\ Kante\r\n\r\n\ @param\ \ wert\ \ Der\ neu\ zu\ setzende\ gel\u00F6scht-Wert\r\n
-comment15.params=
-comment15.target=boolean\ isGeloescht()
-comment15.text=\r\n\ Gibt\ den\ gel\u00F6scht-Wert\ der\ Kante\ zurueck\r\n\ \r\n\ @return\ \ gel\u00F6scht?\r\n
-comment16.params=
-comment16.target=int\ getFarbe()
-comment16.text=\r\n\ Gibt\ zurueck,\ in\ welcher\ Farbe\ die\ Kante\ gezeichnet\ werden\ soll.\r\n\ Ist\ die\ Farbe\ nicht\ gesetzt,\ dann\ wird\ eine\ unmarkierte\ Kante\ in\ Farbe\ 1\ \r\n\ und\ eine\ markierte\ in\ Farbe\ 2\ gezeichnet.\r\n\ @return\ Nummer\ der\ Farbe\r\n
-comment17.params=farbe
-comment17.target=void\ setFarbe(int)
-comment17.text=\r\n\ Setzt\ die\ Farbe\ auf\ einen\ bestimmten\ Farbindex\r\n\ @param\ farbe\ Index\ der\ Farbe\ (0-19)\r\n
-comment18.params=
-comment18.target=void\ setStandardFarbe()
-comment18.text=\r\n\ Setzt\ die\ Farbe\ auf\ die\ Standardfarbgebung\ zur\u00FCck\r\n
-comment19.params=e
-comment19.target=int\ compareTo(GraphElement)
-comment19.text=\ Vergleicht\ die\ Kante\ mit\ einer\ anderen\ Kante\ bez\u00FCglich\ ihres\ Gewichts\r\n\ @param\ e\ andere\ Kante\r\n\ @return\ kleiner\ 0\ die\ andere\ Kante\ hat\ ein\ gr\u00F6\u00DFeres\ Gewicht,\ gr\u00F6\u00DFer\ 0\ die\ andere\ Kante\ hat\ ein\ kleineres\ Gewicht,\ gleich\ 0\ beides\ sind\ gleich\r\n
-comment2.params=
-comment2.target=void\ init()
-comment2.text=\r\n\ Die\ Methode\ init\ initialisiert\ die\ Kantenfaerbung\ (auf\ unmarkiert)\r\n
-comment20.params=
-comment20.target=java.lang.String\ toString()
-comment20.text=\r\n\ Die\ Methode\ ueberschreibt\ die\ Methode\ toString()\ und\ gibt\ die\ String-Raepraesentation\ einer\ Kante\ zurueck\r\n\ \r\n\ @return\ \ \ \ \ \ String-Raepraesentation\ der\ Kante\r\n
-comment3.params=status
-comment3.target=void\ setStatus(java.lang.String)
-comment3.text=\r\n\ Setzt\ den\ Status\ einer\ Kante,\ der\ in\ einem\ String\ gespeichert\ ist.\r\n\ Form\:\ markiert,geloescht,farbe\ \r\n\ Dabei\ sind\ markiert\ und\ geloescht\ boolsche\ Werte\ (0\ \=\ false,\ 1\ \=\ true)\ und\r\n\ die\ farbe\ eine\ Zahl\r\n\ @param\ status\ \ Statusstring\r\n
-comment4.params=
-comment4.target=java.lang.String\ getStatus()
-comment4.text=\r\n\ Liefert\ den\ Status\ einer\ Kante\ als\ String.\r\n\ Form\:\ markiert,geloescht,farbe\ \r\n\ Dabei\ sind\ markiert\ und\ geloescht\ boolsche\ Werte\ (0\ \=\ false,\ 1\ \=\ true)\ und\r\n\ die\ farbe\ eine\ Zahl\r\n\ @return\ Statusstring\r\n
-comment5.params=neuesGewicht
-comment5.target=void\ setGewicht(double)
-comment5.text=\r\n\ Setzt\ das\ Gewicht\ der\ Kante\r\n\r\n\ @param\ \ neuesGewicht\ \ Das\ neu\ zu\ setzende\ Gewicht\r\n
-comment6.params=
-comment6.target=double\ getGewicht()
-comment6.text=\r\n\ Gibt\ das\ Gewicht\ der\ Kante\ zurueck\r\n\ \r\n\ @return\ \ Gewicht\ der\ Kante\r\n
-comment7.params=neuerSatrtKnoten
-comment7.target=void\ setStart(Knoten)
-comment7.text=\r\n\ Setzt\ den\ Startknoten\ der\ Kante\r\n\r\n\ @param\ \ neuerSatrtKnoten\ \ Der\ neu\ zu\ setzende\ Startknoten\r\n
-comment8.params=
-comment8.target=Knoten\ getStart()
-comment8.text=\r\n\ Gibt\ den\ Startknoten\ der\ Kante\ zurueck\r\n\ \r\n\ @return\ \ Startknoten\r\n
-comment9.params=neuerZielKnoten
-comment9.target=void\ setZiel(Knoten)
-comment9.text=\r\n\ Setzt\ den\ Zielknoten\ der\ Kante\r\n\r\n\ @param\ \ neuerZielKnoten\ \ Der\ neu\ zu\ setzende\ Zielknoten\r\n
-numComments=21
+#BlueJ class context
+comment0.target=Kante
+comment0.text=\n\ Die\ Klasse\ Kante\ beschreibt\ die\ Datenstruktur\ einer\ Kante,\ bestehend\ aus\ Startknoten,\ Gewicht\ und\ Zielknoten.\n\ Da\ Kanten\ innerhalb\ von\ Adjazenzlisten\ und\ -Matrizen\ repraesentiert\ werden,\ ist\ diese\ Klasse\ eigentlich\ unnoetig\!\n\ Sie\ wurde\ zum\ Zweck\ der\ Vereinfachung\ -\ sozusagen\ als\ Zwischenspeicher\ von\ Kanten\ -\ eingefuehrt.\n\ Auch\ soll\ sie\ das\ Kantengewicht\ verwalten\ und\ Aufschluss\ darueber\ geben,\ ob\ sie\ gefaerbt/geloescht\ ist\ oder\ nicht.\n\ \n\ @author\ \ Dirk\ Zechnall,\ Thomas\ Schaller\n\ @version\ 22.07.2020\ (v6.4)\n
+comment1.params=neuerStart\ neuerZiel\ neuesGewicht
+comment1.target=Kante(Knoten,\ Knoten,\ double)
+comment1.text=\n\ Der\ Konstruktor\ erstellt\ eine\ neue\ Kante\ mit\ Start-\ und\ Zielknoten\ und\ Kantengewicht.\n\ Die\ Kante\ ist\ zu\ Beginn\ ungefaerbt.\n\n\ @param\ \ neuerStart\ \ Der\ neue\ Startknoten\n\ @param\ \ neuerZiel\ \ Der\ neue\ Zielknoten\n\ @param\ \ neuesGewicht\ \ Das\ neue\ Kantengewicht\n
+comment10.params=
+comment10.target=Knoten\ getZiel()
+comment10.text=\n\ Gibt\ den\ Zielknoten\ der\ Kante\ zurueck\n\ \n\ @return\ \ Zielknoten\n
+comment11.params=k
+comment11.target=Knoten\ getAnderesEnde(Knoten)
+comment11.text=\n\ Gibt\ Knoten\ am\ anderen\ Ende\ der\ Kante\ zurueck\n\ @param\ k\ Knoten\ am\ ersten\ Ende\ der\ Kante\n\ @return\ \ Knoten\ am\ anderen\ Ende\n
+comment12.params=wert
+comment12.target=void\ setMarkiert(boolean)
+comment12.text=\n\ Setzt\ das\ markiert-Attribut\ der\ Kante\n\n\ @param\ \ wert\ \ Der\ neu\ zu\ setzende\ markiert-Wert\n
+comment13.params=
+comment13.target=boolean\ isMarkiert()
+comment13.text=\n\ Gibt\ zur\u00FCck,\ ob\ die\ Kanten\ markiert\ ist\n\ \n\ @return\ \ markiert?\n
+comment14.params=wert
+comment14.target=void\ setGeloescht(boolean)
+comment14.text=\n\ Setzt\ das\ gel\u00F6scht-Attribut\ der\ Kante\n\n\ @param\ \ wert\ \ Der\ neu\ zu\ setzende\ gel\u00F6scht-Wert\n
+comment15.params=
+comment15.target=boolean\ isGeloescht()
+comment15.text=\n\ Gibt\ den\ gel\u00F6scht-Wert\ der\ Kante\ zurueck\n\ \n\ @return\ \ gel\u00F6scht?\n
+comment16.params=
+comment16.target=int\ getFarbe()
+comment16.text=\n\ Gibt\ zurueck,\ in\ welcher\ Farbe\ die\ Kante\ gezeichnet\ werden\ soll.\n\ Ist\ die\ Farbe\ nicht\ gesetzt,\ dann\ wird\ eine\ unmarkierte\ Kante\ in\ Farbe\ 1\ \n\ und\ eine\ markierte\ in\ Farbe\ 2\ gezeichnet.\n\ @return\ Nummer\ der\ Farbe\n
+comment17.params=farbe
+comment17.target=void\ setFarbe(int)
+comment17.text=\n\ Setzt\ die\ Farbe\ auf\ einen\ bestimmten\ Farbindex\n\ @param\ farbe\ Index\ der\ Farbe\ (0-19)\n
+comment18.params=
+comment18.target=void\ setStandardFarbe()
+comment18.text=\n\ Setzt\ die\ Farbe\ auf\ die\ Standardfarbgebung\ zur\u00FCck\n
+comment19.params=e
+comment19.target=int\ compareTo(GraphElement)
+comment19.text=\ Vergleicht\ die\ Kante\ mit\ einer\ anderen\ Kante\ bez\u00FCglich\ ihres\ Gewichts\n\ @param\ e\ andere\ Kante\n\ @return\ kleiner\ 0\ die\ andere\ Kante\ hat\ ein\ gr\u00F6\u00DFeres\ Gewicht,\ gr\u00F6\u00DFer\ 0\ die\ andere\ Kante\ hat\ ein\ kleineres\ Gewicht,\ gleich\ 0\ beides\ sind\ gleich\n
+comment2.params=
+comment2.target=void\ init()
+comment2.text=\n\ Die\ Methode\ init\ initialisiert\ die\ Kantenfaerbung\ (auf\ unmarkiert)\n
+comment20.params=
+comment20.target=java.lang.String\ toString()
+comment20.text=\n\ Die\ Methode\ ueberschreibt\ die\ Methode\ toString()\ und\ gibt\ die\ String-Raepraesentation\ einer\ Kante\ zurueck\n\ \n\ @return\ \ \ \ \ \ String-Raepraesentation\ der\ Kante\n
+comment3.params=status
+comment3.target=void\ setStatus(java.lang.String)
+comment3.text=\n\ Setzt\ den\ Status\ einer\ Kante,\ der\ in\ einem\ String\ gespeichert\ ist.\n\ Form\:\ markiert,geloescht,farbe\ \n\ Dabei\ sind\ markiert\ und\ geloescht\ boolsche\ Werte\ (0\ \=\ false,\ 1\ \=\ true)\ und\n\ die\ farbe\ eine\ Zahl\n\ @param\ status\ \ Statusstring\n
+comment4.params=
+comment4.target=java.lang.String\ getStatus()
+comment4.text=\n\ Liefert\ den\ Status\ einer\ Kante\ als\ String.\n\ Form\:\ markiert,geloescht,farbe\ \n\ Dabei\ sind\ markiert\ und\ geloescht\ boolsche\ Werte\ (0\ \=\ false,\ 1\ \=\ true)\ und\n\ die\ farbe\ eine\ Zahl\n\ @return\ Statusstring\n
+comment5.params=neuesGewicht
+comment5.target=void\ setGewicht(double)
+comment5.text=\n\ Setzt\ das\ Gewicht\ der\ Kante\n\n\ @param\ \ neuesGewicht\ \ Das\ neu\ zu\ setzende\ Gewicht\n
+comment6.params=
+comment6.target=double\ getGewicht()
+comment6.text=\n\ Gibt\ das\ Gewicht\ der\ Kante\ zurueck\n\ \n\ @return\ \ Gewicht\ der\ Kante\n
+comment7.params=neuerSatrtKnoten
+comment7.target=void\ setStart(Knoten)
+comment7.text=\n\ Setzt\ den\ Startknoten\ der\ Kante\n\n\ @param\ \ neuerSatrtKnoten\ \ Der\ neu\ zu\ setzende\ Startknoten\n
+comment8.params=
+comment8.target=Knoten\ getStart()
+comment8.text=\n\ Gibt\ den\ Startknoten\ der\ Kante\ zurueck\n\ \n\ @return\ \ Startknoten\n
+comment9.params=neuerZielKnoten
+comment9.target=void\ setZiel(Knoten)
+comment9.text=\n\ Setzt\ den\ Zielknoten\ der\ Kante\n\n\ @param\ \ neuerZielKnoten\ \ Der\ neu\ zu\ setzende\ Zielknoten\n
+numComments=21
diff --git a/graph/Knoten.ctxt b/graph/Knoten.ctxt
index 9cc0247..4ec16d9 100644
--- a/graph/Knoten.ctxt
+++ b/graph/Knoten.ctxt
@@ -1,76 +1,76 @@
-#BlueJ class context
-comment0.target=Knoten
-comment0.text=\r\n\ Diese\ Klasse\ Knoten\ definiert\ einen\ Knoten.\r\n\ Knoten\ haben\ eine\ Position,\ eine\ Farbe\ und\ einen\ Wert\ f\u00FCr\ sonstige\ Codierungszwecke\ und\ sind\ markiert\ und/oder\ besucht.\r\n\ Im\ Infotext\ kann\ eine\ zus\u00E4tzliche\ Information\ f\u00FCr\ die\ Anzeige\ gespeichert\ werden.\r\n\ \r\n\ @author\ Dirk\ Zechnall,\ Thomas\ Schaller\r\n\ @version\ 22.07.2020\ (v6.4)\r\n
-comment1.params=x\ y
-comment1.target=Knoten(int,\ int)
-comment1.text=\r\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Knoten\ mit\ einem\ neuen\ Namen\r\n\r\n\ @param\ \ x\ \ x-Position\ des\ Knotens\r\n\ @param\ \ y\ \ y-Position\ des\ Knotens\r\n
-comment10.params=
-comment10.target=double\ getDoubleWert()
-comment10.text=\r\n\ Gibt\ den\ Wert\ vom\ Knoten\ als\ Double-Wert\ zurueck\r\n\ \r\n\ @return\ \ Wert\ des\ Knotens\r\n
-comment11.params=markiert
-comment11.target=void\ setMarkiert(boolean)
-comment11.text=\r\n\ Setzt\ das\ Markiertattribut\ vom\ Knoten\r\n\r\n\ @param\ \ markiert\ \ Der\ neu\ zu\ setzende\ Markiertwert\r\n
-comment12.params=
-comment12.target=boolean\ isMarkiert()
-comment12.text=\r\n\ Gibt\ den\ Markiertwert\ vom\ Knoten\ zurueck\r\n\ \r\n\ @return\ \ markiert?\r\n
-comment13.params=markiert
-comment13.target=void\ setBesucht(boolean)
-comment13.text=\r\n\ Setzt\ das\ Besuchtattribut\ vom\ Knoten\r\n\r\n\ @param\ \ markiert\ \ Der\ neu\ zu\ setzende\ Besuchtwert\r\n
-comment14.params=
-comment14.target=boolean\ isBesucht()
-comment14.text=\r\n\ Gibt\ den\ Besuchtwert\ vom\ Knoten\ zurueck\r\n\ \r\n\ @return\ \ besucht?\r\n
-comment15.params=
-comment15.target=int\ getFarbe()
-comment15.text=\r\n\ Gibt\ den\ Index\ der\ Farbe\ des\ Knoten\ zur\u00FCck.\r\n\ Standardm\u00E4\u00DFig\ h\u00E4ngt\ die\ Farbe\ von\ den\ Attributen\ markiert\ und\ besucht\ ab.\r\n\ Durch\ Setzen\ der\ Farbe\ kann\ die\ Farbe\ gezielt\ gesetzt\ werden.\r\n\ @return\ Farbe\ des\ Knotens\r\n
-comment16.params=farbe
-comment16.target=void\ setFarbe(int)
-comment16.text=\r\n\ Setzt\ den\ Index\ der\ Farbe\ des\ Knoten.\r\n\ Standardm\u00E4\u00DFig\ h\u00E4ngt\ die\ Farbe\ von\ den\ Attributen\ markiert,\ besucht\ und\ beendet\ ab.\r\n\ Durch\ Setzen\ der\ Farbe\ kann\ die\ Farbe\ gezielt\ gesetzt\ werden.\r\n\ @param\ farbe\ Index\ der\ Farbe\ (0-19)\r\n
-comment17.params=
-comment17.target=boolean\ isFarbeAutomatisch()
-comment17.text=\ Gibt\ zur\u00FCck,\ ob\ die\ Knotenfarbe\ automatisch\ aus\ den\ Attributen\ ermittelt\ wird.\r\n\ @return\ true\=Farbe\ wird\ automatisch\ bestimmt,\ false\=Farbe\ wurde\ explizit\ gesetzt.\r\n\ \ \ \ \ \r\n
-comment18.params=auto
-comment18.target=void\ setFarbeAutomatisch(boolean)
-comment18.text=\ Legt\ fest,\ ob\ die\ Knotenfarbe\ automatisch\ aus\ den\ Attributen\ ermittelt\ wird.\r\n\ @param\ auto\ true\=Farbe\ wird\ automatisch\ bestimmt,\r\n\ \ \ \ \ \ \ \ \ \ \ \ \ false\=Farbe\ wird\ explizit\ gesetzt.\r\n
-comment19.params=
-comment19.target=int\ getX()
-comment19.text=\ Liefert\ die\ x-Position\ des\ Knotens\r\n\ @return\ x-Postion\r\n
-comment2.params=x\ y\ neuerWert
-comment2.target=Knoten(int,\ int,\ double)
-comment2.text=\r\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Knoten\ mit\ einem\ Startwert\r\n\r\n\ @param\ \ x\ \ x-Position\ des\ Knotens\r\n\ @param\ \ y\ \ y-Position\ des\ Knotens\ \ \ \ \r\n\ @param\ \ neuerWert\ \ Der\ neue\ Wert\ des\ Knotens\ \r\n
-comment20.params=
-comment20.target=int\ getY()
-comment20.text=\ Liefert\ die\ y-Position\ des\ Knotens\r\n\ @return\ y-Postion\r\n
-comment21.params=x
-comment21.target=void\ setX(int)
-comment21.text=\ Setzt\ die\ x-Position\ des\ Knotens\r\n\ @param\ x\ x-Postion\r\n
-comment22.params=y
-comment22.target=void\ setY(int)
-comment22.text=\ Setzt\ die\ y-Position\ des\ Knotens\r\n\ @param\ y\ y-Postion\r\n
-comment23.params=e
-comment23.target=int\ compareTo(GraphElement)
-comment23.text=\ Vergleicht\ den\ Knoten\ mit\ einem\ anderen\ Knoten\ bez\u00FCglich\ seines\ Werts\r\n\ @param\ e\ anderer\ Knoten\r\n\ @return\ kleiner\ 0\ der\ andere\ Knoten\ hat\ einen\ gr\u00F6\u00DFeren\ Wert,\ gr\u00F6\u00DFer\ 0\ der\ andere\ Knoten\ hat\ einen\ kleineren\ Wert,\ gleich\ 0\ beide\ sind\ gleich\r\n
-comment24.params=
-comment24.target=java.lang.String\ toString()
-comment24.text=\r\n\ Die\ Methode\ ueberschreibt\ die\ Methode\ toString()\ und\ gibt\ die\ String-Raepraesentation\ eines\ Knotens\ zurueck\r\n\ \r\n\ @return\ \ \ \ \ \ String-Raepraesentation\ des\ Knotens\r\n
-comment3.params=status
-comment3.target=void\ setStatus(java.lang.String)
-comment3.text=\r\n\ Setzt\ den\ Status\ eines\ Knotens\ aus\ einem\ Status-String\r\n\ Format\:\ wert,markiert,besucht,farbe\r\n\ wobei\ wert\ eine\ double-Zahl,\ mariert\ und\ besucht\ ein\ boolean-Wert\ (0\=false,\ 1\ \=\ true)\ und\r\n\ farbe\ eine\ zahl\ ist.\r\n\r\n\ @param\ \ status\ Der\ Statusstring\r\n
-comment4.params=
-comment4.target=java.lang.String\ getStatus()
-comment4.text=\r\n\ Liefert\ den\ Status\ eines\ Knotens\ als\ Status-String\r\n\ Format\:\ wert,markiert,besucht,farbe\r\n\ wobei\ wert\ eine\ double-Zahl,\ mariert\ und\ besucht\ ein\ boolean-Wert\ (0\=false,\ 1\ \=\ true)\ und\r\n\ farbe\ eine\ zahl\ ist.\r\n\r\n\ @return\ Der\ Statusstring\r\n
-comment5.params=
-comment5.target=void\ init()
-comment5.text=\r\n\ Die\ Methode\ init\ initialisiert\ den\ Zustand\ eines\ Knotens\r\n
-comment6.params=infotext
-comment6.target=void\ setInfotext(java.lang.String)
-comment6.text=\ Setzt\ den\ Infotext\ f\u00FCr\ einen\ Knoten\r\n\ @param\ infotext\ Der\ neue\ Text\r\n
-comment7.params=
-comment7.target=java.lang.String\ getInfotext()
-comment7.text=\ Liefert\ den\ Infotext\ des\ Knotens\r\n\ @return\ Der\ Infotext\r\n
-comment8.params=neuerWert
-comment8.target=void\ setWert(double)
-comment8.text=\r\n\ Setzt\ den\ Wert\ beim\ Knoten\r\n\r\n\ @param\ \ neuerWert\ \ Der\ neu\ zu\ setzende\ Wert\r\n
-comment9.params=
-comment9.target=int\ getIntWert()
-comment9.text=\r\n\ Gibt\ den\ Wert\ vom\ Knoten\ als\ Integer-Wert\ zurueck\r\n\ \r\n\ @return\ \ Wert\ des\ Knotens\r\n
-numComments=25
+#BlueJ class context
+comment0.target=Knoten
+comment0.text=\n\ Diese\ Klasse\ Knoten\ definiert\ einen\ Knoten.\n\ Knoten\ haben\ eine\ Position,\ eine\ Farbe\ und\ einen\ Wert\ f\u00FCr\ sonstige\ Codierungszwecke\ und\ sind\ markiert\ und/oder\ besucht.\n\ Im\ Infotext\ kann\ eine\ zus\u00E4tzliche\ Information\ f\u00FCr\ die\ Anzeige\ gespeichert\ werden.\n\ \n\ @author\ Dirk\ Zechnall,\ Thomas\ Schaller\n\ @version\ 22.07.2020\ (v6.4)\n
+comment1.params=x\ y
+comment1.target=Knoten(int,\ int)
+comment1.text=\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Knoten\ mit\ einem\ neuen\ Namen\n\n\ @param\ \ x\ \ x-Position\ des\ Knotens\n\ @param\ \ y\ \ y-Position\ des\ Knotens\n
+comment10.params=
+comment10.target=double\ getDoubleWert()
+comment10.text=\n\ Gibt\ den\ Wert\ vom\ Knoten\ als\ Double-Wert\ zurueck\n\ \n\ @return\ \ Wert\ des\ Knotens\n
+comment11.params=markiert
+comment11.target=void\ setMarkiert(boolean)
+comment11.text=\n\ Setzt\ das\ Markiertattribut\ vom\ Knoten\n\n\ @param\ \ markiert\ \ Der\ neu\ zu\ setzende\ Markiertwert\n
+comment12.params=
+comment12.target=boolean\ isMarkiert()
+comment12.text=\n\ Gibt\ den\ Markiertwert\ vom\ Knoten\ zurueck\n\ \n\ @return\ \ markiert?\n
+comment13.params=markiert
+comment13.target=void\ setBesucht(boolean)
+comment13.text=\n\ Setzt\ das\ Besuchtattribut\ vom\ Knoten\n\n\ @param\ \ markiert\ \ Der\ neu\ zu\ setzende\ Besuchtwert\n
+comment14.params=
+comment14.target=boolean\ isBesucht()
+comment14.text=\n\ Gibt\ den\ Besuchtwert\ vom\ Knoten\ zurueck\n\ \n\ @return\ \ besucht?\n
+comment15.params=
+comment15.target=int\ getFarbe()
+comment15.text=\n\ Gibt\ den\ Index\ der\ Farbe\ des\ Knoten\ zur\u00FCck.\n\ Standardm\u00E4\u00DFig\ h\u00E4ngt\ die\ Farbe\ von\ den\ Attributen\ markiert\ und\ besucht\ ab.\n\ Durch\ Setzen\ der\ Farbe\ kann\ die\ Farbe\ gezielt\ gesetzt\ werden.\n\ @return\ Farbe\ des\ Knotens\n
+comment16.params=farbe
+comment16.target=void\ setFarbe(int)
+comment16.text=\n\ Setzt\ den\ Index\ der\ Farbe\ des\ Knoten.\n\ Standardm\u00E4\u00DFig\ h\u00E4ngt\ die\ Farbe\ von\ den\ Attributen\ markiert,\ besucht\ und\ beendet\ ab.\n\ Durch\ Setzen\ der\ Farbe\ kann\ die\ Farbe\ gezielt\ gesetzt\ werden.\n\ @param\ farbe\ Index\ der\ Farbe\ (0-19)\n
+comment17.params=
+comment17.target=boolean\ isFarbeAutomatisch()
+comment17.text=\ Gibt\ zur\u00FCck,\ ob\ die\ Knotenfarbe\ automatisch\ aus\ den\ Attributen\ ermittelt\ wird.\n\ @return\ true\=Farbe\ wird\ automatisch\ bestimmt,\ false\=Farbe\ wurde\ explizit\ gesetzt.\n\ \ \ \ \ \n
+comment18.params=auto
+comment18.target=void\ setFarbeAutomatisch(boolean)
+comment18.text=\ Legt\ fest,\ ob\ die\ Knotenfarbe\ automatisch\ aus\ den\ Attributen\ ermittelt\ wird.\n\ @param\ auto\ true\=Farbe\ wird\ automatisch\ bestimmt,\n\ \ \ \ \ \ \ \ \ \ \ \ \ false\=Farbe\ wird\ explizit\ gesetzt.\n
+comment19.params=
+comment19.target=int\ getX()
+comment19.text=\ Liefert\ die\ x-Position\ des\ Knotens\n\ @return\ x-Postion\n
+comment2.params=x\ y\ neuerWert
+comment2.target=Knoten(int,\ int,\ double)
+comment2.text=\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Knoten\ mit\ einem\ Startwert\n\n\ @param\ \ x\ \ x-Position\ des\ Knotens\n\ @param\ \ y\ \ y-Position\ des\ Knotens\ \ \ \ \n\ @param\ \ neuerWert\ \ Der\ neue\ Wert\ des\ Knotens\ \n
+comment20.params=
+comment20.target=int\ getY()
+comment20.text=\ Liefert\ die\ y-Position\ des\ Knotens\n\ @return\ y-Postion\n
+comment21.params=x
+comment21.target=void\ setX(int)
+comment21.text=\ Setzt\ die\ x-Position\ des\ Knotens\n\ @param\ x\ x-Postion\n
+comment22.params=y
+comment22.target=void\ setY(int)
+comment22.text=\ Setzt\ die\ y-Position\ des\ Knotens\n\ @param\ y\ y-Postion\n
+comment23.params=e
+comment23.target=int\ compareTo(GraphElement)
+comment23.text=\ Vergleicht\ den\ Knoten\ mit\ einem\ anderen\ Knoten\ bez\u00FCglich\ seines\ Werts\n\ @param\ e\ anderer\ Knoten\n\ @return\ kleiner\ 0\ der\ andere\ Knoten\ hat\ einen\ gr\u00F6\u00DFeren\ Wert,\ gr\u00F6\u00DFer\ 0\ der\ andere\ Knoten\ hat\ einen\ kleineren\ Wert,\ gleich\ 0\ beide\ sind\ gleich\n
+comment24.params=
+comment24.target=java.lang.String\ toString()
+comment24.text=\n\ Die\ Methode\ ueberschreibt\ die\ Methode\ toString()\ und\ gibt\ die\ String-Raepraesentation\ eines\ Knotens\ zurueck\n\ \n\ @return\ \ \ \ \ \ String-Raepraesentation\ des\ Knotens\n
+comment3.params=status
+comment3.target=void\ setStatus(java.lang.String)
+comment3.text=\n\ Setzt\ den\ Status\ eines\ Knotens\ aus\ einem\ Status-String\n\ Format\:\ wert,markiert,besucht,farbe\n\ wobei\ wert\ eine\ double-Zahl,\ mariert\ und\ besucht\ ein\ boolean-Wert\ (0\=false,\ 1\ \=\ true)\ und\n\ farbe\ eine\ zahl\ ist.\n\n\ @param\ \ status\ Der\ Statusstring\n
+comment4.params=
+comment4.target=java.lang.String\ getStatus()
+comment4.text=\n\ Liefert\ den\ Status\ eines\ Knotens\ als\ Status-String\n\ Format\:\ wert,markiert,besucht,farbe\n\ wobei\ wert\ eine\ double-Zahl,\ mariert\ und\ besucht\ ein\ boolean-Wert\ (0\=false,\ 1\ \=\ true)\ und\n\ farbe\ eine\ zahl\ ist.\n\n\ @return\ Der\ Statusstring\n
+comment5.params=
+comment5.target=void\ init()
+comment5.text=\n\ Die\ Methode\ init\ initialisiert\ den\ Zustand\ eines\ Knotens\n
+comment6.params=infotext
+comment6.target=void\ setInfotext(java.lang.String)
+comment6.text=\ Setzt\ den\ Infotext\ f\u00FCr\ einen\ Knoten\n\ @param\ infotext\ Der\ neue\ Text\n
+comment7.params=
+comment7.target=java.lang.String\ getInfotext()
+comment7.text=\ Liefert\ den\ Infotext\ des\ Knotens\n\ @return\ Der\ Infotext\n
+comment8.params=neuerWert
+comment8.target=void\ setWert(double)
+comment8.text=\n\ Setzt\ den\ Wert\ beim\ Knoten\n\n\ @param\ \ neuerWert\ \ Der\ neu\ zu\ setzende\ Wert\n
+comment9.params=
+comment9.target=int\ getIntWert()
+comment9.text=\n\ Gibt\ den\ Wert\ vom\ Knoten\ als\ Integer-Wert\ zurueck\n\ \n\ @return\ \ Wert\ des\ Knotens\n
+numComments=25
diff --git a/graph/package.bluej b/graph/package.bluej
index d38ac46..0e502fc 100644
--- a/graph/package.bluej
+++ b/graph/package.bluej
@@ -1,110 +1,110 @@
-#BlueJ package file
-dependency1.from=Graph
-dependency1.to=Knoten
-dependency1.type=UsesDependency
-dependency10.from=GraphPlotter
-dependency10.to=GraphOptions
-dependency10.type=UsesDependency
-dependency11.from=GraphPlotter
-dependency11.to=GraphElement
-dependency11.type=UsesDependency
-dependency12.from=GraphPlotter
-dependency12.to=Knoten
-dependency12.type=UsesDependency
-dependency13.from=GraphPlotter
-dependency13.to=Kante
-dependency13.type=UsesDependency
-dependency2.from=Graph
-dependency2.to=Kante
-dependency2.type=UsesDependency
-dependency3.from=Kante
-dependency3.to=Knoten
-dependency3.type=UsesDependency
-dependency4.from=Kante
-dependency4.to=GraphElement
-dependency4.type=UsesDependency
-dependency5.from=GraphOptions
-dependency5.to=GraphElement
-dependency5.type=UsesDependency
-dependency6.from=Knoten
-dependency6.to=GraphElement
-dependency6.type=UsesDependency
-dependency7.from=Knoten
-dependency7.to=Kante
-dependency7.type=UsesDependency
-dependency8.from=Hilfe
-dependency8.to=GraphPlotter
-dependency8.type=UsesDependency
-dependency9.from=GraphPlotter
-dependency9.to=Graph
-dependency9.type=UsesDependency
-objectbench.height=93
-objectbench.width=530
-package.divider.horizontal=0.6
-package.divider.vertical=0.8204667863554758
-package.editor.height=450
-package.editor.width=780
-package.editor.x=879
-package.editor.y=186
-package.frame.height=657
-package.frame.width=931
-package.numDependencies=13
-package.numTargets=7
-package.showExtends=true
-package.showUses=true
-readme.height=58
-readme.name=@README
-readme.width=47
-readme.x=10
-readme.y=10
-target1.height=50
-target1.name=Graph
-target1.naviview.expanded=true
-target1.showInterface=false
-target1.type=ClassTarget
-target1.width=80
-target1.x=340
-target1.y=180
-target2.height=50
-target2.name=Kante
-target2.showInterface=false
-target2.type=ClassTarget
-target2.width=80
-target2.x=240
-target2.y=260
-target3.height=50
-target3.name=GraphElement
-target3.showInterface=false
-target3.type=AbstractTarget
-target3.width=110
-target3.x=220
-target3.y=360
-target4.height=50
-target4.name=GraphPlotter
-target4.naviview.expanded=true
-target4.showInterface=false
-target4.type=ClassTarget
-target4.width=110
-target4.x=410
-target4.y=80
-target5.height=50
-target5.name=GraphOptions
-target5.showInterface=false
-target5.type=ClassTarget
-target5.width=110
-target5.x=180
-target5.y=80
-target6.height=50
-target6.name=Knoten
-target6.showInterface=false
-target6.type=ClassTarget
-target6.width=80
-target6.x=460
-target6.y=260
-target7.height=50
-target7.name=Hilfe
-target7.showInterface=false
-target7.type=InterfaceTarget
-target7.width=80
-target7.x=610
-target7.y=90
+#BlueJ package file
+dependency1.from=Graph
+dependency1.to=Knoten
+dependency1.type=UsesDependency
+dependency10.from=GraphOptions
+dependency10.to=GraphElement
+dependency10.type=UsesDependency
+dependency11.from=Knoten
+dependency11.to=GraphElement
+dependency11.type=UsesDependency
+dependency12.from=Knoten
+dependency12.to=Kante
+dependency12.type=UsesDependency
+dependency13.from=Hilfe
+dependency13.to=GraphPlotter
+dependency13.type=UsesDependency
+dependency2.from=Graph
+dependency2.to=Kante
+dependency2.type=UsesDependency
+dependency3.from=Kante
+dependency3.to=Knoten
+dependency3.type=UsesDependency
+dependency4.from=Kante
+dependency4.to=GraphElement
+dependency4.type=UsesDependency
+dependency5.from=GraphPlotter
+dependency5.to=Graph
+dependency5.type=UsesDependency
+dependency6.from=GraphPlotter
+dependency6.to=GraphOptions
+dependency6.type=UsesDependency
+dependency7.from=GraphPlotter
+dependency7.to=GraphElement
+dependency7.type=UsesDependency
+dependency8.from=GraphPlotter
+dependency8.to=Knoten
+dependency8.type=UsesDependency
+dependency9.from=GraphPlotter
+dependency9.to=Kante
+dependency9.type=UsesDependency
+objectbench.height=93
+objectbench.width=907
+package.divider.horizontal=0.6
+package.divider.vertical=0.8207885304659498
+package.editor.height=451
+package.editor.width=790
+package.editor.x=879
+package.editor.y=186
+package.frame.height=657
+package.frame.width=931
+package.numDependencies=13
+package.numTargets=7
+package.showExtends=true
+package.showUses=true
+readme.height=60
+readme.name=@README
+readme.width=49
+readme.x=10
+readme.y=10
+target1.height=50
+target1.name=Graph
+target1.naviview.expanded=true
+target1.showInterface=true
+target1.type=ClassTarget
+target1.width=80
+target1.x=340
+target1.y=180
+target2.height=50
+target2.name=Kante
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=80
+target2.x=240
+target2.y=260
+target3.height=50
+target3.name=GraphElement
+target3.showInterface=false
+target3.type=AbstractTarget
+target3.width=120
+target3.x=220
+target3.y=360
+target4.height=50
+target4.name=GraphPlotter
+target4.naviview.expanded=true
+target4.showInterface=false
+target4.type=ClassTarget
+target4.width=110
+target4.x=410
+target4.y=80
+target5.height=50
+target5.name=GraphOptions
+target5.showInterface=false
+target5.type=ClassTarget
+target5.width=110
+target5.x=180
+target5.y=80
+target6.height=50
+target6.name=Knoten
+target6.showInterface=false
+target6.type=ClassTarget
+target6.width=80
+target6.x=460
+target6.y=260
+target7.height=50
+target7.name=Hilfe
+target7.showInterface=false
+target7.type=InterfaceTarget
+target7.width=80
+target7.x=610
+target7.y=90
diff --git a/imp/HSB.ctxt b/imp/HSB.ctxt
index 30a45c9..44223b9 100644
--- a/imp/HSB.ctxt
+++ b/imp/HSB.ctxt
@@ -1,16 +1,16 @@
-#BlueJ class context
-comment0.target=HSB
-comment0.text=\r\n\ Hilfsklasse\ f\u00FCr\ das\ HSB-Farbmodell\r\n\r\n\ @author\ Thomas\ Schaller\r\n\ @version\ V1.0\ 14.01.2020\r\n
-comment1.params=c
-comment1.target=double\ getHue(java.awt.Color)
-comment1.text=\r\n\ Liefert\ den\ Farbton\ als\ Winkel\ zwischen\ 0.0\u00B0\ und\ 360.0\u00B0.\r\n\ @param\ Color\ c\ Farbe,\ deren\ Farbton\ bestimmt\ werden\ soll.\r\n\ @return\ Farbton\ \r\n
-comment2.params=c
-comment2.target=double\ getSaturation(java.awt.Color)
-comment2.text=\r\n\ Liefert\ die\ S\u00E4ttigung\ als\ Wert\ zwischen\ 0.0\ (0%)\ und\ 1.0\ (100%).\r\n\ @param\ Color\ c\ Farbe,\ deren\ S\u00E4ttigung\ bestimmt\ werden\ soll.\r\n\ @return\ S\u00E4ttigung\r\n
-comment3.params=c
-comment3.target=double\ getBrightness(java.awt.Color)
-comment3.text=\r\n\ Liefert\ die\ Helligkeit\ als\ Wert\ zwischen\ 0.0\ (0%)\ und\ 1.0\ (100%).\r\n\ @param\ Color\ c\ Farbe,\ deren\ Helligkeit\ bestimmt\ werden\ soll.\r\n\ @return\ S\u00E4ttigung\r\n
-comment4.params=h\ s\ b
-comment4.target=java.awt.Color\ getColor(double,\ double,\ double)
-comment4.text=\r\n\ Liefert\ ein\ Java-Color-Objekt\ mit\ den\ angegebenen\ HSB-Werten.\r\n\ @param\ h\ Farbton\ (Hue)\r\n\ @param\ s\ S\u00E4ttigung\ (Saturation)\r\n\ @param\ b\ Brightness\ (Helligkeit)\r\n\ @return\ Java-Color-Objekt\r\n
-numComments=5
+#BlueJ class context
+comment0.target=HSB
+comment0.text=\n\ Hilfsklasse\ f\u00FCr\ das\ HSB-Farbmodell\n\n\ @author\ Thomas\ Schaller\n\ @version\ V1.0\ 14.01.2020\n
+comment1.params=c
+comment1.target=double\ getHue(java.awt.Color)
+comment1.text=\n\ Liefert\ den\ Farbton\ als\ Winkel\ zwischen\ 0.0\u00B0\ und\ 360.0\u00B0.\n\ @param\ Color\ c\ Farbe,\ deren\ Farbton\ bestimmt\ werden\ soll.\n\ @return\ Farbton\ \n
+comment2.params=c
+comment2.target=double\ getSaturation(java.awt.Color)
+comment2.text=\n\ Liefert\ die\ S\u00E4ttigung\ als\ Wert\ zwischen\ 0.0\ (0%)\ und\ 1.0\ (100%).\n\ @param\ Color\ c\ Farbe,\ deren\ S\u00E4ttigung\ bestimmt\ werden\ soll.\n\ @return\ S\u00E4ttigung\n
+comment3.params=c
+comment3.target=double\ getBrightness(java.awt.Color)
+comment3.text=\n\ Liefert\ die\ Helligkeit\ als\ Wert\ zwischen\ 0.0\ (0%)\ und\ 1.0\ (100%).\n\ @param\ Color\ c\ Farbe,\ deren\ Helligkeit\ bestimmt\ werden\ soll.\n\ @return\ S\u00E4ttigung\n
+comment4.params=h\ s\ b
+comment4.target=java.awt.Color\ getColor(double,\ double,\ double)
+comment4.text=\n\ Liefert\ ein\ Java-Color-Objekt\ mit\ den\ angegebenen\ HSB-Werten.\n\ @param\ h\ Farbton\ (Hue)\n\ @param\ s\ S\u00E4ttigung\ (Saturation)\n\ @param\ b\ Brightness\ (Helligkeit)\n\ @return\ Java-Color-Objekt\n
+numComments=5
diff --git a/imp/NumberField.ctxt b/imp/NumberField.ctxt
index 97b1c7f..bfca8c5 100644
--- a/imp/NumberField.ctxt
+++ b/imp/NumberField.ctxt
@@ -1,15 +1,15 @@
-#BlueJ class context
-comment0.target=NumberField
-comment1.params=start\ end\ text
-comment1.target=void\ replaceText(int,\ int,\ java.lang.String)
-comment2.params=text
-comment2.target=void\ replaceSelection(java.lang.String)
-comment3.params=
-comment3.target=double\ getDoubleValue()
-comment4.params=
-comment4.target=int\ getIntValue()
-comment5.params=v
-comment5.target=void\ setValue(double)
-comment6.params=v
-comment6.target=void\ setValue(int)
-numComments=7
+#BlueJ class context
+comment0.target=NumberField
+comment1.params=start\ end\ text
+comment1.target=void\ replaceText(int,\ int,\ java.lang.String)
+comment2.params=text
+comment2.target=void\ replaceSelection(java.lang.String)
+comment3.params=
+comment3.target=double\ getDoubleValue()
+comment4.params=
+comment4.target=int\ getIntValue()
+comment5.params=v
+comment5.target=void\ setValue(double)
+comment6.params=v
+comment6.target=void\ setValue(int)
+numComments=7
diff --git a/imp/Picture.ctxt b/imp/Picture.ctxt
index 08d2f0b..58ba907 100644
--- a/imp/Picture.ctxt
+++ b/imp/Picture.ctxt
@@ -1,146 +1,146 @@
-#BlueJ class context
-comment0.target=Picture
-comment0.text=\r\n\r\n\ Bildklasse\ fuer\ die\ Simulation\ von\ Processing-Befehlen\r\n\ \r\n\ Diese\ Klasse\ stellt\ ein\ BufferedImage\ bereit,\ in\ das\ mit\ Processing-Befehlen\ gezeichnet\r\n\ werden\ kann.\ \r\n\ Zusaetzlich\ kann\ ein\ Bildanzeiger\ ueber\ jede\ Aenderung\ des\ Bildes\ informiert\ werden,\r\n\ um\ "Zurueck"-Befehle\ zu\ ermoeglichen.\ Der\ Bildanzeiger\ ist\ entweder\ eine\ normale\ Java\r\n\ ScrollPane\ oder\ ein\ Actor\ aus\ Greenfoot.\r\n\ Die\ Dokumentation\ der\ einzelnen\ Zeichenmethoden\ ist\ der\ Processing-Reference\ \r\n\ (https\://processing.org/reference/\ steht\ unter\ CC-Lizenz\:\ https\://creativecommons.org/)\ \r\n\ entnommen\ und\ mit\ Deepl.com\ ins\ Deutsche\ uebersetzt.\r\n\r\n\ @version\ 1.0\ from\ 23.01.2019\r\n\ @author\ Thomas\ Schaller\ (ZPG\ Informatik\ Klasse\ 9)\r\n
-comment1.params=
-comment1.target=Picture()
-comment1.text=\ \r\n\ Erzeugt\ ein\ Bild\ mit\ Standardgroesse\ 500x400\r\n
-comment10.params=width\ height
-comment10.target=void\ size(int,\ int)
-comment10.text=\r\n\ Definiert\ die\ Dimension\ der\ Breite\ und\ Hoehe\ des\ Anzeigefensters\ in\ Pixeleinheiten.\ \r\n\ Die\ eingebauten\ Variablen\ Breite\ und\ Hoehe\ werden\ durch\ die\ an\ diese\ Funktion\ uebergebenen\ Parameter\ festgelegt.\ So\ weist\ beispielsweise\ \r\n\ der\ Befehl\ size(640,\ 480)\ der\ Variablen\ Breite\ 640\ und\ der\ Variablen\ Hoehe\ 480\ zu.\ \r\n\ @param\ width\ Breite\ des\ Bildes\r\n\ @param\ height\ Hoehe\ des\ Bildes\r\n
-comment11.params=
-comment11.target=int\ getWidth()
-comment11.text=\ \r\n\ Liefert\ die\ Breite\ des\ Bildes\ zurueck.\r\n\ @return\ Breite\ des\ Bildes\r\n
-comment12.params=
-comment12.target=int\ getHeight()
-comment12.text=\ \r\n\ Liefert\ die\ Hoehe\ des\ Bildes\ zurueck.\r\n\ @return\ Hoehe\ des\ Bildes\r\n
-comment13.params=
-comment13.target=void\ pushImage()
-comment13.text=\r\n\ Erzeugt\ eine\ Kopie\ des\ Bildes\ und\ uebergibt\ sie\ an\ den\ Observer\ (falls\ existent),\ damit\ dieser\ die\ Versionen\ speichern\ kann\r\n
-comment14.params=autoRefresh
-comment14.target=void\ setAutoRefresh(boolean)
-comment14.text=\r\n\ Legt\ fest,\ ob\ nach\ jedem\ Zeichenbefehl\ automatisch\ das\ Bild\ auch\ in\r\n\ der\ Oberflaeche\ aktualisiert\ wird.\ Die\ Einstellung\ "false"\ beschleunigt\r\n\ das\ Zeichnen\ aufwaendiger\ Bilder\ und\ verhindert\ "Flackern".\r\n\ Das\ Neuzeichnen\ kann\ durch\ die\ Methode\ "refresh"\ gezielt\ ausgeloest\ werden.\r\n\ @param\ autorefresh\ true\ \=\ nach\ jedem\ Zeichenbefehl\ die\ Anzeige\ aktualisieren,\ false\=\ nur\ durch\ die\ Methode\ refresh\ neu\ zeichnen\r\n
-comment15.params=
-comment15.target=void\ repaint()
-comment15.text=\r\n\ Auch\ die\ anzeigenden\ Klasse\ wird\ zum\ Neuzeichnen\ aufgefordert.\r\n
-comment16.params=
-comment16.target=void\ forceRepaint()
-comment16.text=\r\n\ Ein\ repaint()\ (das\ Neuzeichnen)\ kann\ manuell\ erzwungen\ werden.\r\n
-comment17.params=
-comment17.target=void\ clear()
-comment17.text=\ \r\n\ Loescht\ den\ Inhalt\ des\ Bildes.\r\n\ Der\ Hintergrund\ wird\ mit\ der\ Hintergrundfarbe\ neu\ gefuellt.\r\n
-comment18.params=coord\ mode
-comment18.target=void\ convert(int[],\ int)
-comment18.text=\ \r\n\ Konvertiert\ die\ in\ einem\ bestimmten\ Modus\ gegebenen\ Koordinaten\ in\ die\ Java-uebliche\ Links_Oben_Breite_Hoehe\ Version\r\n\ Die\ Aenderungen\ werden\ direkt\ im\ Array\ vorgenommen\r\n\ @param\ coord\ Array\ mit\ vier\ Koordinateneintraegen\ im\ gegebenen\ Modus\r\n\ @param\ mode\ \ Modus\ der\ Koordinaten\ (CORNER,\ CORNERS,\ RADIUS\ oder\ CENTER)\r\n
-comment19.params=mode
-comment19.target=void\ rectMode(int)
-comment19.text=\r\n\ Aendert\ den\ Koordinaten-Modus\ beim\ Zeichnen\ von\ Rechtecken.\r\n\ Aendert\ die\ Position,\ von\ der\ aus\ Rechtecke\ gezeichnet\ werden,\ indem\ es\ die\ Art\ und\ Weise\ aendert,\ wie\ Parameter,\ die\ an\ rect()\ uebergeben\ werden,\ interpretiert\ werden.\r\n\ Der\ Standardmodus\ ist\ rectMode(Bild.CORNER),\ der\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ die\ linke\ obere\ Ecke\ der\ Form\ interpretiert,\ \r\n\ waehrend\ der\ dritte\ und\ vierte\ Parameter\ seine\ Breite\ und\ Hoehe\ sind.\r\n\ rectMode(Bild.CORNERS)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ die\ Position\ einer\ Ecke\ \r\n\ und\ die\ dritten\ und\ vierten\ Parameter\ als\ die\ Position\ der\ gegenueberliegenden\ Ecke.\r\n\ rectMode(Bild.CENTER)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ Mittelpunkt\ der\ Form,\ \r\n\ waehrend\ der\ dritte\ und\ vierte\ Parameter\ seine\ Breite\ und\ Hoehe\ sind.\r\n\ rectMode(RADIUS)\ verwendet\ auch\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ Mittelpunkt\ der\ Form,\ \r\n\ verwendet\ aber\ den\ dritten\ und\ vierten\ Parameter,\ um\ die\ Haelfte\ der\ Breite\ und\ Hoehe\ der\ Formen\ festzulegen.\r\n\ @param\ mode\ Modus\ der\ Koordinateninterpretation\ (CORNER,\ CORNERS,\ CENTER\ oder\ RADIUS)\r\n
-comment2.params=width\ height
-comment2.target=Picture(int,\ int)
-comment2.text=\r\n\ Erzeugt\ ein\ Bild\ der\ angegeben\ Groesse\r\n\ @param\ width\ Breite\ des\ Bildes\r\n\ @param\ height\ Hoehe\ des\ Bildes\r\n
-comment20.params=mode
-comment20.target=void\ ellipseMode(int)
-comment20.text=\r\n\ Aendert\ den\ Koordinaten-Modus\ beim\ Zeichnen\ von\ Kreisen/Ellipsen.\r\n\ Aendert\ die\ Position,\ von\ der\ aus\ Kreise/Ellipsen\ gezeichnet\ werden,\ indem\ es\ die\ Art\ und\ Weise\ aendert,\ wie\ Parameter,\ die\ an\ ellipse()\ uebergeben\ werden,\ interpretiert\ werden.\r\n\ Der\ Standardmodus\ ist\ ellipseMode(Bild.CENTER),\ der\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ Mittelpunkt\ der\ Form\ interpretiert,\ \r\n\ waehrend\ der\ dritte\ und\ vierte\ Parameter\ seine\ Breite\ und\ Hoehe\ sind.\r\n\ ellipseMode(Bild.CORNER)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ die\ Position\ einer\ Ecke\ \r\n\ und\ die\ dritten\ und\ vierten\ Parameter\ als\ Breite\ und\ Hoehe\ der\ Form.\r\n\ ellipseMode(Bild.CORNERS)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ die\ Position\ einer\ Ecke\ \r\n\ und\ die\ dritten\ und\ vierten\ Parameter\ als\ die\ Position\ der\ gegenueberliegenden\ Ecke.\r\n\ ellipseMode(RADIUS)\ verwendet\ auch\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ Mittelpunkt\ der\ Form,\ \r\n\ verwendet\ aber\ den\ dritten\ und\ vierten\ Parameter,\ um\ die\ Haelfte\ der\ Breite\ und\ Hoehe\ der\ Formen\ festzulegen.\r\n\ @param\ mode\ Modus\ der\ Koordinateninterpretation\ (CORNER,\ CORNERS,\ CENTER\ oder\ RADIUS)\r\n
-comment21.params=mode
-comment21.target=void\ textMode(int)
-comment21.text=\r\n\ Aendert\ den\ Koordinaten-Modus\ beim\ Zeichnen\ von\ Texten.\r\n\ Aendert\ die\ Position,\ an\ der\ Texte\ gezeichnet\ werden,\ indem\ es\ die\ Art\ und\ Weise\ aendert,\ wie\ Parameter,\ die\ an\ text()\ uebergeben\ werden,\ interpretiert\ werden.\r\n\ Der\ Standardmodus\ ist\ textMode(Bild.CORNER),\ der\ die\ Koordinaten\ von\ text()\ als\ \r\n\ linke\ untere\ Ecke\ des\ Textes\ interpretiert.\r\n\ textMode(Bild.CENTER)\ interpretiert\ sie\ als\ Koordinaten\ des\ Mittelpunktes\ des\ Textes..\r\n\ @param\ mode\ Modus\ der\ Koordinateninterpretation\ (CORNER,\ CENTER)\r\n
-comment22.params=x1\ y1\ x2\ y2
-comment22.target=void\ line(int,\ int,\ int,\ int)
-comment22.text=\r\n\ Zeichnet\ eine\ Linie\ (einen\ direkten\ Weg\ zwischen\ zwei\ Punkten)\ auf\ den\ Bildschirm.\ \r\n\ Um\ eine\ Linie\ einzufaerben,\ verwenden\ Sie\ die\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}\ Funktion.\ Eine\ Zeile\ kann\ nicht\ gefuellt\ werden,\ daher\ hat\ die\ Funktion\ fill()\ keinen\ \r\n\ Einfluss\ auf\ die\ Farbe\ einer\ Zeile.\ Linien\ werden\ standardmaessig\ mit\ einer\ Breite\ von\ einem\ Pixel\ gezeichnet,\ dies\ kann\ jedoch\ mit\ der\ Funktion\ \r\n\ {@link\ \#strokeWeight(double)\ strokeWeight()}\ geaendert\ werden.\r\n\ @param\ x1\ x-Koordinate\ des\ 1.\ Punktes\r\n\ @param\ y1\ y-Koordinate\ des\ 1.\ Punktes\r\n\ @param\ x2\ x-Koordinate\ des\ 2.\ Punktes\r\n\ @param\ y2\ y-Koordinate\ des\ 2.\ Punktes\r\n
-comment23.params=a\ b\ c\ d
-comment23.target=void\ rect(int,\ int,\ int,\ int)
-comment23.text=\r\n\ Zeichnet\ ein\ Rechteck\ auf\ das\ Bild.\ \r\n\ Standardmaessig\ legen\ die\ ersten\ beiden\ Parameter\ die\ Position\ der\ linken\ oberen\ Ecke\ fest,\ der\ dritte\ die\ Breite\ und\ der\ vierte\ die\ Hoehe.\ \r\n\ Die\ Art\ und\ Weise,\ wie\ diese\ Parameter\ interpretiert\ werden,\ kann\ jedoch\ mit\ der\ Funktion\ {@link\ \#rectMode(int)\ rectMode()}\ geaendert\ werden.\r\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ \ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\r\n\ @param\ a\ meist\ die\ x-Koordinate\ der\ linken\ oberen\ Ecke\ (kann\ durch\ rectMode()\ geaendert\ werden).\r\n\ @param\ b\ meist\ die\ y-Koordinate\ der\ linken\ oberen\ Ecke\ (kann\ durch\ rectMode()\ geaendert\ werden).\r\n\ @param\ c\ meist\ die\ Breite\ des\ Rechtecks\ (kann\ durch\ rectMode()\ geaendert\ werden).\r\n\ @param\ d\ meist\ die\ Hoehe\ des\ Rechtecks\ (kann\ durch\ rectMode()\ geaendert\ werden).\r\n\ \r\n
-comment24.params=a\ b\ c\ d
-comment24.target=void\ ellipse(int,\ int,\ int,\ int)
-comment24.text=\r\n\ Zeichnet\ eine\ Ellipse/Kreis\ auf\ das\ Bild.\ \r\n\ Standardmaessig\ legen\ die\ ersten\ beiden\ Parameter\ die\ Position\ des\ Mittelpunkts\ fest,\ der\ dritte\ die\ Breite\ und\ der\ vierte\ die\ Hoehe.\ \r\n\ Die\ Art\ und\ Weise,\ wie\ diese\ Parameter\ interpretiert\ werden,\ kann\ jedoch\ mit\ der\ Funktion\ {@link\ \#ellipseMode(int)\ ellipseMode()}\ geaendert\ werden.\r\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\r\n\ @param\ a\ meist\ die\ x-Koordinate\ des\ Mittelpunkts\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\r\n\ @param\ b\ meist\ die\ y-Koordinate\ des\ Mittelpunkts\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\r\n\ @param\ c\ meist\ die\ Breite\ des\ Rechtecks\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\r\n\ @param\ d\ meist\ die\ Hoehe\ des\ Rechtecks\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\r\n\ \r\n
-comment25.params=x1\ y1\ x2\ y2\ x3\ y3
-comment25.target=void\ triangle(int,\ int,\ int,\ int,\ int,\ int)
-comment25.text=\r\n\ Zeichnet\ ein\ Dreieck\ auf\ das\ Bild.\ \r\n\ Ein\ Dreieck\ ist\ eine\ Ebene,\ die\ durch\ die\ Verbindung\ von\ drei\ Punkten\ entsteht.\ Die\ ersten\ beiden\ Argumente\ spezifizieren\ den\ \r\n\ ersten\ Punkt,\ die\ mittleren\ beiden\ Argumente\ spezifizieren\ den\ zweiten\ Punkt\ und\ die\ letzten\ beiden\ Argumente\ spezifizieren\ den\ dritten\ Punkt.\ \r\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\r\n\ @param\ x1\ meist\ die\ x-Koordinate\ des\ 1.\ Punkts.\r\n\ @param\ y1\ meist\ die\ y-Koordinate\ des\ 1.\ Punkts.\r\n\ @param\ x2\ meist\ die\ x-Koordinate\ des\ 2.\ Punkts.\r\n\ @param\ y2\ meist\ die\ y-Koordinate\ des\ 2.\ Punkts.\r\n\ @param\ x3\ meist\ die\ x-Koordinate\ des\ 3.\ Punkts.\r\n\ @param\ y3\ meist\ die\ y-Koordinate\ des\ 3.\ Punkts.\r\n
-comment26.params=x1\ y1\ x2\ y2\ x3\ y3\ x4\ y4
-comment26.target=void\ quad(int,\ int,\ int,\ int,\ int,\ int,\ int,\ int)
-comment26.text=\r\n\ Zeichnet\ ein\ Viereck\ auf\ das\ Bild.\ \r\n\ Ein\ Viereck\ ist\ ein\ vierseitiges\ Polygon.\ Es\ ist\ aehnlich\ wie\ ein\ Rechteck,\ aber\ die\ Winkel\ zwischen\ seinen\ Kanten\ \r\n\ sind\ nicht\ auf\ neunzig\ Grad\ beschraenkt.\ Das\ erste\ Paar\ von\ Parametern\ (x1,y1)\ setzt\ den\ ersten\ Scheitelpunkt\ und\ die\ nachfolgenden\ \r\n\ Paare\ sollten\ im\ Uhrzeigersinn\ oder\ gegen\ den\ Uhrzeigersinn\ um\ die\ definierte\ Form\ herum\ verlaufen.\ \r\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\r\n\ @param\ x1\ meist\ die\ x-Koordinate\ des\ 1.\ Punkts.\r\n\ @param\ y1\ meist\ die\ y-Koordinate\ des\ 1.\ Punkts.\r\n\ @param\ x2\ meist\ die\ x-Koordinate\ des\ 2.\ Punkts.\r\n\ @param\ y2\ meist\ die\ y-Koordinate\ des\ 2.\ Punkts.\r\n\ @param\ x3\ meist\ die\ x-Koordinate\ des\ 3.\ Punkts.\r\n\ @param\ y3\ meist\ die\ y-Koordinate\ des\ 3.\ Punkts.\r\n\ @param\ x4\ meist\ die\ x-Koordinate\ des\ 3.\ Punkts.\r\n\ @param\ y4\ meist\ die\ y-Koordinate\ des\ 3.\ Punkts.\r\n
-comment27.params=x\ y
-comment27.target=void\ polygon(int[],\ int[])
-comment27.text=\r\n\ Zeichnet\ ein\ Polygon\ auf\ das\ Bild.\r\n\ Gleich\ lange\ Listen\ von\ x\ und\ y-Koordinaten\ bestimmen\ die\ Eckpunkte\ des\ Polygons.\r\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ die\ Rahmenfarbe.\r\n\ @param\ x\ Liste\ der\ x-Koordinaten\ der\ Punkte.\r\n\ @param\ y\ Liste\ der\ y-Koordinaten\ der\ Punkte.\r\n
-comment28.params=x\ y
-comment28.target=void\ point(int,\ int)
-comment28.text=\r\n\ Zeichnet\ einen\ Punkt,\ d.h.\ einen\ Kreis\ in\ der\ Dimension\ eines\ Pixels.\ \r\n\ Der\ erste\ Parameter\ ist\ der\ x-Wert\ fuer\ den\ Punkt,\ der\ zweite\ Wert\ ist\ der\ y-Wert\ fuer\ den\ Punkt.\ \r\n\ @param\ x\ x-Koordinate\ des\ Punktes\r\n\ @param\ y\ y-Koordinate\ des\ Punktes\r\n
-comment29.params=s\ x\ y
-comment29.target=void\ text(java.lang.String,\ int,\ int)
-comment29.text=\r\n\ Gibt\ einen\ Text\ an\ den\ gegebenen\ Koordinaten\ aus\r\n\ Zur\ Ausgabe\ des\ Textes\ wird\ der\ ausgewaehlte\ Font\ verwendet.\ Dieser\ muss\ vorher\ mit\ {@link\ \#textFont(Font)\ textFont()\ }\ festgelegt.\r\n\ @param\ s\ Text,\ der\ angezeigt\ werden\ soll\r\n\ @param\ x\ x-Koordinate\ des\ Textanfangs\r\n\ @param\ y\ y-Koordinate\ der\ Grundlinie\ des\ Textes.\r\n
-comment3.params=filename
-comment3.target=Picture(java.lang.String)
-comment3.text=\ \r\n\ Erzeugt\ ein\ Bild\ aus\ einer\ Datei\r\n\ @param\ filename\ Dateiname\ des\ Bildes\r\n
-comment30.params=font
-comment30.target=void\ textFont(java.awt.Font)
-comment30.text=\r\n\ Legt\ die\ Schriftart\ fuer\ Textausgaben\ fest.\r\n\ Jeder\ uebliche\ Java-Font\ kann\ verwendet\ werden.\ Er\ kann\ mit\ z.B.\ Font\ f\ \=\ new\ Font(\ "Arial",\ Font.PLAIN,\ 14\ );\ definiert\ werden.\ \r\n\ @param\ font\ ein\ Font-Objekt\ \r\n
-comment31.params=color
-comment31.target=java.awt.Color\ decode(java.lang.String)
-comment31.text=\ \r\n\ Hilfsfunktion\ zur\ Interpretation\ von\ Farben\r\n
-comment32.params=color
-comment32.target=java.awt.Color\ decode(int)
-comment32.text=\ \r\n\ Hilfsfunktion\ zur\ Interpretation\ von\ Farben\r\n
-comment33.params=pencolor
-comment33.target=void\ stroke(java.lang.String)
-comment33.text=\r\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Linien\ und\ Raender\ um\ Formen\ gezeichnet\ werden.\ \r\n\ Diese\ Farbe\ wird\ hexadezimal\ in\ Form\ der\ RGB\ angegeben\:\ z.B.\ \ "CCFFAA"\ oder\ "004E23".\ Die\ Syntax\ verwendet\ sechs\ Ziffern\ -\ je\ zwei\ fuer\ die\ roten,\ gruenen\ und\ blauen\ Komponenten,\r\n\ um\ eine\ Farbe\ anzugeben\ (genau\ wie\ Farben\ typischerweise\ in\ HTML\ und\ CSS\ angegeben\ werden).\ \r\n\ @param\ pencolor\ Stiftfarbe\ in\ Hexadezimaldarstellung\r\n
-comment34.params=pencolor
-comment34.target=void\ stroke(int)
-comment34.text=\r\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Linien\ und\ Raender\ um\ Formen\ gezeichnet\ werden.\ \r\n\ Diese\ Farbe\ wird\ entweder\ als\ Graustufe\ (0-255)\ oder\ als\ 3-Byte\ RGB-Wert\ angegeben\r\n\ @param\ pencolor\ Stiftfarbe\ (0-255\:\ Graustufe\ zwischen\ 0\ schwarz\ und\ 255\ weiss,\ sonst\:\ c\ wird\ als\ 3-Byte\ RGB-Wert\ interpretiert)\r\n
-comment35.params=r\ g\ b
-comment35.target=void\ stroke(int,\ int,\ int)
-comment35.text=\r\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Linien\ und\ Raender\ um\ Formen\ gezeichnet\ werden.\ \r\n\ Diese\ Farbe\ wird\ komponentenweise\ als\ RGB-Wert\ angegeben\r\n\ @param\ r\ Rotanteil\ (0-255)\ der\ Stiftfarbe\r\n\ @param\ g\ Gruenanteil\ (0-255)\ der\ Stiftfarbe\r\n\ @param\ b\ Blauanteil\ (0-255)\ der\ Stiftfarbe\r\n
-comment36.params=
-comment36.target=void\ noStroke()
-comment36.text=\r\n\ Legt\ fest,\ dass\ keine\ Linien\ oder\ Raender\ um\ Formen\ gezeichnet\ werden\ soll.\ \r\n
-comment37.params=width
-comment37.target=void\ strokeWeight(double)
-comment37.text=\r\n\ Legt\ die\ Breite\ des\ Strichs\ fuer\ Linien,\ Punkte\ und\ den\ Rand\ um\ Formen\ fest.\ \r\n\ Alle\ Breiten\ werden\ in\ Pixeleinheiten\ angegeben.\ \r\n\ @param\ width\ Breite\ in\ Pixel\r\n
-comment38.params=fillcolor
-comment38.target=void\ fill(java.lang.String)
-comment38.text=\r\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Formen\ gefuellt\ werden.\ \r\n\ Diese\ Farbe\ wird\ hexadezimal\ in\ Form\ der\ RGB\ angegeben\:\ z.B.\ \ "CCFFAA"\ oder\ "004E23".\ Die\ Syntax\ verwendet\ sechs\ Ziffern\ -\ je\ zwei\ fuer\ die\ roten,\ gruenen\ und\ blauen\ Komponenten,\r\n\ um\ eine\ Farbe\ anzugeben\ (genau\ wie\ Farben\ typischerweise\ in\ HTML\ und\ CSS\ angegeben\ werden).\ \r\n\ @param\ fillcolor\ Fuellfarbe\ in\ Hexadezimaldarstellung\r\n
-comment39.params=fillcolor
-comment39.target=void\ fill(int)
-comment39.text=\r\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Formen\ gefuellt\ werden.\r\n\ Diese\ Farbe\ wird\ entweder\ als\ Graustufe\ (0-255)\ oder\ als\ 3-Byte\ RGB-Wert\ angegeben.\r\n\ @param\ fillcolor\ Fuellfarbe\ (0-255\:\ Graustufe\ zwischen\ 0\ schwarz\ und\ 255\ weiss,\ sonst\:\ c\ wird\ als\ 3-Byte\ RGB-Wert\ interpretiert)\r\n
-comment4.params=width\ height\ background
-comment4.target=Picture(int,\ int,\ java.lang.String)
-comment4.text=\r\n\ Erzeugt\ ein\ Bild\ der\ angegebenen\ Groesse\ mit\ festgelegtem\ Hintergrund\r\n\ @param\ width\ Breite\ des\ Bildes\r\n\ @param\ height\ Hoehe\ des\ Bildes\r\n\ @param\ background\ Farbe\ des\ Hintergrunds\r\n
-comment40.params=r\ g\ b
-comment40.target=void\ fill(int,\ int,\ int)
-comment40.text=\r\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Formen\ gefuellt\ werden.\r\n\ Diese\ Farbe\ wird\ komponentenweise\ als\ RGB-Wert\ angegeben.\r\n\ @param\ r\ Rotanteil\ (0-255)\ der\ Fuellfarbe\r\n\ @param\ g\ Gruenanteil\ (0-255)\ der\ Fuellfarbe\r\n\ @param\ b\ Blauanteil\ (0-255)\ der\ Fuellfarbe\r\n
-comment41.params=
-comment41.target=void\ noFill()
-comment41.text=\ Legt\ fest,\ dass\ die\ Formen\ nicht\ gefuellt\ werden\ sollen.\r\n
-comment42.params=c
-comment42.target=void\ background(int)
-comment42.text=\r\n\ Die\ Funktion\ background()\ setzt\ die\ Farbe,\ die\ fuer\ den\ Hintergrund\ des\ Bildes\ verwendet\ wird.\ Der\ Standardhintergrund\ ist\ hellgrau.\ \r\n\ Es\ ist\ nicht\ moeglich,\ den\ Alpha-Parameter\ Transparenz\ mit\ Hintergrundfarben\ auf\ der\ Hauptzeichnungsoberflaeche\ zu\ verwenden.\ \r\n\ @param\ c\ Farbe\ fuer\ den\ Hintergrund\ (0-255\:\ Graustufe\ zwischen\ 0\ schwarz\ und\ 255\ weiss,\ sonst\:\ c\ wird\ als\ 3-Byte\ RGB-Wert\ interpretiert)\r\n
-comment43.params=r\ g\ b
-comment43.target=void\ background(int,\ int,\ int)
-comment43.text=\r\n\ Die\ Funktion\ background()\ setzt\ die\ Farbe,\ die\ fuer\ den\ Hintergrund\ des\ Bildes\ verwendet\ wird.\ Der\ Standardhintergrund\ ist\ hellgrau.\ \r\n\ Es\ ist\ nicht\ moeglich,\ den\ Alpha-Parameter\ Transparenz\ mit\ Hintergrundfarben\ auf\ der\ Hauptzeichnungsoberflaeche\ zu\ verwenden.\ \r\n\ @param\ r\ Rotanteil\ (0-255)\ der\ Hintergrundfarbe\r\n\ @param\ g\ Gruenanteil\ (0-255)\ der\ Hintergrundfarbe\r\n\ @param\ b\ Blauanteil\ (0-255)\ der\ Hintergrundfarbe\r\n
-comment44.params=filename
-comment44.target=void\ load(java.lang.String)
-comment44.text=\ \r\n\ Laedt\ ein\ Bild\ aus\ dem\ Dateisystem.\r\n\ Laedt\ ein\ Bild\ von\ einem\ Datentraeger\ und\ setzt\ Stiftfarbe\ und\ Fuellfarbe\ auf\ Standardwerte\ zurueck.\r\n\ @param\ filename\ Dateiname\ des\ Bildes\r\n
-comment45.params=filename
-comment45.target=void\ save(java.lang.String)
-comment45.text=\ \r\n\ Speichert\ ein\ Bild.\r\n\ Speichert\ ein\ Bild\ auf\ einem\ Datentraeger.\ Zulaessig\ sind\ die\ Dateiformate\ PNG\ und\ GIF.\ Die\ Dateiendung\ legt\ den\ Typ\ fest.\r\n\ Standardmaessig\ wird\ die\ Dateiendung\ .png\ ergaenzt,\ wenn\ keine\ angegeben\ ist.\r\n\ @param\ filename\ Dateiname\ des\ Bildes\r\n
-comment46.params=
-comment46.target=java.awt.Color[][]\ getPixelArray()
-comment46.text=\r\n\ Liefert\ das\ Bild\ als\ zweidimensionales\ Pixel-Array.\r\n\ @return\ zweidimensionales\ Array\ von\ Color-Objekten,\ die\ den\ Pixeln\ des\ Bildes\ entsprechen.\r\n
-comment47.params=pixel
-comment47.target=void\ setPixelArray(java.awt.Color[][])
-comment47.text=\r\n\ Setzt\ das\ Bild\ neu\ auf\ Basis\ des\ Pixel-Arrays.\r\n\ Die\ Groesse\ des\ Bildes\ wird\ nicht\ automatisch\ an\ das\ Array\ angepasst.\r\n\ @param\ pixel\ zweidimensionales\ Array\ von\ Color-Objekten\r\n
-comment48.params=millis
-comment48.target=void\ delay(int)
-comment48.text=\r\n\ Hilfsfunktion\ zum\ Verzoegern\ der\ Ausgabe\r\n\ @param\ millis\ Wartezeit\ in\ Millisekunden\r\n
-comment5.params=
-comment5.target=void\ showInFrame()
-comment6.params=observer
-comment6.target=void\ setObserver(PictureViewer)
-comment6.text=\ \r\n\ \ \ Legt\ fest,\ wer\ das\ Bild\ anzeigt.\r\n\ Diese\ ermoeglicht\ die\ Benachrichtung\ des\ Observers,\ wenn\ sich\ das\ Bild\ aendert.\r\n\ @param\ observer\ Anzeiger\ des\ Bildes\r\n
-comment7.params=
-comment7.target=PictureViewer\ getObserver()
-comment8.params=b
-comment8.target=void\ setImage(java.awt.image.BufferedImage)
-comment8.text=\ \r\n\ Direktes\ Setzen\ des\ Bildes\ (fuer\ interne\ Zwecke)\r\n\ @param\ b\ Bild,\ das\ gespeichert\ werden\ soll.\r\n
-comment9.params=
-comment9.target=java.awt.image.BufferedImage\ getImage()
-comment9.text=\ \r\n\ Direktes\ Abfragen\ des\ Bildes\ (fuer\ interne\ Zwecke)\r\n\ @return\ Bild,\ das\ gerade\ gespeichert\ ist.\r\n
-numComments=49
+#BlueJ class context
+comment0.target=Picture
+comment0.text=\n\n\ Bildklasse\ fuer\ die\ Simulation\ von\ Processing-Befehlen\n\ \n\ Diese\ Klasse\ stellt\ ein\ BufferedImage\ bereit,\ in\ das\ mit\ Processing-Befehlen\ gezeichnet\n\ werden\ kann.\ \n\ Zusaetzlich\ kann\ ein\ Bildanzeiger\ ueber\ jede\ Aenderung\ des\ Bildes\ informiert\ werden,\n\ um\ "Zurueck"-Befehle\ zu\ ermoeglichen.\ Der\ Bildanzeiger\ ist\ entweder\ eine\ normale\ Java\n\ ScrollPane\ oder\ ein\ Actor\ aus\ Greenfoot.\n\ Die\ Dokumentation\ der\ einzelnen\ Zeichenmethoden\ ist\ der\ Processing-Reference\ \n\ (https\://processing.org/reference/\ steht\ unter\ CC-Lizenz\:\ https\://creativecommons.org/)\ \n\ entnommen\ und\ mit\ Deepl.com\ ins\ Deutsche\ uebersetzt.\n\n\ @version\ 1.0\ from\ 23.01.2019\n\ @author\ Thomas\ Schaller\ (ZPG\ Informatik\ Klasse\ 9)\n
+comment1.params=
+comment1.target=Picture()
+comment1.text=\ \n\ Erzeugt\ ein\ Bild\ mit\ Standardgroesse\ 500x400\n
+comment10.params=width\ height
+comment10.target=void\ size(int,\ int)
+comment10.text=\n\ Definiert\ die\ Dimension\ der\ Breite\ und\ Hoehe\ des\ Anzeigefensters\ in\ Pixeleinheiten.\ \n\ Die\ eingebauten\ Variablen\ Breite\ und\ Hoehe\ werden\ durch\ die\ an\ diese\ Funktion\ uebergebenen\ Parameter\ festgelegt.\ So\ weist\ beispielsweise\ \n\ der\ Befehl\ size(640,\ 480)\ der\ Variablen\ Breite\ 640\ und\ der\ Variablen\ Hoehe\ 480\ zu.\ \n\ @param\ width\ Breite\ des\ Bildes\n\ @param\ height\ Hoehe\ des\ Bildes\n
+comment11.params=
+comment11.target=int\ getWidth()
+comment11.text=\ \n\ Liefert\ die\ Breite\ des\ Bildes\ zurueck.\n\ @return\ Breite\ des\ Bildes\n
+comment12.params=
+comment12.target=int\ getHeight()
+comment12.text=\ \n\ Liefert\ die\ Hoehe\ des\ Bildes\ zurueck.\n\ @return\ Hoehe\ des\ Bildes\n
+comment13.params=
+comment13.target=void\ pushImage()
+comment13.text=\n\ Erzeugt\ eine\ Kopie\ des\ Bildes\ und\ uebergibt\ sie\ an\ den\ Observer\ (falls\ existent),\ damit\ dieser\ die\ Versionen\ speichern\ kann\n
+comment14.params=autoRefresh
+comment14.target=void\ setAutoRefresh(boolean)
+comment14.text=\n\ Legt\ fest,\ ob\ nach\ jedem\ Zeichenbefehl\ automatisch\ das\ Bild\ auch\ in\n\ der\ Oberflaeche\ aktualisiert\ wird.\ Die\ Einstellung\ "false"\ beschleunigt\n\ das\ Zeichnen\ aufwaendiger\ Bilder\ und\ verhindert\ "Flackern".\n\ Das\ Neuzeichnen\ kann\ durch\ die\ Methode\ "refresh"\ gezielt\ ausgeloest\ werden.\n\ @param\ autorefresh\ true\ \=\ nach\ jedem\ Zeichenbefehl\ die\ Anzeige\ aktualisieren,\ false\=\ nur\ durch\ die\ Methode\ refresh\ neu\ zeichnen\n
+comment15.params=
+comment15.target=void\ repaint()
+comment15.text=\n\ Auch\ die\ anzeigenden\ Klasse\ wird\ zum\ Neuzeichnen\ aufgefordert.\n
+comment16.params=
+comment16.target=void\ forceRepaint()
+comment16.text=\n\ Ein\ repaint()\ (das\ Neuzeichnen)\ kann\ manuell\ erzwungen\ werden.\n
+comment17.params=
+comment17.target=void\ clear()
+comment17.text=\ \n\ Loescht\ den\ Inhalt\ des\ Bildes.\n\ Der\ Hintergrund\ wird\ mit\ der\ Hintergrundfarbe\ neu\ gefuellt.\n
+comment18.params=coord\ mode
+comment18.target=void\ convert(int[],\ int)
+comment18.text=\ \n\ Konvertiert\ die\ in\ einem\ bestimmten\ Modus\ gegebenen\ Koordinaten\ in\ die\ Java-uebliche\ Links_Oben_Breite_Hoehe\ Version\n\ Die\ Aenderungen\ werden\ direkt\ im\ Array\ vorgenommen\n\ @param\ coord\ Array\ mit\ vier\ Koordinateneintraegen\ im\ gegebenen\ Modus\n\ @param\ mode\ \ Modus\ der\ Koordinaten\ (CORNER,\ CORNERS,\ RADIUS\ oder\ CENTER)\n
+comment19.params=mode
+comment19.target=void\ rectMode(int)
+comment19.text=\n\ Aendert\ den\ Koordinaten-Modus\ beim\ Zeichnen\ von\ Rechtecken.\n\ Aendert\ die\ Position,\ von\ der\ aus\ Rechtecke\ gezeichnet\ werden,\ indem\ es\ die\ Art\ und\ Weise\ aendert,\ wie\ Parameter,\ die\ an\ rect()\ uebergeben\ werden,\ interpretiert\ werden.\n\ Der\ Standardmodus\ ist\ rectMode(Bild.CORNER),\ der\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ die\ linke\ obere\ Ecke\ der\ Form\ interpretiert,\ \n\ waehrend\ der\ dritte\ und\ vierte\ Parameter\ seine\ Breite\ und\ Hoehe\ sind.\n\ rectMode(Bild.CORNERS)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ die\ Position\ einer\ Ecke\ \n\ und\ die\ dritten\ und\ vierten\ Parameter\ als\ die\ Position\ der\ gegenueberliegenden\ Ecke.\n\ rectMode(Bild.CENTER)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ Mittelpunkt\ der\ Form,\ \n\ waehrend\ der\ dritte\ und\ vierte\ Parameter\ seine\ Breite\ und\ Hoehe\ sind.\n\ rectMode(RADIUS)\ verwendet\ auch\ die\ ersten\ beiden\ Parameter\ von\ rect()\ als\ Mittelpunkt\ der\ Form,\ \n\ verwendet\ aber\ den\ dritten\ und\ vierten\ Parameter,\ um\ die\ Haelfte\ der\ Breite\ und\ Hoehe\ der\ Formen\ festzulegen.\n\ @param\ mode\ Modus\ der\ Koordinateninterpretation\ (CORNER,\ CORNERS,\ CENTER\ oder\ RADIUS)\n
+comment2.params=width\ height
+comment2.target=Picture(int,\ int)
+comment2.text=\n\ Erzeugt\ ein\ Bild\ der\ angegeben\ Groesse\n\ @param\ width\ Breite\ des\ Bildes\n\ @param\ height\ Hoehe\ des\ Bildes\n
+comment20.params=mode
+comment20.target=void\ ellipseMode(int)
+comment20.text=\n\ Aendert\ den\ Koordinaten-Modus\ beim\ Zeichnen\ von\ Kreisen/Ellipsen.\n\ Aendert\ die\ Position,\ von\ der\ aus\ Kreise/Ellipsen\ gezeichnet\ werden,\ indem\ es\ die\ Art\ und\ Weise\ aendert,\ wie\ Parameter,\ die\ an\ ellipse()\ uebergeben\ werden,\ interpretiert\ werden.\n\ Der\ Standardmodus\ ist\ ellipseMode(Bild.CENTER),\ der\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ Mittelpunkt\ der\ Form\ interpretiert,\ \n\ waehrend\ der\ dritte\ und\ vierte\ Parameter\ seine\ Breite\ und\ Hoehe\ sind.\n\ ellipseMode(Bild.CORNER)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ die\ Position\ einer\ Ecke\ \n\ und\ die\ dritten\ und\ vierten\ Parameter\ als\ Breite\ und\ Hoehe\ der\ Form.\n\ ellipseMode(Bild.CORNERS)\ interpretiert\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ die\ Position\ einer\ Ecke\ \n\ und\ die\ dritten\ und\ vierten\ Parameter\ als\ die\ Position\ der\ gegenueberliegenden\ Ecke.\n\ ellipseMode(RADIUS)\ verwendet\ auch\ die\ ersten\ beiden\ Parameter\ von\ ellipse()\ als\ Mittelpunkt\ der\ Form,\ \n\ verwendet\ aber\ den\ dritten\ und\ vierten\ Parameter,\ um\ die\ Haelfte\ der\ Breite\ und\ Hoehe\ der\ Formen\ festzulegen.\n\ @param\ mode\ Modus\ der\ Koordinateninterpretation\ (CORNER,\ CORNERS,\ CENTER\ oder\ RADIUS)\n
+comment21.params=mode
+comment21.target=void\ textMode(int)
+comment21.text=\n\ Aendert\ den\ Koordinaten-Modus\ beim\ Zeichnen\ von\ Texten.\n\ Aendert\ die\ Position,\ an\ der\ Texte\ gezeichnet\ werden,\ indem\ es\ die\ Art\ und\ Weise\ aendert,\ wie\ Parameter,\ die\ an\ text()\ uebergeben\ werden,\ interpretiert\ werden.\n\ Der\ Standardmodus\ ist\ textMode(Bild.CORNER),\ der\ die\ Koordinaten\ von\ text()\ als\ \n\ linke\ untere\ Ecke\ des\ Textes\ interpretiert.\n\ textMode(Bild.CENTER)\ interpretiert\ sie\ als\ Koordinaten\ des\ Mittelpunktes\ des\ Textes..\n\ @param\ mode\ Modus\ der\ Koordinateninterpretation\ (CORNER,\ CENTER)\n
+comment22.params=x1\ y1\ x2\ y2
+comment22.target=void\ line(int,\ int,\ int,\ int)
+comment22.text=\n\ Zeichnet\ eine\ Linie\ (einen\ direkten\ Weg\ zwischen\ zwei\ Punkten)\ auf\ den\ Bildschirm.\ \n\ Um\ eine\ Linie\ einzufaerben,\ verwenden\ Sie\ die\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}\ Funktion.\ Eine\ Zeile\ kann\ nicht\ gefuellt\ werden,\ daher\ hat\ die\ Funktion\ fill()\ keinen\ \n\ Einfluss\ auf\ die\ Farbe\ einer\ Zeile.\ Linien\ werden\ standardmaessig\ mit\ einer\ Breite\ von\ einem\ Pixel\ gezeichnet,\ dies\ kann\ jedoch\ mit\ der\ Funktion\ \n\ {@link\ \#strokeWeight(double)\ strokeWeight()}\ geaendert\ werden.\n\ @param\ x1\ x-Koordinate\ des\ 1.\ Punktes\n\ @param\ y1\ y-Koordinate\ des\ 1.\ Punktes\n\ @param\ x2\ x-Koordinate\ des\ 2.\ Punktes\n\ @param\ y2\ y-Koordinate\ des\ 2.\ Punktes\n
+comment23.params=a\ b\ c\ d
+comment23.target=void\ rect(int,\ int,\ int,\ int)
+comment23.text=\n\ Zeichnet\ ein\ Rechteck\ auf\ das\ Bild.\ \n\ Standardmaessig\ legen\ die\ ersten\ beiden\ Parameter\ die\ Position\ der\ linken\ oberen\ Ecke\ fest,\ der\ dritte\ die\ Breite\ und\ der\ vierte\ die\ Hoehe.\ \n\ Die\ Art\ und\ Weise,\ wie\ diese\ Parameter\ interpretiert\ werden,\ kann\ jedoch\ mit\ der\ Funktion\ {@link\ \#rectMode(int)\ rectMode()}\ geaendert\ werden.\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ \ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\n\ @param\ a\ meist\ die\ x-Koordinate\ der\ linken\ oberen\ Ecke\ (kann\ durch\ rectMode()\ geaendert\ werden).\n\ @param\ b\ meist\ die\ y-Koordinate\ der\ linken\ oberen\ Ecke\ (kann\ durch\ rectMode()\ geaendert\ werden).\n\ @param\ c\ meist\ die\ Breite\ des\ Rechtecks\ (kann\ durch\ rectMode()\ geaendert\ werden).\n\ @param\ d\ meist\ die\ Hoehe\ des\ Rechtecks\ (kann\ durch\ rectMode()\ geaendert\ werden).\n\ \n
+comment24.params=a\ b\ c\ d
+comment24.target=void\ ellipse(int,\ int,\ int,\ int)
+comment24.text=\n\ Zeichnet\ eine\ Ellipse/Kreis\ auf\ das\ Bild.\ \n\ Standardmaessig\ legen\ die\ ersten\ beiden\ Parameter\ die\ Position\ des\ Mittelpunkts\ fest,\ der\ dritte\ die\ Breite\ und\ der\ vierte\ die\ Hoehe.\ \n\ Die\ Art\ und\ Weise,\ wie\ diese\ Parameter\ interpretiert\ werden,\ kann\ jedoch\ mit\ der\ Funktion\ {@link\ \#ellipseMode(int)\ ellipseMode()}\ geaendert\ werden.\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\n\ @param\ a\ meist\ die\ x-Koordinate\ des\ Mittelpunkts\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\n\ @param\ b\ meist\ die\ y-Koordinate\ des\ Mittelpunkts\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\n\ @param\ c\ meist\ die\ Breite\ des\ Rechtecks\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\n\ @param\ d\ meist\ die\ Hoehe\ des\ Rechtecks\ (kann\ durch\ ellipseMode()\ geaendert\ werden).\n\ \n
+comment25.params=x1\ y1\ x2\ y2\ x3\ y3
+comment25.target=void\ triangle(int,\ int,\ int,\ int,\ int,\ int)
+comment25.text=\n\ Zeichnet\ ein\ Dreieck\ auf\ das\ Bild.\ \n\ Ein\ Dreieck\ ist\ eine\ Ebene,\ die\ durch\ die\ Verbindung\ von\ drei\ Punkten\ entsteht.\ Die\ ersten\ beiden\ Argumente\ spezifizieren\ den\ \n\ ersten\ Punkt,\ die\ mittleren\ beiden\ Argumente\ spezifizieren\ den\ zweiten\ Punkt\ und\ die\ letzten\ beiden\ Argumente\ spezifizieren\ den\ dritten\ Punkt.\ \n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\n\ @param\ x1\ meist\ die\ x-Koordinate\ des\ 1.\ Punkts.\n\ @param\ y1\ meist\ die\ y-Koordinate\ des\ 1.\ Punkts.\n\ @param\ x2\ meist\ die\ x-Koordinate\ des\ 2.\ Punkts.\n\ @param\ y2\ meist\ die\ y-Koordinate\ des\ 2.\ Punkts.\n\ @param\ x3\ meist\ die\ x-Koordinate\ des\ 3.\ Punkts.\n\ @param\ y3\ meist\ die\ y-Koordinate\ des\ 3.\ Punkts.\n
+comment26.params=x1\ y1\ x2\ y2\ x3\ y3\ x4\ y4
+comment26.target=void\ quad(int,\ int,\ int,\ int,\ int,\ int,\ int,\ int)
+comment26.text=\n\ Zeichnet\ ein\ Viereck\ auf\ das\ Bild.\ \n\ Ein\ Viereck\ ist\ ein\ vierseitiges\ Polygon.\ Es\ ist\ aehnlich\ wie\ ein\ Rechteck,\ aber\ die\ Winkel\ zwischen\ seinen\ Kanten\ \n\ sind\ nicht\ auf\ neunzig\ Grad\ beschraenkt.\ Das\ erste\ Paar\ von\ Parametern\ (x1,y1)\ setzt\ den\ ersten\ Scheitelpunkt\ und\ die\ nachfolgenden\ \n\ Paare\ sollten\ im\ Uhrzeigersinn\ oder\ gegen\ den\ Uhrzeigersinn\ um\ die\ definierte\ Form\ herum\ verlaufen.\ \n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ \ die\ Rahmenfarbe.\n\ @param\ x1\ meist\ die\ x-Koordinate\ des\ 1.\ Punkts.\n\ @param\ y1\ meist\ die\ y-Koordinate\ des\ 1.\ Punkts.\n\ @param\ x2\ meist\ die\ x-Koordinate\ des\ 2.\ Punkts.\n\ @param\ y2\ meist\ die\ y-Koordinate\ des\ 2.\ Punkts.\n\ @param\ x3\ meist\ die\ x-Koordinate\ des\ 3.\ Punkts.\n\ @param\ y3\ meist\ die\ y-Koordinate\ des\ 3.\ Punkts.\n\ @param\ x4\ meist\ die\ x-Koordinate\ des\ 3.\ Punkts.\n\ @param\ y4\ meist\ die\ y-Koordinate\ des\ 3.\ Punkts.\n
+comment27.params=x\ y
+comment27.target=void\ polygon(int[],\ int[])
+comment27.text=\n\ Zeichnet\ ein\ Polygon\ auf\ das\ Bild.\n\ Gleich\ lange\ Listen\ von\ x\ und\ y-Koordinaten\ bestimmen\ die\ Eckpunkte\ des\ Polygons.\n\ Durch\ den\ Befehl\ {@link\ \#fill(int,int,int)\ fill()}\ /{@link\ \#noFill()\ noFill()}\ kann\ die\ Fuellfarbe\ des\ Rechtecks\ gewaehlt\ werden,\ durch\ {@link\ \#stroke(int,\ int,\ int)\ stroke()}/{@link\ \#noStroke()\ noStroke()}\ die\ Rahmenfarbe.\n\ @param\ x\ Liste\ der\ x-Koordinaten\ der\ Punkte.\n\ @param\ y\ Liste\ der\ y-Koordinaten\ der\ Punkte.\n
+comment28.params=x\ y
+comment28.target=void\ point(int,\ int)
+comment28.text=\n\ Zeichnet\ einen\ Punkt,\ d.h.\ einen\ Kreis\ in\ der\ Dimension\ eines\ Pixels.\ \n\ Der\ erste\ Parameter\ ist\ der\ x-Wert\ fuer\ den\ Punkt,\ der\ zweite\ Wert\ ist\ der\ y-Wert\ fuer\ den\ Punkt.\ \n\ @param\ x\ x-Koordinate\ des\ Punktes\n\ @param\ y\ y-Koordinate\ des\ Punktes\n
+comment29.params=s\ x\ y
+comment29.target=void\ text(java.lang.String,\ int,\ int)
+comment29.text=\n\ Gibt\ einen\ Text\ an\ den\ gegebenen\ Koordinaten\ aus\n\ Zur\ Ausgabe\ des\ Textes\ wird\ der\ ausgewaehlte\ Font\ verwendet.\ Dieser\ muss\ vorher\ mit\ {@link\ \#textFont(Font)\ textFont()\ }\ festgelegt.\n\ @param\ s\ Text,\ der\ angezeigt\ werden\ soll\n\ @param\ x\ x-Koordinate\ des\ Textanfangs\n\ @param\ y\ y-Koordinate\ der\ Grundlinie\ des\ Textes.\n
+comment3.params=filename
+comment3.target=Picture(java.lang.String)
+comment3.text=\ \n\ Erzeugt\ ein\ Bild\ aus\ einer\ Datei\n\ @param\ filename\ Dateiname\ des\ Bildes\n
+comment30.params=font
+comment30.target=void\ textFont(java.awt.Font)
+comment30.text=\n\ Legt\ die\ Schriftart\ fuer\ Textausgaben\ fest.\n\ Jeder\ uebliche\ Java-Font\ kann\ verwendet\ werden.\ Er\ kann\ mit\ z.B.\ Font\ f\ \=\ new\ Font(\ "Arial",\ Font.PLAIN,\ 14\ );\ definiert\ werden.\ \n\ @param\ font\ ein\ Font-Objekt\ \n
+comment31.params=color
+comment31.target=java.awt.Color\ decode(java.lang.String)
+comment31.text=\ \n\ Hilfsfunktion\ zur\ Interpretation\ von\ Farben\n
+comment32.params=color
+comment32.target=java.awt.Color\ decode(int)
+comment32.text=\ \n\ Hilfsfunktion\ zur\ Interpretation\ von\ Farben\n
+comment33.params=pencolor
+comment33.target=void\ stroke(java.lang.String)
+comment33.text=\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Linien\ und\ Raender\ um\ Formen\ gezeichnet\ werden.\ \n\ Diese\ Farbe\ wird\ hexadezimal\ in\ Form\ der\ RGB\ angegeben\:\ z.B.\ \ "CCFFAA"\ oder\ "004E23".\ Die\ Syntax\ verwendet\ sechs\ Ziffern\ -\ je\ zwei\ fuer\ die\ roten,\ gruenen\ und\ blauen\ Komponenten,\n\ um\ eine\ Farbe\ anzugeben\ (genau\ wie\ Farben\ typischerweise\ in\ HTML\ und\ CSS\ angegeben\ werden).\ \n\ @param\ pencolor\ Stiftfarbe\ in\ Hexadezimaldarstellung\n
+comment34.params=pencolor
+comment34.target=void\ stroke(int)
+comment34.text=\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Linien\ und\ Raender\ um\ Formen\ gezeichnet\ werden.\ \n\ Diese\ Farbe\ wird\ entweder\ als\ Graustufe\ (0-255)\ oder\ als\ 3-Byte\ RGB-Wert\ angegeben\n\ @param\ pencolor\ Stiftfarbe\ (0-255\:\ Graustufe\ zwischen\ 0\ schwarz\ und\ 255\ weiss,\ sonst\:\ c\ wird\ als\ 3-Byte\ RGB-Wert\ interpretiert)\n
+comment35.params=r\ g\ b
+comment35.target=void\ stroke(int,\ int,\ int)
+comment35.text=\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Linien\ und\ Raender\ um\ Formen\ gezeichnet\ werden.\ \n\ Diese\ Farbe\ wird\ komponentenweise\ als\ RGB-Wert\ angegeben\n\ @param\ r\ Rotanteil\ (0-255)\ der\ Stiftfarbe\n\ @param\ g\ Gruenanteil\ (0-255)\ der\ Stiftfarbe\n\ @param\ b\ Blauanteil\ (0-255)\ der\ Stiftfarbe\n
+comment36.params=
+comment36.target=void\ noStroke()
+comment36.text=\n\ Legt\ fest,\ dass\ keine\ Linien\ oder\ Raender\ um\ Formen\ gezeichnet\ werden\ soll.\ \n
+comment37.params=width
+comment37.target=void\ strokeWeight(double)
+comment37.text=\n\ Legt\ die\ Breite\ des\ Strichs\ fuer\ Linien,\ Punkte\ und\ den\ Rand\ um\ Formen\ fest.\ \n\ Alle\ Breiten\ werden\ in\ Pixeleinheiten\ angegeben.\ \n\ @param\ width\ Breite\ in\ Pixel\n
+comment38.params=fillcolor
+comment38.target=void\ fill(java.lang.String)
+comment38.text=\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Formen\ gefuellt\ werden.\ \n\ Diese\ Farbe\ wird\ hexadezimal\ in\ Form\ der\ RGB\ angegeben\:\ z.B.\ \ "CCFFAA"\ oder\ "004E23".\ Die\ Syntax\ verwendet\ sechs\ Ziffern\ -\ je\ zwei\ fuer\ die\ roten,\ gruenen\ und\ blauen\ Komponenten,\n\ um\ eine\ Farbe\ anzugeben\ (genau\ wie\ Farben\ typischerweise\ in\ HTML\ und\ CSS\ angegeben\ werden).\ \n\ @param\ fillcolor\ Fuellfarbe\ in\ Hexadezimaldarstellung\n
+comment39.params=fillcolor
+comment39.target=void\ fill(int)
+comment39.text=\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Formen\ gefuellt\ werden.\n\ Diese\ Farbe\ wird\ entweder\ als\ Graustufe\ (0-255)\ oder\ als\ 3-Byte\ RGB-Wert\ angegeben.\n\ @param\ fillcolor\ Fuellfarbe\ (0-255\:\ Graustufe\ zwischen\ 0\ schwarz\ und\ 255\ weiss,\ sonst\:\ c\ wird\ als\ 3-Byte\ RGB-Wert\ interpretiert)\n
+comment4.params=width\ height\ background
+comment4.target=Picture(int,\ int,\ java.lang.String)
+comment4.text=\n\ Erzeugt\ ein\ Bild\ der\ angegebenen\ Groesse\ mit\ festgelegtem\ Hintergrund\n\ @param\ width\ Breite\ des\ Bildes\n\ @param\ height\ Hoehe\ des\ Bildes\n\ @param\ background\ Farbe\ des\ Hintergrunds\n
+comment40.params=r\ g\ b
+comment40.target=void\ fill(int,\ int,\ int)
+comment40.text=\n\ Legt\ die\ Farbe\ fest,\ mit\ der\ Formen\ gefuellt\ werden.\n\ Diese\ Farbe\ wird\ komponentenweise\ als\ RGB-Wert\ angegeben.\n\ @param\ r\ Rotanteil\ (0-255)\ der\ Fuellfarbe\n\ @param\ g\ Gruenanteil\ (0-255)\ der\ Fuellfarbe\n\ @param\ b\ Blauanteil\ (0-255)\ der\ Fuellfarbe\n
+comment41.params=
+comment41.target=void\ noFill()
+comment41.text=\ Legt\ fest,\ dass\ die\ Formen\ nicht\ gefuellt\ werden\ sollen.\n
+comment42.params=c
+comment42.target=void\ background(int)
+comment42.text=\n\ Die\ Funktion\ background()\ setzt\ die\ Farbe,\ die\ fuer\ den\ Hintergrund\ des\ Bildes\ verwendet\ wird.\ Der\ Standardhintergrund\ ist\ hellgrau.\ \n\ Es\ ist\ nicht\ moeglich,\ den\ Alpha-Parameter\ Transparenz\ mit\ Hintergrundfarben\ auf\ der\ Hauptzeichnungsoberflaeche\ zu\ verwenden.\ \n\ @param\ c\ Farbe\ fuer\ den\ Hintergrund\ (0-255\:\ Graustufe\ zwischen\ 0\ schwarz\ und\ 255\ weiss,\ sonst\:\ c\ wird\ als\ 3-Byte\ RGB-Wert\ interpretiert)\n
+comment43.params=r\ g\ b
+comment43.target=void\ background(int,\ int,\ int)
+comment43.text=\n\ Die\ Funktion\ background()\ setzt\ die\ Farbe,\ die\ fuer\ den\ Hintergrund\ des\ Bildes\ verwendet\ wird.\ Der\ Standardhintergrund\ ist\ hellgrau.\ \n\ Es\ ist\ nicht\ moeglich,\ den\ Alpha-Parameter\ Transparenz\ mit\ Hintergrundfarben\ auf\ der\ Hauptzeichnungsoberflaeche\ zu\ verwenden.\ \n\ @param\ r\ Rotanteil\ (0-255)\ der\ Hintergrundfarbe\n\ @param\ g\ Gruenanteil\ (0-255)\ der\ Hintergrundfarbe\n\ @param\ b\ Blauanteil\ (0-255)\ der\ Hintergrundfarbe\n
+comment44.params=filename
+comment44.target=void\ load(java.lang.String)
+comment44.text=\ \n\ Laedt\ ein\ Bild\ aus\ dem\ Dateisystem.\n\ Laedt\ ein\ Bild\ von\ einem\ Datentraeger\ und\ setzt\ Stiftfarbe\ und\ Fuellfarbe\ auf\ Standardwerte\ zurueck.\n\ @param\ filename\ Dateiname\ des\ Bildes\n
+comment45.params=filename
+comment45.target=void\ save(java.lang.String)
+comment45.text=\ \n\ Speichert\ ein\ Bild.\n\ Speichert\ ein\ Bild\ auf\ einem\ Datentraeger.\ Zulaessig\ sind\ die\ Dateiformate\ PNG\ und\ GIF.\ Die\ Dateiendung\ legt\ den\ Typ\ fest.\n\ Standardmaessig\ wird\ die\ Dateiendung\ .png\ ergaenzt,\ wenn\ keine\ angegeben\ ist.\n\ @param\ filename\ Dateiname\ des\ Bildes\n
+comment46.params=
+comment46.target=java.awt.Color[][]\ getPixelArray()
+comment46.text=\n\ Liefert\ das\ Bild\ als\ zweidimensionales\ Pixel-Array.\n\ @return\ zweidimensionales\ Array\ von\ Color-Objekten,\ die\ den\ Pixeln\ des\ Bildes\ entsprechen.\n
+comment47.params=pixel
+comment47.target=void\ setPixelArray(java.awt.Color[][])
+comment47.text=\n\ Setzt\ das\ Bild\ neu\ auf\ Basis\ des\ Pixel-Arrays.\n\ Die\ Groesse\ des\ Bildes\ wird\ nicht\ automatisch\ an\ das\ Array\ angepasst.\n\ @param\ pixel\ zweidimensionales\ Array\ von\ Color-Objekten\n
+comment48.params=millis
+comment48.target=void\ delay(int)
+comment48.text=\n\ Hilfsfunktion\ zum\ Verzoegern\ der\ Ausgabe\n\ @param\ millis\ Wartezeit\ in\ Millisekunden\n
+comment5.params=
+comment5.target=void\ showInFrame()
+comment6.params=observer
+comment6.target=void\ setObserver(PictureViewer)
+comment6.text=\ \n\ \ \ Legt\ fest,\ wer\ das\ Bild\ anzeigt.\n\ Diese\ ermoeglicht\ die\ Benachrichtung\ des\ Observers,\ wenn\ sich\ das\ Bild\ aendert.\n\ @param\ observer\ Anzeiger\ des\ Bildes\n
+comment7.params=
+comment7.target=PictureViewer\ getObserver()
+comment8.params=b
+comment8.target=void\ setImage(java.awt.image.BufferedImage)
+comment8.text=\ \n\ Direktes\ Setzen\ des\ Bildes\ (fuer\ interne\ Zwecke)\n\ @param\ b\ Bild,\ das\ gespeichert\ werden\ soll.\n
+comment9.params=
+comment9.target=java.awt.image.BufferedImage\ getImage()
+comment9.text=\ \n\ Direktes\ Abfragen\ des\ Bildes\ (fuer\ interne\ Zwecke)\n\ @return\ Bild,\ das\ gerade\ gespeichert\ ist.\n
+numComments=49
diff --git a/imp/PictureViewer.ctxt b/imp/PictureViewer.ctxt
index e43494a..3c558bb 100644
--- a/imp/PictureViewer.ctxt
+++ b/imp/PictureViewer.ctxt
@@ -1,39 +1,39 @@
-#BlueJ class context
-comment0.target=PictureViewer
-comment1.params=
-comment1.target=PictureViewer()
-comment1.text=\r\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ der\ Gr\u00F6\u00DFe\ 1000x1000\r\n
-comment10.params=
-comment10.target=void\ back()
-comment10.text=\r\n\ Ruft\ das\ letzte\ abgespeicherte\ Bild\ aus\ der\ History\ wieder\ auf.\r\n
-comment11.params=
-comment11.target=void\ repaint()
-comment11.text=\r\n\ Setzt\ das\ angezeigt\ Bild\ neu\ und\ beachtet\ dabei\ den\ Zoomfaktor.\r\n
-comment12.params=factor
-comment12.target=void\ setZoom(double)
-comment12.text=\r\n\ Setzt\ den\ Zoom-Faktor\ f\u00FCr\ das\ Bild.\r\n\ Als\ Zoomfaktor\ sind\ auch\ die\ Konstanten\ Bildanzeiger.FIT\ (auf\ Bildschirmgr\u00F6\u00DFe\ zoomen)\ und\ Bildanzeiger.NORMAL\ (100%)\ m\u00F6glich.\r\n\ @param\ factor\ Zoomfaktor\ (1.0\ \=\ 100%).\ \r\n
-comment2.params=width\ height
-comment2.target=PictureViewer(int,\ int)
-comment2.text=\r\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ der\ angegebenen\ Gr\u00F6\u00DFe\ \r\n\ @param\ width\ Breite\ des\ Bildes\r\n\ @param\ height\ H\u00F6he\ des\ Bildes\r\n
-comment3.params=width\ height\ background
-comment3.target=PictureViewer(int,\ int,\ java.lang.String)
-comment3.text=\r\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ der\ angegebenen\ Gr\u00F6\u00DFe\ \r\n\ @param\ width\ Breite\ des\ Bildes\r\n\ @param\ height\ H\u00F6he\ des\ Bildes\r\n\ @param\ background\ Farbe\ des\ Hintergrunds\ als\ HEX-String\ (z.B.\ "FF3A45")\r\n
-comment4.params=filename
-comment4.target=PictureViewer(java.lang.String)
-comment4.text=\r\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ aus\ einer\ Bilddatei\r\n\ @param\ filename\ Name\ des\ Bildes\r\n
-comment5.params=picture
-comment5.target=PictureViewer(Picture)
-comment5.text=\r\n\ Erzeugt\ ein\ ScrollPanel\ und\ zeigt\ das\ Bild-Objekt\ an\r\n\ @param\ picture\ anzuzeigendes\ Bild\r\n
-comment6.params=picture\ saveOldImage
-comment6.target=void\ setImage(Picture,\ boolean)
-comment6.text=\r\n\ Setzt\ das\ anzuzeigende\ Bild\ neu\r\n\ @param\ picture\ anzuzeigendes\ Bild\r\n\ @param\ saveOldImage\ soll\ das\ aktuelle\ Bild\ in\ der\ Historie\ gespeichert\ werden\r\n
-comment7.params=
-comment7.target=Picture\ getImage()
-comment7.text=\r\n\ Liefert\ das\ angezeigte\ Bild\r\n\ @return\ angezeigtes\ Bild\r\n
-comment8.params=bi
-comment8.target=java.awt.image.BufferedImage\ deepCopy(java.awt.image.BufferedImage)
-comment8.text=\ \r\n\ Erzeugt\ eine\ Kopie\ eines\ BufferedImage.\r\n\ @param\ Originalbild\r\n\ @return\ Kopie\ des\ Bildes\r\n
-comment9.params=
-comment9.target=void\ pushImage()
-comment9.text=\r\n\ Speichert\ das\ \u00FCbergebene\ Bild\ in\ der\ History.\r\n\ @param\ b\ zu\ speicherndes\ Bild\r\n
-numComments=13
+#BlueJ class context
+comment0.target=PictureViewer
+comment1.params=
+comment1.target=PictureViewer()
+comment1.text=\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ der\ Gr\u00F6\u00DFe\ 1000x1000\n
+comment10.params=
+comment10.target=void\ back()
+comment10.text=\n\ Ruft\ das\ letzte\ abgespeicherte\ Bild\ aus\ der\ History\ wieder\ auf.\n
+comment11.params=
+comment11.target=void\ repaint()
+comment11.text=\n\ Setzt\ das\ angezeigt\ Bild\ neu\ und\ beachtet\ dabei\ den\ Zoomfaktor.\n
+comment12.params=factor
+comment12.target=void\ setZoom(double)
+comment12.text=\n\ Setzt\ den\ Zoom-Faktor\ f\u00FCr\ das\ Bild.\n\ Als\ Zoomfaktor\ sind\ auch\ die\ Konstanten\ Bildanzeiger.FIT\ (auf\ Bildschirmgr\u00F6\u00DFe\ zoomen)\ und\ Bildanzeiger.NORMAL\ (100%)\ m\u00F6glich.\n\ @param\ factor\ Zoomfaktor\ (1.0\ \=\ 100%).\ \n
+comment2.params=width\ height
+comment2.target=PictureViewer(int,\ int)
+comment2.text=\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ der\ angegebenen\ Gr\u00F6\u00DFe\ \n\ @param\ width\ Breite\ des\ Bildes\n\ @param\ height\ H\u00F6he\ des\ Bildes\n
+comment3.params=width\ height\ background
+comment3.target=PictureViewer(int,\ int,\ java.lang.String)
+comment3.text=\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ der\ angegebenen\ Gr\u00F6\u00DFe\ \n\ @param\ width\ Breite\ des\ Bildes\n\ @param\ height\ H\u00F6he\ des\ Bildes\n\ @param\ background\ Farbe\ des\ Hintergrunds\ als\ HEX-String\ (z.B.\ "FF3A45")\n
+comment4.params=filename
+comment4.target=PictureViewer(java.lang.String)
+comment4.text=\n\ Erzeugt\ ein\ ScrollPanel\ mit\ integriertem\ Bild\ aus\ einer\ Bilddatei\n\ @param\ filename\ Name\ des\ Bildes\n
+comment5.params=picture
+comment5.target=PictureViewer(Picture)
+comment5.text=\n\ Erzeugt\ ein\ ScrollPanel\ und\ zeigt\ das\ Bild-Objekt\ an\n\ @param\ picture\ anzuzeigendes\ Bild\n
+comment6.params=picture\ saveOldImage
+comment6.target=void\ setImage(Picture,\ boolean)
+comment6.text=\n\ Setzt\ das\ anzuzeigende\ Bild\ neu\n\ @param\ picture\ anzuzeigendes\ Bild\n\ @param\ saveOldImage\ soll\ das\ aktuelle\ Bild\ in\ der\ Historie\ gespeichert\ werden\n
+comment7.params=
+comment7.target=Picture\ getImage()
+comment7.text=\n\ Liefert\ das\ angezeigte\ Bild\n\ @return\ angezeigtes\ Bild\n
+comment8.params=bi
+comment8.target=java.awt.image.BufferedImage\ deepCopy(java.awt.image.BufferedImage)
+comment8.text=\ \n\ Erzeugt\ eine\ Kopie\ eines\ BufferedImage.\n\ @param\ Originalbild\n\ @return\ Kopie\ des\ Bildes\n
+comment9.params=
+comment9.target=void\ pushImage()
+comment9.text=\n\ Speichert\ das\ \u00FCbergebene\ Bild\ in\ der\ History.\n\ @param\ b\ zu\ speicherndes\ Bild\n
+numComments=13
diff --git a/imp/Table.ctxt b/imp/Table.ctxt
index 54b14c3..1df8bc7 100644
--- a/imp/Table.ctxt
+++ b/imp/Table.ctxt
@@ -1,177 +1,177 @@
-#BlueJ class context
-comment0.target=Table
-comment1.params=
-comment1.target=Table()
-comment1.text=\ \r\n\ Erzeugt\ leeres\ Tabellen-Dokument.\r\n
-comment10.params=filename\ options\ separator\ quote
-comment10.target=void\ saveCSV(java.lang.String,\ java.lang.String,\ char,\ char)
-comment10.text=\ \r\n\ Speichert\ das\ aktuelle\ Dokument\ als\ CSV-Datei.\ \r\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enthalten,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ haben\ soll,\ \r\n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\r\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ haben\ soll.\r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n\ @param\ separator\ Trennzeichen\ f\u00FCr\ Spalten\ (meist\ ';'\ oder\ ','\ oder\ '\\t'\ f\u00FCr\ Tab)\r\n\ @param\ quote\ Kennung\ f\u00FCr\ Texte\ (meist\ '"').\ \r\n
-comment11.params=filename
-comment11.target=void\ saveXML(java.lang.String)
-comment11.text=\ Speichert\ die\ Tabelle\ als\ XML-Dokument.\r\n\ \ @param\ filename\ Dateiname\ des\ XML-Files\r\n
-comment12.params=cvsLine
-comment12.target=java.util.List\ parseLine(java.lang.String)
-comment12.text=\ HIlfsfunktion\ f\u00FCr\ die\ Analyse\ einer\ Dateizeile\r\n\ @param\ cvsLine\ Zeile\ aus\ der\ Datei\r\n\ @return\ Liste\ von\ String\ f\u00FCr\ die\ einzelnen\ Spalten\r\n
-comment13.params=cvsLine\ separator
-comment13.target=java.util.List\ parseLine(java.lang.String,\ char)
-comment13.text=\ HIlfsfunktion\ f\u00FCr\ die\ Analyse\ einer\ Dateizeile\r\n\ @param\ cvsLine\ Zeile\ aus\ der\ Datei\r\n\ @param\ sparator\ Trennzeichen\ f\u00FCr\ die\ Spalten\ \r\n\ @return\ Liste\ von\ String\ f\u00FCr\ die\ einzelnen\ Spalten\r\n
-comment14.params=cvsLine\ separator\ customQuote
-comment14.target=java.util.List\ parseLine(java.lang.String,\ char,\ char)
-comment14.text=\ HIlfsfunktion\ f\u00FCr\ die\ Analyse\ einer\ Dateizeile\r\n\ @param\ cvsLine\ Zeile\ aus\ der\ Datei\r\n\ @param\ sparator\ Trennzeichen\ f\u00FCr\ die\ Spalten\ \r\n\ @param\ customQuote\ Kennung\ f\u00FCr\ Strings\r\n\ @return\ Liste\ von\ String\ f\u00FCr\ die\ einzelnen\ Spalten\r\n
-comment15.params=name
-comment15.target=int\ findColumnNumber(java.lang.String)
-comment15.text=\ \r\n\ \ Sucht\ die\ Nummer\ einer\ durch\ Namen\ gegebenen\ Spalte.\r\n\ \ @param\ name\ Name\ der\ Spalte\r\n\ \ @return\ Nummer\ der\ Spalte\r\n
-comment16.params=
-comment16.target=void\ addColumn()
-comment16.text=\r\n\ F\u00FCgt\ eine\ neue\ Spalte\ am\ Ende\ der\ Tabelle\ an.\r\n
-comment17.params=title
-comment17.target=void\ addColumn(java.lang.String)
-comment17.text=\ \r\n\ F\u00FCgt\ eine\ neue\ Spalte\ am\ Ende\ der\ Tabelle\ an\ und\ benennt\ sie.\r\n\ @param\ title\ Bezeichnung\ der\ Spalte\r\n
-comment18.params=title\ type
-comment18.target=void\ addColumn(java.lang.String,\ java.lang.String)
-comment18.text=\r\n\ F\u00FCgt\ eine\ neue\ Spalte\ am\ Ende\ der\ Tabelle\ an\ und\ benennt\ und\ typisiert\ sie.\r\n\ @param\ title\ Bezeichnung\ der\ Spalte\r\n\ @param\ type\ Typ\ der\ Spalte\ (UNKNOWN,\ DOUBLE,\ INTEGER,\ FLOAT)\r\n
-comment19.params=i
-comment19.target=void\ removeColumn(int)
-comment19.text=\r\n\ L\u00F6scht\ eine\ Spalte.\r\n\ @param\ i\ Nummer\ der\ Spalte.\r\n
-comment2.params=filename\ options\ separator\ quote
-comment2.target=Table(java.lang.String,\ java.lang.String,\ char,\ char)
-comment2.text=\ \r\n\ Erzeugt\ Tabellen-Dokument\ aus\ einer\ CSV-Datei.\r\n\ Liest\ den\ Inhalt\ einer\ Datei\ und\ erstellt\ ein\ Tabellenobjekt\ mit\ seinen\ Werten.\ \r\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \r\n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\r\n\ @param\ separator\ Trennzeichen\ f\u00FCr\ Spalten\ (meist\ ';'\ oder\ ','\ oder\ '\\t'\ f\u00FCr\ Tab)\r\n\ @param\ quote\ Kennung\ f\u00FCr\ Texte\ (meist\ '"').\ \r\n
-comment20.params=name
-comment20.target=void\ removeColumn(java.lang.String)
-comment20.text=\r\n\ L\u00F6scht\ eine\ Spalte\r\n\ @param\ name\ Name\ der\ Spalte\r\n
-comment21.params=
-comment21.target=int\ getColumnCount()
-comment21.text=\r\n\ Liefert\ die\ Anzahl\ der\ Spalten\ in\ der\ Tabelle\r\n\ @return\ Anzahl\ der\ Spalten\r\n
-comment22.params=
-comment22.target=int\ getRowCount()
-comment22.text=\r\n\ Liefert\ die\ Anzahl\ der\ Zeilen\ in\ der\ Tabelle\r\n\ @return\ Anzahl\ der\ Zeilen\r\n
-comment23.params=
-comment23.target=void\ clearRows()
-comment23.text=\ \r\n\ L\u00F6scht\ alle\ Zeilen\ der\ Tabelle.\r\n\ Die\ Spalten\u00FCberschriften\ und\ Typen\ bleiben\ erhalten.\r\n
-comment24.params=
-comment24.target=TableRow\ addRow()
-comment24.text=\r\n\ F\u00FCgt\ eine\ neue\ Zeile\ an\ das\ Ende\ der\ Tabelle\ an.\r\n\ @return\ ein\ TableRow-Objekt\ f\u00FCr\ diese\ neue\ Zeile\r\n
-comment25.params=i
-comment25.target=void\ removeRow(int)
-comment25.text=\r\n\ L\u00F6scht\ eine\ Zeile\r\n\ @param\ i\ Nummer\ der\ Zeile\r\n
-comment26.params=i
-comment26.target=TableRow\ getRow(int)
-comment26.text=\ \r\n\ Liefert\ eine\ Zeile\ der\ Tabelle\r\n\ @param\ i\ Nummer\ der\ Zeile\r\n\ @return\ TableRow-Objekt\ f\u00FCr\ diese\ Zeile\r\n
-comment27.params=
-comment27.target=TableRow[]\ rows()
-comment27.text=\r\n\ Liefert\ die\ ganze\ Tabelle\ als\ Array\ von\ TableRow-Objekten\r\n\ @return\ Array\ von\ TableRow-Objekten\ \r\n
-comment28.params=row\ column
-comment28.target=int\ getInt(int,\ int)
-comment28.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment29.params=row\ name
-comment29.target=int\ getInt(int,\ java.lang.String)
-comment29.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment3.params=filename\ options
-comment3.target=Table(java.lang.String,\ java.lang.String)
-comment3.text=\ \r\n\ Erzeugt\ Tabellen-Dokument\ aus\ einer\ CSV-Datei.\r\n\ Liest\ den\ Inhalt\ einer\ Datei\ und\ erstellt\ ein\ Tabellenobjekt\ mit\ seinen\ Werten\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \r\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \r\n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\r\n
-comment30.params=row\ column\ value
-comment30.target=void\ setInt(int,\ int,\ int)
-comment30.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment31.params=row\ name\ value
-comment31.target=void\ setInt(int,\ java.lang.String,\ int)
-comment31.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment32.params=row
-comment32.target=int[]\ getIntRow(int)
-comment32.text=\r\n\ Liefert\ alle\ Werte\ einer\ Zeile\ als\ Integer-Array.\r\n\ @param\ row\ Nummer\ der\ Zeile\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Zeile\ enth\u00E4lt\r\n
-comment33.params=column
-comment33.target=int[]\ getIntColumn(int)
-comment33.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Integer-Array.\r\n\ @param\ column\ Nummer\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment34.params=name
-comment34.target=int[]\ getIntColumn(java.lang.String)
-comment34.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Integer-Array.\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment35.params=row\ column
-comment35.target=float\ getFloat(int,\ int)
-comment35.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment36.params=row\ name
-comment36.target=float\ getFloat(int,\ java.lang.String)
-comment36.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment37.params=row\ column\ value
-comment37.target=void\ setFloat(int,\ int,\ float)
-comment37.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment38.params=row\ name\ value
-comment38.target=void\ setFloat(int,\ java.lang.String,\ float)
-comment38.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment39.params=row
-comment39.target=float[]\ getFloatRow(int)
-comment39.text=\r\n\ Liefert\ alle\ Werte\ einer\ Zeile\ als\ Float-Array.\r\n\ @param\ row\ Nummer\ der\ Zeile\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Zeile\ enth\u00E4lt\r\n
-comment4.params=filename
-comment4.target=Table(java.lang.String)
-comment4.text=\ \r\n\ Erzeugt\ Tabellen-Dokument\ aus\ einer\ CSV-Datei.\r\n\ Liest\ den\ Inhalt\ einer\ Datei\ ohne\ Kopfzeile\ und\ erstellt\ ein\ Tabellenobjekt\ mit\ seinen\ Werten\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n
-comment40.params=column
-comment40.target=float[]\ getFloatColumn(int)
-comment40.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Float-Array.\r\n\ @param\ column\ Nummer\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment41.params=name
-comment41.target=float[]\ getFloatColumn(java.lang.String)
-comment41.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Float-Array.\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment42.params=row\ column
-comment42.target=double\ getDouble(int,\ int)
-comment42.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment43.params=row\ name
-comment43.target=double\ getDouble(int,\ java.lang.String)
-comment43.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment44.params=row\ column\ value
-comment44.target=void\ setDouble(int,\ int,\ double)
-comment44.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment45.params=row\ name\ value
-comment45.target=void\ setDouble(int,\ java.lang.String,\ double)
-comment45.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment46.params=row
-comment46.target=double[]\ getDoubleRow(int)
-comment46.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Double-Array.\r\n\ @param\ row\ Nummer\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment47.params=column
-comment47.target=double[]\ getDoubleColumn(int)
-comment47.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Double-Array.\r\n\ @param\ column\ Nummer\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment48.params=name
-comment48.target=double[]\ getDoubleColumn(java.lang.String)
-comment48.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Double-Array.\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment49.params=row\ column
-comment49.target=java.lang.String\ getString(int,\ int)
-comment49.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment5.params=filename
-comment5.target=void\ loadCSV(java.lang.String)
-comment5.text=\ \r\n\ Liest\ den\ Inhalt\ einer\ CSV-Datei\ ohne\ Kopfzeile\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n
-comment50.params=row\ name
-comment50.target=java.lang.String\ getString(int,\ java.lang.String)
-comment50.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment51.params=row\ column\ text
-comment51.target=void\ setString(int,\ int,\ java.lang.String)
-comment51.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ column\ Spaltennummer\r\n\ @param\ text\ neuer\ Wert\ der\ Zelle\r\n
-comment52.params=row\ name\ text
-comment52.target=void\ setString(int,\ java.lang.String,\ java.lang.String)
-comment52.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ row\ Zeilennummer\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ text\ neuer\ Wert\ der\ Zelle\r\n
-comment53.params=row
-comment53.target=java.lang.String[]\ getStringRow(int)
-comment53.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ String-Array.\r\n\ @param\ row\ Nummer\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment54.params=column
-comment54.target=java.lang.String[]\ getStringColumn(int)
-comment54.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ String-Array.\r\n\ @param\ column\ Nummer\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment55.params=name
-comment55.target=java.lang.String[]\ getStringColumn(java.lang.String)
-comment55.text=\r\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ String-Array.\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\r\n
-comment56.params=value\ column
-comment56.target=TableRow\ findRow(java.lang.String,\ int)
-comment56.text=\r\n\ Sucht\ nach\ einem\ bestimmtem\ Wert\ in\ einer\ Zeile.\r\n\ @param\ value\ Wert\ der\ gesucht\ werden\ soll\r\n\ @param\ column\ Nummer\ der\ Spalte,\ die\ durchsucht\ werden\ soll\r\n\ @return\ TableRow-Objekt\ der\ Zeile,\ wenn\ der\ Wert\ gefunden\ wurde,\ sonst\ null\r\n
-comment57.params=value\ name
-comment57.target=TableRow\ findRow(java.lang.String,\ java.lang.String)
-comment57.text=\r\n\ Sucht\ nach\ einem\ bestimmtem\ Wert\ in\ einer\ Zeile.\r\n\ @param\ value\ Wert\ der\ gesucht\ werden\ soll\r\n\ @param\ name\ Name\ der\ Spalte,\ die\ durchsucht\ werden\ soll\r\n\ @return\ TableRow-Objekt\ der\ Zeile,\ wenn\ der\ Wert\ gefunden\ wurde,\ sonst\ null\r\n
-comment58.params=
-comment58.target=void\ trim()
-comment58.text=\ \r\n\ K\u00FCrzt\ alle\ Eintr\u00E4ge\ der\ Tabelle\ um\ unn\u00F6tige\ Leerzeichen\ am\ Anfang\ oder\ Ende\r\n
-comment6.params=filename\ options
-comment6.target=void\ loadCSV(java.lang.String,\ java.lang.String)
-comment6.text=\ \r\n\ Liest\ den\ Inhalt\ einer\ CSV-Datei\ \ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \r\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \r\n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\r\n
-comment7.params=filename\ options\ separator\ quote
-comment7.target=void\ loadCSV(java.lang.String,\ java.lang.String,\ char,\ char)
-comment7.text=\ \r\n\ Liest\ den\ Inhalt\ einer\ CSV-Datei.\r\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \r\n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\r\n\ @param\ separator\ Trennzeichen\ f\u00FCr\ Spalten\ (meist\ ';'\ oder\ ','\ oder\ '\\t'\ f\u00FCr\ Tab)\r\n\ @param\ quote\ Kennung\ f\u00FCr\ Texte\ (meist\ '"').\ \r\n
-comment8.params=filename
-comment8.target=void\ saveCSV(java.lang.String)
-comment8.text=\ \r\n\ Speichert\ das\ aktuelle\ Dokument\ als\ CSV-Datei\ ohne\ Kopfzeile\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n
-comment9.params=filename\ options
-comment9.target=void\ saveCSV(java.lang.String,\ java.lang.String)
-comment9.text=\ \r\n\ Speichert\ das\ aktuelle\ Dokument\ als\ CSV-Datei\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \r\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enthalten,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ haben\ soll,\ \r\n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\r\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ haben\ soll.\r\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\r\n
-numComments=59
+#BlueJ class context
+comment0.target=Table
+comment1.params=
+comment1.target=Table()
+comment1.text=\ \n\ Erzeugt\ leeres\ Tabellen-Dokument.\n
+comment10.params=filename\ options\ separator\ quote
+comment10.target=void\ saveCSV(java.lang.String,\ java.lang.String,\ char,\ char)
+comment10.text=\ \n\ Speichert\ das\ aktuelle\ Dokument\ als\ CSV-Datei.\ \n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enthalten,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ haben\ soll,\ \n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ haben\ soll.\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n\ @param\ separator\ Trennzeichen\ f\u00FCr\ Spalten\ (meist\ ';'\ oder\ ','\ oder\ '\\t'\ f\u00FCr\ Tab)\n\ @param\ quote\ Kennung\ f\u00FCr\ Texte\ (meist\ '"').\ \n
+comment11.params=filename
+comment11.target=void\ saveXML(java.lang.String)
+comment11.text=\ Speichert\ die\ Tabelle\ als\ XML-Dokument.\n\ \ @param\ filename\ Dateiname\ des\ XML-Files\n
+comment12.params=cvsLine
+comment12.target=java.util.List\ parseLine(java.lang.String)
+comment12.text=\ HIlfsfunktion\ f\u00FCr\ die\ Analyse\ einer\ Dateizeile\n\ @param\ cvsLine\ Zeile\ aus\ der\ Datei\n\ @return\ Liste\ von\ String\ f\u00FCr\ die\ einzelnen\ Spalten\n
+comment13.params=cvsLine\ separator
+comment13.target=java.util.List\ parseLine(java.lang.String,\ char)
+comment13.text=\ HIlfsfunktion\ f\u00FCr\ die\ Analyse\ einer\ Dateizeile\n\ @param\ cvsLine\ Zeile\ aus\ der\ Datei\n\ @param\ sparator\ Trennzeichen\ f\u00FCr\ die\ Spalten\ \n\ @return\ Liste\ von\ String\ f\u00FCr\ die\ einzelnen\ Spalten\n
+comment14.params=cvsLine\ separator\ customQuote
+comment14.target=java.util.List\ parseLine(java.lang.String,\ char,\ char)
+comment14.text=\ HIlfsfunktion\ f\u00FCr\ die\ Analyse\ einer\ Dateizeile\n\ @param\ cvsLine\ Zeile\ aus\ der\ Datei\n\ @param\ sparator\ Trennzeichen\ f\u00FCr\ die\ Spalten\ \n\ @param\ customQuote\ Kennung\ f\u00FCr\ Strings\n\ @return\ Liste\ von\ String\ f\u00FCr\ die\ einzelnen\ Spalten\n
+comment15.params=name
+comment15.target=int\ findColumnNumber(java.lang.String)
+comment15.text=\ \n\ \ Sucht\ die\ Nummer\ einer\ durch\ Namen\ gegebenen\ Spalte.\n\ \ @param\ name\ Name\ der\ Spalte\n\ \ @return\ Nummer\ der\ Spalte\n
+comment16.params=
+comment16.target=void\ addColumn()
+comment16.text=\n\ F\u00FCgt\ eine\ neue\ Spalte\ am\ Ende\ der\ Tabelle\ an.\n
+comment17.params=title
+comment17.target=void\ addColumn(java.lang.String)
+comment17.text=\ \n\ F\u00FCgt\ eine\ neue\ Spalte\ am\ Ende\ der\ Tabelle\ an\ und\ benennt\ sie.\n\ @param\ title\ Bezeichnung\ der\ Spalte\n
+comment18.params=title\ type
+comment18.target=void\ addColumn(java.lang.String,\ java.lang.String)
+comment18.text=\n\ F\u00FCgt\ eine\ neue\ Spalte\ am\ Ende\ der\ Tabelle\ an\ und\ benennt\ und\ typisiert\ sie.\n\ @param\ title\ Bezeichnung\ der\ Spalte\n\ @param\ type\ Typ\ der\ Spalte\ (UNKNOWN,\ DOUBLE,\ INTEGER,\ FLOAT)\n
+comment19.params=i
+comment19.target=void\ removeColumn(int)
+comment19.text=\n\ L\u00F6scht\ eine\ Spalte.\n\ @param\ i\ Nummer\ der\ Spalte.\n
+comment2.params=filename\ options\ separator\ quote
+comment2.target=Table(java.lang.String,\ java.lang.String,\ char,\ char)
+comment2.text=\ \n\ Erzeugt\ Tabellen-Dokument\ aus\ einer\ CSV-Datei.\n\ Liest\ den\ Inhalt\ einer\ Datei\ und\ erstellt\ ein\ Tabellenobjekt\ mit\ seinen\ Werten.\ \n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\n\ @param\ separator\ Trennzeichen\ f\u00FCr\ Spalten\ (meist\ ';'\ oder\ ','\ oder\ '\\t'\ f\u00FCr\ Tab)\n\ @param\ quote\ Kennung\ f\u00FCr\ Texte\ (meist\ '"').\ \n
+comment20.params=name
+comment20.target=void\ removeColumn(java.lang.String)
+comment20.text=\n\ L\u00F6scht\ eine\ Spalte\n\ @param\ name\ Name\ der\ Spalte\n
+comment21.params=
+comment21.target=int\ getColumnCount()
+comment21.text=\n\ Liefert\ die\ Anzahl\ der\ Spalten\ in\ der\ Tabelle\n\ @return\ Anzahl\ der\ Spalten\n
+comment22.params=
+comment22.target=int\ getRowCount()
+comment22.text=\n\ Liefert\ die\ Anzahl\ der\ Zeilen\ in\ der\ Tabelle\n\ @return\ Anzahl\ der\ Zeilen\n
+comment23.params=
+comment23.target=void\ clearRows()
+comment23.text=\ \n\ L\u00F6scht\ alle\ Zeilen\ der\ Tabelle.\n\ Die\ Spalten\u00FCberschriften\ und\ Typen\ bleiben\ erhalten.\n
+comment24.params=
+comment24.target=TableRow\ addRow()
+comment24.text=\n\ F\u00FCgt\ eine\ neue\ Zeile\ an\ das\ Ende\ der\ Tabelle\ an.\n\ @return\ ein\ TableRow-Objekt\ f\u00FCr\ diese\ neue\ Zeile\n
+comment25.params=i
+comment25.target=void\ removeRow(int)
+comment25.text=\n\ L\u00F6scht\ eine\ Zeile\n\ @param\ i\ Nummer\ der\ Zeile\n
+comment26.params=i
+comment26.target=TableRow\ getRow(int)
+comment26.text=\ \n\ Liefert\ eine\ Zeile\ der\ Tabelle\n\ @param\ i\ Nummer\ der\ Zeile\n\ @return\ TableRow-Objekt\ f\u00FCr\ diese\ Zeile\n
+comment27.params=
+comment27.target=TableRow[]\ rows()
+comment27.text=\n\ Liefert\ die\ ganze\ Tabelle\ als\ Array\ von\ TableRow-Objekten\n\ @return\ Array\ von\ TableRow-Objekten\ \n
+comment28.params=row\ column
+comment28.target=int\ getInt(int,\ int)
+comment28.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @return\ Wert\ der\ Zelle\n
+comment29.params=row\ name
+comment29.target=int\ getInt(int,\ java.lang.String)
+comment29.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment3.params=filename\ options
+comment3.target=Table(java.lang.String,\ java.lang.String)
+comment3.text=\ \n\ Erzeugt\ Tabellen-Dokument\ aus\ einer\ CSV-Datei.\n\ Liest\ den\ Inhalt\ einer\ Datei\ und\ erstellt\ ein\ Tabellenobjekt\ mit\ seinen\ Werten\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\n
+comment30.params=row\ column\ value
+comment30.target=void\ setInt(int,\ int,\ int)
+comment30.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment31.params=row\ name\ value
+comment31.target=void\ setInt(int,\ java.lang.String,\ int)
+comment31.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Integer-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment32.params=row
+comment32.target=int[]\ getIntRow(int)
+comment32.text=\n\ Liefert\ alle\ Werte\ einer\ Zeile\ als\ Integer-Array.\n\ @param\ row\ Nummer\ der\ Zeile\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Zeile\ enth\u00E4lt\n
+comment33.params=column
+comment33.target=int[]\ getIntColumn(int)
+comment33.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Integer-Array.\n\ @param\ column\ Nummer\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment34.params=name
+comment34.target=int[]\ getIntColumn(java.lang.String)
+comment34.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Integer-Array.\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment35.params=row\ column
+comment35.target=float\ getFloat(int,\ int)
+comment35.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @return\ Wert\ der\ Zelle\n
+comment36.params=row\ name
+comment36.target=float\ getFloat(int,\ java.lang.String)
+comment36.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment37.params=row\ column\ value
+comment37.target=void\ setFloat(int,\ int,\ float)
+comment37.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment38.params=row\ name\ value
+comment38.target=void\ setFloat(int,\ java.lang.String,\ float)
+comment38.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment39.params=row
+comment39.target=float[]\ getFloatRow(int)
+comment39.text=\n\ Liefert\ alle\ Werte\ einer\ Zeile\ als\ Float-Array.\n\ @param\ row\ Nummer\ der\ Zeile\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Zeile\ enth\u00E4lt\n
+comment4.params=filename
+comment4.target=Table(java.lang.String)
+comment4.text=\ \n\ Erzeugt\ Tabellen-Dokument\ aus\ einer\ CSV-Datei.\n\ Liest\ den\ Inhalt\ einer\ Datei\ ohne\ Kopfzeile\ und\ erstellt\ ein\ Tabellenobjekt\ mit\ seinen\ Werten\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n
+comment40.params=column
+comment40.target=float[]\ getFloatColumn(int)
+comment40.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Float-Array.\n\ @param\ column\ Nummer\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment41.params=name
+comment41.target=float[]\ getFloatColumn(java.lang.String)
+comment41.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Float-Array.\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment42.params=row\ column
+comment42.target=double\ getDouble(int,\ int)
+comment42.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @return\ Wert\ der\ Zelle\n
+comment43.params=row\ name
+comment43.target=double\ getDouble(int,\ java.lang.String)
+comment43.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment44.params=row\ column\ value
+comment44.target=void\ setDouble(int,\ int,\ double)
+comment44.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment45.params=row\ name\ value
+comment45.target=void\ setDouble(int,\ java.lang.String,\ double)
+comment45.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment46.params=row
+comment46.target=double[]\ getDoubleRow(int)
+comment46.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Double-Array.\n\ @param\ row\ Nummer\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment47.params=column
+comment47.target=double[]\ getDoubleColumn(int)
+comment47.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Double-Array.\n\ @param\ column\ Nummer\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment48.params=name
+comment48.target=double[]\ getDoubleColumn(java.lang.String)
+comment48.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ Double-Array.\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment49.params=row\ column
+comment49.target=java.lang.String\ getString(int,\ int)
+comment49.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @return\ Wert\ der\ Zelle\n
+comment5.params=filename
+comment5.target=void\ loadCSV(java.lang.String)
+comment5.text=\ \n\ Liest\ den\ Inhalt\ einer\ CSV-Datei\ ohne\ Kopfzeile\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n
+comment50.params=row\ name
+comment50.target=java.lang.String\ getString(int,\ java.lang.String)
+comment50.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment51.params=row\ column\ text
+comment51.target=void\ setString(int,\ int,\ java.lang.String)
+comment51.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ row\ Zeilennummer\n\ @param\ column\ Spaltennummer\n\ @param\ text\ neuer\ Wert\ der\ Zelle\n
+comment52.params=row\ name\ text
+comment52.target=void\ setString(int,\ java.lang.String,\ java.lang.String)
+comment52.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ row\ Zeilennummer\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ text\ neuer\ Wert\ der\ Zelle\n
+comment53.params=row
+comment53.target=java.lang.String[]\ getStringRow(int)
+comment53.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ String-Array.\n\ @param\ row\ Nummer\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment54.params=column
+comment54.target=java.lang.String[]\ getStringColumn(int)
+comment54.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ String-Array.\n\ @param\ column\ Nummer\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment55.params=name
+comment55.target=java.lang.String[]\ getStringColumn(java.lang.String)
+comment55.text=\n\ Liefert\ alle\ Werte\ einer\ Spalte\ als\ String-Array.\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ int-Array,\ dass\ alle\ Werte\ der\ Spalte\ enth\u00E4lt\n
+comment56.params=value\ column
+comment56.target=TableRow\ findRow(java.lang.String,\ int)
+comment56.text=\n\ Sucht\ nach\ einem\ bestimmtem\ Wert\ in\ einer\ Zeile.\n\ @param\ value\ Wert\ der\ gesucht\ werden\ soll\n\ @param\ column\ Nummer\ der\ Spalte,\ die\ durchsucht\ werden\ soll\n\ @return\ TableRow-Objekt\ der\ Zeile,\ wenn\ der\ Wert\ gefunden\ wurde,\ sonst\ null\n
+comment57.params=value\ name
+comment57.target=TableRow\ findRow(java.lang.String,\ java.lang.String)
+comment57.text=\n\ Sucht\ nach\ einem\ bestimmtem\ Wert\ in\ einer\ Zeile.\n\ @param\ value\ Wert\ der\ gesucht\ werden\ soll\n\ @param\ name\ Name\ der\ Spalte,\ die\ durchsucht\ werden\ soll\n\ @return\ TableRow-Objekt\ der\ Zeile,\ wenn\ der\ Wert\ gefunden\ wurde,\ sonst\ null\n
+comment58.params=
+comment58.target=void\ trim()
+comment58.text=\ \n\ K\u00FCrzt\ alle\ Eintr\u00E4ge\ der\ Tabelle\ um\ unn\u00F6tige\ Leerzeichen\ am\ Anfang\ oder\ Ende\n
+comment6.params=filename\ options
+comment6.target=void\ loadCSV(java.lang.String,\ java.lang.String)
+comment6.text=\ \n\ Liest\ den\ Inhalt\ einer\ CSV-Datei\ \ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\n
+comment7.params=filename\ options\ separator\ quote
+comment7.target=void\ loadCSV(java.lang.String,\ java.lang.String,\ char,\ char)
+comment7.text=\ \n\ Liest\ den\ Inhalt\ einer\ CSV-Datei.\n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ hat,\ \n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ enth\u00E4lt.\n\ @param\ separator\ Trennzeichen\ f\u00FCr\ Spalten\ (meist\ ';'\ oder\ ','\ oder\ '\\t'\ f\u00FCr\ Tab)\n\ @param\ quote\ Kennung\ f\u00FCr\ Texte\ (meist\ '"').\ \n
+comment8.params=filename
+comment8.target=void\ saveCSV(java.lang.String)
+comment8.text=\ \n\ Speichert\ das\ aktuelle\ Dokument\ als\ CSV-Datei\ ohne\ Kopfzeile\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n
+comment9.params=filename\ options
+comment9.target=void\ saveCSV(java.lang.String,\ java.lang.String)
+comment9.text=\ \n\ Speichert\ das\ aktuelle\ Dokument\ als\ CSV-Datei\ (Separator\ \=\ ';',\ Kennung\ f\u00FCr\ Text\ \=\ '"').\ \n\ Wenn\ die\ Datei\ eine\ Kopfzeile\ enthalten,\ f\u00FCgen\ Sie\ "header"\ in\ den\ Parameter\ options\ ein.\ Wenn\ die\ Datei\ keine\ Kopfzeile\ haben\ soll,\ \n\ dann\ lassen\ Sie\ einfach\ die\ Option\ "header"\ weg.\n\ @param\ options\ Geben\ Sie\ hier\ "header"\ an,\ wenn\ die\ Datei\ eine\ Kopfzeile\ haben\ soll.\n\ @param\ filename\ Dateiname\ der\ CSV-Datei.\n
+numComments=59
diff --git a/imp/TableRow.ctxt b/imp/TableRow.ctxt
index 38ced56..c955c0d 100644
--- a/imp/TableRow.ctxt
+++ b/imp/TableRow.ctxt
@@ -1,69 +1,69 @@
-#BlueJ class context
-comment0.target=TableRow
-comment1.params=doc\ row
-comment1.target=TableRow(org.jdom.Document,\ org.jdom.Element)
-comment1.text=\r\n\ \ Erzeugt\ ein\ TableRow-Objekt.\r\n\ Diese\ Methode\ ist\ f\u00FCr\ den\ internen\ Gebraucht.\ Einige\ Methode\ der\ Table-Klasse\ erzeugen\ mit\ diesem\ Konstruktor\ TableRow-Objekte.\r\n\ @param\ doc\ JDOM-Dokument,\ das\ f\u00FCr\ die\ ganze\ Tabelle\ steht.\r\n\ @param\ row\ JDOM-Element,\ das\ f\u00FCr\ die\ aktuelle\ Zeile\ steht.\r\n
-comment10.params=name\ text
-comment10.target=void\ setString(java.lang.String,\ java.lang.String)
-comment10.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ text\ neuer\ Wert\ der\ Zelle\r\n
-comment11.params=i
-comment11.target=int\ getInt(int)
-comment11.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment12.params=name
-comment12.target=int\ getInt(java.lang.String)
-comment12.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment13.params=i\ value
-comment13.target=void\ setInt(int,\ int)
-comment13.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment14.params=name\ value
-comment14.target=void\ setInt(java.lang.String,\ int)
-comment14.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment15.params=i
-comment15.target=float\ getFloat(int)
-comment15.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment16.params=name
-comment16.target=float\ getFloat(java.lang.String)
-comment16.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment17.params=i\ value
-comment17.target=void\ setFloat(int,\ float)
-comment17.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment18.params=name\ value
-comment18.target=void\ setFloat(java.lang.String,\ float)
-comment18.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment19.params=i
-comment19.target=double\ getDouble(int)
-comment19.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment2.params=
-comment2.target=int\ getColumnCount()
-comment2.text=\r\n\ Liefert\ die\ Anzahl\ der\ Spalten\ der\ Zeile.\r\n\ @return\ Anzahl\ der\ Spalten\r\n
-comment20.params=name
-comment20.target=double\ getDouble(java.lang.String)
-comment20.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment21.params=i\ value
-comment21.target=void\ setDouble(int,\ double)
-comment21.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment22.params=name\ value
-comment22.target=void\ setDouble(java.lang.String,\ double)
-comment22.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @param\ value\ neuer\ Wert\ der\ Zelle\r\n
-comment3.params=i
-comment3.target=java.lang.String\ getColumnTitle(int)
-comment3.text=\r\n\ Liefert\ den\ Titel\ einer\ Spalte\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @return\ Name\ der\ Spalte\r\n
-comment4.params=name
-comment4.target=int\ getColumn(java.lang.String)
-comment4.text=\r\n\ Liefert\ die\ Nummer\ einer\ Spalte\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Nummer\ der\ Spalte\r\n
-comment5.params=i
-comment5.target=org.jdom.Element\ buildRow(int)
-comment5.text=\r\n\ Erzeugt\ eine\ neue\ Zeile\ mit\ i\ Spalten\r\n\ Wenn\ bisher\ nicht\ gen\u00FCgend\ Spalten\ vorhanden\ sind,\ werden\ automatisch\ neue\ Spalten\ hinzugef\u00FCgt\ (auch\ zum\ Header)\r\n\ @param\ i\ Anzahl\ der\ Spalten\r\n
-comment6.params=name
-comment6.target=org.jdom.Element\ buildRow(java.lang.String)
-comment6.text=\r\n\ Erzeugt\ eine\ neue\ Zeile.\r\n\ Es\ werden\ gen\u00FCgend\ Spalten\ erzeugt,\ dass\ ein\ Wert\ in\ Spalte\ "name"\ eingetragen\ werden\ kann\r\n\ @param\ name\ Name\ der\ Spalte\r\n
-comment7.params=i
-comment7.target=java.lang.String\ getString(int)
-comment7.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment8.params=name
-comment8.target=java.lang.String\ getString(java.lang.String)
-comment8.text=\r\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ name\ Name\ der\ Spalte\r\n\ @return\ Wert\ der\ Zelle\r\n
-comment9.params=i\ text
-comment9.target=void\ setString(int,\ java.lang.String)
-comment9.text=\r\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\r\n\ @param\ i\ Nummer\ der\ Spalte\r\n\ @param\ text\ neuer\ Wert\ der\ Zelle\r\n
-numComments=23
+#BlueJ class context
+comment0.target=TableRow
+comment1.params=doc\ row
+comment1.target=TableRow(org.jdom.Document,\ org.jdom.Element)
+comment1.text=\n\ \ Erzeugt\ ein\ TableRow-Objekt.\n\ Diese\ Methode\ ist\ f\u00FCr\ den\ internen\ Gebraucht.\ Einige\ Methode\ der\ Table-Klasse\ erzeugen\ mit\ diesem\ Konstruktor\ TableRow-Objekte.\n\ @param\ doc\ JDOM-Dokument,\ das\ f\u00FCr\ die\ ganze\ Tabelle\ steht.\n\ @param\ row\ JDOM-Element,\ das\ f\u00FCr\ die\ aktuelle\ Zeile\ steht.\n
+comment10.params=name\ text
+comment10.target=void\ setString(java.lang.String,\ java.lang.String)
+comment10.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ text\ neuer\ Wert\ der\ Zelle\n
+comment11.params=i
+comment11.target=int\ getInt(int)
+comment11.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\n\ @param\ i\ Nummer\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment12.params=name
+comment12.target=int\ getInt(java.lang.String)
+comment12.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment13.params=i\ value
+comment13.target=void\ setInt(int,\ int)
+comment13.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\n\ @param\ i\ Nummer\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment14.params=name\ value
+comment14.target=void\ setInt(java.lang.String,\ int)
+comment14.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Int-Zahl\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment15.params=i
+comment15.target=float\ getFloat(int)
+comment15.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ i\ Nummer\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment16.params=name
+comment16.target=float\ getFloat(java.lang.String)
+comment16.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment17.params=i\ value
+comment17.target=void\ setFloat(int,\ float)
+comment17.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ i\ Nummer\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment18.params=name\ value
+comment18.target=void\ setFloat(java.lang.String,\ float)
+comment18.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Float-Zahl\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment19.params=i
+comment19.target=double\ getDouble(int)
+comment19.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ i\ Nummer\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment2.params=
+comment2.target=int\ getColumnCount()
+comment2.text=\n\ Liefert\ die\ Anzahl\ der\ Spalten\ der\ Zeile.\n\ @return\ Anzahl\ der\ Spalten\n
+comment20.params=name
+comment20.target=double\ getDouble(java.lang.String)
+comment20.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment21.params=i\ value
+comment21.target=void\ setDouble(int,\ double)
+comment21.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ i\ Nummer\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment22.params=name\ value
+comment22.target=void\ setDouble(java.lang.String,\ double)
+comment22.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ Double-Zahl\n\ @param\ name\ Name\ der\ Spalte\n\ @param\ value\ neuer\ Wert\ der\ Zelle\n
+comment3.params=i
+comment3.target=java.lang.String\ getColumnTitle(int)
+comment3.text=\n\ Liefert\ den\ Titel\ einer\ Spalte\n\ @param\ i\ Nummer\ der\ Spalte\n\ @return\ Name\ der\ Spalte\n
+comment4.params=name
+comment4.target=int\ getColumn(java.lang.String)
+comment4.text=\n\ Liefert\ die\ Nummer\ einer\ Spalte\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Nummer\ der\ Spalte\n
+comment5.params=i
+comment5.target=org.jdom.Element\ buildRow(int)
+comment5.text=\n\ Erzeugt\ eine\ neue\ Zeile\ mit\ i\ Spalten\n\ Wenn\ bisher\ nicht\ gen\u00FCgend\ Spalten\ vorhanden\ sind,\ werden\ automatisch\ neue\ Spalten\ hinzugef\u00FCgt\ (auch\ zum\ Header)\n\ @param\ i\ Anzahl\ der\ Spalten\n
+comment6.params=name
+comment6.target=org.jdom.Element\ buildRow(java.lang.String)
+comment6.text=\n\ Erzeugt\ eine\ neue\ Zeile.\n\ Es\ werden\ gen\u00FCgend\ Spalten\ erzeugt,\ dass\ ein\ Wert\ in\ Spalte\ "name"\ eingetragen\ werden\ kann\n\ @param\ name\ Name\ der\ Spalte\n
+comment7.params=i
+comment7.target=java.lang.String\ getString(int)
+comment7.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ i\ Nummer\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment8.params=name
+comment8.target=java.lang.String\ getString(java.lang.String)
+comment8.text=\n\ Liefert\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ name\ Name\ der\ Spalte\n\ @return\ Wert\ der\ Zelle\n
+comment9.params=i\ text
+comment9.target=void\ setString(int,\ java.lang.String)
+comment9.text=\n\ Setzt\ den\ Wert\ einer\ Zelle\ als\ String\n\ @param\ i\ Nummer\ der\ Spalte\n\ @param\ text\ neuer\ Wert\ der\ Zelle\n
+numComments=23
diff --git a/imp/XML.ctxt b/imp/XML.ctxt
index 0751087..c45bf60 100644
--- a/imp/XML.ctxt
+++ b/imp/XML.ctxt
@@ -1,135 +1,135 @@
-#BlueJ class context
-comment0.target=XML
-comment1.params=
-comment1.target=XML()
-comment1.text=\ \r\n\ Erzeugt\ ein\ leeres\ XMLDokument\ \r\n
-comment10.params=name
-comment10.target=XML[]\ getChildren(java.lang.String)
-comment10.text=\r\n\ Liefert\ bestimmte\ Kinder\ des\ Elements\ als\ Array\ von\ XML-Objekten.\ \r\n\ Die\ Methode\ gibt\ dabei\ alle\ Kinder\ zur\u00FCck,\ die\ dem\ angegebenen\ Namen\ entsprechen.\ \r\n\ @param\ name\ Name\ der\ gesuchten\ Kind-Objekte\r\n\ @return\ Array\ der\ Kinder\ als\ XML-Objekte\r\n
-comment11.params=name
-comment11.target=XML\ getChild(java.lang.String)
-comment11.text=\r\n\ Liefert\ das\ erste\ Kind\ des\ Elements\ mit\ einem\ bestimmten\ Namen.\ \r\n\ Die\ Methode\ gibt\ das\ erste\ Kind\ zur\u00FCck,\ das\ dem\ angegebenen\ Namen\ entsprechen.\ \r\n\ @param\ name\ Name\ des\ gesuchten\ Kind-Objektes\r\n\ @return\ Kind\ als\ XML-Objekt\r\n
-comment12.params=i
-comment12.target=XML\ getChild(int)
-comment12.text=\r\n\ Liefert\ das\ i.\ Kind\ des\ Elements.\ \r\n\ Die\ Methode\ gibt\ das\ i.\ Kind\ des\ aktuellen\ Elements\ zur\u00FCck.\r\n\ @param\ i\ Nummer\ des\ Kindes\r\n\ @return\ Kind\ als\ XML-Objekt\r\n
-comment13.params=
-comment13.target=java.lang.String\ getName()
-comment13.text=\ \r\n\ Frage\ den\ Namen\ des\ aktuellen\ Elements\ ab\r\n\ @return\ Namen\ des\ Elements\r\n
-comment14.params=name
-comment14.target=void\ setName(java.lang.String)
-comment14.text=\ \r\n\ Setze\ den\ Namen\ des\ aktuellen\ Elements.\ \r\n\ @param\ name\ Neuer\ Name\ des\ Elements\r\n
-comment15.params=
-comment15.target=int\ getAttributeCount()
-comment15.text=\r\n\ liefert\ die\ Anzahl\ der\ Attribute\ eines\ Elements.\r\n\ @return\ Anzahl\ des\ Attribute\r\n
-comment16.params=
-comment16.target=boolean\ hasAttribute()
-comment16.text=\r\n\ liefert\ zur\u00FCck,\ ob\ das\ aktuelle\ Element\ Attribute\ hat\ .\r\n\ @return\ true,\ wenn\ es\ Attribute\ gibt\r\n
-comment17.params=
-comment17.target=java.lang.String[]\ listAttributes()
-comment17.text=\r\n\ Ruft\ alle\ Attribute\ des\ angegebenen\ Elements\ ab\ und\ gibt\ sie\ als\ Array\ von\ Strings\ zur\u00FCck.\r\n\ @return\ Liste\ der\ Attributnamen\r\n
-comment18.params=attribute
-comment18.target=java.lang.String\ getString(java.lang.String)
-comment18.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @return\ Wert\ des\ Attributs\r\n
-comment19.params=attribute\ defaultValue
-comment19.target=java.lang.String\ getString(java.lang.String,\ java.lang.String)
-comment19.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\r\n\ @return\ Wert\ des\ Attributs\r\n
-comment2.params=filename
-comment2.target=XML(java.lang.String)
-comment2.text=\ \r\n\ Erzeugt\ ein\ XML-Dokument\ aus\ einer\ Datei\ \r\n\ @param\ filename\ Dateiname\ der\ XML-Datei\r\n
-comment20.params=attribute\ text
-comment20.target=void\ setString(java.lang.String,\ java.lang.String)
-comment20.text=\ \r\n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ text\ neuer\ Wert\ des\ Attributs\r\n
-comment21.params=attribute
-comment21.target=int\ getInt(java.lang.String)
-comment21.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @return\ Wert\ des\ Attributs\ als\ Integer-Zahl\r\n
-comment22.params=attribute\ defaultValue
-comment22.target=int\ getInt(java.lang.String,\ int)
-comment22.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\r\n\ @return\ Wert\ des\ Attributs\ als\ Integer-Zahl\r\n
-comment23.params=attribute\ value
-comment23.target=void\ setInt(java.lang.String,\ int)
-comment23.text=\ \r\n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ value\ neuer\ Wert\ des\ Attributs\r\n
-comment24.params=attribute
-comment24.target=float\ getFloat(java.lang.String)
-comment24.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @return\ Wert\ des\ Attributs\ als\ Float-Zahl\r\n
-comment25.params=attribute\ defaultValue
-comment25.target=float\ getFloat(java.lang.String,\ float)
-comment25.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\r\n\ @return\ Wert\ des\ Attributs\ als\ Float-Zahl\r\n
-comment26.params=attribute\ value
-comment26.target=void\ setFloat(java.lang.String,\ float)
-comment26.text=\ \r\n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ value\ neuer\ Wert\ des\ Attributs\r\n
-comment27.params=attribute
-comment27.target=double\ getDouble(java.lang.String)
-comment27.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @return\ Wert\ des\ Attributs\ als\ Double-Zahl\r\n
-comment28.params=attribute\ defaultValue
-comment28.target=double\ getDouble(java.lang.String,\ double)
-comment28.text=\ \r\n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\r\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\r\n\ @return\ Wert\ des\ Attributs\ als\ double-Zahl\r\n
-comment29.params=attribute\ value
-comment29.target=void\ setDouble(java.lang.String,\ double)
-comment29.text=\ \r\n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \r\n\ @param\ attribute\ Name\ des\ Attributs\r\n\ @param\ value\ neuer\ Wert\ des\ Attributs\r\n
-comment3.params=doc\ current
-comment3.target=XML(org.jdom.Document,\ org.jdom.Element)
-comment3.text=\r\n\ interner\ Konstruktor,\ um\ ein\ XML\ Objekt\ zu\ erzeugen,\ das\ auf\ einen\ bestimmten\ Knoten\ verweist\r\n\ @param\ doc\ die\ XML-Dokumentstruktur\r\n\ @param\ current\ Zeiger\ auf\ das\ aktuelle\ Element\ \r\n
-comment30.params=
-comment30.target=java.lang.String\ getContent()
-comment30.text=\ \r\n\ Fragt\ den\ Inhalt/Text\ des\ aktuellen\ Elements\ ab\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment31.params=defaultValue
-comment31.target=java.lang.String\ getContent(java.lang.String)
-comment31.text=\ \r\n\ Fragt\ den\ Inhalt/Text\ des\ aktuellen\ Elements\ ab\r\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\r\n\ @param\ defaultValue\ Standardtext\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment32.params=text
-comment32.target=void\ setContent(java.lang.String)
-comment32.text=\ \r\n\ Setzt\ den\ Inhalt/Text\ des\ aktuellen\ Elements\r\n\ @param\ text\ Neuer\ Inhalt\ des\ Elements\r\n
-comment33.params=defaultValue
-comment33.target=int\ getIntContent(int)
-comment33.text=\ \r\n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Integerzahl\ ab\r\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\r\n\ @param\ defaultValue\ Standardwert\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment34.params=
-comment34.target=int\ getIntContent()
-comment34.text=\ \r\n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Integerzahl\ ab\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment35.params=value
-comment35.target=void\ setIntContent(int)
-comment35.text=\ \r\n\ Setzt\ den\ Inhalt\ des\ aktuellen\ Elements\r\n\ @param\ value\ Neuer\ Inhalt\ des\ Elements\r\n
-comment36.params=defaultValue
-comment36.target=float\ getFloatContent(float)
-comment36.text=\ \r\n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Floatzahl\ ab\r\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\r\n\ @param\ defaultValue\ Standardwert\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment37.params=
-comment37.target=float\ getFloatContent()
-comment37.text=\ \r\n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Floatzahl\ ab\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment38.params=value
-comment38.target=void\ setFloatContent(float)
-comment38.text=\ \r\n\ Setzt\ den\ Inhalt\ des\ aktuellen\ Elements\r\n\ @param\ value\ Neuer\ Inhalt\ des\ Elements\r\n
-comment39.params=defaultValue
-comment39.target=double\ getDoubleContent(double)
-comment39.text=\ \r\n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Doublezahl\ ab\r\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\r\n\ @param\ defaultValue\ Standardwert\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment4.params=filename
-comment4.target=void\ loadXML(java.lang.String)
-comment4.text=\ \u00D6ffnet\ das\ durch\ den\ Dateinamen\ gegebene\ Dokument\ \r\n\ \ @param\ filename\ Dateiname\ des\ XML-Files\r\n
-comment40.params=
-comment40.target=double\ getDoubleContent()
-comment40.text=\ \r\n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Doublezahl\ ab\r\n\ @return\ Inhalt\ des\ Elements\r\n
-comment41.params=value
-comment41.target=void\ setDoubleContent(double)
-comment41.text=\ \r\n\ Setzt\ den\ Inhalt\ des\ aktuellen\ Elements\r\n\ @param\ value\ Neuer\ Inhalt\ des\ Elements\r\n
-comment42.params=name
-comment42.target=XML\ addChild(java.lang.String)
-comment42.text=\ Erzeuge\ neues\ Element\ nach\ der\ aktuellen\ Position\ und\ setze\ dieses\ als\ aktuelles\ Element\r\n\ @param\ name\ Name\ des\ neuen\ Elements\r\n\ @return\ neues\ Element\ als\ XML-Objekt\r\n
-comment43.params=
-comment43.target=org.jdom.Element\ getCurrent()
-comment43.text=\ \r\n\ liefert\ das\ aktuelle\ Element\ als\ jdom-Element-Objekt\r\n\ @return\ aktuelles\ Element\r\n
-comment44.params=kid
-comment44.target=void\ removeChild(XML)
-comment44.text=\r\n\ l\u00F6scht\ ein\ Kind\ des\ aktuellen\ Knotens.\r\n\ Ist\ kid\ kein\ Kind\ des\ aktuellen\ Elements\ passiert\ gar\ nichts.\r\n\ @param\ kid\ XML-Objekt\ des\ Kindes\r\n
-comment5.params=filename
-comment5.target=void\ saveXML(java.lang.String)
-comment5.text=\ Speichert\ den\ XML-Baum\ im\ angegebenen\ Dateinamen\r\n\ \ @param\ filename\ Dateiname\ des\ XML-Files\r\n
-comment6.params=
-comment6.target=XML\ getParent()
-comment6.text=\r\n\ liefert\ ein\ XML-Objekt,\ das\ auf\ den\ Vaterknoten\ des\ aktuellen\ Elements\ zeigt.\r\n\ @return\ Vater\ des\ aktuellen\ Objekts.\r\n
-comment7.params=
-comment7.target=boolean\ hasChildren()
-comment7.text=\r\n\ \u00DCberpr\u00FCft,\ ob\ das\ Element\ irgendwelche\ Kinder\ hat\ oder\ nicht,\ und\ gibt\ das\ Ergebnis\ als\ boolean\ zur\u00FCck.\ \r\n\ @return\ true,\ wenn\ Kinder\ vorhanden\ sind,\ sonst\ false\r\n
-comment8.params=
-comment8.target=java.lang.String[]\ listChildren()
-comment8.text=\r\n\ Ermittelt\ die\ Namen\ aller\ Kinder\ des\ Elements\ und\ gibt\ die\ Namen\ als\ ein\ Array\ von\ Strings\ zur\u00FCck.\ \r\n\ Dies\ ist\ dasselbe\ wie\ das\ Durchlaufen\ und\ Aufrufen\ von\ getName()\ auf\ jedem\ untergeordneten\ Element\ einzeln.\ \r\n\ @return\ Liste\ aller\ Namen\ der\ Kinder\r\n
-comment9.params=
-comment9.target=XML[]\ getChildren()
-comment9.text=\r\n\ Liefert\ alle\ Kinder\ des\ Elements\ als\ Array\ von\ XML-Objekten.\ \r\n\ @return\ Array\ der\ Kinder\ als\ XML-Objekte\r\n
-numComments=45
+#BlueJ class context
+comment0.target=XML
+comment1.params=
+comment1.target=XML()
+comment1.text=\ \n\ Erzeugt\ ein\ leeres\ XMLDokument\ \n
+comment10.params=name
+comment10.target=XML[]\ getChildren(java.lang.String)
+comment10.text=\n\ Liefert\ bestimmte\ Kinder\ des\ Elements\ als\ Array\ von\ XML-Objekten.\ \n\ Die\ Methode\ gibt\ dabei\ alle\ Kinder\ zur\u00FCck,\ die\ dem\ angegebenen\ Namen\ entsprechen.\ \n\ @param\ name\ Name\ der\ gesuchten\ Kind-Objekte\n\ @return\ Array\ der\ Kinder\ als\ XML-Objekte\n
+comment11.params=name
+comment11.target=XML\ getChild(java.lang.String)
+comment11.text=\n\ Liefert\ das\ erste\ Kind\ des\ Elements\ mit\ einem\ bestimmten\ Namen.\ \n\ Die\ Methode\ gibt\ das\ erste\ Kind\ zur\u00FCck,\ das\ dem\ angegebenen\ Namen\ entsprechen.\ \n\ @param\ name\ Name\ des\ gesuchten\ Kind-Objektes\n\ @return\ Kind\ als\ XML-Objekt\n
+comment12.params=i
+comment12.target=XML\ getChild(int)
+comment12.text=\n\ Liefert\ das\ i.\ Kind\ des\ Elements.\ \n\ Die\ Methode\ gibt\ das\ i.\ Kind\ des\ aktuellen\ Elements\ zur\u00FCck.\n\ @param\ i\ Nummer\ des\ Kindes\n\ @return\ Kind\ als\ XML-Objekt\n
+comment13.params=
+comment13.target=java.lang.String\ getName()
+comment13.text=\ \n\ Frage\ den\ Namen\ des\ aktuellen\ Elements\ ab\n\ @return\ Namen\ des\ Elements\n
+comment14.params=name
+comment14.target=void\ setName(java.lang.String)
+comment14.text=\ \n\ Setze\ den\ Namen\ des\ aktuellen\ Elements.\ \n\ @param\ name\ Neuer\ Name\ des\ Elements\n
+comment15.params=
+comment15.target=int\ getAttributeCount()
+comment15.text=\n\ liefert\ die\ Anzahl\ der\ Attribute\ eines\ Elements.\n\ @return\ Anzahl\ des\ Attribute\n
+comment16.params=
+comment16.target=boolean\ hasAttribute()
+comment16.text=\n\ liefert\ zur\u00FCck,\ ob\ das\ aktuelle\ Element\ Attribute\ hat\ .\n\ @return\ true,\ wenn\ es\ Attribute\ gibt\n
+comment17.params=
+comment17.target=java.lang.String[]\ listAttributes()
+comment17.text=\n\ Ruft\ alle\ Attribute\ des\ angegebenen\ Elements\ ab\ und\ gibt\ sie\ als\ Array\ von\ Strings\ zur\u00FCck.\n\ @return\ Liste\ der\ Attributnamen\n
+comment18.params=attribute
+comment18.target=java.lang.String\ getString(java.lang.String)
+comment18.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ @param\ attribute\ Name\ des\ Attributs\n\ @return\ Wert\ des\ Attributs\n
+comment19.params=attribute\ defaultValue
+comment19.target=java.lang.String\ getString(java.lang.String,\ java.lang.String)
+comment19.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\n\ @return\ Wert\ des\ Attributs\n
+comment2.params=filename
+comment2.target=XML(java.lang.String)
+comment2.text=\ \n\ Erzeugt\ ein\ XML-Dokument\ aus\ einer\ Datei\ \n\ @param\ filename\ Dateiname\ der\ XML-Datei\n
+comment20.params=attribute\ text
+comment20.target=void\ setString(java.lang.String,\ java.lang.String)
+comment20.text=\ \n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ text\ neuer\ Wert\ des\ Attributs\n
+comment21.params=attribute
+comment21.target=int\ getInt(java.lang.String)
+comment21.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ @param\ attribute\ Name\ des\ Attributs\n\ @return\ Wert\ des\ Attributs\ als\ Integer-Zahl\n
+comment22.params=attribute\ defaultValue
+comment22.target=int\ getInt(java.lang.String,\ int)
+comment22.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\n\ @return\ Wert\ des\ Attributs\ als\ Integer-Zahl\n
+comment23.params=attribute\ value
+comment23.target=void\ setInt(java.lang.String,\ int)
+comment23.text=\ \n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ value\ neuer\ Wert\ des\ Attributs\n
+comment24.params=attribute
+comment24.target=float\ getFloat(java.lang.String)
+comment24.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ @param\ attribute\ Name\ des\ Attributs\n\ @return\ Wert\ des\ Attributs\ als\ Float-Zahl\n
+comment25.params=attribute\ defaultValue
+comment25.target=float\ getFloat(java.lang.String,\ float)
+comment25.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\n\ @return\ Wert\ des\ Attributs\ als\ Float-Zahl\n
+comment26.params=attribute\ value
+comment26.target=void\ setFloat(java.lang.String,\ float)
+comment26.text=\ \n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ value\ neuer\ Wert\ des\ Attributs\n
+comment27.params=attribute
+comment27.target=double\ getDouble(java.lang.String)
+comment27.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ @param\ attribute\ Name\ des\ Attributs\n\ @return\ Wert\ des\ Attributs\ als\ Double-Zahl\n
+comment28.params=attribute\ defaultValue
+comment28.target=double\ getDouble(java.lang.String,\ double)
+comment28.text=\ \n\ Fragt\ einen\ Attributwert\ des\ aktuellen\ Elements\ ab\n\ Sollte\ es\ das\ Attribut\ nicht\ geben,\ wird\ ein\ default-Wert\ zur\u00FCckgegeben\n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ defaultValue\ Standardwert,\ falls\ es\ das\ Attribut\ nicht\ gibt\n\ @return\ Wert\ des\ Attributs\ als\ double-Zahl\n
+comment29.params=attribute\ value
+comment29.target=void\ setDouble(java.lang.String,\ double)
+comment29.text=\ \n\ Setzt\ einen\ Attributwert\ des\ aktuellen\ Elements\ \n\ @param\ attribute\ Name\ des\ Attributs\n\ @param\ value\ neuer\ Wert\ des\ Attributs\n
+comment3.params=doc\ current
+comment3.target=XML(org.jdom.Document,\ org.jdom.Element)
+comment3.text=\n\ interner\ Konstruktor,\ um\ ein\ XML\ Objekt\ zu\ erzeugen,\ das\ auf\ einen\ bestimmten\ Knoten\ verweist\n\ @param\ doc\ die\ XML-Dokumentstruktur\n\ @param\ current\ Zeiger\ auf\ das\ aktuelle\ Element\ \n
+comment30.params=
+comment30.target=java.lang.String\ getContent()
+comment30.text=\ \n\ Fragt\ den\ Inhalt/Text\ des\ aktuellen\ Elements\ ab\n\ @return\ Inhalt\ des\ Elements\n
+comment31.params=defaultValue
+comment31.target=java.lang.String\ getContent(java.lang.String)
+comment31.text=\ \n\ Fragt\ den\ Inhalt/Text\ des\ aktuellen\ Elements\ ab\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\n\ @param\ defaultValue\ Standardtext\n\ @return\ Inhalt\ des\ Elements\n
+comment32.params=text
+comment32.target=void\ setContent(java.lang.String)
+comment32.text=\ \n\ Setzt\ den\ Inhalt/Text\ des\ aktuellen\ Elements\n\ @param\ text\ Neuer\ Inhalt\ des\ Elements\n
+comment33.params=defaultValue
+comment33.target=int\ getIntContent(int)
+comment33.text=\ \n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Integerzahl\ ab\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\n\ @param\ defaultValue\ Standardwert\n\ @return\ Inhalt\ des\ Elements\n
+comment34.params=
+comment34.target=int\ getIntContent()
+comment34.text=\ \n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Integerzahl\ ab\n\ @return\ Inhalt\ des\ Elements\n
+comment35.params=value
+comment35.target=void\ setIntContent(int)
+comment35.text=\ \n\ Setzt\ den\ Inhalt\ des\ aktuellen\ Elements\n\ @param\ value\ Neuer\ Inhalt\ des\ Elements\n
+comment36.params=defaultValue
+comment36.target=float\ getFloatContent(float)
+comment36.text=\ \n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Floatzahl\ ab\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\n\ @param\ defaultValue\ Standardwert\n\ @return\ Inhalt\ des\ Elements\n
+comment37.params=
+comment37.target=float\ getFloatContent()
+comment37.text=\ \n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Floatzahl\ ab\n\ @return\ Inhalt\ des\ Elements\n
+comment38.params=value
+comment38.target=void\ setFloatContent(float)
+comment38.text=\ \n\ Setzt\ den\ Inhalt\ des\ aktuellen\ Elements\n\ @param\ value\ Neuer\ Inhalt\ des\ Elements\n
+comment39.params=defaultValue
+comment39.target=double\ getDoubleContent(double)
+comment39.text=\ \n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Doublezahl\ ab\n\ Hat\ das\ Element\ keinen\ Inhalt\ wird\ der\ defaultValue\ zur\u00FCckgegeben.\n\ @param\ defaultValue\ Standardwert\n\ @return\ Inhalt\ des\ Elements\n
+comment4.params=filename
+comment4.target=void\ loadXML(java.lang.String)
+comment4.text=\ \u00D6ffnet\ das\ durch\ den\ Dateinamen\ gegebene\ Dokument\ \n\ \ @param\ filename\ Dateiname\ des\ XML-Files\n
+comment40.params=
+comment40.target=double\ getDoubleContent()
+comment40.text=\ \n\ Fragt\ den\ Inhalt\ des\ aktuellen\ Elements\ als\ Doublezahl\ ab\n\ @return\ Inhalt\ des\ Elements\n
+comment41.params=value
+comment41.target=void\ setDoubleContent(double)
+comment41.text=\ \n\ Setzt\ den\ Inhalt\ des\ aktuellen\ Elements\n\ @param\ value\ Neuer\ Inhalt\ des\ Elements\n
+comment42.params=name
+comment42.target=XML\ addChild(java.lang.String)
+comment42.text=\ Erzeuge\ neues\ Element\ nach\ der\ aktuellen\ Position\ und\ setze\ dieses\ als\ aktuelles\ Element\n\ @param\ name\ Name\ des\ neuen\ Elements\n\ @return\ neues\ Element\ als\ XML-Objekt\n
+comment43.params=
+comment43.target=org.jdom.Element\ getCurrent()
+comment43.text=\ \n\ liefert\ das\ aktuelle\ Element\ als\ jdom-Element-Objekt\n\ @return\ aktuelles\ Element\n
+comment44.params=kid
+comment44.target=void\ removeChild(XML)
+comment44.text=\n\ l\u00F6scht\ ein\ Kind\ des\ aktuellen\ Knotens.\n\ Ist\ kid\ kein\ Kind\ des\ aktuellen\ Elements\ passiert\ gar\ nichts.\n\ @param\ kid\ XML-Objekt\ des\ Kindes\n
+comment5.params=filename
+comment5.target=void\ saveXML(java.lang.String)
+comment5.text=\ Speichert\ den\ XML-Baum\ im\ angegebenen\ Dateinamen\n\ \ @param\ filename\ Dateiname\ des\ XML-Files\n
+comment6.params=
+comment6.target=XML\ getParent()
+comment6.text=\n\ liefert\ ein\ XML-Objekt,\ das\ auf\ den\ Vaterknoten\ des\ aktuellen\ Elements\ zeigt.\n\ @return\ Vater\ des\ aktuellen\ Objekts.\n
+comment7.params=
+comment7.target=boolean\ hasChildren()
+comment7.text=\n\ \u00DCberpr\u00FCft,\ ob\ das\ Element\ irgendwelche\ Kinder\ hat\ oder\ nicht,\ und\ gibt\ das\ Ergebnis\ als\ boolean\ zur\u00FCck.\ \n\ @return\ true,\ wenn\ Kinder\ vorhanden\ sind,\ sonst\ false\n
+comment8.params=
+comment8.target=java.lang.String[]\ listChildren()
+comment8.text=\n\ Ermittelt\ die\ Namen\ aller\ Kinder\ des\ Elements\ und\ gibt\ die\ Namen\ als\ ein\ Array\ von\ Strings\ zur\u00FCck.\ \n\ Dies\ ist\ dasselbe\ wie\ das\ Durchlaufen\ und\ Aufrufen\ von\ getName()\ auf\ jedem\ untergeordneten\ Element\ einzeln.\ \n\ @return\ Liste\ aller\ Namen\ der\ Kinder\n
+comment9.params=
+comment9.target=XML[]\ getChildren()
+comment9.text=\n\ Liefert\ alle\ Kinder\ des\ Elements\ als\ Array\ von\ XML-Objekten.\ \n\ @return\ Array\ der\ Kinder\ als\ XML-Objekte\n
+numComments=45
diff --git a/imp/package.bluej b/imp/package.bluej
index 849cfa0..d85a6a6 100644
--- a/imp/package.bluej
+++ b/imp/package.bluej
@@ -1,79 +1,79 @@
-#BlueJ package file
-dependency1.from=PictureViewer
-dependency1.to=Picture
-dependency1.type=UsesDependency
-dependency2.from=Table
-dependency2.to=TableRow
-dependency2.type=UsesDependency
-dependency3.from=Picture
-dependency3.to=PictureViewer
-dependency3.type=UsesDependency
-objectbench.height=89
-objectbench.width=451
-package.divider.horizontal=0.599476439790576
-package.divider.vertical=0.808
-package.editor.height=397
-package.editor.width=649
-package.editor.x=161
-package.editor.y=148
-package.frame.height=600
-package.frame.width=800
-package.numDependencies=3
-package.numTargets=7
-package.showExtends=true
-package.showUses=true
-readme.height=58
-readme.name=@README
-readme.width=47
-readme.x=10
-readme.y=10
-target1.height=50
-target1.name=PictureViewer
-target1.naviview.expanded=true
-target1.showInterface=false
-target1.type=ClassTarget
-target1.width=110
-target1.x=280
-target1.y=310
-target2.height=50
-target2.name=Table
-target2.showInterface=false
-target2.type=ClassTarget
-target2.width=80
-target2.x=420
-target2.y=200
-target3.height=50
-target3.name=HSB
-target3.showInterface=false
-target3.type=ClassTarget
-target3.width=90
-target3.x=40
-target3.y=200
-target4.height=50
-target4.name=Picture
-target4.showInterface=false
-target4.type=ClassTarget
-target4.width=80
-target4.x=180
-target4.y=250
-target5.height=50
-target5.name=XML
-target5.showInterface=false
-target5.type=ClassTarget
-target5.width=80
-target5.x=520
-target5.y=220
-target6.height=50
-target6.name=TableRow
-target6.showInterface=false
-target6.type=ClassTarget
-target6.width=90
-target6.x=520
-target6.y=150
-target7.height=50
-target7.name=NumberField
-target7.showInterface=false
-target7.type=ClassTarget
-target7.width=130
-target7.x=380
-target7.y=70
+#BlueJ package file
+dependency1.from=PictureViewer
+dependency1.to=Picture
+dependency1.type=UsesDependency
+dependency2.from=Table
+dependency2.to=TableRow
+dependency2.type=UsesDependency
+dependency3.from=Picture
+dependency3.to=PictureViewer
+dependency3.type=UsesDependency
+objectbench.height=89
+objectbench.width=776
+package.divider.horizontal=0.599476439790576
+package.divider.vertical=0.8083832335329342
+package.editor.height=398
+package.editor.width=659
+package.editor.x=161
+package.editor.y=148
+package.frame.height=600
+package.frame.width=800
+package.numDependencies=3
+package.numTargets=7
+package.showExtends=true
+package.showUses=true
+readme.height=60
+readme.name=@README
+readme.width=49
+readme.x=10
+readme.y=10
+target1.height=50
+target1.name=PictureViewer
+target1.naviview.expanded=true
+target1.showInterface=false
+target1.type=ClassTarget
+target1.width=110
+target1.x=280
+target1.y=310
+target2.height=50
+target2.name=Table
+target2.showInterface=false
+target2.type=ClassTarget
+target2.width=80
+target2.x=420
+target2.y=200
+target3.height=50
+target3.name=HSB
+target3.showInterface=false
+target3.type=ClassTarget
+target3.width=90
+target3.x=40
+target3.y=200
+target4.height=50
+target4.name=XML
+target4.showInterface=false
+target4.type=ClassTarget
+target4.width=80
+target4.x=520
+target4.y=220
+target5.height=50
+target5.name=Picture
+target5.showInterface=false
+target5.type=ClassTarget
+target5.width=80
+target5.x=180
+target5.y=250
+target6.height=50
+target6.name=TableRow
+target6.showInterface=false
+target6.type=ClassTarget
+target6.width=90
+target6.x=520
+target6.y=150
+target7.height=50
+target7.name=NumberField
+target7.showInterface=false
+target7.type=ClassTarget
+target7.width=130
+target7.x=380
+target7.y=70
diff --git a/package.bluej b/package.bluej
index 82b1411..df13dc7 100644
--- a/package.bluej
+++ b/package.bluej
@@ -1,18 +1,18 @@
#BlueJ package file
-editor.fx.0.height=1053
-editor.fx.0.width=1920
-editor.fx.0.x=0
-editor.fx.0.y=0
-objectbench.height=296
-objectbench.width=1892
+editor.fx.0.height=736
+editor.fx.0.width=800
+editor.fx.0.x=560
+editor.fx.0.y=136
+objectbench.height=150
+objectbench.width=776
package.divider.horizontal=0.599476439790576
-package.divider.vertical=0.685031185031185
-package.editor.height=652
-package.editor.width=1765
-package.editor.x=0
-package.editor.y=0
-package.frame.height=1053
-package.frame.width=1920
+package.divider.vertical=0.685370741482966
+package.editor.height=335
+package.editor.width=659
+package.editor.x=741
+package.editor.y=268
+package.frame.height=598
+package.frame.width=800
package.numDependencies=0
package.numTargets=6
package.showExtends=true