Benutzer-Werkzeuge

Webseiten-Werkzeuge


javaonline:changelog

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
javaonline:changelog [2022/08/23 09:09] – [2022] Martin Pabstjavaonline:changelog [2023/10/14 13:38] (aktuell) Martin Pabst
Zeile 1: Zeile 1:
-====== Java-Online: Changelog ====== +====== Online-IDE: Changelog ====== 
-===== 2019 ===== +Ich komme mit dem Führen der Liste unten leider nicht immer hinterher. Die aktuellen Änderungen finden Sie tagesaktuell in den Commit-Historys der beiden Projekte: 
-  * **01.08.2019 31.07.2020Entwicklung der Grundfunktionalität** \\ //Meinen 10. Klassen im Schuljahr 2019/2020 möchte ich an dieser Stelle herzlich danken für die vielen Verbesserungsvorschläge und für ihre Geduld beim Arbeiten mit den allerersten oft noch ziemlich fehlerbehafteten Programmversionen!//+  * [[https://github.com/martin-pabst/Online-IDE/commits/master|Commit-history der Online-IDE]] 
 +  * [[https://github.com/martin-pabst/SQL-IDE/commits/master|Commit-history der SQL-IDE]] 
 + 
 +===== 2023 ===== 
 +  * **September 2023** 
 +    * Anfang September 2023 wurden die Server von Online-IDE und SQL-IDE auf den neuen Servercode umgestelltNach kleineren anfänglichen Schwierigkeiten laufen sie jetzt deutlich stabiler und performanter als vor der UmstellungDer Code ist jetzt viel besser lesbar, klarer strukturiert und dank deutlich weniger Abhängigkeiten zu externen Bibliotheken - zukunftssicherer als vorher. 
 +  * **August 2023** 
 +    * Weitere Arbeiten am Prüfungsmodus 
 +    * Umfangreiche Arbeiten am Servercode 
 +  * **Juli 2023** 
 +    * Die SQL-IDE versteht jetzt auch ''enum''-Datentypen. 
 +  * **Juni 2023** 
 +    * Umfangreiche Arbeiten am ServerUmstellung von Kotlin auf Java und von Exposed auf ein eigenes ORM vorbereitet (Umstieg erfolgt in den Sommerferien) 
 +  * **Mai 2023** 
 +    * Neue Methoden Group.getIndexOf(Shape s), Sprite.getImageIndex(), Collections.shuffle(Collection c) 
 +    * Added Sprite import by pressing button (insted drag'n drop) for compatibility with tablets 
 +    * Beim Duplizieren eines Workspace wird jetzt auch das zugehörige Klassendiagramm mit dupliziert. 
 +    * Hauptmenü Ansicht->Enable/disable word wrap hinzugefügt. 
 +    * include fonts.css in includeIDE.js 
 +    * make login page responsive 
 +    * Arbeiten am Modus zur Durchführung von schriftlichen Prüfungen mit der Online-IDE begonnen 
 +    Umfangreiche Bugfixes, v.a. in der SQL-IDE 
 +    SQL-IDE: ''Join'' ... ''on'' ist jetzt möglich. 
 +    *    
 +  * **April 2023** 
 +    * Graphische [[api:documentation:grafik:gui|GUI-Elemente]] ''TextField'', ''CheckBox'', ''Radiobutton'' und ''Button'' 
 +    * [[api:documentation:http:start|Http-Requests]] von der Online-IDE aus sind jetzt möglich 
 +    * [[api:documentation:files:start|Files-API zum lesenden und schreibenden Zugriff auf Dateien im Workspace]]; txt, json und xml-Datendateien können jetzt im Workspace angelegt werden. 
 +    * [[:api:documentation:http:start#aufbereiten_der_json-daten_jsonparser|Json-Parser]] 
 +    * added section "new" in login page 
 +    * set default speed to "max" 
 +    * bugfix: getText yielded wrong value 
 +    * bugfix: cyclic class hierarchy froze compiler 
 +  * **März 2023** 
 +    * Die SQL-IDE beherrscht jetzt ''create view...'' und ''drop view''. Die Struktur der Views wird rechts im Datenbankexplorer mit angezeigt. 
 +    * Die Lernumgebung [[api:documentation:hamster:start|Java Hamster]] ist jetzt in die Online-IDE integriert! 
 +    * Bugfix: constructors which call other constructors must not include automatic call to parameterless super constructor 
 +    * added method ''Shape.isVisible()'' 
 +    * Bugfixes von Fehlern, die durch den Umstieg auf das Build-System vite entstanden sind, vollständig abgeschlossen 
 +    * Make multiple comma seperated attriute declarations possible 
 +    * bugfix: ''int a[], b'' lead to type of b == int[] 
 +    * bugfix: GNGDreieck.positionSetzen didn't work properly 
 +    * bugfix: better error handling if non-abstract method-declaration ends with semincolon 
 +    * bugfix: String.charAt(i) didn't enforce i >= 0 && i < length 
 +    * bugfix: studentlist and class list shown twice under certain circumstances 
 +    * bugfix in projectexplorer: show "Keine Datei vorhanden" if and only if this really is the case. 
 +    * better looking center-alignment of class identifiers in class diagram 
 +    * Implement mouse handler and collidesWith-method for Text objects 
 +    * add ''Text.getText()'' and ''GText.getText()'' 
 +    * fix issue [[https://github.com/martin-pabst/Online-IDE/issues/68|#68]] 
 +    * add parameterless constructors for all child classes of FilledShape 
 +    * added ''union''-Operator in SQL-IDE 
 +    * Die SQL-IDE beherrscht jetzt views (''create view...'', ''drop view'', Anzeige der Struktur von views im Database-Explorer rechts) 
 +  * **Februar 2023** 
 +    * BugFix: implcit type conversion from char to int didnt work with plus-operator 
 +    * Long-Konstanten (z.B. ''123L'') und Datentyp ''short'' hinzugefügt 
 +    * Methode ''SystemTools.getStepCount'' hinzugefügt 
 +    * Bugfix: Files shouldn't be startable if they depend on other files that have errors 
 +    * SQL-IDE: Funktion ''concat'' hinzugefügt 
 +    * Umfangreiche Arbeiten am build-system der Online-IDE und der SQL-IDE: Beide arbeiten jetzt mit [[https://vitejs.dev/|vite]] 
 +    * BugFix: ''GNGTurtle'' ist jetzt Unterklasse von ''Object'' und damit als generischer Parameter von ''ArrayList'' verwendbar. 
 +    * BugFix: nested generic Types weren't parsed properly 
 +    * Umfangreiche Arbeiten an der GNG-Grafikbibliothek: Das Verhalten der Objekte beim Verschieben, Drehen, ... entspricht jetzt noch besser dem Original. 
 +    * create school database for Online-IDE 
 +    * Mehrere Bugfixes betreffend den Datentyp ''char'' (Operatoren, Casting von/nach ''int'', ...) 
 +    * Die Lernumgebung [[api:documentation:kara:start|Java Kara]] ist jetzt in die Online-IDE integriert! 
 +    * BugFix: import spritesheets dynamically in order to have version-number in dist-filename 
 +    * SQL-IDE: embedded-Version with iframe works now => including SQL-IDE inside [[https://mebis.bayern.de|Mebis]] or Moodle is now possible, see [[https://www.embed.learn-sql.de/createwrapper.html|this page]] 
 +    * SQL-IDE Bugfix: client hung if current workspace was folder 
 +  * **Januar 2023** 
 +    * Portierung auf die neue Typescript-Version 
 +    * Bugfix: Processing now works with and without createCanvas-statement inside setup function 
 +    * Added method String.valueOf 
 +    * SQL-IDE bugfix: Compiler shouldn't accept varchar without length parameter 
 +    * SQL-IDE: Added shutdown server menu entry for admin 
 +===== 2022 ===== 
 +  * ** Dezember 2022** 
 +    * Suppress contextmenu when clicking on trash bin 
 +    * Umfangreiche Arbeiten und bugfixes am Object tree in der debug-Ansicht. 
 +    * SQL-IDE bugfixes: bugfixes: Right click in Explorer; pagination color 
 +  * **November 2022** 
 +    * bugfix: division assignment didn't respect integer division 
 +    * Processing: set default canvas resolution to 800x600 
 +    * implement final classes and make final fields assignable inside constructor 
 +    * overriding final or private methods is now forbidden; variant ''int a[]'' is now recognized (before: only variant ''int[] a''
 +    * fix issues [[https://github.com/martin-pabst/Online-IDE/issues/60|#60]], [[https://github.com/martin-pabst/Online-IDE/issues/61|#61]] und [[https://github.com/martin-pabst/Online-IDE/issues/64|#64]] 
 +    * SQL-IDE: on startup expand all folders containing current workspace; better looking folderlines 
 +    * SQL-IDE: add max and min functions for date, time, datetime and timestamp-values 
 +    * SQL-IDE: Multiple instances of embedded sql-ide are now better separated if they have distinct ids 
 +    * SQL-IDE bugfix: embedded version didn't show runtime errors inside dokuwiki 
 +    * SQL-IDE: when distributing workspace: distribute it with database and ddl-statements 
 +    * SQL-IDE: Added "Change password" user menu-entry 
 +  * **Oktober 2022** 
 +    * Der Compiler meldet jetzt einen Fehler wenn zwei Klassen denselben Bezeichner besitzen. 
 +    * SQL-IDE: show errors tab if runtime errors occur 
 +    * SQL-IDE: escape identifiers when importing database 
 +    * SQL-IDE: on import replace binary and varbinary types by varchar 
 +    * SQL-IDE: embedded version: put sliders under database reset menu 
 +    * SQL-IDE: new syntax: insert into <table><columns> select ... 
 +  * **September 2022** 
 +    * Auch in der Embedded-IDE können jetzt eigene Grafiken als Sprites eingebunden werden. 
 +    * ''Rectangle.moveTo'' und ''Text.moveTo'' verschieben jetzt so, dass sich der **Diagonalenschnittpunkt** des Rechtecks an den neuen Koordinaten befindet (vorher: linke obere Ecke). 
 +    * BugFix: ''GNGTurtle.GrößeSetzen'' geht jetzt. 
 +    * BugFix: Etwas dunklere Schriftfarbe im Light-Theme 
 +    * SQL-IDE: accept time constants beginning with 00: 
 +    * SQL-IDE: Added data type ''time'' 
 +    * SQL-IDE: upper case keyword hints 
 +    * SQL-IDE: on import translate ''char'' to ''varchar(1)'' 
 +    * SQL-IDE: enabled foreign key constraint enforcement 
 +    * SQL-IDE bugfix: path of files that had bin dragged into folders hadn't been transferred to server 
 +    * SQL-IDE: added operators not, <=, >= 
 +    * SQL-IDE bugfix: terms with unary and binary operators lacked resulttype 
 +    * SQL-IDE: make active statement highlighting half transparent so that current selection is visible underneath 
 +    * SQL-IDE: bugfix: alter table add constraint only evaluated first constraint 
 +    * SQL-IDE bugfix: group by <columnIdentifier> at end of file lead to false error (expecting comma) 
 +  * **August 2022** 
 +    * Schüler/innen können jetzt eigene Gafikdateien hochladen und in ihren Programmen als Sprites nutzen. 
 +  * **Juli 2022** 
 +    * SQL-IDE bugfix: SymbolResolver didn't recognize aggregating function sum 
 +    * SQL-IDE bugfix: parser doesn't recognize keyword distinct 
 +    * SQL-IDE bugfix: mysql syntax for auto_increment start value not recognized 
 +    * SQL-IDE bugfix: SymbolTable couldn't handle two identical uppercase identifiers 
 +  * **Juni 2022** 
 +    * Das Christoph-Scheiner-Gymnasium Ingolstadt ist mit der Online-IDE [[https://www.bildungspakt-bayern.de/isi-preistraeger-2022-gy-ingolstadt/|erster Preisträger beim Wettbewerb ISI Digital]] der Stiftung Bildungspakt Bayern.   
 +  * **Mai 2022** 
 +    * Die [[https://www.sql-ide.de|SQL-IDE]] ist in einer ersten Alpha-Version verfügbar. Wie bei der Online-IDE gibt es [[https://github.com/martin-pabst/SQL-IDE|eine als Open Source veröffentlichte embedded-Variante]] und eine vollständige IDE. Letztere besitzt die selben Login-Daten wie die Online-IDE und steht allen Nutzern mit Zugang zur Online-IDE als "Dreingabe" zur Verfügung. 
 +  * **April 2022** 
 +    * [[api:documentation:robot:start|Die Klassen Robot und RobotWorld]] sind in einer ersten Version fertiggestellt. (Portierung von Robot Karol in die Online-IDE) 
 +  * **März 2022:** 
 +    * Umfangreiche Arbeiten an der SQL-IDE 
 +    * ''Shape.setDefaultVisibility'', ''FilledShape.setDefaultFillColor'', ''FilledShape.setDefaultBorder'' zum Setzen, von Default-Eigenschaften, die nachfolgend beim Instanzieren jedes weiteren grafischen Objekts verwendet werden. 
 +    * ''<script>''-Elemente in der Embedded-IDE können jetzt Ihren Inhalt nachladen (src-Attribut!). 
 +    * Methode ''SystemTools.pause(int milliseconds)'' zum Pausieren des Programms 
 +    * Methode ''Text.setStyle(bold: boolean, italic: boolean)'' 
 +  * **Februar 2022:** 
 +    * Klassen können jetzt deaktiviert/aktiviert werden, um nach einer Prüfung den Login der Schüler/innen temporär zu sperren. 
 +    * Neue Methoden ''Shape.collidesWithAnyShape()'', ''Turtle.clear()'' und ''SystemTools.pause(int durationInMs)'' 
 +    * Workspaces kommen jetzt sofort nach dem Austeilen bei den Schüler/innen an. Es ist kein Ein- und Ausloggen mehr nötig. 
 +  * **Januar 2022:**  
 +    * Bugfixes, v.a. bei der Workspace-Ordneransicht und den Graphics'n Games-Klassen 
 +    * Jeder Klasse kann jetzt eine Zweitlehrkraft zugeordnet werden. 
 +    * Workspaces können jetzt via Codes auch für einzelne Benutzer (z.B. andere Lehrkräfte) freigegeben werden. 
 +    * Umfangreiche Arbeiten an der SQL-IDE.  
 +===== 2021 ===== 
 +  * **08.01.2021** 
 +    * Die Netzwerkfunktionalität ist bis zu einem ersten funktionsfähigen Stand entwickelt und auch schon recht weitgehend getestet. Clientseitig wird sie durch die Klassen ''WebSocket'' und ''WebSocketClient'' repräsentiert. 
 +    * Die Repository-Funktionalität ist grob getestet, alle bisher bekannten Bug sind gefixt 
 +    * Viele weitere Bugfixes 
 +  * **26.01.2021** 
 +    * Ein großer Teil der [[https://processing.org|Processing-Bibliothek]] (genauer: [[https://p5js.org/|p5.js]]) ist jetzt integriert. Alles steht hübsch gekapselt in der Klasse ''PApplet'' zur Verfügung. Hier finden Sie [[api:documentation:processing:start|Anleitung zum Programmieren mit Beispielen.]] 
 +    * Das **Klassendiagramm** wurde überarbeitet und erweitert: 
 +      * Beim Klick auf die Bezeichner der Klassen, Methoden und Attribute innerhalb der Klassenkästen zeigt der Editor jeweils die Stelle der Deklaration. 
 +      * Defaultmäßig werden ab jetzt nur die selbst programmierten Klassen angezeigt. Per Klick auf den Menübutton links oben (drei horizontale Linien) sind aber auch die Systemklassen einblendbar. 
 +      * Alle Klassen werden initial minimiert (ohne Attribute und Methoden) dargestellt. 
 +      * Per Mausklick auf den Hintergrund des Diagramms lässt sich die Diagrammfläche scrollen (Panning). 
 +    * Der Parser verarbeitet jetzt auch JavaDoc-Kommentare direkt vor der Definition einer Klasse/Methode/eines Attributes, so dass sie beim Hovering über einem Typen/einem Methodenbezeichner/einem Attributbezeichner mit angezeigt werden.   
 +  * **01.02.2021** 
 +    * Mehrere Bugfixes bei der Verwaltung von Repositories, insbesondere beim Übertragen der Eigentümerschaft von einem Nutzer auf einen anderen. 
 +    * Beim Anlegen neuer Nutzer wurde es ab dem 6. Benutzer unerträglich langsam (40 s pro neuem Nutzer...). Schuld war ein Problem des Zufallszahlengenerators in Linux. 
 +  * **09.02.2021** 
 +    * Beim Anlegen von Benutzern ist jetzt der Import von Schülerdaten aus Tabellen (z.B. von Excel her) möglich. 
 +  * **17.04.2021** 
 +    * Der Compiler kennt jetzt auch bitweise Operatoren (''&'', ''|'', ''^'', ''~'', ''>>'', ''<<'', ''>>>'' und die entsprechenden Zuweisungsoperatoren ''&='', ''|='' usw.). \\ **@Ralf Rachinger:** Danke für den Pull-Request! 
 +    * Bessere Kollisionserkennung bei ''FilledShape''-Unterklassen 
 +  * **07.05.2021** 
 +    * Zwei neue Grafikklassen: Arc (Kreisbogen, ggf. auch gefüllt) und Sector (Kreissektor) 
 +    * Mehrere Anzeigeprobleme bei Safari und Firefox wurden behoben 
 +    * Bessere Unterstützung für Touch Devices (z.B. iPad) 
 +  * **12.05.2021** 
 +    * Bessere Unterstützung von Texturen: Group.renderAsStaticBitmap, new Sprite(shape), new Polygon(shape). Die Klasse Bitmap ist jetzt doppelt so schnell und verbraucht viel weniger Speicher 
 +    * Umstellung der Tabellen auf der Admin-Seite von selectType "cell" zu "row" 
 +    * Color.fromHSL und Color.fromHSLA 
 +  * **22.05.2021** 
 +    * Integration der Bibliothek "Graphics and Games" 
 +    * Klasse ''Random'' mit Methoden ''nextInt'', ''randInt'' und ''randDouble'' 
 +  * **11.06.2021** 
 +    * In der Liste der Wokspaces können jetzt **Ordner** angelegt werden. Sowohl Workspaces als auch Dateien können dupliziert, kopiert und verschoben werden 
 +    * Viele **neue Sprites** 
 +    * Mit ''Shape.setActive(false)'' kann bewirkt werden, dass graphische Objekte von Transformationen der Welt (World.move, World.rotate, World.scale) ausgenommen werden. Damit lässt sich z.B. eine Punkteanzeige verwirklichen, die nicht mit dem Hintergrund mitscrollt 
 +    * ''Shape.moveBackFrom(otherShape, keepColliding)'' macht den letzten Aufruf von Shape.move teilweise rückgängig, so dass sich die Shapes gerade nicht mehr bzw. gerade noch berühren. 
 +    * ''Shape.directionRelativeTo(otherShape)'' liefert die grobe Richtung (rechts/links/oben/unten), in der das andere Shape liegt. 
 +    * In der Klasse ''MathTools'' werden ab sofort alle mathematischen Hilfsfunktionen gesammelt, die nicht Teil der Java-Standardklasse Math sind. Den Anfang machen einige Funktionen zur Bestimmung von Schnittpunkten von 2D-Figuren (Kreis, Polygon, ...) 
 +    * Die Methode ''collidesWith'' näherte bisher alle Figuren (auch Kreise) als Polygone an. Neu: Die Kollision zweier Kreise miteinander wird jetzt exakt berechnet. 
 +  * **14.06.2021** 
 +    * Alle Unterklassen von Actor (und damit auch die Unterklassen aller graphischen Objekte) besitzen jetzt Methoden zur Abfrage von Gamepads: 
 +      * ''isGamepadConnected(int gamepadIndex)'' gibt true zurück, wenn das Gamepad mit dem angegebenen Index eingesteckt ist (Erstes Gamepad: gamepadIndex == 0) 
 +      * ''isGamepadButtonDown(int gamepadIndex, int buttonIndex)'' gibt true zurück, wenn der Button mit dem angegebenen Index gerade heruntergedrückt ist 
 +      * ''getGamepadAxis(int gamepadIndex, int axisIndex)'' gibt den Wert der Steuerknüppel-Achse mit dem Index axisIndex zurück. Der Wert ist eine Zahl aus [-1; 1], wobei 0 der Mittelstellung entspricht. 
 +  * **21.06.21** 
 +    * Komplettüberarbeitung der Welt-Transformationen (World.move, World.scale, World.rotate). Die Umsetzung ist jetzt klarer und wesentlich performanter. 
 +    * Die Methode Sprite.makeTiling(double width, double height) macht aus einem Sprite eine "Kachelwand" mit lauter identischen, aneinandergereihten Bildern. Mittels Sprite.getTileImage bekommt man ein Objekt, mithilfe dessen man die Kachelbilder verschieben/strecken kann. Dies wirkt sich gleichzeitig auf alle Kacheln aus, so dass sich damit ein zyklischer Scroll-Effekt erzielen lässt. 
 +  * **25.06.2021** 
 +    * Verbesserung der GUI der Workspaceliste; Button "Alle Ordner zuklappen"  
 +  * **Juli/August 2021** 
 +    * Erweiterung der Server-Komponente um eine Caching-Schicht => deutlich bessere Performance beim Abarbeiten der Requests 
 +    * Programmierung eines Portal-Servers, der die Startseite anzeigt, die Login-Daten der Benutzer entgegennimmt und dann zu einem von mehreren Backend-Servern weiterleitet => Ab jetzt echte Verteilung der Last auf mehrere Server möglich 
 +    * SQL-IDE: 
 +      * Einlesen der Datenbankstruktur von SQLite 
 +      * Lexer, Type-System (aufbauend auf der eingelesenen Datenbankstruktur), Parser, Symbol-Resolver für einen Kern-Teil der SQL-Syntax 
 +      * Editor: Syntax-Highlighting, Anzeige der Fehler, Code-Vervollständigung 
 +  * **September/Oktober 2021** 
 +    * Einfärben der Klammern im Quelltext: Zusammengehörige Klammern bekommen die selbe Farbe. 
 +    * Nach dem Einloggen erscheinen die Ordner in der Workspace-Liste jetzt initial zugeklappt (bis auf die Ordner, die den zuletzt geöffneten Workspace enthalten).  
 +    * Methode ''System.exit'' hinzugefügt 
 +    * Beseitigung zweier Fehler beim Umbenennen von Bezeichnern (F2, Refactor->Rename): Das Umbenennen geht jetzt auch, wenn der Cursor am rechten Rand des Bezeichners steht. Beim Versuch, Schlüsselwörter o.ä. umzubenennen, wird jetzt eine Fehlermeldung ausgegeben.  
 +    * Bei der Codevervollständigung einer Farbkonstante (z.B. ''Color.red'', ''0xff1b2a'', ''"rgb(100, 120, 40)"'', ''"#0a3b18"'' oder ''new Color(100, 250, 100)'') wird ein kleines Quadrat mit der betreffenden Farbe angezeigt. Fährt man mit der Maus auf die Farbkonstante und lässt sie etwas stehen, so öffnet sich ein Colorpicker, mit dem sich die Farbkonstante verändern lässt.
 ===== 2020 ===== ===== 2020 =====
   * **01.08.2020 - 01.09.2020**   * **01.08.2020 - 01.09.2020**
Zeile 75: Zeile 280:
     * Mittels der Navigationsbuttons des Browsers oder durch <Alt> + Pfeil links bzw. <Alt> + Pfeil lässt sich jetzt in der Historie der Bearbeitungsstellen zurück- und vorwärts springen     * Mittels der Navigationsbuttons des Browsers oder durch <Alt> + Pfeil links bzw. <Alt> + Pfeil lässt sich jetzt in der Historie der Bearbeitungsstellen zurück- und vorwärts springen
     * Tippt der Benutzer "class" und gibt es in der Datei noch keine Klasse, so schlägt der Computer vor: "class <Dateiname> { }"     * Tippt der Benutzer "class" und gibt es in der Datei noch keine Klasse, so schlägt der Computer vor: "class <Dateiname> { }"
-===== 2021 ===== +===== 2019 ===== 
-  * **08.01.2021** +  * **01.08.2019 31.07.2020Entwicklung der Grundfunktionalität** \\ //Meinen 10. Klassen im Schuljahr 2019/2020 möchte ich an dieser Stelle herzlich danken für die vielen Verbesserungsvorschläge und für ihre Geduld beim Arbeiten mit den allerersten oft noch ziemlich fehlerbehafteten Programmversionen!//
-    * Die Netzwerkfunktionalität ist bis zu einem ersten funktionsfähigen Stand entwickelt und auch schon recht weitgehend getestetClientseitig wird sie durch die Klassen ''WebSocket'' und ''WebSocketClient'' repräsentiert. +
-    * Die Repository-Funktionalität ist grob getestet, alle bisher bekannten Bug sind gefixt +
-    * Viele weitere Bugfixes +
-  * **26.01.2021** +
-    * Ein großer Teil der [[https://processing.org|Processing-Bibliothek]] (genauer: [[https://p5js.org/|p5.js]]) ist jetzt integriert. Alles steht hübsch gekapselt in der Klasse ''PApplet'' zur Verfügung. Hier finden Sie [[api:documentation:processing:start|Anleitung zum Programmieren mit Beispielen.]] +
-    Das **Klassendiagramm** wurde überarbeitet und erweitert: +
-      * Beim Klick auf die Bezeichner der Klassen, Methoden und Attribute innerhalb der Klassenkästen zeigt der Editor jeweils die Stelle der Deklaration. +
-      * Defaultmäßig werden ab jetzt nur die selbst programmierten Klassen angezeigt. Per Klick auf den Menübutton links oben (drei horizontale Linien) sind aber auch die Systemklassen einblendbar. +
-      * Alle Klassen werden initial minimiert (ohne Attribute und Methoden) dargestellt. +
-      * Per Mausklick auf den Hintergrund des Diagramms lässt sich die Diagrammfläche scrollen (Panning). +
-    * Der Parser verarbeitet jetzt auch JavaDoc-Kommentare direkt vor der Definition einer Klasse/Methode/eines Attributes, so dass sie beim Hovering über einem Typen/einem Methodenbezeichner/einem Attributbezeichner mit angezeigt werden.   +
-  * **01.02.2021** +
-    * Mehrere Bugfixes bei der Verwaltung von Repositories, insbesondere beim Übertragen der Eigentümerschaft von einem Nutzer auf einen anderen. +
-    * Beim Anlegen neuer Nutzer wurde es ab dem 6. Benutzer unerträglich langsam (40 s pro neuem Nutzer...). Schuld war ein Problem des Zufallszahlengenerators in Linux. +
-  * **09.02.2021** +
-    * Beim Anlegen von Benutzern ist jetzt der Import von Schülerdaten aus Tabellen (z.B. von Excel her) möglich. +
-  * **17.04.2021** +
-    * Der Compiler kennt jetzt auch bitweise Operatoren (''&'', ''|'', ''^'', ''~'', ''>>'', ''<<'', ''>>>'' und die entsprechenden Zuweisungsoperatoren ''&='', ''|='' usw.). \\ **@Ralf Rachinger:** Danke für den Pull-Request! +
-    * Bessere Kollisionserkennung bei ''FilledShape''-Unterklassen +
-  * **07.05.2021** +
-    * Zwei neue Grafikklassen: Arc (Kreisbogen, ggf. auch gefüllt) und Sector (Kreissektor) +
-    * Mehrere Anzeigeprobleme bei Safari und Firefox wurden behoben +
-    * Bessere Unterstützung für Touch Devices (z.B. iPad) +
-  * **12.05.2021** +
-    * Bessere Unterstützung von Texturen: Group.renderAsStaticBitmap, new Sprite(shape), new Polygon(shape). Die Klasse Bitmap ist jetzt doppelt so schnell und verbraucht viel weniger Speicher +
-    * Umstellung der Tabellen auf der Admin-Seite von selectType "cell" zu "row" +
-    * Color.fromHSL und Color.fromHSLA +
-  * **22.05.2021** +
-    * Integration der Bibliothek "Graphics and Games" +
-    * Klasse ''Random'' mit Methoden ''nextInt'', ''randInt'' und ''randDouble'' +
-  * **11.06.2021** +
-    * In der Liste der Wokspaces können jetzt **Ordner** angelegt werden. Sowohl Workspaces als auch Dateien können dupliziert, kopiert und verschoben werden +
-    * Viele **neue Sprites** +
-    * Mit ''Shape.setActive(false)'' kann bewirkt werden, dass graphische Objekte von Transformationen der Welt (World.move, World.rotate, World.scale) ausgenommen werden. Damit lässt sich z.B. eine Punkteanzeige verwirklichen, die nicht mit dem Hintergrund mitscrollt +
-    * ''Shape.moveBackFrom(otherShape, keepColliding)'' macht den letzten Aufruf von Shape.move teilweise rückgängig, so dass sich die Shapes gerade nicht mehr bzw. gerade noch berühren. +
-    * ''Shape.directionRelativeTo(otherShape)'' liefert die grobe Richtung (rechts/links/oben/unten), in der das andere Shape liegt. +
-    * In der Klasse ''MathTools'' werden ab sofort alle mathematischen Hilfsfunktionen gesammelt, die nicht Teil der Java-Standardklasse Math sind. Den Anfang machen einige Funktionen zur Bestimmung von Schnittpunkten von 2D-Figuren (Kreis, Polygon, ...) +
-    * Die Methode ''collidesWith'' näherte bisher alle Figuren (auch Kreise) als Polygone an. Neu: Die Kollision zweier Kreise miteinander wird jetzt exakt berechnet. +
-  * **14.06.2021** +
-    * Alle Unterklassen von Actor (und damit auch die Unterklassen aller graphischen Objekte) besitzen jetzt Methoden zur Abfrage von Gamepads: +
-      * ''isGamepadConnected(int gamepadIndex)'' gibt true zurück, wenn das Gamepad mit dem angegebenen Index eingesteckt ist (Erstes Gamepad: gamepadIndex == 0) +
-      * ''isGamepadButtonDown(int gamepadIndex, int buttonIndex)'' gibt true zurück, wenn der Button mit dem angegebenen Index gerade heruntergedrückt ist +
-      * ''getGamepadAxis(int gamepadIndex, int axisIndex)'' gibt den Wert der Steuerknüppel-Achse mit dem Index axisIndex zurück. Der Wert ist eine Zahl aus [-1; 1], wobei 0 der Mittelstellung entspricht. +
-  * **21.06.21** +
-    * Komplettüberarbeitung der Welt-Transformationen (World.move, World.scale, World.rotate). Die Umsetzung ist jetzt klarer und wesentlich performanter. +
-    * Die Methode Sprite.makeTiling(double width, double height) macht aus einem Sprite eine "Kachelwand" mit lauter identischen, aneinandergereihten Bildern. Mittels Sprite.getTileImage bekommt man ein Objekt, mithilfe dessen man die Kachelbilder verschieben/strecken kann. Dies wirkt sich gleichzeitig auf alle Kacheln aus, so dass sich damit ein zyklischer Scroll-Effekt erzielen lässt. +
-  * **25.06.2021** +
-    * Verbesserung der GUI der Workspaceliste; Button "Alle Ordner zuklappen"  +
-  * **Juli/August 2021** +
-    * Erweiterung der Server-Komponente um eine Caching-Schicht => deutlich bessere Performance beim Abarbeiten der Requests +
-    * Programmierung eines Portal-Servers, der die Startseite anzeigt, die Login-Daten der Benutzer entgegennimmt und dann zu einem von mehreren Backend-Servern weiterleitet => Ab jetzt echte Verteilung der Last auf mehrere Server möglich +
-    * SQL-IDE: +
-      * Einlesen der Datenbankstruktur von SQLite +
-      * Lexer, Type-System (aufbauend auf der eingelesenen Datenbankstruktur), Parser, Symbol-Resolver für einen Kern-Teil der SQL-Syntax +
-      * Editor: Syntax-Highlighting, Anzeige der Fehler, Code-Vervollständigung +
-  * **September/Oktober 2021** +
-    * Einfärben der Klammern im Quelltext: Zusammengehörige Klammern bekommen die selbe Farbe. +
-    * Nach dem Einloggen erscheinen die Ordner in der Workspace-Liste jetzt initial zugeklappt (bis auf die Ordner, die den zuletzt geöffneten Workspace enthalten).  +
-    * Methode ''System.exit'' hinzugefügt +
-    * Beseitigung zweier Fehler beim Umbenennen von Bezeichnern (F2, Refactor->Rename): Das Umbenennen geht jetzt auch, wenn der Cursor am rechten Rand des Bezeichners steht. Beim Versuch, Schlüsselwörter o.ä. umzubenennen, wird jetzt eine Fehlermeldung ausgegeben.  +
-    * Bei der Codevervollständigung einer Farbkonstante (z.B. ''Color.red'', ''0xff1b2a'', ''"rgb(100, 120, 40)"'', ''"#0a3b18"'' oder ''new Color(100, 250, 100)'') wird ein kleines Quadrat mit der betreffenden Farbe angezeigt. Fährt man mit der Maus auf die Farbkonstante und lässt sie etwas stehen, so öffnet sich ein Colorpicker, mit dem sich die Farbkonstante verändern lässt. +
-===== 2022 ===== +
-  * **Januar 2022:**  +
-    * Bugfixes, v.a. bei der Workspace-Ordneransicht und den Graphics'n Games-Klassen +
-    * Jeder Klasse kann jetzt eine Zweitlehrkraft zugeordnet werden. +
-    * Workspaces können jetzt via Codes auch für einzelne Benutzer (z.B. andere Lehrkräfte) freigegeben werden. +
-    * Umfangreiche Arbeiten an der SQL-IDE.  +
-  * **Februar 2022:** +
-    * Klassen können jetzt deaktiviert/aktiviert werden, um nach einer Prüfung den Login der Schüler/innen temporär zu sperren. +
-    * Neue Methoden ''Shape.collidesWithAnyShape()'', ''Turtle.clear()'' und ''SystemTools.pause(int durationInMs)'' +
-    * Workspaces kommen jetzt sofort nach dem Austeilen bei den Schüler/innen an. Es ist kein Ein- und Ausloggen mehr nötig. +
-  * **März 2022:** +
-    * Umfangreiche Arbeiten an der SQL-IDE +
-    * ''Shape.setDefaultVisibility'', ''FilledShape.setDefaultFillColor'', ''FilledShape.setDefaultBorder'' zum Setzen, von Default-Eigenschaften, die nachfolgend beim Instanzieren jedes weiteren grafischen Objekts verwendet werden. +
-    * ''<script>''-Elemente in der Embedded-IDE können jetzt Ihren Inhalt nachladen (src-Attribut!). +
-    * Methode ''SystemTools.pause(int milliseconds)'' zum Pausieren des Programms +
-    * Methode ''Text.setStyle(bold: boolean, italic: boolean)'' +
-  * **April 2022** +
-    * [[api:documentation:robot:start|Die Klassen Robot und RobotWorld]] sind in einer ersten Version fertiggestellt. (Portierung von Robot Karol in die Online-IDE) +
-  * **Mai 2022** +
-    * Die [[https://www.sql-ide.de|SQL-IDE]] ist in einer ersten Alpha-Version verfügbar. Wie bei der Online-IDE gibt es [[https://github.com/martin-pabst/SQL-IDE|eine als Open Source veröffentlichte embedded-Variante]] und eine vollständige IDE. Letztere besitzt die selben Login-Daten wie die Online-IDE und steht allen Nutzern mit Zugang zur Online-IDE als "Dreingabe" zur Verfügung. +
-  * **Juni 2022** +
-    * Das Christoph-Scheiner-Gymnasium Ingolstadt ist mit der Online-IDE [[https://www.bildungspakt-bayern.de/isi-preistraeger-2022-gy-ingolstadt/|erster Preisträger beim Wettbewerb ISI Digital]] der Stiftung Bildungspakt Bayern.   +
-  * **August 2022** +
-    * Schüler/innen können jetzt eigene Gafikdateien hochladen und in ihren Programmen als Sprites nutzen. +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
  
javaonline/changelog.1661238573.txt.gz · Zuletzt geändert: 2022/08/23 09:09 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki