Skip to content

Commit

Permalink
Merge pull request #36 from thomas40510/dev
Browse files Browse the repository at this point in the history
vbeta1
  • Loading branch information
thomas40510 authored Dec 6, 2023
2 parents a578e04 + 5db58d9 commit f82cc8d
Show file tree
Hide file tree
Showing 192 changed files with 24,032 additions and 1,347 deletions.
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,11 @@ Network Trash Folder
Temporary Items
.apdisk


.idea/inspectionProfiles/

src/main/resources/test.xml

src/main/resources/output.kml

src/main/out/
9 changes: 9 additions & 0 deletions .idea/markdown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 54 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
Convertisseur Unifié en JAVA pour les SiTaC (CUJaS)

# Objectifs
Ce programme, développé en Java afin d'en faire un exécutable unique fonctionnel hors-ligne, vise à unifier et améliorer les convertisseurs de SiTac au format `kml` pour les vols d'entraînement.
Il doit à ce titre, être :
- simple d'utilisation ;
- robuste ;
- exécutable tout seul, hors-ligne sur un poste Windows ;
- simple à étendre, améliorer, et debugger.

# Implémentation
À ces fins, le convertisseur unifié repose sur une architecture en "couches", permettant de séparer le langage de SiTac de l'implémentation des objets, offrant une très large souplesse dans le changement éventuel de syntaxe pour le fichier en entrée sans incidence sur la qualité du fichier `kml` en sortie.

```mermaid
stateDiagram-v2
direction LR
nodes: Nodes XML
objects: Figures
kmlobj: Fragments kml
kml: Code kml
file: Fichier kml
[*] --> nodes : Fichier SiTac
Semantics --> XMLParser : syntaxe
state XMLParser {
nodes --> objects
objects --> kmlobj
}
state KMLBuilder {
kmlobj --> kml
}
kml --> file
file --> [*]
note right of XMLParser
Monde du langage (syntaxe-dépendant)
end note
note left of KMLBuilder
Monde des objets (implémentation-dépendant)
end note
```


# Utilisation
Simplement lancer l'outil, et se laisser guider dans l'interface. Pour info, il faut :
1. Sélectionner un fichier d'entrée
2. Sélectionner le langage du fichier d'entrée
3. Sélectionner le dossier de sortie pour le fichier `kml`
4. Éventuellement, choisir un fichier de styles `kml` personnalisés (si on souhaite d'autres styles pour les objets que ceux par défaut)
5. Lancer la conversion.

Toute erreur de traitement / conversion sera notifiée dans la console de l'outil (généralement, c'est une erreur de fichier d'entrée, ou de sélection du langage).
Les objets reconnus dans la SiTac mais non encore implémentés sont également consignés dans la console pour information.
26 changes: 25 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
plugins {
id 'java'
id 'application'
id 'io.github.file5.guidesigner' version '1.0.2'

}

group = 'com.apogee.dev'
version = '1.0-SNAPSHOT'
version = '1.1-beta'

repositories {
mavenCentral()
}

application {
mainClass = 'com.apogee.dev.CUJaS.Main'
}

dependencies {
implementation 'org.jetbrains:annotations:24.0.0'
implementation 'org.apache.logging.log4j:log4j-api:2.21.1'
implementation 'org.apache.logging.log4j:log4j-core:2.21.1'
implementation 'org.fusesource.jansi:jansi:2.3.2'
implementation 'com.intellij:forms_rt:7.0.3'
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation 'org.junit.jupiter:junit-jupiter'
}
Expand All @@ -20,6 +31,19 @@ run {
mainClassName = 'com.apogee.dev.CUJaS.Main'
}

mainClassName = 'com.apogee.dev.CUJaS.Main'

jar {
manifest {
attributes 'Main-Class': "$mainClassName"
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}


test {
useJUnitPlatform()
}
186 changes: 186 additions & 0 deletions docs/allclasses-index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
<!DOCTYPE HTML>
<html lang="fr">
<head>
<!-- Generated by javadoc (17) on Wed Nov 29 12:24:20 CET 2023 -->
<title>All Classes and Interfaces</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2023-11-29">
<meta name="description" content="class index">
<meta name="generator" content="javadoc/AllClassesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-classes-index-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li><a href="index-files/index-1.html">Index</a></li>
<li><a href="help-doc.html#all-classes">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1>
</div>
<div id="all-classes-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab1', 2)" class="table-tab">Interfaces</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Classes</button><button id="all-classes-table-tab3" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab3', 2)" class="table-tab">Enum Classes</button><button id="all-classes-table-tab4" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab4', 2)" class="table-tab">Record Classes</button></div>
<div id="all-classes-table.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/UI/utils/ANSIColorConstants.html" title="class in com.apogee.dev.CUJaS.UI.utils">ANSIColorConstants</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">A set of descriptions for specific color constants within the ANSI
standard.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Bullseye.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Bullseye</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation du Bullseye</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Circle.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Circle</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation du Cercle.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/UI/ColoredTextPane.html" title="class in com.apogee.dev.CUJaS.UI">ColoredTextPane</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">A <code>JTextPane</code> that supports ANSI colors.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Corridor.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Corridor</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation du Couloir.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/UI/CUJaS_UI.html" title="class in com.apogee.dev.CUJaS.UI">CUJaS_UI</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">UI de l'outil CUJaS</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab3"><a href="com/apogee/dev/CUJaS/UI/CUJaS_UI.Lang.html" title="enum class in com.apogee.dev.CUJaS.UI">CUJaS_UI.Lang</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab3">
<div class="block">Langage de la SITAC</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Ellipse.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Ellipse</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation de l'Ellipse.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Figure.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Figure</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Classe abstraite pour les figures géométriques d'une SITAC, et méthodes utilitaires associées.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/utils/GeomUtils.html" title="class in com.apogee.dev.CUJaS.SITACObjects.utils">GeomUtils</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Méthodes utilitaires pour la géométrie</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/UI/utils/GUIConstants.html" title="class in com.apogee.dev.CUJaS.UI.utils">GUIConstants</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">A set of descriptions for specific GUI constants within a JTalker
application.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="com/apogee/dev/CUJaS/Core/KMLExporter.html" title="class in com.apogee.dev.CUJaS.Core">KMLExporter</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">
<div class="block">Exportation des figures vers un fichier KML.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="com/apogee/dev/CUJaS/SITACObjects/KMLObject.html" title="interface in com.apogee.dev.CUJaS.SITACObjects">KMLObject</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab1">Deprecated.</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/utils/KMLUtils.html" title="class in com.apogee.dev.CUJaS.SITACObjects.utils">KMLUtils</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Méthodes utilitaires pour l'écriture d'un fichier KML.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Line.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Line</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation de la <code>Line</code></div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/Main.html" title="class in com.apogee.dev.CUJaS">Main</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">&nbsp;</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab3"><a href="com/apogee/dev/CUJaS/Core/Melissa/MelissaKey.html" title="enum class in com.apogee.dev.CUJaS.Core.Melissa">MelissaKey</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab3">
<div class="block">Implémentation des clés génériques <a href="com/apogee/dev/CUJaS/Core/XKey.html" title="interface in com.apogee.dev.CUJaS.Core"><code>XKey</code></a> pour les éléments sémantiques Melissa.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/Core/Melissa/MelissaParser.html" title="class in com.apogee.dev.CUJaS.Core.Melissa">MelissaParser</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Parser XML pour les fichiers SITAC Melissa.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/Core/Melissa/MelissaSemantics.html" title="class in com.apogee.dev.CUJaS.Core.Melissa">MelissaSemantics</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Éléments sémantiques pour le format Melissa.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="com/apogee/dev/CUJaS/Core/NTK/NTKKey.html" title="enum class in com.apogee.dev.CUJaS.Core.NTK">NTKKey</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">
<div class="block">Clés nécessaires à la lecture d'une SITAC au format NTK et l'extraction des figures.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/Core/NTK/NTKParser.html" title="class in com.apogee.dev.CUJaS.Core.NTK">NTKParser</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Parser XML pour les fichiers de SITAC au format NTK.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/Core/NTK/NTKSemantics.html" title="class in com.apogee.dev.CUJaS.Core.NTK">NTKSemantics</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Éléments sémantiques pour le format NTK.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Point.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Point</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation d'un point géographique.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Polygon.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Polygon</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation du Polygone</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="com/apogee/dev/CUJaS/SITACObjects/Rectangle.html" title="class in com.apogee.dev.CUJaS.SITACObjects">Rectangle</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Implémentation du Rectangle</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab1"><a href="com/apogee/dev/CUJaS/Core/Semantics.html" title="interface in com.apogee.dev.CUJaS.Core">Semantics</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab1">
<div class="block">Interface générique pour les éléments sémantiques.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="com/apogee/dev/CUJaS/SITACObjects/SITACObject.html" title="interface in com.apogee.dev.CUJaS.SITACObjects">SITACObject</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab1">
<div class="block">Interface pour les objets d'une SITAC.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab1"><a href="com/apogee/dev/CUJaS/Core/XKey.html" title="interface in com.apogee.dev.CUJaS.Core">XKey</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab1">
<div class="block">Interface générique pour les éléments sémantiques.</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="com/apogee/dev/CUJaS/Core/XMLParser.html" title="interface in com.apogee.dev.CUJaS.Core">XMLParser</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab1">
<div class="block">Interface de Parser XML.</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>
Loading

0 comments on commit f82cc8d

Please sign in to comment.