diff --git a/README.TXT b/README.TXT index 83f9d3a..9e110ca 100644 --- a/README.TXT +++ b/README.TXT @@ -2,12 +2,14 @@ PROJEKTBEZEICHNUNG: GraphenTester PROJEKTZWECK: Didaktisches Werkzeug um Graphenrepräsentation und -algorithmen kennen zu lernen VERSION oder DATUM: 24.06.2021 +INSTALLATIONSHINWEISE: +im Ordner Hintergrund + WIE IST DAS PROJEKT IN BLUEJ ZU STARTEN: Rechtsklick auf die Klasse Graphentester --> new --> OK AUTOR(EN): Dirk Zechnall / Thomas Schaller - -UPSTREAM URL: https://edugit.edugit.org/ts-zsl-rska/graphentester/-/tree/master/3_vorlagen_tauschordner/1_graphentester +********************************************************************************************** diff --git a/algorithmen/GraphAlgo.java b/algorithmen/GraphAlgo.java index ff0ebae..3dd20e5 100644 --- a/algorithmen/GraphAlgo.java +++ b/algorithmen/GraphAlgo.java @@ -14,7 +14,7 @@ import javafx.application.Platform; * Abstrakte Oberklasse für alle zu simulierende Algorithmen * Diese müssen die Methode getBezeichnung(): String und fuehreAlgorithmusAus() überschreiben. * - * @version 6.7 (Dez. 2020) + * @version 7.1 12.02.2025 * @author Thomas Schaller */ @@ -78,10 +78,9 @@ public abstract class GraphAlgo extends Thread { /** * Muss vom Algorithmus aufgerufen werden, um einen Haltepunkt zu setzen */ - public void step() { + public void step() throws InterruptedException { if(gp == null) return; try{ - //System.out.println("Step"); gp.updateImage(); aktuellerZustand = g.getStatus(); waitforclick = true; @@ -95,9 +94,13 @@ public abstract class GraphAlgo extends Thread { if (hilfe != null) hilfe.setReviewAllowed(false); g.setStatus(aktuellerZustand); aktuellerZustand = null; + if(Thread.interrupted()){ + throw new InterruptedException(); + } }catch(Exception e) { // Erneutes Stop, damit nicht stop während des Sleeps hier abgefangen wird. - stop(); + //System.out.println("Step wurde unterbrochen"); + throw e; } } @@ -146,17 +149,13 @@ public abstract class GraphAlgo extends Thread { if (hilfe != null) hilfe.setReviewAllowed(false); fuehreAlgorithmusAus(); gp.updateImage(); - // System.out.println("Algorithmus beendet"); - } catch( ThreadDeath e){ - // System.out.println("Algorithmus vorzeitig beendet."+e); + //System.out.println("Algorithmus beendet"); + } catch( InterruptedException e){ + //System.out.println("Algorithmus vorzeitig beendet."+e); + } finally { + if (hilfe != null) hilfe.setReviewAllowed(true); + inArbeit = false; } - if (hilfe != null) hilfe.setReviewAllowed(true); - inArbeit = false; - return; - } - else - { - return; } } // Ende Methoden @@ -184,7 +183,7 @@ public abstract class GraphAlgo extends Thread { /** * Methode für den eigentlichen Algorithmus */ - public abstract void fuehreAlgorithmusAus(); + public abstract void fuehreAlgorithmusAus() throws InterruptedException; /** * Name des Algorithmus für die Dropdown-Auswahl @@ -257,3 +256,4 @@ public abstract class GraphAlgo extends Thread { } } + diff --git a/algorithmen/GraphAlgo_BellmanFord.java b/algorithmen/GraphAlgo_BellmanFord.java index 812fc5f..9d221fc 100644 --- a/algorithmen/GraphAlgo_BellmanFord.java +++ b/algorithmen/GraphAlgo_BellmanFord.java @@ -9,7 +9,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem gewichteten Graphen. * Algorithmus: Bellman-Ford * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -37,7 +37,7 @@ public class GraphAlgo_BellmanFord extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_Breitensuche.java b/algorithmen/GraphAlgo_Breitensuche.java index d9c992e..b49704d 100644 --- a/algorithmen/GraphAlgo_Breitensuche.java +++ b/algorithmen/GraphAlgo_Breitensuche.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus nummeriert alle Knoten des Graphen. * Algorithmus: Breitensuche mit ToDo-Liste (Schlange) * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -23,7 +23,7 @@ public class GraphAlgo_Breitensuche extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_ColoringBacktracking.java b/algorithmen/GraphAlgo_ColoringBacktracking.java index e2d7cec..c061679 100644 --- a/algorithmen/GraphAlgo_ColoringBacktracking.java +++ b/algorithmen/GraphAlgo_ColoringBacktracking.java @@ -10,7 +10,7 @@ import graph.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Backtracking * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -25,7 +25,7 @@ public class GraphAlgo_ColoringBacktracking extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } @@ -35,7 +35,7 @@ public class GraphAlgo_ColoringBacktracking extends GraphAlgo { step(); } - private void bestimmeColoring(int benutzteFarben) { + private void bestimmeColoring(int benutzteFarben) throws InterruptedException { int min = Integer.MAX_VALUE; List knoten = g.getAlleKnoten(k->k.getFarbe()<=0); diff --git a/algorithmen/GraphAlgo_ColoringGreedy.java b/algorithmen/GraphAlgo_ColoringGreedy.java index d8e0980..1ba1217 100644 --- a/algorithmen/GraphAlgo_ColoringGreedy.java +++ b/algorithmen/GraphAlgo_ColoringGreedy.java @@ -9,7 +9,7 @@ import graph.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Näherungslösung mit Greedy-Algorithmus * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ public class GraphAlgo_ColoringGreedy extends GraphAlgo { @@ -26,7 +26,7 @@ public class GraphAlgo_ColoringGreedy extends GraphAlgo { // Ende Attribute // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { List knoten = g.getAlleKnoten(); info("Wiederhole für jeden Knoten"); for (Knoten aktuellerKnoten: knoten ) { diff --git a/algorithmen/GraphAlgo_ColoringGreedyRandom.java b/algorithmen/GraphAlgo_ColoringGreedyRandom.java index dece2df..3c5292c 100644 --- a/algorithmen/GraphAlgo_ColoringGreedyRandom.java +++ b/algorithmen/GraphAlgo_ColoringGreedyRandom.java @@ -10,7 +10,7 @@ import graph.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Näherungslösung mit Greedy-Algorithmus (Knotenreihenfolge zufällig) * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -28,7 +28,7 @@ public class GraphAlgo_ColoringGreedyRandom extends GraphAlgo { // Ende Attribute // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { List knoten = g.getAlleKnoten(); Collections.shuffle(knoten); info("Wiederhole für jeden Knoten"); diff --git a/algorithmen/GraphAlgo_Dijkstra.java b/algorithmen/GraphAlgo_Dijkstra.java index 009fdf2..1e69680 100644 --- a/algorithmen/GraphAlgo_Dijkstra.java +++ b/algorithmen/GraphAlgo_Dijkstra.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem gewichteten Graphen. * Algorithmus: Dijkstra * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -31,7 +31,7 @@ public class GraphAlgo_Dijkstra extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java b/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java index 015ceee..30768c9 100644 --- a/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java +++ b/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java @@ -11,7 +11,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem gewichteten Graphen. * Algorithmus: Dijkstra * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -34,7 +34,7 @@ public class GraphAlgo_DijkstraMitVorgaenger extends GraphAlgo { gp.getGraphOptions().knotenLangtext = new String[]{"Infotext","Entfernung","Vorgänger","Markiert","Besucht"}; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetBacktracking.java b/algorithmen/GraphAlgo_DominatingSetBacktracking.java index 181f52e..8cbf781 100644 --- a/algorithmen/GraphAlgo_DominatingSetBacktracking.java +++ b/algorithmen/GraphAlgo_DominatingSetBacktracking.java @@ -10,7 +10,7 @@ import graph.*; * und bestimmt den Zeitbedarf. * Algorithmus: Backtracking * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -26,7 +26,7 @@ public class GraphAlgo_DominatingSetBacktracking extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { long starttime = System.currentTimeMillis(); if (g.getAnzahlKnoten()==0) { return; @@ -41,7 +41,7 @@ public class GraphAlgo_DominatingSetBacktracking extends GraphAlgo { - private void bestimmeDominierendeMenge(int knoten) { + private void bestimmeDominierendeMenge(int knoten) throws InterruptedException { List status = g.getStatus(); List markierte = g.getAlleKnoten(kn->kn.isMarkiert()); diff --git a/algorithmen/GraphAlgo_DominatingSetGenetisch.java b/algorithmen/GraphAlgo_DominatingSetGenetisch.java index a4dd669..73fcfb5 100644 --- a/algorithmen/GraphAlgo_DominatingSetGenetisch.java +++ b/algorithmen/GraphAlgo_DominatingSetGenetisch.java @@ -11,7 +11,7 @@ import graph.*; * Dieser Algorithmus bestimmt die kleinste dominierende Menge in einem Graphen * und bestimmt den Zeitbedarf. * Algorithmus: Genetischer Algorithmus - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -31,7 +31,7 @@ public class GraphAlgo_DominatingSetGenetisch extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { population = new int[popGroesse][g.getAnzahlKnoten()]; double[] bewertungen = new double[popGroesse]; for(int i=0; i knoten = g.getAlleKnoten(k->!k.isMarkiert() && !k.isBesucht()); - info("Solange es noch nicht überdeckte Knoten gibt, wiederhole..."); - int nr = 1; - while(knoten.size() > 0) { - info("Bestimme "+(nr++)+". hinzuzufügenden Knoten"); - infoIndentMore(); - Knoten bester = bestimmeBesten(); - bester.setMarkiert(true); - bester.setBesucht(false); - info("Markiere diesen Knoten ..."); - List nachbarn = g.getNachbarknoten(bester,kn->!kn.isMarkiert() && !kn.isBesucht()); - for(Knoten k : nachbarn) { - k.setBesucht(true); - } - info("... und setze alle bisher nicht überdeckten Nachbarn auf besucht"); - knoten = g.getAlleKnoten(kn->!kn.isMarkiert() && !kn.isBesucht()); - step(); - infoIndentLess(); - }// end of while - nr--; - melde("Dominierende Menge mit " + nr + " Knoten gefunden."); - - } - - // Ende Methoden -} diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyA.java b/algorithmen/GraphAlgo_DominatingSetGreedyA.java index 7187cf6..8fa5d56 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyA.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyA.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * Nimm den Knoten mit den meisten Nachbarn * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -48,7 +48,7 @@ public class GraphAlgo_DominatingSetGreedyA extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyB.java b/algorithmen/GraphAlgo_DominatingSetGreedyB.java index 3f0bff9..cf6f9bd 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyB.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyB.java @@ -13,7 +13,7 @@ import graph.*; * und bestimmt den Zeitbedarf. * Algorithmus: Greedy mit Strategie: * Nimm den Knoten mit den wenigsten Nachbarn - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -47,7 +47,7 @@ public class GraphAlgo_DominatingSetGreedyB extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyC.java b/algorithmen/GraphAlgo_DominatingSetGreedyC.java index 31dda8b..5ad5bf5 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyC.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyC.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * Nimm den Knoten mit den meisten Nachbarn * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -29,7 +29,7 @@ public class GraphAlgo_DominatingSetGreedyC extends GraphAlgo { /** Bestimmt besten Knoten nach Strategie: * Nimm den Knoten mit den meisten Nachbarn */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() { List knoten = g.getAlleKnoten(k->!k.isMarkiert()); info("Wiederhole für jeden noch nicht markierten Knoten"); @@ -49,7 +49,7 @@ public class GraphAlgo_DominatingSetGreedyC extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyD.java b/algorithmen/GraphAlgo_DominatingSetGreedyD.java index fdb1a3c..ec008ba 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyD.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyD.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * Nimm den Knoten mit den meisten Nachbarn * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -49,7 +49,7 @@ public class GraphAlgo_DominatingSetGreedyD extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyE.java b/algorithmen/GraphAlgo_DominatingSetGreedyE.java index 67b250f..39d47c3 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyE.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyE.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo { * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r= new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); @@ -68,7 +68,7 @@ public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyF.java b/algorithmen/GraphAlgo_DominatingSetGreedyF.java index 21673c2..9e834c1 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyF.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyF.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyF extends GraphAlgo { * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r= new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); @@ -68,7 +68,7 @@ public class GraphAlgo_DominatingSetGreedyF extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyG.java b/algorithmen/GraphAlgo_DominatingSetGreedyG.java index cb4e7cf..37492f0 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyG.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyG.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyG extends GraphAlgo { * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r= new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); @@ -68,7 +68,7 @@ public class GraphAlgo_DominatingSetGreedyG extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyH.java b/algorithmen/GraphAlgo_DominatingSetGreedyH.java index b1d7c8d..5879d49 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyH.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyH.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von möglichst vielen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -29,7 +29,7 @@ public class GraphAlgo_DominatingSetGreedyH extends GraphAlgo { /** Bestimmt besten Knoten nach Strategie: * ein nicht abgedeckten Knoten, der von möglichst vielen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r = new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); List nichtabgedeckte = g.getAlleKnoten(k->!k.isMarkiert() && !k.isBesucht() ); @@ -71,7 +71,7 @@ public class GraphAlgo_DominatingSetGreedyH extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_DominatingSetGreedyI.java b/algorithmen/GraphAlgo_DominatingSetGreedyI.java index cdcf6d9..7cbdf8c 100644 --- a/algorithmen/GraphAlgo_DominatingSetGreedyI.java +++ b/algorithmen/GraphAlgo_DominatingSetGreedyI.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von den ausgewählten Knoten eine möglichst große Entfernung hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyI extends GraphAlgo { * ein nicht abgedeckten Knoten, der von den ausgewählten Knoten eine möglichst große Entfernung hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r = new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); List nichtabgedeckte = g.getAlleKnoten(k->!k.isMarkiert() && !k.isBesucht() ); @@ -84,7 +84,7 @@ public class GraphAlgo_DominatingSetGreedyI extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_EulerkreisExistenz.java b/algorithmen/GraphAlgo_EulerkreisExistenz.java index a14d026..3ce0cd3 100644 --- a/algorithmen/GraphAlgo_EulerkreisExistenz.java +++ b/algorithmen/GraphAlgo_EulerkreisExistenz.java @@ -8,7 +8,7 @@ import graph.*; * Algorithmus: Zunächst wird auf geraden Grad der Knoten getestet, danach * mit Tiefensuche der Zusammenhang des Graphen überprüft. * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -18,7 +18,7 @@ public class GraphAlgo_EulerkreisExistenz extends GraphAlgo { return "Eulerkreis (Existenz)"; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_MST_Kruskal.java b/algorithmen/GraphAlgo_MST_Kruskal.java index 48d8c33..6e3a5bf 100644 --- a/algorithmen/GraphAlgo_MST_Kruskal.java +++ b/algorithmen/GraphAlgo_MST_Kruskal.java @@ -25,7 +25,7 @@ public class GraphAlgo_MST_Kruskal extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { int farbe = 1; List kanten = g.getAlleKanten(); List knoten = g.getAlleKnoten(); diff --git a/algorithmen/GraphAlgo_MST_Prim.java b/algorithmen/GraphAlgo_MST_Prim.java index df91cac..e646654 100644 --- a/algorithmen/GraphAlgo_MST_Prim.java +++ b/algorithmen/GraphAlgo_MST_Prim.java @@ -24,7 +24,7 @@ public class GraphAlgo_MST_Prim extends GraphAlgo { return "MST (Prim)"; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { int markiert = 0; List knoten; List kanten; diff --git a/algorithmen/GraphAlgo_Moore.java b/algorithmen/GraphAlgo_Moore.java index cad7715..14cdc43 100644 --- a/algorithmen/GraphAlgo_Moore.java +++ b/algorithmen/GraphAlgo_Moore.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem ungewichteten Graphen. * Algorithmus: Algorithmus A von Moore * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -23,7 +23,7 @@ public class GraphAlgo_Moore extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_TSPBacktracking.java b/algorithmen/GraphAlgo_TSPBacktracking.java index c484856..0952ab4 100644 --- a/algorithmen/GraphAlgo_TSPBacktracking.java +++ b/algorithmen/GraphAlgo_TSPBacktracking.java @@ -32,7 +32,7 @@ public class GraphAlgo_TSPBacktracking extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { start = this.getStartKnoten(); probiere(start); g.setStatus(besteLoesung); @@ -40,7 +40,7 @@ public class GraphAlgo_TSPBacktracking extends GraphAlgo { melde("beste Route gefunden:" +getInfo()); } // end of for - public void probiere(Knoten akt) { + public void probiere(Knoten akt) throws InterruptedException { boolean fertig = true; infoIndentMore(); akt.setMarkiert(true); diff --git a/algorithmen/GraphAlgo_TSPGenetisch.java b/algorithmen/GraphAlgo_TSPGenetisch.java index 527a2ef..2259941 100644 --- a/algorithmen/GraphAlgo_TSPGenetisch.java +++ b/algorithmen/GraphAlgo_TSPGenetisch.java @@ -30,7 +30,7 @@ public class GraphAlgo_TSPGenetisch extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { population = new int[popGroesse][g.getAnzahlKnoten()+1]; double[] rundreiseLaenge = new double[popGroesse]; for(int i=0; i kanten = g.getAlleKanten(); diff --git a/algorithmen/GraphAlgo_TSPGreedyOpt.java b/algorithmen/GraphAlgo_TSPGreedyOpt.java index c56e7fb..c64c126 100644 --- a/algorithmen/GraphAlgo_TSPGreedyOpt.java +++ b/algorithmen/GraphAlgo_TSPGreedyOpt.java @@ -27,7 +27,7 @@ public class GraphAlgo_TSPGreedyOpt extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { Knoten start = this.getStartKnoten(); Knoten akt = start; List reihung = new ArrayList(); diff --git a/algorithmen/GraphAlgo_Tiefensuche.java b/algorithmen/GraphAlgo_Tiefensuche.java index 7d20241..fc10d4c 100644 --- a/algorithmen/GraphAlgo_Tiefensuche.java +++ b/algorithmen/GraphAlgo_Tiefensuche.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus nummeriert alle Knoten des Graphen. * Algorithmus: Tiefensuche mit ToDo-Liste (Stapel) * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -24,7 +24,7 @@ public class GraphAlgo_Tiefensuche extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/algorithmen/GraphAlgo_TiefensucheRek.java b/algorithmen/GraphAlgo_TiefensucheRek.java index 8616a61..598366c 100644 --- a/algorithmen/GraphAlgo_TiefensucheRek.java +++ b/algorithmen/GraphAlgo_TiefensucheRek.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus nummeriert alle Knoten des Graphen. * Algorithmus: Tiefensuche rekursiv * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -24,14 +24,14 @@ public class GraphAlgo_TiefensucheRek extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } nummeriere(getStartKnoten(), 0); } // end - private int nummeriere(Knoten k, int nr) { + private int nummeriere(Knoten k, int nr) throws InterruptedException { // Abbruchbedingung if(k.isBesucht()) { info("Untersuche "+g.getKnoteninfo(k,false)+" => ist schon besucht"); diff --git a/algorithmen/GraphAlgo_ZyklusBacktracking.java b/algorithmen/GraphAlgo_ZyklusBacktracking.java index 596da2f..9302526 100644 --- a/algorithmen/GraphAlgo_ZyklusBacktracking.java +++ b/algorithmen/GraphAlgo_ZyklusBacktracking.java @@ -10,7 +10,7 @@ import graph.*; * Er sucht einen Zyklus im Graphen. * Algorithmus: Backtracking * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -22,13 +22,13 @@ public class GraphAlgo_ZyklusBacktracking extends GraphAlgo { return "Zyklensuche (Backtracking)"; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { List loesung = backtracking(getStartKnoten()); if(loesung != null) g.setStatus(loesung); step(); } - public List backtracking(Knoten k){ + public List backtracking(Knoten k) throws InterruptedException { List loesung = null; diff --git a/algorithmen/GraphAlgo_toplogischeSortierung.java b/algorithmen/GraphAlgo_toplogischeSortierung.java index ed5107e..9fb723c 100644 --- a/algorithmen/GraphAlgo_toplogischeSortierung.java +++ b/algorithmen/GraphAlgo_toplogischeSortierung.java @@ -8,7 +8,7 @@ import graph.*; /** * Dieser Algorithmus findet eine topologische Sortierung des Graphen. * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -23,7 +23,7 @@ public class GraphAlgo_toplogischeSortierung extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { String reihenfolge = ""; if (g.getAnzahlKnoten()==0) { return; @@ -43,26 +43,28 @@ public class GraphAlgo_toplogischeSortierung extends GraphAlgo { info("Sortiere die noch nicht markierten Knoten nach ihrem Wert"); Knoten k = knoten.get(0); k.setMarkiert(true); - info("Nimm Knoten "+g.getKnoteninfo(k,false)+" und markiere ihn."); + info("Nimm Knoten mit dem geringsten Wert: "+g.getKnoteninfo(k,false)+" und markiere ihn."); if(k.getIntWert() != 0) { - melde("Fehler: Wert ist nicht 0 - Zyklus vorhanden"); + melde("Fehler: Wert ist nicht 0 - Zyklus vorhanden - Keine topologische Sortierung möglich"); knoten.clear(); return; } else { reihenfolge += " "+g.getKnoteninfo(k, false); info("Füge ihn der Liste hinzu: "+reihenfolge); knoten.remove(k); + info("Reduziere den Wert aller Nachbarn von "+g.getKnoteninfo(k,false)+" um 1"); + infoIndentMore(); for(Knoten k2 : g.getNachbarknoten(k)) { k2.setWert(k2.getIntWert()-1); + info("Setze "+g.getKnoteninfo(k2, false)+" auf "+k2.getIntWert()); } - info("Reduziere den Wert aller Nachbarn von Knoten "+g.getNummer(k)+" um 1"); + infoIndentLess(); } step(); } melde("Topologische Sortierung: "+reihenfolge); - } // end // Ende Methoden diff --git a/algorithmen/package.bluej b/algorithmen/package.bluej index a7985f2..7ed1910 100644 --- a/algorithmen/package.bluej +++ b/algorithmen/package.bluej @@ -1,268 +1,268 @@ -#BlueJ package file -dependency1.from=GraphAlgo_DominatingSetGreedyF -dependency1.to=GraphAlgo -dependency1.type=UsesDependency -dependency2.from=GraphAlgo_DominatingSetGreedyF -dependency2.to=GraphAlgo_Moore -dependency2.type=UsesDependency -dependency3.from=GraphAlgo_DominatingSetGreedyG -dependency3.to=GraphAlgo -dependency3.type=UsesDependency -dependency4.from=GraphAlgo_DominatingSetGreedyG -dependency4.to=GraphAlgo_Moore -dependency4.type=UsesDependency -dependency5.from=GraphAlgo_DominatingSetGreedyE -dependency5.to=GraphAlgo -dependency5.type=UsesDependency -dependency6.from=GraphAlgo_DominatingSetGreedyE -dependency6.to=GraphAlgo_Moore -dependency6.type=UsesDependency -dependency7.from=GraphAlgo_DominatingSetGreedyH -dependency7.to=GraphAlgo -dependency7.type=UsesDependency -dependency8.from=GraphAlgo_DominatingSetGreedyH -dependency8.to=GraphAlgo_Moore -dependency8.type=UsesDependency -objectbench.height=140 -objectbench.width=750 -package.divider.horizontal=0.6003172085646312 -package.divider.vertical=0.822463768115942 -package.editor.height=661 -package.editor.width=1133 -package.editor.x=234 -package.editor.y=49 -package.frame.height=928 -package.frame.width=1297 -package.numDependencies=8 -package.numTargets=32 -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=GraphAlgo_ColoringGreedyRandom -target1.showInterface=false -target1.type=ClassTarget -target1.width=290 -target1.x=600 -target1.y=590 -target10.height=50 -target10.name=GraphAlgo_DominatingSetGreedyF -target10.showInterface=false -target10.type=ClassTarget -target10.width=280 -target10.x=290 -target10.y=420 -target11.height=50 -target11.name=GraphAlgo_DominatingSetGreedyG -target11.showInterface=false -target11.type=ClassTarget -target11.width=290 -target11.x=290 -target11.y=470 -target12.height=50 -target12.name=GraphAlgo_TSPGreedy -target12.showInterface=false -target12.type=ClassTarget -target12.width=230 -target12.x=600 -target12.y=160 -target13.height=50 -target13.name=GraphAlgo_DominatingSetGreedyD -target13.showInterface=false -target13.type=ClassTarget -target13.width=290 -target13.x=290 -target13.y=320 -target14.height=50 -target14.name=GraphAlgo_TSPGenetisch -target14.showInterface=false -target14.type=ClassTarget -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.x=290 -target15.y=370 -target16.height=50 -target16.name=GraphAlgo_DominatingSetGenetisch -target16.showInterface=false -target16.type=ClassTarget -target16.width=300 -target16.x=290 -target16.y=640 -target17.height=50 -target17.name=GraphAlgo_ZyklusBacktracking -target17.showInterface=false -target17.type=ClassTarget -target17.width=210 -target17.x=20 -target17.y=410 -target18.height=50 -target18.name=GraphAlgo_DominatingSetGreedyH -target18.showInterface=false -target18.type=ClassTarget -target18.width=290 -target18.x=290 -target18.y=520 -target19.height=50 -target19.name=GraphAlgo_DominatingSetGreedyI -target19.showInterface=false -target19.type=ClassTarget -target19.width=280 -target19.x=290 -target19.y=570 -target2.height=50 -target2.name=GraphAlgo_Tiefensuche -target2.showInterface=false -target2.type=ClassTarget -target2.width=210 -target2.x=20 -target2.y=160 -target20.height=50 -target20.name=GraphAlgo_Moore -target20.showInterface=false -target20.type=ClassTarget -target20.width=210 -target20.x=10 -target20.y=480 -target21.height=50 -target21.name=GraphAlgo_BellmanFord -target21.showInterface=false -target21.type=ClassTarget -target21.width=210 -target21.x=10 -target21.y=660 -target22.height=50 -target22.name=GraphAlgo_Breitensuche -target22.showInterface=false -target22.type=ClassTarget -target22.width=210 -target22.x=20 -target22.y=280 -target23.height=50 -target23.name=GraphAlgo_toplogischeSortierung -target23.showInterface=false -target23.type=ClassTarget -target23.width=210 -target23.x=20 -target23.y=350 -target24.height=50 -target24.name=GraphAlgo_DominatingSetBacktracking -target24.showInterface=false -target24.type=ClassTarget -target24.width=320 -target24.x=290 -target24.y=100 -target25.height=50 -target25.name=GraphAlgo_ColoringGreedy -target25.showInterface=false -target25.type=ClassTarget -target25.width=240 -target25.x=600 -target25.y=530 -target26.height=50 -target26.name=GraphAlgo_DijkstraMitVorgaenger -target26.showInterface=false -target26.type=ClassTarget -target26.width=210 -target26.x=10 -target26.y=600 -target27.height=50 -target27.name=GraphAlgo_EulerkreisExistenz -target27.showInterface=false -target27.type=ClassTarget -target27.width=210 -target27.x=20 -target27.y=100 -target28.height=50 -target28.name=GraphAlgo_TiefensucheRek -target28.showInterface=false -target28.type=ClassTarget -target28.width=210 -target28.x=20 -target28.y=220 -target29.height=50 -target29.name=GraphAlgo_TSPGreedy2 -target29.showInterface=false -target29.type=ClassTarget -target29.width=230 -target29.x=600 -target29.y=220 -target3.height=50 -target3.name=GraphAlgo_MST_Prim -target3.showInterface=false -target3.type=ClassTarget -target3.width=230 -target3.x=890 -target3.y=100 -target30.height=50 -target30.name=GraphAlgo_ColoringBacktracking -target30.showInterface=false -target30.type=ClassTarget -target30.width=270 -target30.x=600 -target30.y=470 -target31.height=50 -target31.name=GraphAlgo_Dijkstra -target31.showInterface=false -target31.type=ClassTarget -target31.width=210 -target31.x=10 -target31.y=540 -target32.height=50 -target32.name=GraphAlgo_TSPGreedyOpt -target32.showInterface=false -target32.type=ClassTarget -target32.width=230 -target32.x=600 -target32.y=280 -target4.height=50 -target4.name=GraphAlgo_TSPBacktracking -target4.showInterface=false -target4.type=ClassTarget -target4.width=240 -target4.x=600 -target4.y=100 -target5.height=50 -target5.name=GraphAlgo_DominatingSetGreedyB -target5.showInterface=false -target5.type=ClassTarget -target5.width=290 -target5.x=290 -target5.y=220 -target6.height=50 -target6.name=GraphAlgo -target6.showInterface=false -target6.type=AbstractTarget -target6.width=100 -target6.x=310 -target6.y=10 -target7.height=50 -target7.name=GraphAlgo_DominatingSetGreedyC -target7.showInterface=false -target7.type=ClassTarget -target7.width=290 -target7.x=290 -target7.y=270 -target8.height=50 -target8.name=GraphAlgo_MST_Kruskal -target8.showInterface=false -target8.type=ClassTarget -target8.width=230 -target8.x=890 -target8.y=160 -target9.height=50 -target9.name=GraphAlgo_DominatingSetGreedyA -target9.showInterface=false -target9.type=ClassTarget -target9.width=290 -target9.x=290 -target9.y=170 +#BlueJ package file +dependency1.from=GraphAlgo_DominatingSetGreedyF +dependency1.to=GraphAlgo +dependency1.type=UsesDependency +dependency2.from=GraphAlgo_DominatingSetGreedyF +dependency2.to=GraphAlgo_Moore +dependency2.type=UsesDependency +dependency3.from=GraphAlgo_DominatingSetGreedyG +dependency3.to=GraphAlgo +dependency3.type=UsesDependency +dependency4.from=GraphAlgo_DominatingSetGreedyG +dependency4.to=GraphAlgo_Moore +dependency4.type=UsesDependency +dependency5.from=GraphAlgo_DominatingSetGreedyE +dependency5.to=GraphAlgo +dependency5.type=UsesDependency +dependency6.from=GraphAlgo_DominatingSetGreedyE +dependency6.to=GraphAlgo_Moore +dependency6.type=UsesDependency +dependency7.from=GraphAlgo_DominatingSetGreedyH +dependency7.to=GraphAlgo +dependency7.type=UsesDependency +dependency8.from=GraphAlgo_DominatingSetGreedyH +dependency8.to=GraphAlgo_Moore +dependency8.type=UsesDependency +objectbench.height=66 +objectbench.width=1428 +package.divider.horizontal=0.6003172085646312 +package.divider.vertical=0.9027962716378163 +package.editor.height=671 +package.editor.width=1292 +package.editor.x=100 +package.editor.y=118 +package.frame.height=852 +package.frame.width=1452 +package.numDependencies=8 +package.numTargets=32 +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=GraphAlgo_ColoringGreedyRandom +target1.showInterface=false +target1.type=ClassTarget +target1.width=290 +target1.x=740 +target1.y=590 +target10.height=50 +target10.name=GraphAlgo_DominatingSetGreedyF +target10.showInterface=false +target10.type=ClassTarget +target10.width=280 +target10.x=430 +target10.y=420 +target11.height=50 +target11.name=GraphAlgo_DominatingSetGreedyG +target11.showInterface=false +target11.type=ClassTarget +target11.width=290 +target11.x=430 +target11.y=470 +target12.height=50 +target12.name=GraphAlgo_TSPGreedy +target12.showInterface=false +target12.type=ClassTarget +target12.width=230 +target12.x=740 +target12.y=160 +target13.height=50 +target13.name=GraphAlgo_DominatingSetGreedyD +target13.showInterface=false +target13.type=ClassTarget +target13.width=290 +target13.x=430 +target13.y=320 +target14.height=50 +target14.name=GraphAlgo_TSPGenetisch +target14.showInterface=false +target14.type=ClassTarget +target14.width=230 +target14.x=740 +target14.y=340 +target15.height=50 +target15.name=GraphAlgo_DominatingSetGreedyE +target15.showInterface=false +target15.type=ClassTarget +target15.width=280 +target15.x=430 +target15.y=370 +target16.height=50 +target16.name=GraphAlgo_DominatingSetGenetisch +target16.showInterface=false +target16.type=ClassTarget +target16.width=300 +target16.x=430 +target16.y=640 +target17.height=50 +target17.name=GraphAlgo_ZyklusBacktracking +target17.showInterface=false +target17.type=ClassTarget +target17.width=230 +target17.x=160 +target17.y=410 +target18.height=50 +target18.name=GraphAlgo_DominatingSetGreedyH +target18.showInterface=false +target18.type=ClassTarget +target18.width=290 +target18.x=430 +target18.y=520 +target19.height=50 +target19.name=GraphAlgo_DominatingSetGreedyI +target19.showInterface=false +target19.type=ClassTarget +target19.width=280 +target19.x=430 +target19.y=570 +target2.height=50 +target2.name=GraphAlgo_Tiefensuche +target2.showInterface=false +target2.type=ClassTarget +target2.width=210 +target2.x=160 +target2.y=160 +target20.height=50 +target20.name=GraphAlgo_Moore +target20.showInterface=false +target20.type=ClassTarget +target20.width=210 +target20.x=150 +target20.y=480 +target21.height=50 +target21.name=GraphAlgo_BellmanFord +target21.showInterface=false +target21.type=ClassTarget +target21.width=210 +target21.x=150 +target21.y=660 +target22.height=50 +target22.name=GraphAlgo_Breitensuche +target22.showInterface=false +target22.type=ClassTarget +target22.width=210 +target22.x=160 +target22.y=280 +target23.height=50 +target23.name=GraphAlgo_toplogischeSortierung +target23.showInterface=false +target23.type=ClassTarget +target23.width=250 +target23.x=160 +target23.y=350 +target24.height=50 +target24.name=GraphAlgo_DominatingSetBacktracking +target24.showInterface=false +target24.type=ClassTarget +target24.width=320 +target24.x=430 +target24.y=100 +target25.height=50 +target25.name=GraphAlgo_ColoringGreedy +target25.showInterface=false +target25.type=ClassTarget +target25.width=240 +target25.x=740 +target25.y=530 +target26.height=50 +target26.name=GraphAlgo_DijkstraMitVorgaenger +target26.showInterface=false +target26.type=ClassTarget +target26.width=250 +target26.x=150 +target26.y=600 +target27.height=50 +target27.name=GraphAlgo_EulerkreisExistenz +target27.showInterface=false +target27.type=ClassTarget +target27.width=220 +target27.x=160 +target27.y=100 +target28.height=50 +target28.name=GraphAlgo_TiefensucheRek +target28.showInterface=false +target28.type=ClassTarget +target28.width=210 +target28.x=160 +target28.y=220 +target29.height=50 +target29.name=GraphAlgo_TSPGreedy2 +target29.showInterface=false +target29.type=ClassTarget +target29.width=230 +target29.x=740 +target29.y=220 +target3.height=50 +target3.name=GraphAlgo_TSPBacktracking +target3.showInterface=false +target3.type=ClassTarget +target3.width=240 +target3.x=740 +target3.y=100 +target30.height=50 +target30.name=GraphAlgo_ColoringBacktracking +target30.showInterface=false +target30.type=ClassTarget +target30.width=270 +target30.x=740 +target30.y=470 +target31.height=50 +target31.name=GraphAlgo_Dijkstra +target31.showInterface=false +target31.type=ClassTarget +target31.width=210 +target31.x=150 +target31.y=540 +target32.height=50 +target32.name=GraphAlgo_TSPGreedyOpt +target32.showInterface=false +target32.type=ClassTarget +target32.width=230 +target32.x=740 +target32.y=280 +target4.height=50 +target4.name=GraphAlgo_MST_Prim +target4.showInterface=false +target4.type=ClassTarget +target4.width=230 +target4.x=1030 +target4.y=100 +target5.height=50 +target5.name=GraphAlgo_DominatingSetGreedyB +target5.showInterface=false +target5.type=ClassTarget +target5.width=290 +target5.x=430 +target5.y=220 +target6.height=50 +target6.name=GraphAlgo +target6.showInterface=false +target6.type=AbstractTarget +target6.width=100 +target6.x=450 +target6.y=10 +target7.height=50 +target7.name=GraphAlgo_DominatingSetGreedyC +target7.showInterface=false +target7.type=ClassTarget +target7.width=290 +target7.x=430 +target7.y=270 +target8.height=50 +target8.name=GraphAlgo_MST_Kruskal +target8.showInterface=false +target8.type=ClassTarget +target8.width=230 +target8.x=1030 +target8.y=160 +target9.height=50 +target9.name=GraphAlgo_DominatingSetGreedyA +target9.showInterface=false +target9.type=ClassTarget +target9.width=290 +target9.x=430 +target9.y=170 diff --git a/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv b/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv index b52d928..0ce28e5 100644 --- a/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv +++ b/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv @@ -1,5 +1,5 @@ # Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 +showWeights,1 # Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 showInfoText,1 # Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 diff --git a/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv b/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv index 026e64f..844cb4d 100644 --- a/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv +++ b/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv @@ -1,10 +1,10 @@ # Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 +showWeights,1 # Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 showInfoText,1 # Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im images-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! +vertexStyle,1 +# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! image,siedler.png # # Graph: @@ -24,4 +24,4 @@ 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/beispielgraphen/02_topologischesortierung/03_beispiel_obst.csv b/beispielgraphen/02_topologischesortierung/03_beispiel_obst.csv deleted file mode 100644 index d204c2c..0000000 --- a/beispielgraphen/02_topologischesortierung/03_beispiel_obst.csv +++ /dev/null @@ -1,27 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,0 -# gerichtet 1, ungerichtet 0 -directed,1 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list,infotext -Orange,214,136,4,3 -Himbeere,377,78,4,0,2 -Brombeere,595,81,5,6 -Mirabelle,190,301 -Mango,521,274,7 -Erdbeere,753,95,4,6 -Apfel,804,314,4 -Blaubeere,338,444,3 -Birne,754,463,6,9 -Zwetschge,546,465,4,7 \ No newline at end of file diff --git a/beispielgraphen/02_topologischesortierung/04_beispiel_obst2.csv b/beispielgraphen/02_topologischesortierung/04_beispiel_obst2.csv deleted file mode 100644 index 41f3da0..0000000 --- a/beispielgraphen/02_topologischesortierung/04_beispiel_obst2.csv +++ /dev/null @@ -1,27 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,0 -# gerichtet 1, ungerichtet 0 -directed,1 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list,infotext -Orange,214,136,4 -Himbeere,377,78,4,0,2 -Brombeere,595,81,5,6 -Mirabelle,190,301,0 -Mango,521,274,7 -Erdbeere,753,95,4,6 -Apfel,804,314,4 -Blaubeere,338,444,3 -Birne,754,463,6,9 -Zwetschge,546,465,4,7 \ No newline at end of file diff --git a/beispielgraphen/02_topologischesortierung/wiki_rangliste.csv b/beispielgraphen/02_topologischesortierung/wiki_rangliste.csv deleted file mode 100644 index 5df9a08..0000000 --- a/beispielgraphen/02_topologischesortierung/wiki_rangliste.csv +++ /dev/null @@ -1,28 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 -# Größe der Knoten -vertexSize,26 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,0 -# gerichtet 1, ungerichtet 0 -directed,1 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list,infotext -Albert,159,45,3,4,6,8 -Boris,173,316,0,2,3,6,8 -Cecile,283,148,0,8 -Didi,362,311,4 -Elli,81,264 -Felix,418,241,4 -Greta,53,137,5,8 -Horst,346,38,0,3,6,8 -Ian,467,103,3,4 \ No newline at end of file diff --git a/beispielgraphen/03_routenplanung/00_traversierung.csv b/beispielgraphen/03_routenplanung/00_traversierung.csv deleted file mode 100644 index 3d5d11b..0000000 --- a/beispielgraphen/03_routenplanung/00_traversierung.csv +++ /dev/null @@ -1,23 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,0 -# gerichtet 1, ungerichtet 0 -directed,0 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list,infotext -s,178,282,1,2 -a,282,181,0,3 -b,293,376,0,3,5 -c,386,271,1,2,4,5 -e,530,170,3,5 -d,524,418,2,3,4 \ No newline at end of file diff --git a/beispielgraphen/03_routenplanung/01_fadenbeispiel.csv b/beispielgraphen/03_routenplanung/01_fadenbeispiel.csv deleted file mode 100644 index cb56dff..0000000 --- a/beispielgraphen/03_routenplanung/01_fadenbeispiel.csv +++ /dev/null @@ -1,29 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,1 -# Größe der Knoten -vertexSize,60 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,1 -# gerichtet 1, ungerichtet 0 -directed,0 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list,infotext -Anfangsdorf (A),190,418,2,35.0,1,25.0,3,80.0 -Nebenstadt (N),299,315,0,25.0,2,30.0,8,58.0 -Kurzweil (K),367,470,0,35.0,1,30.0,8,48.0,4,26.0 -Langhausen (L),428,669,4,27.0,0,80.0 -Seeheim (S),507,533,2,26.0,5,21.0,3,27.0 -Burgheim (B),637,567,4,21.0,7,47.0 -Talhausen (T),754,190,8,53.0,9,25.0 -Waldstetten (W),824,433,9,28.0,8,60.0,5,47.0 -Calmberg (C),563,352,1,58.0,2,48.0,6,53.0,7,60.0 -Dusenheim (D),873,279,6,25.0,7,28.0 \ No newline at end of file diff --git a/beispielgraphen/03_routenplanung/01a_einbahnstrassen.csv b/beispielgraphen/03_routenplanung/01a_einbahnstrassen.csv deleted file mode 100644 index 2a05d79..0000000 --- a/beispielgraphen/03_routenplanung/01a_einbahnstrassen.csv +++ /dev/null @@ -1,25 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 -# Größe der Knoten -vertexSize,36 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,0 -# gerichtet 1, ungerichtet 0 -directed,1 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list -186,310,1 -221,189,3,4 -367,99,1,5 -417,226,2 -385,350,0,3,5 -566,221,4 \ No newline at end of file diff --git a/beispielgraphen/03_routenplanung/06a_bellmannford.csv b/beispielgraphen/03_routenplanung/06a_bellmannford.csv deleted file mode 100644 index 1d26368..0000000 --- a/beispielgraphen/03_routenplanung/06a_bellmannford.csv +++ /dev/null @@ -1,25 +0,0 @@ -# Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,1 -# Größe der Knoten -vertexSize,49 -# Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 -showInfoText,1 -# Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 -vertexStyle,2 -# Bild im Hintergrund (bitte im "images"-Ordner ablegen) --> Dateiname angeben. Fall kein Bild bitte 0 schreiben! -image,0 -# -# Graph: -# gewichtet 1, ungewichtet 0 -weighted,1 -# gerichtet 1, ungerichtet 0 -directed,1 -# Der Graph liegt hier in Form einer Adjazenzliste vor. -# Jede Zeile steht fuer einen Knoten, durch Komma getrennt steht der adjazente Knoten mit dem zugehoerigen Kantengewicht. -list -132,352,1,-4.0,2,9.0 -343,352,3,6.0 -302,467,3,-8.0 -490,467,4,6.0,5,7.0 -577,291,5,-3.0 -662,520,3,-2.0 \ No newline at end of file diff --git a/config.csv b/config.csv index e01ccdb..6b46207 100644 --- a/config.csv +++ b/config.csv @@ -1,3 +1,3 @@ -false,false -272.0,138.0,1648.0,822.0 -H:\GitTest\3_vorlagen_tauschordner\1_graphentester\beispielgraphen\03_routenplanung\03_badenbaden.csv +false,false +180.0,174.0,1328.0,762.0 + diff --git a/control/Controller.java b/control/Controller.java index 2df4018..7ce3344 100644 --- a/control/Controller.java +++ b/control/Controller.java @@ -32,13 +32,14 @@ import javafx.collections.ObservableList; * Die Klasse Controller stellt den Controller des Hauptfensters / Menu dar. * * @author Thomas Schaller - * @version 03.03.2023 (v7.1) + * @version 12.02.2025 (v7.4) * v7.0: Die aktuelle Bildschirmposition und der angezeigte Graph werden in config.csv abgelegt. * v7.1: Verzeichnisauswahl für Laden/Speichern verbessert + * v7.4: Unterbrechen von Simulieren-Thread neu geregelt. */ public class Controller { - private String version = "7.0 (Februar 2023)"; + private String version = "7.4 (Januar 2025)"; private String pfad; // Pfad der aktuell angezeigten Datei @FXML diff --git a/control/SimulationTabMitController.java b/control/SimulationTabMitController.java index 76f2786..eefd186 100644 --- a/control/SimulationTabMitController.java +++ b/control/SimulationTabMitController.java @@ -40,7 +40,8 @@ import javafx.collections.ObservableList; * durchgeführt werden. * * @author Thomas Schaller - * @version 03.03.2023 (v7.0) + * @version 12.02.2025 (v7.4) + * v7.4: Unterbrechen eines Algorithmus neu geregelt. * v7.1: Fehler bei Aktualisierung des Hilfefensters behoben, Splitpane statt HBox * v7.0: Mechanismus geändert, so dass die init-Methode des Algorithmus beim Wechesel eines Algorithmus * aufgerufen wird, um die für diesen Algorithmus passenden Anzeigeeinstellungen zu setzen. @@ -189,7 +190,7 @@ public class SimulationTabMitController extends TabMitController implements Hilf } public void changeAlgorithm() { - if(aktAlgo != null && aktAlgo.isAlive()) aktAlgo.stop(); + if(aktAlgo != null && aktAlgo.isAlive() && !aktAlgo.isInterrupted()) aktAlgo.interrupt(); graph.initialisiereAlleKnoten(); graph.initialisiereAlleKanten(); diff --git a/control/package.bluej b/control/package.bluej index 0988fa1..236b10f 100644 --- a/control/package.bluej +++ b/control/package.bluej @@ -1,94 +1,94 @@ -#BlueJ package file -dependency1.from=TabMitController -dependency1.to=UnterTabMitController -dependency1.type=UsesDependency -dependency2.from=SimulationTabMitController -dependency2.to=MyClassLoader -dependency2.type=UsesDependency -dependency3.from=Controller -dependency3.to=TabMitController -dependency3.type=UsesDependency -dependency4.from=Controller -dependency4.to=HauptTabMitController -dependency4.type=UsesDependency -dependency5.from=Controller -dependency5.to=SimulationTabMitController -dependency5.type=UsesDependency -dependency6.from=Controller -dependency6.to=EditTabMitController -dependency6.type=UsesDependency -objectbench.height=172 -objectbench.width=451 -package.divider.horizontal=0.599476439790576 -package.divider.vertical=0.642 -package.editor.height=314 -package.editor.width=636 -package.editor.x=1113 -package.editor.y=290 -package.frame.height=600 -package.frame.width=800 -package.numDependencies=6 -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=180 -target1.x=10 -target1.y=80 -target2.height=50 -target2.name=HauptTabMitController -target2.showInterface=false -target2.type=ClassTarget -target2.width=200 -target2.x=10 -target2.y=140 -target3.height=70 -target3.name=Hilfefenster -target3.showInterface=false -target3.type=ClassTarget -target3.width=120 -target3.x=10 -target3.y=210 -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=210 -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=220 -target8.y=270 +#BlueJ package file +dependency1.from=TabMitController +dependency1.to=UnterTabMitController +dependency1.type=UsesDependency +dependency2.from=SimulationTabMitController +dependency2.to=MyClassLoader +dependency2.type=UsesDependency +dependency3.from=Controller +dependency3.to=TabMitController +dependency3.type=UsesDependency +dependency4.from=Controller +dependency4.to=HauptTabMitController +dependency4.type=UsesDependency +dependency5.from=Controller +dependency5.to=SimulationTabMitController +dependency5.type=UsesDependency +dependency6.from=Controller +dependency6.to=EditTabMitController +dependency6.type=UsesDependency +objectbench.height=66 +objectbench.width=776 +package.divider.horizontal=0.599476439790576 +package.divider.vertical=0.8537074148296593 +package.editor.height=419 +package.editor.width=640 +package.editor.x=577 +package.editor.y=358 +package.frame.height=600 +package.frame.width=800 +package.numDependencies=6 +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=HauptTabMitController +target1.showInterface=false +target1.type=ClassTarget +target1.width=200 +target1.x=10 +target1.y=140 +target2.height=50 +target2.name=EditTabMitController +target2.showInterface=false +target2.type=ClassTarget +target2.width=180 +target2.x=10 +target2.y=80 +target3.height=70 +target3.name=Hilfefenster +target3.showInterface=false +target3.type=ClassTarget +target3.width=120 +target3.x=10 +target3.y=210 +target4.height=50 +target4.name=TabMitController +target4.showInterface=false +target4.type=ClassTarget +target4.width=140 +target4.x=300 +target4.y=110 +target5.height=50 +target5.name=SimulationTabMitController +target5.showInterface=false +target5.type=ClassTarget +target5.width=210 +target5.x=210 +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=180 +target8.x=220 +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/GraphElement.html b/doc/graph/GraphElement.html index fbdbada..84a95dd 100644 --- a/doc/graph/GraphElement.html +++ b/doc/graph/GraphElement.html @@ -1,604 +1,460 @@ - - - - - -GraphElement - - - - - - - - - -
-
-
Package graph
-

Class GraphElement

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • graph.GraphElement
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.lang.Comparable<GraphElement>
    -
    -
    -
    public abstract class GraphElement
    -extends java.lang.Object
    -implements java.lang.Comparable<GraphElement>
    -
    Die Klasse GraphElement ist eine Oberklasse von Knoten und Kanten. - Sie ist nur für die interne Verarbeitung wichtig.
    -
    -
    Version:
    -
    28.02.2023 (v7.0) - v7.0: Die am Element gespeicherten Informationen werden in einer Hashmap gespeichert. Daher können beliebige weitere Informationen abgelegt werden. - Es wird auch gespeichert, als welcher Typ die Information übergeben wurde.
    -
    Author:
    -
    Thomas Schaller
    -
    -
  • -
-
-
-
    -
  • - -
    -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeFieldDescription
      protected java.util.HashMap<java.lang.String,​java.lang.String>daten 
      protected graph.Graphg 
      protected java.lang.StringsortierKriterium 
      protected java.util.HashMap<java.lang.String,​java.lang.String>typen 
      -
    • -
    -
    - -
    -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - -
      Constructors 
      ConstructorDescription
      GraphElement() 
      -
    • -
    -
    - -
    -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and TypeMethodDescription
      intcompareTo​(GraphElement e) -
      Vergleicht den Knoten/Kante mit einem anderen Knoten/Kante bezüglich seines Sortierkriteriums - Das Sortierkriterium ist normalerweise der "Wert", kann aber mit setSortierkriterium gesetzt werden.
      -
      booleangetBoolean​(java.lang.String name) -
      Gibt zusätzliche Daten als int zurück
      -
      doublegetDouble​(java.lang.String name) -
      Gibt zusätzliche Daten als int zurück
      -
      intgetInt​(java.lang.String name) -
      Gibt zusätzliche Daten als int zurück
      -
      abstract java.util.List<java.lang.String>getKurztext​(java.lang.String[] namen) -
      Gibt die Beschreibung des Knoten / der Kante als Kurztext für die Anzeige im - Kreis bzw.
      -
      abstract java.util.List<java.lang.String>getLangtext​(java.lang.String[] namen) -
      Gibt die Beschreibung des Knoten / der Kante als Langtext für die Anzeige im - Tooltip-Fenster zurück.
      -
      java.lang.StringgetStatus() -
      Liefert den Status einer Kante als String.
      -
      java.lang.StringgetString​(java.lang.String name) -
      Gibt zusätzliche Daten als String zurück
      -
      voidset​(java.lang.String name, - boolean wert) -
      Speichert zusätzliche Daten am Knoten oder der Kante
      -
      voidset​(java.lang.String name, - double wert) -
      Speichert zusätzliche Daten am Knoten oder der Kante - Double.POSITIVE_INFINITY bzw.
      -
      voidset​(java.lang.String name, - int wert) -
      Speichert zusätzliche Daten am Knoten oder der Kante - Integer.MAX_VALUE bzw.
      -
      voidset​(java.lang.String name, - java.lang.String wert) -
      Speichert zusätzliche Daten am Knoten oder der Kante
      -
      voidsetGraph​(graph.Graph g) -
      Speichert den Graphen, in den Knoten/Kante eingefügt wurde.
      -
      voidsetSortierkriterium​(java.lang.String name) -
      Setzt das Sortierkriterium des Knoten/der Kante.
      -
      voidsetStatus​(java.lang.String status) -
      Setzt den Status einer Kante, der in einem String gespeichert ist.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
    -
  • -
-
-
-
    -
  • - -
    -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        daten

        -
        protected java.util.HashMap<java.lang.String,​java.lang.String> daten
        -
      • -
      - - - -
        -
      • -

        typen

        -
        protected java.util.HashMap<java.lang.String,​java.lang.String> typen
        -
      • -
      - - - -
        -
      • -

        g

        -
        protected graph.Graph g
        -
      • -
      - - - -
        -
      • -

        sortierKriterium

        -
        protected java.lang.String sortierKriterium
        -
      • -
      -
    • -
    -
    - -
    -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        GraphElement

        -
        public GraphElement()
        -
      • -
      -
    • -
    -
    - -
    -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setStatus

        -
        public void setStatus​(java.lang.String status)
        -
        Setzt den Status einer Kante, der in einem String gespeichert ist. - Form: markiert,geloescht,farbe - Dabei sind markiert und geloescht boolsche Werte (0 = false, 1 = true) und - die farbe eine Zahl
        -
        -
        Parameters:
        -
        status - Statusstring
        -
        -
      • -
      - - - -
        -
      • -

        getStatus

        -
        public java.lang.String getStatus()
        -
        Liefert den Status einer Kante als String. - Form: markiert,geloescht,farbe - Dabei sind markiert und geloescht boolsche Werte (0 = false, 1 = true) und - die farbe eine Zahl
        -
        -
        Returns:
        -
        Statusstring
        -
        -
      • -
      - - - -
        -
      • -

        setSortierkriterium

        -
        public void setSortierkriterium​(java.lang.String name)
        -
        Setzt das Sortierkriterium des Knoten/der Kante.
        -
        -
        Parameters:
        -
        name - Bezeichnung des Wertes nach dem sortiert werden soll
        -
        -
      • -
      - - - -
        -
      • -

        getKurztext

        -
        public abstract java.util.List<java.lang.String> getKurztext​(java.lang.String[] namen)
        -
        Gibt die Beschreibung des Knoten / der Kante als Kurztext für die Anzeige im - Kreis bzw. Kasten zurück. Dabei wird jeder Eintrag der Liste als eigene Zeile - dargestellt. Es werden nur die Werte angezeigt. Es sind max. 2 Zeilen zulässig.
        -
        -
        Parameters:
        -
        namen - Namen der Werte, die im Kurztext angezeigt werden sollen.
        -
        -
      • -
      - - - -
        -
      • -

        getLangtext

        -
        public abstract java.util.List<java.lang.String> getLangtext​(java.lang.String[] namen)
        -
        Gibt die Beschreibung des Knoten / der Kante als Langtext für die Anzeige im - Tooltip-Fenster zurück. Dabei wird jeder Eintrag der Liste als eigene Zeile - dargestellt. Es wird jeweils die Bezeichnung und der Wert ausgegeben.
        -
        -
        Parameters:
        -
        namen - Namen der Werte, die im Tooltip angezeigt werden sollen.
        -
        -
      • -
      - - - -
        -
      • -

        setGraph

        -
        public void setGraph​(graph.Graph g)
        -
        Speichert den Graphen, in den Knoten/Kante eingefügt wurde. Damit kann er selbst seine Nummer - ermitteln.
        -
        -
        Parameters:
        -
        g - Graph
        -
        -
      • -
      - - - -
        -
      • -

        set

        -
        public void set​(java.lang.String name,
        -                java.lang.String wert)
        -
        Speichert zusätzliche Daten am Knoten oder der Kante
        -
        -
        Parameters:
        -
        name - Bezeichnung der Art der Daten
        -
        wert - Wert der zu speichernden Daten
        -
        -
      • -
      - - - -
        -
      • -

        set

        -
        public void set​(java.lang.String name,
        -                double wert)
        -
        Speichert zusätzliche Daten am Knoten oder der Kante - Double.POSITIVE_INFINITY bzw. NEGATIVE_INFINITY wird als +/- unendlich dargestellt
        -
        -
        Parameters:
        -
        name - Bezeichnung der Art der Daten
        -
        wert - Wert der zu speichernden Daten
        -
        -
      • -
      - - - -
        -
      • -

        set

        -
        public void set​(java.lang.String name,
        -                int wert)
        -
        Speichert zusätzliche Daten am Knoten oder der Kante - Integer.MAX_VALUE bzw. MIN_VALUE werden als +/- unendlich dargestellt.
        -
        -
        Parameters:
        -
        name - Bezeichnung der Art der Daten
        -
        wert - Wert der zu speichernden Daten
        -
        -
      • -
      - - - -
        -
      • -

        set

        -
        public void set​(java.lang.String name,
        -                boolean wert)
        -
        Speichert zusätzliche Daten am Knoten oder der Kante
        -
        -
        Parameters:
        -
        name - Bezeichnung der Art der Daten
        -
        wert - Wert der zu speichernden Daten
        -
        -
      • -
      - - - -
        -
      • -

        getString

        -
        public java.lang.String getString​(java.lang.String name)
        -
        Gibt zusätzliche Daten als String zurück
        -
        -
        Parameters:
        -
        name - Bezeichnung der zusätzlichen Daten
        -
        Returns:
        -
        Wert von "name" oder "", wenn name nicht gespeichert ist
        -
        -
      • -
      - - - -
        -
      • -

        getInt

        -
        public int getInt​(java.lang.String name)
        -
        Gibt zusätzliche Daten als int zurück
        -
        -
        Parameters:
        -
        name - Bezeichnung der zusätzlichen Daten
        -
        Returns:
        -
        Wert von "name" oder 0, wenn name nicht gespeichert ist oder keine Zahl ist
        -
        -
      • -
      - - - -
        -
      • -

        getDouble

        -
        public double getDouble​(java.lang.String name)
        -
        Gibt zusätzliche Daten als int zurück
        -
        -
        Parameters:
        -
        name - Bezeichnung der zusätzlichen Daten
        -
        Returns:
        -
        Wert von "name" oder 0, wenn name nicht gespeichert ist oder keine Zahl ist
        -
        -
      • -
      - - - -
        -
      • -

        getBoolean

        -
        public boolean getBoolean​(java.lang.String name)
        -
        Gibt zusätzliche Daten als int zurück
        -
        -
        Parameters:
        -
        name - Bezeichnung der zusätzlichen Daten
        -
        Returns:
        -
        Wert von "name" oder false, wenn name nicht gespeichert ist oder kein Boolean ist
        -
        -
      • -
      - - - -
        -
      • -

        compareTo

        -
        public int compareTo​(GraphElement e)
        -
        Vergleicht den Knoten/Kante mit einem anderen Knoten/Kante bezüglich seines Sortierkriteriums - Das Sortierkriterium ist normalerweise der "Wert", kann aber mit setSortierkriterium gesetzt werden.
        -
        -
        Specified by:
        -
        compareTo in interface java.lang.Comparable<GraphElement>
        -
        Parameters:
        -
        e - anderer Knoten
        -
        Returns:
        -
        kleiner 0 der andere Knoten hat einen größeren Wert, größer 0 der andere Knoten hat einen kleineren Wert, gleich 0 beide sind gleich
        -
        -
      • -
      -
    • -
    -
    -
  • -
-
-
-
- - - + + + + +GraphElement + + + + + + + + + + + +
+
+
+ +
+
Package graph
+

Class GraphElement

+
+
java.lang.Object +
graph.GraphElement
+
+
+
+
All Implemented Interfaces:
+
Comparable<GraphElement>
+
+
+
public abstract class GraphElement +extends Object +implements Comparable<GraphElement>
+
Die Klasse GraphElement ist eine Oberklasse von Knoten und Kanten. + Sie ist nur für die interne Verarbeitung wichtig.
+
+
Version:
+
28.02.2023 (v7.0) + v7.0: Die am Element gespeicherten Informationen werden in einer Hashmap gespeichert. Daher können beliebige weitere Informationen abgelegt werden. + Es wird auch gespeichert, als welcher Typ die Information übergeben wurde.
+
Author:
+
Thomas Schaller
+
+
+
+
    + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    protected HashMap<String,String>
    + +
     
    +
    protected graph.Graph
    + +
     
    +
    protected String
    + +
     
    +
    protected HashMap<String,String>
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    int
    + +
    +
    Vergleicht den Knoten/Kante mit einem anderen Knoten/Kante bezüglich seines Sortierkriteriums + Das Sortierkriterium ist normalerweise der "Wert", kann aber mit setSortierkriterium gesetzt werden.
    +
    +
    boolean
    + +
    +
    Gibt zusätzliche Daten als int zurück
    +
    +
    double
    + +
    +
    Gibt zusätzliche Daten als int zurück
    +
    +
    int
    +
    getInt(String name)
    +
    +
    Gibt zusätzliche Daten als int zurück
    +
    +
    abstract List<String>
    + +
    +
    Gibt die Beschreibung des Knoten / der Kante als Kurztext für die Anzeige im + Kreis bzw.
    +
    +
    abstract List<String>
    + +
    +
    Gibt die Beschreibung des Knoten / der Kante als Langtext für die Anzeige im + Tooltip-Fenster zurück.
    +
    + + +
    +
    Liefert den Status einer Kante als String.
    +
    + + +
    +
    Gibt zusätzliche Daten als String zurück
    +
    +
    void
    +
    set(String name, + boolean wert)
    +
    +
    Speichert zusätzliche Daten am Knoten oder der Kante
    +
    +
    void
    +
    set(String name, + double wert)
    +
    +
    Speichert zusätzliche Daten am Knoten oder der Kante + Double.POSITIVE_INFINITY bzw.
    +
    +
    void
    +
    set(String name, + int wert)
    +
    +
    Speichert zusätzliche Daten am Knoten oder der Kante + Integer.MAX_VALUE bzw.
    +
    +
    void
    +
    set(String name, + String wert)
    +
    +
    Speichert zusätzliche Daten am Knoten oder der Kante
    +
    +
    void
    +
    setGraph(graph.Graph g)
    +
    +
    Speichert den Graphen, in den Knoten/Kante eingefügt wurde.
    +
    +
    void
    + +
    +
    Setzt das Sortierkriterium des Knoten/der Kante.
    +
    +
    void
    +
    setStatus(String status)
    +
    +
    Setzt den Status einer Kante, der in einem String gespeichert ist.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    + +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      GraphElement

      +
      public GraphElement()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setStatus

      +
      public void setStatus(String status)
      +
      Setzt den Status einer Kante, der in einem String gespeichert ist. + Form: markiert,geloescht,farbe + Dabei sind markiert und geloescht boolsche Werte (0 = false, 1 = true) und + die farbe eine Zahl
      +
      +
      Parameters:
      +
      status - Statusstring
      +
      +
      +
    • +
    • +
      +

      getStatus

      +
      public String getStatus()
      +
      Liefert den Status einer Kante als String. + Form: markiert,geloescht,farbe + Dabei sind markiert und geloescht boolsche Werte (0 = false, 1 = true) und + die farbe eine Zahl
      +
      +
      Returns:
      +
      Statusstring
      +
      +
      +
    • +
    • +
      +

      setSortierkriterium

      +
      public void setSortierkriterium(String name)
      +
      Setzt das Sortierkriterium des Knoten/der Kante.
      +
      +
      Parameters:
      +
      name - Bezeichnung des Wertes nach dem sortiert werden soll
      +
      +
      +
    • +
    • +
      +

      getKurztext

      +
      public abstract List<String> getKurztext(String[] namen)
      +
      Gibt die Beschreibung des Knoten / der Kante als Kurztext für die Anzeige im + Kreis bzw. Kasten zurück. Dabei wird jeder Eintrag der Liste als eigene Zeile + dargestellt. Es werden nur die Werte angezeigt. Es sind max. 2 Zeilen zulässig.
      +
      +
      Parameters:
      +
      namen - Namen der Werte, die im Kurztext angezeigt werden sollen.
      +
      +
      +
    • +
    • +
      +

      getLangtext

      +
      public abstract List<String> getLangtext(String[] namen)
      +
      Gibt die Beschreibung des Knoten / der Kante als Langtext für die Anzeige im + Tooltip-Fenster zurück. Dabei wird jeder Eintrag der Liste als eigene Zeile + dargestellt. Es wird jeweils die Bezeichnung und der Wert ausgegeben.
      +
      +
      Parameters:
      +
      namen - Namen der Werte, die im Tooltip angezeigt werden sollen.
      +
      +
      +
    • +
    • +
      +

      setGraph

      +
      public void setGraph(graph.Graph g)
      +
      Speichert den Graphen, in den Knoten/Kante eingefügt wurde. Damit kann er selbst seine Nummer + ermitteln.
      +
      +
      Parameters:
      +
      g - Graph
      +
      +
      +
    • +
    • +
      +

      set

      +
      public void set(String name, + String wert)
      +
      Speichert zusätzliche Daten am Knoten oder der Kante
      +
      +
      Parameters:
      +
      name - Bezeichnung der Art der Daten
      +
      wert - Wert der zu speichernden Daten
      +
      +
      +
    • +
    • +
      +

      set

      +
      public void set(String name, + double wert)
      +
      Speichert zusätzliche Daten am Knoten oder der Kante + Double.POSITIVE_INFINITY bzw. NEGATIVE_INFINITY wird als +/- unendlich dargestellt
      +
      +
      Parameters:
      +
      name - Bezeichnung der Art der Daten
      +
      wert - Wert der zu speichernden Daten
      +
      +
      +
    • +
    • +
      +

      set

      +
      public void set(String name, + int wert)
      +
      Speichert zusätzliche Daten am Knoten oder der Kante + Integer.MAX_VALUE bzw. MIN_VALUE werden als +/- unendlich dargestellt.
      +
      +
      Parameters:
      +
      name - Bezeichnung der Art der Daten
      +
      wert - Wert der zu speichernden Daten
      +
      +
      +
    • +
    • +
      +

      set

      +
      public void set(String name, + boolean wert)
      +
      Speichert zusätzliche Daten am Knoten oder der Kante
      +
      +
      Parameters:
      +
      name - Bezeichnung der Art der Daten
      +
      wert - Wert der zu speichernden Daten
      +
      +
      +
    • +
    • +
      +

      getString

      +
      public String getString(String name)
      +
      Gibt zusätzliche Daten als String zurück
      +
      +
      Parameters:
      +
      name - Bezeichnung der zusätzlichen Daten
      +
      Returns:
      +
      Wert von "name" oder "", wenn name nicht gespeichert ist
      +
      +
      +
    • +
    • +
      +

      getInt

      +
      public int getInt(String name)
      +
      Gibt zusätzliche Daten als int zurück
      +
      +
      Parameters:
      +
      name - Bezeichnung der zusätzlichen Daten
      +
      Returns:
      +
      Wert von "name" oder 0, wenn name nicht gespeichert ist oder keine Zahl ist
      +
      +
      +
    • +
    • +
      +

      getDouble

      +
      public double getDouble(String name)
      +
      Gibt zusätzliche Daten als int zurück
      +
      +
      Parameters:
      +
      name - Bezeichnung der zusätzlichen Daten
      +
      Returns:
      +
      Wert von "name" oder 0, wenn name nicht gespeichert ist oder keine Zahl ist
      +
      +
      +
    • +
    • +
      +

      getBoolean

      +
      public boolean getBoolean(String name)
      +
      Gibt zusätzliche Daten als int zurück
      +
      +
      Parameters:
      +
      name - Bezeichnung der zusätzlichen Daten
      +
      Returns:
      +
      Wert von "name" oder false, wenn name nicht gespeichert ist oder kein Boolean ist
      +
      +
      +
    • +
    • +
      +

      compareTo

      +
      public int compareTo(GraphElement e)
      +
      Vergleicht den Knoten/Kante mit einem anderen Knoten/Kante bezüglich seines Sortierkriteriums + Das Sortierkriterium ist normalerweise der "Wert", kann aber mit setSortierkriterium gesetzt werden.
      +
      +
      Specified by:
      +
      compareTo in interface Comparable<GraphElement>
      +
      Parameters:
      +
      e - anderer Knoten
      +
      Returns:
      +
      kleiner 0 der andere Knoten hat einen größeren Wert, größer 0 der andere Knoten hat einen kleineren Wert, gleich 0 beide sind gleich
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/doc/graph/package-summary.html b/doc/graph/package-summary.html index b990424..810dc25 100644 --- a/doc/graph/package-summary.html +++ b/doc/graph/package-summary.html @@ -1,53 +1,48 @@ - - - - - -graph - - - - - - - - -
-
-

Package graph

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    GraphElement -
    Die Klasse GraphElement ist eine Oberklasse von Knoten und Kanten.
    -
    -
  • -
-
-
- - + + + + +graph + + + + + + + + + + + +
+
+
+
+

Package graph

+
+
+
package graph
+
+
    +
  • +
    +
    Classes
    +
    +
    Class
    +
    Description
    + +
    +
    Die Klasse GraphElement ist eine Oberklasse von Knoten und Kanten.
    +
    +
    +
    +
  • +
+
+
+
+
+ + diff --git a/doc/index.html b/doc/index.html index f2bd147..f808aa9 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,23 +1,26 @@ - - - - - -Generated Documentation (Untitled) - - - - - - - -
- -

graph/package-summary.html

-
- - + + + + +Generated Documentation (Untitled) + + + + + + + + + + + +
+ +

graph/package-summary.html

+
+ + diff --git a/doc/legal/ADDITIONAL_LICENSE_INFO b/doc/legal/ADDITIONAL_LICENSE_INFO index 3f7e921..ff700cd 100644 --- a/doc/legal/ADDITIONAL_LICENSE_INFO +++ b/doc/legal/ADDITIONAL_LICENSE_INFO @@ -1 +1,37 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO + 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 index e09f918..065b8d9 100644 --- a/doc/legal/ASSEMBLY_EXCEPTION +++ b/doc/legal/ASSEMBLY_EXCEPTION @@ -1 +1,27 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION + +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 index 940481e..8b400c7 100644 --- a/doc/legal/LICENSE +++ b/doc/legal/LICENSE @@ -1 +1,347 @@ -Please see ..\java.base\LICENSE +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 f2c68e6..8f75495 100644 --- a/doc/logfile.txt +++ b/doc/logfile.txt @@ -1,36 +1,31 @@ -Class documentation -<---- javadoc command: ----> -C:\Program Files\BlueJ\jdk\bin\javadoc.exe --author --version --nodeprecated --package --Xdoclint:none --noindex --notree --nohelp --nonavbar --source -11 --classpath -C:\Program Files\BlueJ\lib\bluejcore.jar;C:\Program Files\BlueJ\lib\junit-jupiter-5.5.2.jar;C:\Program Files\BlueJ\lib\junit-jupiter-api-5.5.2.jar;C:\Program Files\BlueJ\lib\junit-jupiter-engine-5.5.2.jar;C:\Program Files\BlueJ\lib\junit-jupiter-migrationsupport-5.5.2.jar;C:\Program Files\BlueJ\lib\junit-jupiter-params-5.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-commons-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-console-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-console-standalone-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-engine-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-launcher-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-reporting-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-runner-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-suite-api-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-platform-testkit-1.5.2.jar;C:\Program Files\BlueJ\lib\junit-quickcheck-core-0.9.jar;C:\Program Files\BlueJ\lib\junit-vintage-engine-5.5.2.jar;C:\Program Files\BlueJ\lib\hamcrest-core-1.3.jar;C:\Program Files\BlueJ\lib\hamcrest-library-1.3.jar;C:\Program Files\BlueJ\lib\lang-stride.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.base.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.controls.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.fxml.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.graphics.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.media.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.properties.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.swing.jar;C:\Program Files\BlueJ\lib\javafx\lib\javafx.web.jar;H:\GitTest\3_vorlagen_tauschordner\1_graphentester\+libs\commons-io-2.4.jar;H:\GitTest\3_vorlagen_tauschordner\1_graphentester\+libs\csv.jar;H:\GitTest\3_vorlagen_tauschordner\1_graphentester\+libs\jdom-1.1.3.jar;H:\GitTest\3_vorlagen_tauschordner\1_graphentester --d -H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc --encoding -UTF-8 --charset -UTF-8 -H:\GitTest\3_vorlagen_tauschordner\1_graphentester\graph\GraphElement.java -<---- end of javadoc command ----> -Loading source file H:\GitTest\3_vorlagen_tauschordner\1_graphentester\graph\GraphElement.java... -Constructing Javadoc information... -Standard Doclet version 11.0.14.1 -Building tree for all the packages and classes... -Generating H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc\graph\GraphElement.html... -Generating H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc\graph\package-summary.html... -Generating H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc\constant-values.html... -Building index for all the packages and classes... -Building index for all classes... -Generating H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc\allclasses.html... -Generating H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc\allclasses.html... -Generating H:\GitTest\3_vorlagen_tauschordner\1_graphentester\doc\index.html... +Class documentation +<---- javadoc command: ----> +/snap/bluej/316/usr/share/bluej/jdk/bin/javadoc +-author +-version +-nodeprecated +-package +-Xdoclint:none +-noindex +-notree +-nohelp +-nonavbar +-source +17 +-classpath +/snap/bluej/316/usr/share/bluej/bluejcore.jar:/snap/bluej/316/usr/share/bluej/javafx-base-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/javafx-base-20.0.1.jar:/snap/bluej/316/usr/share/bluej/javafx-controls-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/javafx-controls-20.0.1.jar:/snap/bluej/316/usr/share/bluej/javafx-fxml-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/javafx-fxml-20.0.1.jar:/snap/bluej/316/usr/share/bluej/javafx-graphics-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/javafx-graphics-20.0.1.jar:/snap/bluej/316/usr/share/bluej/javafx-media-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/javafx-media-20.0.1.jar:/snap/bluej/316/usr/share/bluej/javafx-swing-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/javafx-web-20.0.1-linux.jar:/snap/bluej/316/usr/share/bluej/junit-4.12.jar:/snap/bluej/316/usr/share/bluej/junit-jupiter-5.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-jupiter-api-5.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-jupiter-engine-5.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-jupiter-params-5.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-platform-commons-1.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-platform-engine-1.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-platform-launcher-1.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-platform-suite-api-1.5.2.jar:/snap/bluej/316/usr/share/bluej/junit-vintage-engine-5.5.2.jar:/snap/bluej/316/usr/share/bluej/hamcrest-core-1.3.jar:/snap/bluej/316/usr/share/bluej/opentest4j-1.2.0.jar:/snap/bluej/316/usr/share/bluej/lang-stride.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.base.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.controls.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.fxml.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.graphics.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.media.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.properties.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.swing.jar:/snap/bluej/316/usr/share/bluej/javafx/javafx.web.jar:/home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/+libs/jdom-1.1.3.jar:/home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/+libs/csv.jar:/home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/+libs/commons-io-2.4.jar:/home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester +-d +/home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/doc +-encoding +UTF-8 +-charset +UTF-8 +/home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/graph/GraphElement.java +<---- end of javadoc command ----> +Loading source file /home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/graph/GraphElement.java... +Constructing Javadoc information... +Standard Doclet version 17.0.4.1+1 +Building tree for all the packages and classes... +Generating /home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/doc/graph/GraphElement.html... +Generating /home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/doc/graph/package-summary.html... +Generating /home/merlin/NC_Sem/03_Informatik/00_GitCamp_Themen/02_Alg/04_DS/01_KS_Graphentester_ZPG/3_vorlagen_tauschordner/1_graphentester/doc/index.html... diff --git a/doc/script.js b/doc/script.js index 53f3ea0..864989c 100644 --- a/doc/script.js +++ b/doc/script.js @@ -1,149 +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) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("module-search-index.json").async("text").then(function(content){ - moduleSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "package-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("package-search-index.json").async("text").then(function(content){ - packageSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "type-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("type-search-index.json").async("text").then(function(content){ - typeSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "member-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("member-search-index.json").async("text").then(function(content){ - memberSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "tag-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("tag-search-index.json").async("text").then(function(content){ - tagSearchIndex = JSON.parse(content); - }); - }); - }); - }); - 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 deleted file mode 100644 index 4a407d4..0000000 --- a/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.ctxt +++ /dev/null @@ -1,8 +0,0 @@ -#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 diff --git a/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.java b/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.java index e6e8822..372ca60 100644 --- a/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.java +++ b/eigeneAlgorithmen/GraphAlgo_Coloring_Schueler.java @@ -13,7 +13,7 @@ import algorithmen.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Beispieldatei, in der Schüler den Algorithmus selbst umsetzen können * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -28,9 +28,9 @@ public class GraphAlgo_Coloring_Schueler extends GraphAlgo { // Ende Attribute // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { gr = getGraph(); - getStartKnoten().setFarbe(3); + getStartKnoten().setFarbe(3); // Hole alle Knoten vom Graph g diff --git a/eigeneAlgorithmen/GraphAlgo_Dijkstra_Eigener.java b/eigeneAlgorithmen/GraphAlgo_Dijkstra_Eigener.java new file mode 100644 index 0000000..3d3cbcf --- /dev/null +++ b/eigeneAlgorithmen/GraphAlgo_Dijkstra_Eigener.java @@ -0,0 +1,34 @@ +package eigeneAlgorithmen; + +import java.util.List; +import java.nio.file.*; + +import graph.*; +import algorithmen.*; + +/** + * Beschreibung des Algos + * + * @version 7.1 from 12.02.2025 + * @author Schueler + */ + +public class GraphAlgo_Dijkstra_Eigener extends GraphAlgo { + + Graph gr; + + public String getBezeichnung() { + return "02_Dijkstra_Eigener"; + } + + public void fuehreAlgorithmusAus() throws InterruptedException { + gr = getGraph(); + //# Hier kommt dein Quelltext zum loesen des Graphenproblems hin: + + //# Schreibe Text in das Hilfefenster: + info("Hilfetext"); + + //# Unterbreche die Ausführung: + step(); + } +} \ No newline at end of file diff --git a/eigeneAlgorithmen/package.bluej b/eigeneAlgorithmen/package.bluej index 864787f..76ea15d 100644 --- a/eigeneAlgorithmen/package.bluej +++ b/eigeneAlgorithmen/package.bluej @@ -1,34 +1,34 @@ -#BlueJ package file -objectbench.height=93 -objectbench.width=760 -package.divider.horizontal=0.599476439790576 -package.divider.vertical=0.8 -package.editor.height=393 -package.editor.width=649 -package.editor.x=819 -package.editor.y=382 -package.frame.height=600 -package.frame.width=800 -package.numDependencies=0 -package.numTargets=2 -package.showExtends=true -package.showUses=true -readme.height=60 -readme.name=@README -readme.width=49 -readme.x=10 -readme.y=10 -target1.height=70 -target1.name=GraphAlgo_Dijkstra_Eigener -target1.showInterface=false -target1.type=ClassTarget -target1.width=200 -target1.x=70 -target1.y=10 -target2.height=50 -target2.name=GraphAlgo_Coloring_Schueler -target2.showInterface=false -target2.type=ClassTarget -target2.width=210 -target2.x=10 -target2.y=90 +#BlueJ package file +objectbench.height=66 +objectbench.width=776 +package.divider.horizontal=0.599476439790576 +package.divider.vertical=0.8537074148296593 +package.editor.height=419 +package.editor.width=654 +package.editor.x=565 +package.editor.y=369 +package.frame.height=600 +package.frame.width=800 +package.numDependencies=0 +package.numTargets=2 +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=GraphAlgo_Dijkstra_Eigener +target1.showInterface=false +target1.type=ClassTarget +target1.width=220 +target1.x=140 +target1.y=80 +target2.height=50 +target2.name=GraphAlgo_Coloring_Schueler +target2.showInterface=false +target2.type=ClassTarget +target2.width=220 +target2.x=140 +target2.y=20 diff --git a/graph/package.bluej b/graph/package.bluej index 104fa4d..82e131c 100644 --- a/graph/package.bluej +++ b/graph/package.bluej @@ -1,107 +1,107 @@ -#BlueJ package file -dependency1.from=Graph -dependency1.to=Knoten -dependency1.type=UsesDependency -dependency10.from=GraphOptions -dependency10.to=GraphElement -dependency10.type=UsesDependency -dependency11.from=Hilfe -dependency11.to=GraphPlotter -dependency11.type=UsesDependency -dependency12.from=Kante -dependency12.to=Knoten -dependency12.type=UsesDependency -dependency2.from=Graph -dependency2.to=Kante -dependency2.type=UsesDependency -dependency3.from=GraphElement -dependency3.to=Graph -dependency3.type=UsesDependency -dependency4.from=GraphPlotter -dependency4.to=Graph -dependency4.type=UsesDependency -dependency5.from=GraphPlotter -dependency5.to=GraphOptions -dependency5.type=UsesDependency -dependency6.from=GraphPlotter -dependency6.to=GraphElement -dependency6.type=UsesDependency -dependency7.from=GraphPlotter -dependency7.to=Knoten -dependency7.type=UsesDependency -dependency8.from=GraphPlotter -dependency8.to=Kante -dependency8.type=UsesDependency -dependency9.from=GraphOptions -dependency9.to=Graph -dependency9.type=UsesDependency -objectbench.height=209 -objectbench.width=601 -package.divider.horizontal=0.5996055226824457 -package.divider.vertical=0.6823529411764706 -package.editor.height=457 -package.editor.width=899 -package.editor.x=759 -package.editor.y=196 -package.frame.height=780 -package.frame.width=1050 -package.numDependencies=12 -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=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=true -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=Hilfe +dependency11.to=GraphPlotter +dependency11.type=UsesDependency +dependency12.from=Kante +dependency12.to=Knoten +dependency12.type=UsesDependency +dependency2.from=Graph +dependency2.to=Kante +dependency2.type=UsesDependency +dependency3.from=GraphElement +dependency3.to=Graph +dependency3.type=UsesDependency +dependency4.from=GraphPlotter +dependency4.to=Graph +dependency4.type=UsesDependency +dependency5.from=GraphPlotter +dependency5.to=GraphOptions +dependency5.type=UsesDependency +dependency6.from=GraphPlotter +dependency6.to=GraphElement +dependency6.type=UsesDependency +dependency7.from=GraphPlotter +dependency7.to=Knoten +dependency7.type=UsesDependency +dependency8.from=GraphPlotter +dependency8.to=Kante +dependency8.type=UsesDependency +dependency9.from=GraphOptions +dependency9.to=Graph +dependency9.type=UsesDependency +objectbench.height=66 +objectbench.width=864 +package.divider.horizontal=0.5996055226824457 +package.divider.vertical=0.87215411558669 +package.editor.height=491 +package.editor.width=742 +package.editor.x=560 +package.editor.y=289 +package.frame.height=672 +package.frame.width=888 +package.numDependencies=12 +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=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=true +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=120 +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/images/siedler.png b/images/siedler.png index 0238fd2..9cbe72c 100644 Binary files a/images/siedler.png and b/images/siedler.png differ diff --git a/images/siedlerohnefischer.png b/images/siedlerohnefischer.png index 1c8044a..474eb13 100644 Binary files a/images/siedlerohnefischer.png and b/images/siedlerohnefischer.png differ diff --git a/imp/package.bluej b/imp/package.bluej index b24c5ed..1553a13 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=99 -objectbench.width=451 -package.divider.horizontal=0.599476439790576 -package.divider.vertical=0.788 -package.editor.height=374 -package.editor.width=636 -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=130 -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=100 -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=66 +objectbench.width=776 +package.divider.horizontal=0.599476439790576 +package.divider.vertical=0.8537074148296593 +package.editor.height=419 +package.editor.width=654 +package.editor.x=567 +package.editor.y=331 +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=130 +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=100 +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 addccb5..d35c17a 100644 --- a/package.bluej +++ b/package.bluej @@ -1,63 +1,63 @@ -#BlueJ package file -editor.fx.0.height=739 -editor.fx.0.width=1157 -editor.fx.0.x=161 -editor.fx.0.y=101 -objectbench.height=505 -objectbench.width=580 -package.divider.horizontal=0.599591419816139 -package.divider.vertical=0.2768361581920904 -package.editor.height=189 -package.editor.width=864 -package.editor.x=2119 -package.editor.y=112 -package.frame.height=808 -package.frame.width=1015 -package.numDependencies=0 -package.numTargets=6 -package.showExtends=true -package.showUses=true -project.charset=UTF-8 -project.invoke.thread=FX -readme.height=60 -readme.name=@README -readme.width=49 -readme.x=10 -readme.y=10 -target1.height=62 -target1.name=control -target1.type=PackageTarget -target1.width=80 -target1.x=280 -target1.y=10 -target2.height=62 -target2.name=algorithmen -target2.type=PackageTarget -target2.width=90 -target2.x=280 -target2.y=90 -target3.height=62 -target3.name=eigeneAlgorithmen -target3.type=PackageTarget -target3.width=130 -target3.x=390 -target3.y=90 -target4.height=62 -target4.name=imp -target4.type=PackageTarget -target4.width=80 -target4.x=480 -target4.y=10 -target5.height=62 -target5.name=graph -target5.type=PackageTarget -target5.width=80 -target5.x=380 -target5.y=10 -target6.height=50 -target6.name=GraphenTester -target6.showInterface=false -target6.type=ClassTarget -target6.width=150 -target6.x=80 -target6.y=20 +#BlueJ package file +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 +objectbench.height=80 +objectbench.width=453 +package.divider.horizontal=0.599591419816139 +package.divider.vertical=0.7603305785123967 +package.editor.height=269 +package.editor.width=331 +package.editor.x=72 +package.editor.y=497 +package.frame.height=464 +package.frame.width=477 +package.numDependencies=0 +package.numTargets=6 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +project.invoke.thread=FX +readme.height=60 +readme.name=@README +readme.width=49 +readme.x=10 +readme.y=10 +target1.height=62 +target1.name=control +target1.type=PackageTarget +target1.width=80 +target1.x=20 +target1.y=90 +target2.height=62 +target2.name=algorithmen +target2.type=PackageTarget +target2.width=90 +target2.x=20 +target2.y=170 +target3.height=62 +target3.name=eigeneAlgorithmen +target3.type=PackageTarget +target3.width=130 +target3.x=130 +target3.y=170 +target4.height=62 +target4.name=imp +target4.type=PackageTarget +target4.width=80 +target4.x=220 +target4.y=90 +target5.height=62 +target5.name=graph +target5.type=PackageTarget +target5.width=80 +target5.x=120 +target5.y=90 +target6.height=50 +target6.name=GraphenTester +target6.showInterface=false +target6.type=ClassTarget +target6.width=150 +target6.x=80 +target6.y=20 diff --git a/readme.adoc b/readme.adoc new file mode 100644 index 0000000..849992d --- /dev/null +++ b/readme.adoc @@ -0,0 +1,11 @@ += Material : + +|=== +|Zuordnung| +|Klassenstufe| +|Bildungsplanbezug | +|Werkzeug| +|Autoren| +|=== + +== Inhalt