Mapstoragemanager-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 329 discussions
Author: afages
Date: 2010-03-12 13:09:52 +0100 (Fri, 12 Mar 2010)
New Revision: 220
Log:
Modif rapport
Modified:
trunk/src/site/doc/rapport/rapport.rst
Modified: trunk/src/site/doc/rapport/rapport.rst
===================================================================
--- trunk/src/site/doc/rapport/rapport.rst 2010-03-11 17:09:36 UTC (rev 219)
+++ trunk/src/site/doc/rapport/rapport.rst 2010-03-12 12:09:52 UTC (rev 220)
@@ -1,5 +1,6 @@
-Rapport de projet de fin d'étude : Map Storage Manager
======================================================
+Rapport de PFE : Map Storage Manager
+======================================================
:Authors:
Gilles CRIELOUE.,
@@ -93,7 +94,7 @@
Outils
----------------------
-- Technologies : Java, JAXX, JMX
+- Technologies : Java, Maven, JAXX, JMX
- SVN : Dépôt de Code Lutin prévu à cet effet.
- Architecture Maven comportant un pom.xml natif à Code Lutin
permettant l'utilisation d'artifact JAXX notamment.
@@ -131,30 +132,372 @@
analyse des technologies
------------------------
-JAXX, JMX
+Maven
+~~~~~
+Maven est connu de bon nombre de développeurs. Il s'agit d'un outil de
+développement permettant de faciliter la compilation, la documentation,
+les tests et surtout les dépendances récupérées automatiquement sur
+l'Internet.
+Le fichier de description d'un projet Maven est un pom.xml.
+Code Lutin dispose de leur propre pom.xml permettant d'aller récupérer
+les dépendances qui vont suivre.
+
+Jaxx
+~~~~
+
+Jaxx est un framework permettant de générer une interface graphique en
+SWING (Java). SWING est parfois fastidieux à gérer et le code n'est
+pas toujours très propre. Le but de Jaxx est donc de contraindre un
+développeur à obtenir du code propre et performant en SWING.
+
+Le principe est très simple. On définit les éléments de la vue
+(les composants graphiques), les contrôleurs, les classes Java à utiliser
+dans un fichier XML. Le moteur Jaxx analyse ensuite le fichier et
+génère le code adapté.
+
+Il faut savoir qu'à l'origine, Jaxx est un projet récupéré par Code Lutin
+qui l'a fait évoluer jusqu'à atteindre une version 2.0.
+La dépendance est explicitée dans le fichier pom.xml de l'entreprise.
+
+Plus de précisions à cet endroit :
+http://maven-site.nuiton.org/jaxx/index.html
+
+Jmx
+~~~
+
analyse du domaine
------------------
-BigTable...
-usecase1
---------
+Analyse de BigTable (de google Inc.)
-usecase2
---------
+But de l'analyse
+~~~~~~~~~~~~~~~~
-usecase3
---------
+Permettre la compréhension de Big Table et de ses diverses implémentations
+ainsi que l'extraction d'interface pour le projet MSM.
-usecase4
---------
+Introduction : Qu'est-ce que BigTable ?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-usecase5
---------
+BigTable est la spécification d'un système de stockage distribué permettant
+de gérer des données. Il est conçu pour s'adapter fiablement à des tailles
+de contenu allant jusqu'au "Peta". BigTable est utilisé pour plusieurs raisons :
-usecase6
---------
+- Toucher un large ensemble d'applications
+- Mise à l'échelle
+- Très bonnes performances (temps de réponse...)
+- Forte disponibilité
+Le modèle de données de BigTable
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Le modèle de données de BigTable se comporte comme un dictionnaire
+multidimensionnel (matrice) indexé par le triplet
+<row key, column key, timestamp>. Chaque valeur de ce dictionnaire
+est un table d'octets.
+
+Les clés pour une rangée du dictionnaire sont des chaînes de charactères
+arbitraires et BigTable maintient les données dans un ordre lexicographique
+grâce à ce type de clé.
+
+ex de clé de rangée : "com.google.maps/index.html" (reversed URL)
+
+La portée d'une rangée est appelée "tablet", unité de distribution et d'équilibrage
+de charge.
+
+Les clés de colonne sont groupées en ensembles appelés "famille de colonnes".
+Une clé de colonne est nommé suivant le schéma : family:qualifier.
+Les noms de famille doivent être lisibles facilement mais les qualificateurs peuvent
+être des chaînes de charactères arbitraires
+
+ex de famille de colonne : "contents:"
+
+Ainsi, le contenu d'une cellule indexée par <com.google.maps/index.html, contents:, ?>
+serait le contenu de la page "index.html" (le code html).
+Une cellule peut contenir plusieurs versions de la même donnée via le mécanisme de timestamp.
+Chaque cellule stocke plusieurs timestamp en ordre décroissant si bien que :
+
+- <com.google.maps/index.html, contents:, ts1> donne la version la plus récente du contenu.
+- <com.google.maps/index.html, contents:, ts2> donne une version plus ancienne du contenu.
+
+Stockage
+~~~~~~~~
+
+BigTable utilise le système de fichier google GFS (Google File System)
+pour stocker les logs et fichiers de données.
+
+Le format de fichier google SSTable est utilisé pour stocker les données
+internes à BigTable.
+
+API BigTable (client)
+~~~~~~~~~~~~~~~~~~~~~
+
+Voici les fonctionnalités prévues par la spécification BigTable :
+
+- Création de tables.
+- Création de familles de colonne.
+- Suppression de tables.
+- Suppression de familles de colonne.
+- Changement de cluster (?).
+- Changement de table.
+- Changement de méta données sur une famille de colonne (droits d'accès...).
+- Ecriture des données dans une table.
+- Suppression des données dans une table.
+- Recherche des données dans une table depuis des rangées individuelles.
+- Itération sur un sous-ensemble de données d'une table.
+- Manipulation avancée des données : Transactions "Lecture - Modification - Ecriture"
+sur une rangée simple (BigTable ne supporte pas les transactions par rangées multiples).
+- Utilisation des cellules comme compteurs d'entier.
+- Excécution de scripts clients dans l'espace d'adressage des serveurs (langage : sawzall).
+- Calcul parallèle avec le framework MapReduce.
+
+Source
+~~~~~~
+
+Cette analyse est une synthèse des éléments utiles dans le cadre du
+projet, issue de la spécification même de Google Inc.
+"BigTable: A Distributed Storage System for Structured Data"
+
+lien : labs.google.com/papers/bigtable-osdi06.pdf
+
+Description des cas d'utilisation
+---------------------------------
+
+Describe Database
+-----------------
+
+- Use case : 11.Describe Database
+- Goal in context : décrire la structure d'une base de données
+BigTable (Hbase, HashMap...) en affichant les différentes tables graphiquement selon le plugin de la base.
+- Scope : MSM -GUI/IHM
+- Level : sous-fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger : L'utilisateur souhaite décrire la base en cours
+- Frequency : très souvent (toute utilisation d'une base passe par sa description normalement) - 100/jour
+- Pre-conditions :
+ PRE1 : l'utilisateur doit être connecté à la base qu'il veut décrire.
+ On connait la base.
+- Post-conditions :
+ POST1 : l'utilisateur dispose graphiquement de la structure de la
+ base.
+- Main success scenario :
+ 1) L'utilisateur se connecte à la base de données
+ 2) MSM renvoie la base de données à l'utilisateur
+ 3) L'utilisateur souhaite décrire sa base
+ 4) MSM renvoie la structure de la base (tables)
+ 5) L'utilisateur traite la structure de la base
+- Extensions :
+- Performance : selon la fréquence d'exécution, doit être très rapide.
+L'utilisateur doit obtenir la structure de la base immédiatement.
+
+Describe Table
+--------------
+
+- Use case : 12.Describe Table
+- Goal in context : décrire la structure d'une table d'une base
+BigTable (Hbase, HashMap...) en affichant les différents éléments (colonnes, types...)
+graphiquement selon le plugin de la base.
+- Scope : MSM -GUI/IHM
+- Level : sous-fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger : L'utilisateur souhaite décrire une table de la base
+- Frequency : très souvent (toute utilisation d'une table passe par sa description normalement) - 100/jour
+- Pre-conditions :
+ PRE1 : l'utilisateur doit être connecté à la base qu'il veut décrire.
+ On dispose d'un accès à la table.
+- Post-conditions :
+ POST1 : l'utilisateur dispose graphiquement de la structure de la
+ table.
+- Main success scenario :
+ 1) L'utilisateur se connecte à la base de données
+ 2) MSM renvoie la base de données à l'utilisateur
+ 3) L'utilisateur décrit la base
+ 4) MSM renvoie la structure de la base (tables)
+ 5) L'utilisateur sélectionne une table
+ 6) MSM renvoie la structure de la table
+ 7) L'utilisateur traite la structure de la table
+- Extensions :
+ 5.a : l'utilisateur effectue une recherche sur la table
+- Performance : selon la fréquence d'exécution, doit être très rapide.
+L'utilisateur doit obtenir la structure de la table immédiatement.
+
+View content
+------------
+
+- Use case : 2.View content
+- Goal in context : obtenir les données d'une table (son contenu) d'une base
+BigTable (Hbase, HashMap...) selon le plugin de la base.
+- Scope : MSM - GUI/IHM
+- Level : fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger : L'utilisateur souhaite voir les données contenues dans une table.
+- Frequency : très souvent - 100/jour
+- Pre-conditions :
+ PRE1 : l'utilisateur doit être connecté à la base dont il veut les
+ données. On dispose d'un accès à la table.
+- Post-conditions :
+ POST1 : l'utilisateur dispose graphiquement des données contenues
+ dans la table.
+- Main success scenario :
+ 1) L'utilisateur se connecte à la base de données
+ 2) MSM renvoie la base de données à l'utilisateur
+ 3) L'utilisateur décrit la base
+ 4) MSM renvoie la structure de la base (tables)
+ 5) L'utilisateur sélectionne une table et demande à voir son contenu
+ 6) MSM renvoie les données de la table
+ 7) L'utilisateur traite les données
+- Extensions :
+ 5.a : l'utilisateur effectue une recherche sur la table
+- Performance : selon la fréquence d'exécution, doit être très rapide.
+L'utilisateur doit obtenir les données immédiatement.
+
+Monitor
+-------
+
+- Use case : 3.Monitor
+- Goal in context : surveiller la base de sorte à vérifier l'activité des noeuds (charge, espace disque...)
+- Scope : MSM - GUI/IHM
+- Level : fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger :
+- Frequency : peu souvent - 10/jour
+- Pre-conditions :
+ PRE1 :
+- Post-conditions :
+ POST1 :
+- Main success scenario :
+ 1)
+ 2)
+ 3)
+ 4)
+ 5)
+ 6)
+ 7)
+- Extensions :
+
+- Performance : la qualité du monitoring est tout aussi importante que
+la temps-réel (actualité des données) de la tâche.
+
+Import
+------
+
+- Use case : 4.Import
+- Goal in context : importer des données dans une base de données
+(tables, données).
+- Scope : MSM
+- Level : fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger : l'utilisateur désire importer ses données dans une base
+- Frequency : peu souvent - 2/jour
+- Pre-conditions :
+ PRE1 : la base de données doit exister et être connue
+ PRE2 : le fichier d'importation doit exister
+ PRE3 : l'utilisateur doit être connecté à la base
+- Post-conditions :
+ POST1 : les données sont insérées dans la base
+ POST2 : les données sont manipulables
+- Main success scenario :
+ 1) L'utilisateur se connecte à la base de données
+ 2) L'utilisateur désire importer des données dans la base
+ 3) MSM demande à l'utilisateur de sélectionner un fichier
+ d'imporation
+ 4) L'utilisateur sélectionne un fichier d'importation
+ 5) MSM importe les données contenues dans le fichier
+ 6) MSM renvoie le résultat de l'importation à l'utilisateur
+ 7) L'utilisateur traite les données de la base
+- Extensions :
+- Performance : la rapidité d'exécution est primordiale (le volume de données étant assez élevé).
+On priviligie la qualité avec une fiabilité haute.
+- Open issues : Que faire si erreur lors du traitement du fichier ?
+=> Reporter l'erreur à l'utilisateur.
+
+
+Export
+------
+
+- Use case : 5.Export
+- Goal in context : exporter des données dans un fichier depuis une base
+(tables, données).
+- Scope : MSM
+- Level : fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger : l'utilisateur désire exporter les données de la base en cours
+- Frequency : peu souvent - 2/jour
+- Pre-conditions :
+ PRE1 : la base de données doit exister et être connue
+ PRE2 : l'utilisateur doit être connecté à la base
+- Post-conditions :
+ POST1 : un fichier contenant les données est créé
+ POST2 : le fichier peut servir pour une réimportation
+- Main success scenario :
+ 1) L'utilisateur se connecte à la base de données
+ 2) L'utilisateur désire exporter les données de la base
+ 3) MSM demande un nom de fichier
+ 4) L'utilisateur entre un nom désiré pour le fichier
+ 5) MSM crée le fichier
+ 6) MSM réalise l'exportation dans le fichier
+- Extensions :
+- Performance : la rapidité d'exécution est primordiale (le volume de données étant assez élevé).
+On priviligie la qualité avec une fiabilité haute.
+- Open issues : Que faire si erreur lors de transmission des données dans
+le fichier ?
+
+Connect
+-------
+
+- Use case : 6.Connect
+- Goal in context : se connecter à une base de données BigTable
+préalablement choisie
+pour la rendre active dans MSM.
+- Scope : MSM - GUI/IHM
+- Level : fonctionnalité
+- Primary actor : utilisateur de MSM
+- Trigger : l'utilisateur désire se connecter à une base
+- Frequency : très souvent - 100/jour
+- Pre-conditions :
+ PRE1 : la base distante doit exister
+- Post-conditions :
+ POST1 : l'utilisateur est connecté
+ POST2 : l'utilisateur peut manipuler la base
+- Main success scenario :
+ 1) L'utilisateur désire se connecter
+ 2) L'utilisateur choisit une base de données à laquelle se connecter
+ 3) En fonction de la base, MSM demande diverses informations de
+ connexion (utilisateur, mot de passe, port...)
+ 4) L'utilisateur entre ces informations et se connecte
+ 5) MSM renvoie le résultat de la connexion
+ 6) L'utilisateur traite la base
+- Extensions :
+ 2.a : l'utilisateur recherche le nom d'une base
+- Performance : la rapidité d'exécution est primordiale étant donné la fréquence d'exécution.
+Gestion des erreurs importante.
+
+Extend
+------
+
+- Use case : 7.Extend
+- Goal in context : Etendre MSM en développant un plugin correspondant à
+une nouvelle base de données BigTable (graphique et fonctionnalités)
+pour la rendre active dans MSM.
+- Scope : MSM - GUI/IHM
+- Level : fonctionnalité
+- Primary actor : développeur
+- Trigger : le développeur veut ajouter une nouvelle base dans MSM
+- Frequency : peu souvent 1/semaine
+- Pre-conditions :
+ PRE1 : le développeur dispose des API MSM
+- Post-conditions :
+ POST1 : la base de données développée est utilisable dans MSM
+- Main success scenario :
+ 1) Le développeur désire développer un plugin
+ 2) Le développeur implémente l'interface BigTable
+ 3) Le développeur implémente l'interface GUI en se servant de
+ son implémentation de BigTable
+ 4) Le développeur crée un JAR du plugin
+- Extensions :
+- Performance :
+
Modèles et architecture du domaine
----------------------------------
1
0
Author: dlanglais
Date: 2010-03-11 18:09:36 +0100 (Thu, 11 Mar 2010)
New Revision: 219
Log:
R?\195?\169paration Oups !
Removed:
trunk/mapstoragemanager-215/
1
0
Author: dlanglais
Date: 2010-03-11 18:08:28 +0100 (Thu, 11 Mar 2010)
New Revision: 218
Log:
Avant "Refaire les plugins pour que le chargement soit g?\195?\169n?\195?\169rique (le plugin utilise l'application et non l'inverse)"
Principale modification :
- ajout de fonction load(), unload(), getDescription() sur les objets de type plugin.
Oups...
Added:
tags/mapstoragemanager-215/
1
0
Author: dlanglais
Date: 2010-03-11 18:06:48 +0100 (Thu, 11 Mar 2010)
New Revision: 217
Log:
Avant "Refaire les plugins pour que le chargement soit g?\195?\169n?\195?\169rique (le plugin utilise l'application et non l'inverse)"
Principale modification :
- ajout de fonction load(), unload(), getDescription() sur les objets de type plugin.
Added:
trunk/mapstoragemanager-215/
1
0
Author: dlanglais
Date: 2010-03-11 17:58:41 +0100 (Thu, 11 Mar 2010)
New Revision: 216
Log:
Modification des plugins :
- ajout de m?\195?\169thodes load() et unload(),
- nos plugins les utilisent pour ajouter/supprimer des entr?\195?\169es dans les menus, n?\195?\169anmoins cela peut permettre de faire tout et n'importe quoi(impossible ?\195?\160 contr?\195?\180ler de notre cot?\195?\169).
Modified:
trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java
trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java
trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXML.java
trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXML.java
trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java
trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java
trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Main.java
trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java
trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/Plugin.java
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java
trunk/msm/src/test/java/org/nuiton/mapstoragemanager/core/PluginLoaderTest.java
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/core/PluginLoader.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -91,15 +91,19 @@
* Add plugin in the plugin's map.
*/
for (BigTable bigTable : bigTableSetLoader) {
+ bigTable.load();
plugins.put(bigTable.getPluginName(), bigTable);
}
for (Importer importer : importerSetLoader) {
+ importer.load();
plugins.put(importer.getPluginName(), importer);
}
for (Exporter exporter : exporterSetLoader) {
+ exporter.load();
plugins.put(exporter.getPluginName(), exporter);
}
for (Monitoring monitor : monitoringSetLoader) {
+ monitor.load();
plugins.put(monitor.getPluginName(), monitor);
}
}
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/OurHashMap2.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -1,5 +1,8 @@
package org.nuiton.mapstoragemanager.plugins;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -7,8 +10,11 @@
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
-
/**
* Class OurHashMap2.
* @author E045231P
@@ -19,14 +25,12 @@
* map table.
*/
private Map<String, ArrayList<String>> mapTable =
- new HashMap<String, ArrayList<String>>();
-
+ new HashMap<String, ArrayList<String>>();
/**
* map column.
*/
- private Map<String, ArrayList<String>> mapColumn =
- new HashMap<String, ArrayList<String>>();
-
+ private Map<String, ArrayList<String>> mapColumn =
+ new HashMap<String, ArrayList<String>>();
/**
* map data.
*/
@@ -49,7 +53,7 @@
@Override
public final void deleteTable(final String table) {
- mapTable.remove(table);
+ mapTable.remove(table);
}
@Override
@@ -58,7 +62,7 @@
}
@Override
- public final void createColumn(final String table, final String column) {
+ public final void createColumn(final String table, final String column) {
// if the table exist and only if the column doesn't exist.
if (mapTable.containsKey(table) && !mapColumn.containsKey(column)) {
mapColumn.put(column, new ArrayList<String>());
@@ -67,10 +71,10 @@
}
@Override
- public final void deleteColumn(final String table, final String column) {
+ public final void deleteColumn(final String table, final String column) {
// if the table exist and only if the column exist.
if (mapTable.containsKey(table)
- && mapTable.get(table).contains(column)) {
+ && mapTable.get(table).contains(column)) {
mapTable.get(table).remove(column);
}
}
@@ -83,7 +87,7 @@
@Override
public final void put(final String table, final String column,
- final String key, final String content) {
+ final String key, final String content) {
// If the table and the column exist.
if (mapTable.containsKey(table) && mapColumn.containsKey(column)) {
mapColumn.get(column).add(key);
@@ -93,7 +97,7 @@
@Override
public final String get(final String table, final String column,
- final String key) {
+ final String key) {
String ret = "";
if (mapTable.containsKey(table)) {
if (mapColumn.containsKey(column)) {
@@ -102,20 +106,20 @@
ret = "Column doesn't exist";
}
} else {
- ret = "Table doesn't exist";
+ ret = "Table doesn't exist";
}
return ret;
}
@Override
public final String get(final String table, final String column,
- final String key, final int version) {
+ final String key, final int version) {
return get(table, column, key);
}
@Override
public final Map<String, String> getRow(final String table,
- final String key) {
+ final String key) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -151,5 +155,60 @@
public final String getPluginName() {
return this.getClass().getSimpleName();
}
-
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().connection(pluginName);
+ }
+ });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ menuConnect.add(menuItem);
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ for (Component menuItem : menuConnect.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuConnect.remove(menuItem);
+ }
+ }
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/Plugin.java
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/Plugin.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/plugins/Plugin.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -11,4 +11,20 @@
* @return the plugin name
*/
String getPluginName();
+
+ /**
+ * Returns the plugin description.
+ * @return the plugin description.
+ */
+ String getDescription();
+
+ /**
+ * Load the plugin.
+ */
+ void load();
+
+ /**
+ * Unload the plugin.
+ */
+ void unload();
}
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -124,65 +124,65 @@
LOG.info("getAllPluginNames : " + pluginLoader.getAllPluginNames());
- MainUI ui = MainUI.getInstance();
- for (Plugin btPlugin : pluginLoader.getAllPlugin(BigTable.class)) {
- final String btName = btPlugin.getPluginName();
- jaxx.runtime.swing.Item bigTableItem =
- new jaxx.runtime.swing.Item(btName, null, btName, true);
- ui.getNameBase().addItem(bigTableItem);
- ui.getNameBase().setSelectedItem(bigTableItem);
-
- JMenuItem menuItem = new JMenuItem(btName);
- menuItem.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- connection(btName);
- }
- });
- ui.getMenuConnectBis().add(menuItem);
- ui.getMenuConnectBis().setEnabled(true);
- }
- for (Plugin imPlugin : pluginLoader.getAllPlugin(Importer.class)) {
- final String imName = imPlugin.getPluginName();
-// jaxx.runtime.swing.Item importerItem =
-// new jaxx.runtime.swing.Item(imName, null, imName, true);
-// ui.getImporter().addItem(importerItem);
-// ui.getImporter().setSelectedItem(importerItem);
-
- JMenuItem menuItem = new JMenuItem(imName);
- menuItem.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- importBase(imName);
- }
- });
- ui.getMenuImportBis().add(menuItem);
- ui.getMenuImportBis().setEnabled(true);
- }
- for (Plugin exPlugin : pluginLoader.getAllPlugin(Exporter.class)) {
- final String exName = exPlugin.getPluginName();
-// jaxx.runtime.swing.Item exporterItem =
-// new jaxx.runtime.swing.Item(exName, null, exName, true);
-// ui.getExporter().addItem(exporterItem);
-// ui.getExporter().setSelectedItem(exporterItem);
-
- JMenuItem menuItem = new JMenuItem(exName);
- menuItem.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- exportBase(exName);
- }
- });
- ui.getMenuExportBis().add(menuItem);
- ui.getMenuExportBis().setEnabled(true);
- }
- for (Plugin exPlugin : pluginLoader.getAllPlugin(Monitoring.class)) {
- Monitoring monitor = (Monitoring) exPlugin;
- monitor.display();
- }
+// MainUI ui = MainUI.getInstance();
+// for (Plugin btPlugin : pluginLoader.getAllPlugin(BigTable.class)) {
+// final String btName = btPlugin.getPluginName();
+// jaxx.runtime.swing.Item bigTableItem =
+// new jaxx.runtime.swing.Item(btName, null, btName, true);
+// ui.getNameBase().addItem(bigTableItem);
+// ui.getNameBase().setSelectedItem(bigTableItem);
+//
+// JMenuItem menuItem = new JMenuItem(btName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// connection(btName);
+// }
+// });
+// ui.getMenuConnectBis().add(menuItem);
+// ui.getMenuConnectBis().setEnabled(true);
+// }
+// for (Plugin imPlugin : pluginLoader.getAllPlugin(Importer.class)) {
+// final String imName = imPlugin.getPluginName();
+//// jaxx.runtime.swing.Item importerItem =
+//// new jaxx.runtime.swing.Item(imName, null, imName, true);
+//// ui.getImporter().addItem(importerItem);
+//// ui.getImporter().setSelectedItem(importerItem);
+//
+// JMenuItem menuItem = new JMenuItem(imName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// importBase(imName);
+// }
+// });
+// ui.getMenuImportBis().add(menuItem);
+// ui.getMenuImportBis().setEnabled(true);
+// }
+// for (Plugin exPlugin : pluginLoader.getAllPlugin(Exporter.class)) {
+// final String exName = exPlugin.getPluginName();
+//// jaxx.runtime.swing.Item exporterItem =
+//// new jaxx.runtime.swing.Item(exName, null, exName, true);
+//// ui.getExporter().addItem(exporterItem);
+//// ui.getExporter().setSelectedItem(exporterItem);
+//
+// JMenuItem menuItem = new JMenuItem(exName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// exportBase(exName);
+// }
+// });
+// ui.getMenuExportBis().add(menuItem);
+// ui.getMenuExportBis().setEnabled(true);
+// }
+// for (Plugin exPlugin : pluginLoader.getAllPlugin(Monitoring.class)) {
+// Monitoring monitor = (Monitoring) exPlugin;
+// monitor.display();
+// }
}
}
@@ -350,28 +350,28 @@
bigTable = (BigTable) pluginLoader.getPlugin(nameBase);
- {
- bigTable.createTable("table1");
- bigTable.createTable("table2");
- bigTable.createColumn("table1", "column1");
- bigTable.createColumn("table1", "column2");
- bigTable.createColumn("table2", "column3");
- bigTable.createColumn("table2", "column4");
- bigTable.createColumn("table2", "column5");
+// {
+// bigTable.createTable("table1");
+// bigTable.createTable("table2");
+// bigTable.createColumn("table1", "column1");
+// bigTable.createColumn("table1", "column2");
+// bigTable.createColumn("table2", "column3");
+// bigTable.createColumn("table2", "column4");
+// bigTable.createColumn("table2", "column5");
+//
+// bigTable.put("table1", "column1", "1", "content1");
+// bigTable.put("table1", "column1", "2", "content2");
+// bigTable.put("table1", "column2", "3", "content3");
+// bigTable.put("table1", "column2", "4", "content4");
+//
+// bigTable.put("table2", "column3", "5", "content5");
+// bigTable.put("table2", "column3", "6", "content6");
+// bigTable.put("table2", "column4", "7", "content7");
+// bigTable.put("table2", "column4", "8", "content8");
+// bigTable.put("table2", "column5", "9", "content9");
+// bigTable.put("table2", "column5", "10", "content10");
+// }
- bigTable.put("table1", "column1", "1", "content1");
- bigTable.put("table1", "column1", "2", "content2");
- bigTable.put("table1", "column2", "3", "content3");
- bigTable.put("table1", "column2", "4", "content4");
-
- bigTable.put("table2", "column3", "5", "content5");
- bigTable.put("table2", "column3", "6", "content6");
- bigTable.put("table2", "column4", "7", "content7");
- bigTable.put("table2", "column4", "8", "content8");
- bigTable.put("table2", "column5", "9", "content9");
- bigTable.put("table2", "column5", "10", "content10");
- }
-
//connection verification
boolean goodUse = true;
goodUse = bigTable.connect(new Properties());
Modified: trunk/msm/src/test/java/org/nuiton/mapstoragemanager/core/PluginLoaderTest.java
===================================================================
--- trunk/msm/src/test/java/org/nuiton/mapstoragemanager/core/PluginLoaderTest.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm/src/test/java/org/nuiton/mapstoragemanager/core/PluginLoaderTest.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -118,6 +118,21 @@
return "test";
}
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void load() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void unload() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
};
pluginsExpected.clear();
@@ -162,6 +177,21 @@
public String getPluginName() {
return "testImporter";
}
+
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void load() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void unload() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
};
Plugin testExporter = new Exporter() {
@@ -177,6 +207,21 @@
public String getPluginName() {
return "testExporter";
}
+
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void load() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void unload() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
};
pluginsMapActual.put(testImporter.getPluginName(), testImporter);
Modified: trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java
===================================================================
--- trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-bighashmap/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -1,11 +1,18 @@
package org.nuiton.mapstoragemanager.plugins.bighashmap;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Properties;
import java.util.Set;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
/**
* Implementation of bigTable with hashMap.
@@ -171,4 +178,59 @@
return this.getClass().getSimpleName();
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().connection(pluginName);
+ }
+ });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ menuConnect.add(menuItem);
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ for (Component menuItem : menuConnect.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuConnect.remove(menuItem);
+ }
+ }
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java
===================================================================
--- trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-bighashmapV2/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmapv2/BigHashMapV2.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -1,11 +1,18 @@
package org.nuiton.mapstoragemanager.plugins.bighashmapv2;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Properties;
import java.util.Set;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
/**
* Implementation of bigTable with hashMap.
@@ -170,4 +177,60 @@
public final String getPluginName() {
return this.getClass().getSimpleName();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().connection(pluginName);
+ }
+ });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ menuConnect.add(menuItem);
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ for (Component menuItem : menuConnect.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuConnect.remove(menuItem);
+ }
+ }
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXML.java
===================================================================
--- trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXML.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXML.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -4,10 +4,15 @@
*/
package org.nuiton.mapstoragemanager.plugins.exporter;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Set;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import org.apache.commons.logging.Log;
@@ -19,6 +24,8 @@
import org.jdom.output.XMLOutputter;
import org.nuiton.mapstoragemanager.plugins.Exporter;
import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
/**
* A Class to export in xml files the content of Hbase database.
@@ -209,4 +216,60 @@
// }
return fileFilter;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().exportBase(pluginName);
+ }
+ });
+ JMenu menuExport = MainUI.getInstance().getMenuExportBis();
+ menuExport.add(menuItem);
+
+ if (!menuExport.isEnabled()) {
+ menuExport.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuExport = MainUI.getInstance().getMenuExportBis();
+ for (Component menuItem : menuExport.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuExport.remove(menuItem);
+ }
+ }
+
+ if (!menuExport.isEnabled()) {
+ menuExport.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXML.java
===================================================================
--- trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXML.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-fromtoXML/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXML.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -4,9 +4,14 @@
*/
package org.nuiton.mapstoragemanager.plugins.importer;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.List;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import org.apache.commons.logging.Log;
@@ -19,6 +24,8 @@
import org.jdom.output.XMLOutputter;
import org.nuiton.mapstoragemanager.plugins.Importer;
import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
/**
*
@@ -183,4 +190,60 @@
// }
return fileFilter;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().importBase(pluginName);
+ }
+ });
+ JMenu menuImport = MainUI.getInstance().getMenuImportBis();
+ menuImport.add(menuItem);
+
+ if (!menuImport.isEnabled()) {
+ menuImport.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuImport = MainUI.getInstance().getMenuImportBis();
+ for (Component menuItem : menuImport.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuImport.remove(menuItem);
+ }
+ }
+
+ if (!menuImport.isEnabled()) {
+ menuImport.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java
===================================================================
--- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -4,15 +4,22 @@
*/
package org.nuiton.mapstoragemanager.plugins.exporter;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.mapstoragemanager.plugins.Exporter;
import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
@@ -179,4 +186,60 @@
public final FileFilter getFileFilter() {
return fileFilter;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().exportBase(pluginName);
+ }
+ });
+ JMenu menuExport = MainUI.getInstance().getMenuExportBis();
+ menuExport.add(menuItem);
+
+ if (!menuExport.isEnabled()) {
+ menuExport.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuExport = MainUI.getInstance().getMenuExportBis();
+ for (Component menuItem : menuExport.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuExport.remove(menuItem);
+ }
+ }
+
+ if (!menuExport.isEnabled()) {
+ menuExport.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java
===================================================================
--- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -1,17 +1,24 @@
package org.nuiton.mapstoragemanager.plugins.importer;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.mapstoragemanager.plugins.BigTable;
import org.nuiton.mapstoragemanager.plugins.Importer;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
@@ -239,4 +246,60 @@
public String getPluginName() {
return this.getClass().getSimpleName();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().importBase(pluginName);
+ }
+ });
+ JMenu menuImport = MainUI.getInstance().getMenuImportBis();
+ menuImport.add(menuItem);
+
+ if (!menuImport.isEnabled()) {
+ menuImport.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuImport = MainUI.getInstance().getMenuImportBis();
+ for (Component menuItem : menuImport.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuImport.remove(menuItem);
+ }
+ }
+
+ if (!menuImport.isEnabled()) {
+ menuImport.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Main.java
===================================================================
--- trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Main.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Main.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -28,6 +28,7 @@
FromXMLXPP3 myXmlPullApp = new FromXMLXPP3();
File importTest =
+// getFile.getTestFile("/src/test/resources/generator.xml");
getFile.getTestFile("/src/test/resources/importTest.xml");
myXmlPullApp.importFrom(bigTable, importTest);
Modified: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java
===================================================================
--- trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -1,11 +1,16 @@
package org.nuiton.mapstoragemanager.plugins.hbase;
+import java.awt.Component;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.MasterNotRunningException;
@@ -20,6 +25,8 @@
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
+import org.nuiton.mapstoragemanager.ui.MainUI;
+import org.nuiton.mapstoragemanager.ui.gui.ApplicationEngine;
/**
* A plugin for MSM using HBase API.
@@ -347,4 +354,59 @@
return this.getClass().getSimpleName();
}
+ /**
+ * {@inheritDoc}
+ */
+// @Override
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+// @Override
+ public void load() {
+ final String pluginName = getPluginName();
+ JMenuItem menuItem = new JMenuItem(pluginName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ApplicationEngine.getInstance().connection(pluginName);
+ }
+ });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ menuConnect.add(menuItem);
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+// @Override
+ public void unload() {
+ final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+ JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+ for (Component menuItem : menuConnect.getComponents()) {
+ if (menuItem.getName().equals(pluginName)) {
+ menuConnect.remove(menuItem);
+ }
+ }
+
+ if (!menuConnect.isEnabled()) {
+ menuConnect.setEnabled(true);
+ }
+ }
}
Modified: trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java
===================================================================
--- trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java 2010-03-11 15:57:24 UTC (rev 215)
+++ trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java 2010-03-11 16:58:41 UTC (rev 216)
@@ -26,7 +26,7 @@
* Height of the frame.
*/
private static final int FRAME_HEIGHT = 300;
-
+
/**
* Constructor.
*/
@@ -80,7 +80,7 @@
}
Runtime runtime = Runtime.getRuntime();
-
+
final long freeMemoryByte = runtime.freeMemory();
final long totalMemoryByte = runtime.totalMemory();
final long maxMemoryByte = runtime.maxMemory();
@@ -92,23 +92,82 @@
final double freeMemoryGb = freeMemoryMb / DIV;
final double totalMemoryGb = totalMemoryMb / DIV;
final double maxMemoryGb = maxMemoryMb / DIV;
-
+
content.add(new JLabel(
- "freeMemory : " + freeMemoryMb + " Mb (" +
- new DecimalFormat("0.00").format(freeMemoryGb) + " Gb)"));
+ "freeMemory : " + freeMemoryMb + " Mb ("
+ + new DecimalFormat("0.00").format(freeMemoryGb) + " Gb)"));
content.add(new JLabel(
- "totalMemory : " + totalMemoryMb + " Mb (" +
- new DecimalFormat("0.00").format(totalMemoryGb) + " Gb)"));
+ "totalMemory : " + totalMemoryMb + " Mb ("
+ + new DecimalFormat("0.00").format(totalMemoryGb) + " Gb)"));
content.add(new JLabel(
- "maxMemory : " + maxMemoryMb + " Mb (" +
- new DecimalFormat("0.00").format(maxMemoryGb) + " Gb)"));
+ "maxMemory : " + maxMemoryMb + " Mb ("
+ + new DecimalFormat("0.00").format(maxMemoryGb) + " Gb)"));
this.setContentPane(content);
this.pack();
this.setVisible(true);
}
+ /**
+ * {@inheritDoc}
+ */
public String getPluginName() {
return this.getClass().getSimpleName();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getDescription() {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void load() {
+// final String pluginName = getPluginName();
+// JMenuItem menuItem = new JMenuItem(pluginName);
+// menuItem.addActionListener(new ActionListener() {
+//
+// @Override
+// public void actionPerformed(ActionEvent e) {
+// ApplicationEngine.getInstance().connection(pluginName);
+// }
+// });
+// JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+// menuConnect.add(menuItem);
+//
+// if (!menuConnect.isEnabled()) {
+// menuConnect.setEnabled(true);
+// }
+ this.display();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void unload() {
+// final String pluginName = getPluginName();
+//// JMenuItem menuItem = new JMenuItem(pluginName);
+//// menuItem.addActionListener(new ActionListener() {
+////
+//// @Override
+//// public void actionPerformed(ActionEvent e) {
+//// ApplicationEngine.getInstance().connection(pluginName);
+//// }
+//// });
+// JMenu menuConnect = MainUI.getInstance().getMenuConnectBis();
+// for (Component menuItem : menuConnect.getComponents()) {
+// if (menuItem.getName().equals(pluginName)) {
+// menuConnect.remove(menuItem);
+// }
+// }
+//
+// if (!menuConnect.isEnabled()) {
+// menuConnect.setEnabled(true);
+// }
+ }
}
1
0
Author: afages
Date: 2010-03-11 16:57:24 +0100 (Thu, 11 Mar 2010)
New Revision: 215
Log:
Modification compte rendu
Modified:
trunk/src/site/reports/CompteRenduReunion_11-03-2010.rst
trunk/src/site/reports/CompteRendu_08-03-2010.rst
Modified: trunk/src/site/reports/CompteRenduReunion_11-03-2010.rst
===================================================================
--- trunk/src/site/reports/CompteRenduReunion_11-03-2010.rst 2010-03-11 12:55:40 UTC (rev 214)
+++ trunk/src/site/reports/CompteRenduReunion_11-03-2010.rst 2010-03-11 15:57:24 UTC (rev 215)
@@ -12,8 +12,13 @@
Remarques :
-----------
--Refaire les plugins pour que le chargement soit générique.
--Refaire l'agrandissement du contenu d'une table.
--Faire en sorte que HBase soit fonctionnel à travers l'application.
+-Refaire les plugins pour que le chargement soit générique (le plugin
+utilise l'application et non l'inverse)
+-Refaire l'agrandissement du contenu d'une table (BorderLayout)
+-Faire en sorte que HBase soit fonctionnel à travers l'application (Priorité
+number one)
+- Communication via la liste devel pour informer de l'avancée/énoncer les
+problèmes HBase
-Pas de prochaine réunion avant la soutenance !
\ No newline at end of file
+Pas de prochaine réunion avant la soutenance (Jeudi ou vendredi de la semaine
+des exams) !
\ No newline at end of file
Modified: trunk/src/site/reports/CompteRendu_08-03-2010.rst
===================================================================
--- trunk/src/site/reports/CompteRendu_08-03-2010.rst 2010-03-11 12:55:40 UTC (rev 214)
+++ trunk/src/site/reports/CompteRendu_08-03-2010.rst 2010-03-11 15:57:24 UTC (rev 215)
@@ -1,10 +1,12 @@
semaine du 1 mars 2010
======================
-Rapport
--------
+Rapport et autres
+-----------------
--Plan
+- Spécification préléminaire (présentation entreprise, organisation...)
+-Plan général
+- Ajout du calcul approximatif en H/J sur le planning
Architecture à plugins
@@ -29,9 +31,13 @@
RAF (Reste à faire)
-------------------
--Rendre plus générique le loader de plugin (BigTableLoader -> PluginLoader). (Gilles)
--Developpement et test d'un plugin HBase. (Gilles)
+-Rendre plus générique le loader de plugin (BigTableLoader -> PluginLoader).
+(Gilles)
+-Developpement et test d'un plugin HBase. (Gilles et possiblement un peu tout
+le monde)
-Continuation du rapport globale et du diaporama de la soutenance. (Amaury)
+- Partie conception (Architecture à plugin, intégration entre modules...)
+(Amaury)
-Refactoring. (Tout le monde)
1
0
r213 - in trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui: . gui
by dlanglais@users.nuiton.org 11 Mar '10
by dlanglais@users.nuiton.org 11 Mar '10
11 Mar '10
Author: dlanglais
Date: 2010-03-11 11:04:17 +0100 (Thu, 11 Mar 2010)
New Revision: 213
Log:
modification menu de connexion
Modified:
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css 2010-03-11 07:30:09 UTC (rev 212)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css 2010-03-11 10:04:17 UTC (rev 213)
@@ -35,7 +35,7 @@
mnemonic:E;
}
-#menuConnect {
+#menuConnect, #menuConnectBis {
text:"mapstoragemanager.action.connect";
toolTipText:"mapstoragemanager.action.connect.tip";
actionIcon:"connect";
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx 2010-03-11 07:30:09 UTC (rev 212)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx 2010-03-11 10:04:17 UTC (rev 213)
@@ -120,8 +120,9 @@
<JMenuBar>
<JMenu id='menuFile'>
- <JMenuItem id='menuConnect'
- onActionPerformed='engine.showToolBar()'/>
+ <!--JMenuItem id='menuConnect'
+ onActionPerformed='engine.showToolBar()'/-->
+ <JMenu id='menuConnectBis' enabled='false'/>
<JMenuItem id='menuDisconnect' enabled='false'
onActionPerformed='engine.disposeToolBar()'/>
<JSeparator/>
@@ -182,7 +183,7 @@
<JButton text="ok" actionIcon='ok_16' onActionPerformed='engine.connection()'/>
</JToolBar>
- <JInternalFrame id='importFrame' title="Import Database" width='275' height='60' resizable='false' visible='false' opaque='true' >
+ <JInternalFrame id='importFrame' title="Import Database" width='300' height='60' resizable='false' visible='false' opaque='true' >
<JPanel id='importPanel'>
<JLabel text="Importer :" actionIcon='database_16' styleClass='boldUnderline' />
<JAXXComboBox id='importer' onActionPerformed='engine.doSomething()' >
@@ -192,7 +193,7 @@
</JPanel>
</JInternalFrame>
- <JInternalFrame id='exportFrame' title="Export Database" width='275' height='60' resizable='false' visible='false' opaque='true' >
+ <JInternalFrame id='exportFrame' title="Export Database" width='300' height='60' resizable='false' visible='false' opaque='true' >
<JPanel id='exportPanel'>
<JLabel text="Exporter :" actionIcon='database_16' styleClass='boldUnderline' />
<JAXXComboBox id='exporter' onActionPerformed='engine.doSomething()' >
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-03-11 07:30:09 UTC (rev 212)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-03-11 10:04:17 UTC (rev 213)
@@ -69,7 +69,7 @@
* msmBasedir.
*/
private static final File MSM_BASEDIR =
- new File(new File("").getAbsolutePath()).getParentFile();
+ new File(new File("").getAbsolutePath()).getParentFile();
/**
* Constructor.
@@ -83,13 +83,13 @@
try {
String toPlugin = "plugins/";
String pluginsFolderPath =
- new File(MSM_BASEDIR, toPlugin).getPath();
+ new File(MSM_BASEDIR, toPlugin).getPath();
LOG.info("msmBasedir : " + MSM_BASEDIR + '\n'
- + "pluginsFolderPath : " + pluginsFolderPath);
+ + "pluginsFolderPath : " + pluginsFolderPath);
pluginLoader = new PluginLoader(pluginsFolderPath,
- this.getClass().getClassLoader());
+ this.getClass().getClassLoader());
} catch (MalformedURLException ex) {
LOG.error(ex, ex);
}
@@ -110,7 +110,7 @@
int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
- if( JFileChooser.APPROVE_OPTION == jfcReturn ) {
+ if (JFileChooser.APPROVE_OPTION == jfcReturn) {
// case JFileChooser.CANCEL_OPTION:
// case JFileChooser.ERROR_OPTION:
// case JFileChooser.APPROVE_OPTION:
@@ -118,7 +118,7 @@
File pluginPath = jfc.getSelectedFile();
LOG.info("msmBasedir : " + MSM_BASEDIR + '\n'
- + "pluginPath : " + pluginPath.getAbsolutePath());
+ + "pluginPath : " + pluginPath.getAbsolutePath());
pluginLoader.loadPlugin(pluginPath);
@@ -126,11 +126,22 @@
MainUI ui = MainUI.getInstance();
for (Plugin btPlugin : pluginLoader.getAllPlugin(BigTable.class)) {
- String btName = btPlugin.getPluginName();
+ final String btName = btPlugin.getPluginName();
jaxx.runtime.swing.Item bigTableItem =
- new jaxx.runtime.swing.Item(btName, null, btName, true);
+ new jaxx.runtime.swing.Item(btName, null, btName, true);
ui.getNameBase().addItem(bigTableItem);
ui.getNameBase().setSelectedItem(bigTableItem);
+
+ JMenuItem menuItem = new JMenuItem(btName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ connection(btName);
+ }
+ });
+ ui.getMenuConnectBis().add(menuItem);
+ ui.getMenuConnectBis().setEnabled(true);
}
for (Plugin imPlugin : pluginLoader.getAllPlugin(Importer.class)) {
final String imName = imPlugin.getPluginName();
@@ -148,7 +159,7 @@
}
});
ui.getMenuImportBis().add(menuItem);
- ui.getMenuImportBis ().setEnabled(true);
+ ui.getMenuImportBis().setEnabled(true);
}
for (Plugin exPlugin : pluginLoader.getAllPlugin(Exporter.class)) {
final String exName = exPlugin.getPluginName();
@@ -225,6 +236,7 @@
*/
public void disposeToolBar() {
MainUI ui = MainUI.getInstance();
+ setBigTable(null);
ui.getToolBar().setVisible(false);
clean(ui);
}
@@ -244,64 +256,142 @@
public void connection() {
MainUI ui = MainUI.getInstance();
+//
+// //update menu
+// ui.getMenuDisconnect().setEnabled(true);
- //update menu
- ui.getMenuDisconnect().setEnabled(true);
-
Item selectedItems = ui.getNameBase().getSelectedJaxxItem();
String nameBase = selectedItems.getValue().toString();
- String login = ui.getLogin().getText();
- char[] password = ui.getPassword().getPassword();
- LOG.info("nameBase: " + nameBase
- + " login: " + login
- + " mdp: " + password);
- if ("OurHashMap".equals(nameBase)) {
- bigTable = new OurHashMap2();
- } else {
- bigTable = (BigTable) pluginLoader.getPlugin(nameBase);
+ this.connection(nameBase);
+// String login = ui.getLogin().getText();
+// char[] password = ui.getPassword().getPassword();
+//
+// LOG.info("nameBase: " + nameBase
+// + " login: " + login
+// + " mdp: " + password);
+// if ("OurHashMap".equals(nameBase)) {
+// bigTable = new OurHashMap2();
+// } else {
+// bigTable = (BigTable) pluginLoader.getPlugin(nameBase);
+// }
+//
+// {
+// bigTable.createTable("table1");
+// bigTable.createTable("table2");
+// bigTable.createColumn("table1", "column1");
+// bigTable.createColumn("table1", "column2");
+// bigTable.createColumn("table2", "column3");
+// bigTable.createColumn("table2", "column4");
+// bigTable.createColumn("table2", "column5");
+//
+// bigTable.put("table1", "column1", "1", "content1");
+// bigTable.put("table1", "column1", "2", "content2");
+// bigTable.put("table1", "column2", "3", "content3");
+// bigTable.put("table1", "column2", "4", "content4");
+//
+// bigTable.put("table2", "column3", "5", "content5");
+// bigTable.put("table2", "column3", "6", "content6");
+// bigTable.put("table2", "column4", "7", "content7");
+// bigTable.put("table2", "column4", "8", "content8");
+// bigTable.put("table2", "column5", "9", "content9");
+// bigTable.put("table2", "column5", "10", "content10");
+// }
+//
+// //connection verification
+// boolean goodUse = true;
+// goodUse = bigTable.connect(new Properties());
+//
+// if (goodUse) {
+//
+// //update tree
+// uptableNavigationTree(ui.getNavigation(), nameBase);
+//
+// String connexionOk = _("connectionValid");
+// ui.displayMessage(connexionOk, 0);
+// ui.getNavigation().repaint();
+// ui.getNavigation().revalidate();
+// } else {
+// //display error
+// String connexionNok = _("connectionError");
+// ui.displayMessage(connexionNok, 2);
+// JOptionPane.showMessageDialog(null, _("connectionError"));
+// }
+
+ }
+
+ /**
+ * Try to connect the user to a database.
+ */
+ public void connection(String nameBase) {
+
+ int response = 0;
+ if (bigTableIsSet()) {
+ response = JOptionPane.showConfirmDialog(null,
+ _("alreadyConnected.JOptionPaneMessage"),
+ _("alreadyConnected.JOptionPaneTitle"),
+ JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
}
- {
- bigTable.createTable("table1");
- bigTable.createTable("table2");
- bigTable.createColumn("table1", "column1");
- bigTable.createColumn("table1", "column2");
- bigTable.createColumn("table2", "column3");
- bigTable.createColumn("table2", "column4");
- bigTable.createColumn("table2", "column5");
+ if (response == JOptionPane.YES_OPTION) {
+ System.out.println("Yes button clicked");
- bigTable.put("table1", "column1", "1", "content1");
- bigTable.put("table1", "column1", "2", "content2");
- bigTable.put("table1", "column2", "3", "content3");
- bigTable.put("table1", "column2", "4", "content4");
+ if (nameBase == null) {
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("notFoundPlugin.JOptionPaneMessage"),
+ _("notFoundPlugin.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
+
+ } else {
+ MainUI ui = MainUI.getInstance();
- bigTable.put("table2", "column3", "5", "content5");
- bigTable.put("table2", "column3", "6", "content6");
- bigTable.put("table2", "column4", "7", "content7");
- bigTable.put("table2", "column4", "8", "content8");
- bigTable.put("table2", "column5", "9", "content9");
- bigTable.put("table2", "column5", "10", "content10");
- }
+ //update menu
+ ui.getMenuDisconnect().setEnabled(true);
- //connection verification
- boolean goodUse = true;
- goodUse = bigTable.connect(new Properties());
+ bigTable = (BigTable) pluginLoader.getPlugin(nameBase);
- if (goodUse) {
+ {
+ bigTable.createTable("table1");
+ bigTable.createTable("table2");
+ bigTable.createColumn("table1", "column1");
+ bigTable.createColumn("table1", "column2");
+ bigTable.createColumn("table2", "column3");
+ bigTable.createColumn("table2", "column4");
+ bigTable.createColumn("table2", "column5");
- //update tree
- uptableNavigationTree(ui.getNavigation(), nameBase);
+ bigTable.put("table1", "column1", "1", "content1");
+ bigTable.put("table1", "column1", "2", "content2");
+ bigTable.put("table1", "column2", "3", "content3");
+ bigTable.put("table1", "column2", "4", "content4");
- String connexionOk = _("connectionValid");
- ui.displayMessage(connexionOk, 0);
- ui.getNavigation().repaint();
- ui.getNavigation().revalidate();
- } else {
- //display error
- String connexionNok = _("connectionError");
- ui.displayMessage(connexionNok, 2);
- JOptionPane.showMessageDialog(null, _("connectionError"));
+ bigTable.put("table2", "column3", "5", "content5");
+ bigTable.put("table2", "column3", "6", "content6");
+ bigTable.put("table2", "column4", "7", "content7");
+ bigTable.put("table2", "column4", "8", "content8");
+ bigTable.put("table2", "column5", "9", "content9");
+ bigTable.put("table2", "column5", "10", "content10");
+ }
+
+ //connection verification
+ boolean goodUse = true;
+ goodUse = bigTable.connect(new Properties());
+
+ if (goodUse) {
+
+ //update tree
+ uptableNavigationTree(ui.getNavigation(), nameBase);
+
+ String connexionOk = _("connectionValid");
+ ui.displayMessage(connexionOk, 0);
+ ui.getNavigation().repaint();
+ ui.getNavigation().revalidate();
+ } else {
+ //display error
+ String connexionNok = _("connectionError");
+ ui.displayMessage(connexionNok, 2);
+ JOptionPane.showMessageDialog(null, _("connectionError"));
+ }
+ }
}
}
@@ -349,7 +439,7 @@
}
if (Desktop.isDesktopSupported()
- && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
+ && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
try {
Desktop.getDesktop().browse(siteURL.toURI());
} catch (Exception ex) {
@@ -422,7 +512,7 @@
DefaultMutableTreeNode columnNameToInsert;
columnNameToInsert = new DefaultMutableTreeNode(columnName);
dtm.insertNodeInto(columnNameToInsert, tableNameInsert,
- tableNameInsert.getChildCount());
+ tableNameInsert.getChildCount());
}
}
@@ -505,15 +595,15 @@
if (importer == null) {
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("notFoundPlugin.JOptionPaneTitle"),
- _("notFoundPlugin.JOptionPaneMessage"),
- JOptionPane.ERROR_MESSAGE);
- } else if (! bigTableIsSet()) {
+ _("notFoundPlugin.JOptionPaneMessage"),
+ _("notFoundPlugin.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
+ } else if (!bigTableIsSet()) {
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("unconnectedError.JOptionPaneTitle"),
- _("unconnectedError.JOptionPaneMessage"),
- JOptionPane.ERROR_MESSAGE);
-
+ _("unconnectedError.JOptionPaneMessage"),
+ _("unconnectedError.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
+
} else {
/** Create FileChooser and set FileFilter. */
@@ -523,7 +613,7 @@
/** ShowOpenDialog and get the return value. */
int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
- if( JFileChooser.APPROVE_OPTION == jfcReturn ) {
+ if (JFileChooser.APPROVE_OPTION == jfcReturn) {
lastPath = jfc.getSelectedFile().getAbsolutePath();
@@ -536,18 +626,18 @@
MainUI ui = MainUI.getInstance();
clean(ui);
uptableNavigationTree(ui.getNavigation(),
- importFile.getName());
+ importFile.getName());
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("importSuccessfull.JOptionPaneTitle"),
- _("importSuccessfull.JOptionPaneMessage"),
- JOptionPane.INFORMATION_MESSAGE);
+ _("importSuccessfull.JOptionPaneMessage"),
+ _("importSuccessfull.JOptionPaneTitle"),
+ JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
LOG.error(ex, ex);
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("importUnsuccessfull.JOptionPaneTitle"),
- _("importUnsuccessfull.JOptionPaneMessage"),
- JOptionPane.ERROR_MESSAGE);
+ _("importUnsuccessfull.JOptionPaneMessage"),
+ _("importUnsuccessfull.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
}
}
}
@@ -564,14 +654,14 @@
if (exporter == null) {
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("notFoundPlugin.JOptionPaneTitle"),
- _("notFoundPlugin.JOptionPaneMessage"),
- JOptionPane.ERROR_MESSAGE);
- } else if (! bigTableIsSet()) {
+ _("notFoundPlugin.JOptionPaneMessage"),
+ _("notFoundPlugin.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
+ } else if (!bigTableIsSet()) {
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("unconnectedError.JOptionPaneTitle"),
- _("unconnectedError.JOptionPaneMessage"),
- JOptionPane.ERROR_MESSAGE);
+ _("unconnectedError.JOptionPaneMessage"),
+ _("unconnectedError.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
} else {
/** Create FileChooser and set FileFilter. */
@@ -592,15 +682,15 @@
/** Export */
exporter.exportTo(bigTable, importFile);
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("exportSuccessfull.JOptionPaneTitle"),
- _("exportSuccessfull.JOptionPaneMessage"),
- JOptionPane.INFORMATION_MESSAGE);
+ _("exportSuccessfull.JOptionPaneMessage"),
+ _("exportSuccessfull.JOptionPaneTitle"),
+ JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
LOG.error(ex, ex);
JOptionPane.showMessageDialog(MainUI.getInstance(),
- _("exportUnsuccessfull.JOptionPaneTitle"),
- _("exportUnsuccessfull.JOptionPaneMessage"),
- JOptionPane.ERROR_MESSAGE);
+ _("exportUnsuccessfull.JOptionPaneMessage"),
+ _("exportUnsuccessfull.JOptionPaneTitle"),
+ JOptionPane.ERROR_MESSAGE);
}
}
}
1
0
r212 - in trunk/msm-fromtoXPP3/src: main/java/org/nuiton/mapstoragemanager/plugins/exporter main/java/org/nuiton/mapstoragemanager/plugins/importer test/java/org/nuiton/mapstoragemanager/plugins/exporter test/java/org/nuiton/mapstoragemanager/plugins/importer
by dlanglais@users.nuiton.org 11 Mar '10
by dlanglais@users.nuiton.org 11 Mar '10
11 Mar '10
Author: dlanglais
Date: 2010-03-11 08:30:09 +0100 (Thu, 11 Mar 2010)
New Revision: 212
Log:
Renommage de la classe de test FromXMLTest.java en FromXMLXPP3Test.java.
Ajout d'un g?\195?\169n?\195?\169rateur.
Test d'import/export avec 1 millions de lignes et 5 colonnes (un element par ligne) fichier produit de 150 Mo.
- ?\195?\169criture ~= 20 secondes.
- lecture ~= 15 secondes.
Donc, largement plus raisonnable qu'avec le plugin utilisant JDom.
Added:
trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/Generator.java
trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Test.java
Removed:
trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLTest.java
Modified:
trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java
trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java
Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java
===================================================================
--- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-11 06:52:56 UTC (rev 211)
+++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-11 07:30:09 UTC (rev 212)
@@ -51,7 +51,7 @@
*/
@Override
public final void exportTo(final BigTable bigTable, final File file) {
-
+
XmlSerializer serializer = null;
/**
* Initialisation of the serializer.
@@ -64,9 +64,11 @@
} catch (XmlPullParserException ex) {
LOG.fatal(ex, ex);
}
-
+
try {
-
+
+ final long t1 = System.currentTimeMillis();
+
serializer.setOutput(new FileWriter(file));
serializer.startTag(NAMESPACE, "database");
@@ -82,6 +84,9 @@
serializer.endDocument();
serializer.flush();
+
+ final long t2 = System.currentTimeMillis();
+ LOG.info("temps d'enregistrement : " + (t2 - t1) + " ms.");
} catch (IOException ex) {
LOG.fatal(ex, ex);
} catch (IllegalArgumentException ex) {
Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java
===================================================================
--- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java 2010-03-11 06:52:56 UTC (rev 211)
+++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3.java 2010-03-11 07:30:09 UTC (rev 212)
@@ -55,6 +55,9 @@
public void importFrom(BigTable bigTable, File file) {
try {
+
+ final long t1 = System.currentTimeMillis();
+
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);
//factory.setNamespaceAware(true);
factory.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
@@ -67,6 +70,8 @@
xpp.setInput(new FileReader(file));
app.processDocument(bigTable, xpp);
+ final long t2 = System.currentTimeMillis();
+ LOG.info("temps de chargement : " + (t2 - t1) + " ms.");
} catch (FileNotFoundException ex) {
LOG.fatal(ex, ex);
} catch (IOException ex) {
@@ -170,7 +175,7 @@
// attributes.get("value"));
// } else {
- LOG.info("Insert : " + attributes.get("table") + ":"
+ LOG.trace("Insert : " + attributes.get("table") + ":"
+ attributes.get("column") + ":"
+ attributes.get("key") + " -> "
+ attributes.get("value"));
@@ -213,8 +218,8 @@
*/
private boolean isState(ParsingState ... states) {
boolean isState = false;
- for (ParsingState state : states) {
- if (this.state.equals(state)) {
+ for (ParsingState parsingState : states) {
+ if (this.state.equals(parsingState)) {
isState = true;
}
}
Added: trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/Generator.java
===================================================================
--- trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/Generator.java (rev 0)
+++ trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/exporter/Generator.java 2010-03-11 07:30:09 UTC (rev 212)
@@ -0,0 +1,75 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.nuiton.mapstoragemanager.plugins.exporter;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Random;
+import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.plugins.Exporter;
+import org.nuiton.mapstoragemanager.plugins.bighashmapv2.BigHashMapV2;
+import org.nuiton.mapstoragemanager.plugins.getFile;
+
+/**
+ *
+ * @author Dorian Langlais
+ */
+public class Generator {
+
+ /**
+ * Logger.
+ */
+ private static final Log LOG = LogFactory.getLog(Generator.class);
+
+ public static void main(String[] args) {
+
+ BigTable bt = new BigHashMapV2();
+ String btName = "Random";
+ ArrayList<String> columnsNames = new ArrayList<String>();
+ columnsNames.add(0,"1er Quart");
+ columnsNames.add(1,"2nd Quart");
+ columnsNames.add(2,"3eme Quart");
+ columnsNames.add(3,"4eme Quart");
+
+ bt.createTable(btName);
+ bt.createColumn(btName, "Iteration");
+ bt.createColumn(btName, columnsNames.get(0));
+ bt.createColumn(btName, columnsNames.get(1));
+ bt.createColumn(btName, columnsNames.get(2));
+ bt.createColumn(btName, columnsNames.get(3));
+
+ Set<String> columns = bt.getColumnsNames(btName);
+ Integer nbIteration = 1000000;
+ Random random = new java.util.Random();
+ Double currentRandom;
+ int nbColumns = columns.size() - 1;
+
+ while (nbIteration-->0) {
+ currentRandom = random.nextDouble();
+
+ bt.put(
+ btName,
+ "Iteration",
+ nbIteration.toString(),
+ nbIteration.toString());
+
+ bt.put(
+ btName,
+ columnsNames.get((int) (currentRandom * nbColumns)),
+ nbIteration.toString(),
+ currentRandom.toString());
+ }
+
+ Exporter exporter = new ToXMLXPP3();
+ File exportTest =
+ getFile.getTestFile("/src/test/resources/generator.xml");
+ exporter.exportTo(bt,exportTest);
+// exportTest.delete();
+ }
+}
Deleted: trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLTest.java
===================================================================
--- trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLTest.java 2010-03-11 06:52:56 UTC (rev 211)
+++ trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLTest.java 2010-03-11 07:30:09 UTC (rev 212)
@@ -1,308 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.nuiton.mapstoragemanager.plugins.importer;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Set;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.mapstoragemanager.plugins.Importer;
-import org.nuiton.mapstoragemanager.plugins.BigTable;
-import org.nuiton.mapstoragemanager.plugins.Plugin;
-import org.nuiton.mapstoragemanager.plugins.bighashmapv2.BigHashMapV2;
-import org.nuiton.mapstoragemanager.plugins.getFile;
-
-/**
- *
- * @author Dorian Langlais
- */
-public class FromXMLTest extends TestCase {
-
- /**
- * Logger.
- */
- private static final Log LOG = LogFactory.getLog(FromXMLTest.class);
-
-// public void testImportFrom() {
-// Assert.fail();
-// }
-
- /**
- * Import the database from the file fiveTables.
- * Verify the content.
- */
- public void testImportFromFiveTables() {
-
- File fiveTables =
- getFile.getTestFile("/src/test/resources/fiveTables.xml");
-
- // import fiveTables.
- Importer importer = new FromXMLXPP3();
- BigTable bigTable = new BigHashMapV2();
-
- importer.importFrom(bigTable, fiveTables);
-
- /************************
- * Test Tables *
- ************************/
- Set<String> tableNamesExpected;
- {
- /**
- * Init tableNames.
- */
- tableNamesExpected = new HashSet<String>();
- tableNamesExpected.add("table1");
- tableNamesExpected.add("table2");
- tableNamesExpected.add("table3");
- tableNamesExpected.add("table4");
- tableNamesExpected.add("table5");
- }
- Set<String> tableNamesActual = bigTable.getTablesNames();
- assertEquals(tableNamesExpected, tableNamesActual);
-
-
- for (String tableName : tableNamesActual) {
- Set<String> columnNamesExpected = new HashSet<String>();
- assertEquals(columnNamesExpected,
- bigTable.getColumnsNames(tableName));
- }
- }
-
- /**
- * Import the database from the file fiveColumns.
- * Verify the content.
- */
- public void testImportFromFiveColumns() {
-
- File twoTablesFiveColumns =
- getFile.getTestFile("/src/test/resources/fiveColumns.xml");
-
- // import fiveTables.
- Importer importer = new FromXMLXPP3();
- BigTable bigTable = new BigHashMapV2();
-
- importer.importFrom(bigTable, twoTablesFiveColumns);
-
- /************************
- * Test Tables *
- ************************/
- Set<String> tableNamesExpected;
- {
- /**
- * Init tableNames.
- */
- tableNamesExpected = new HashSet<String>();
- tableNamesExpected.add("table1");
- tableNamesExpected.add("table2");
- }
- Set<String> tableNamesActual = bigTable.getTablesNames();
- assertEquals(tableNamesExpected, tableNamesActual);
-
- /************************
- * Test Columns *
- ************************/
- Map<String, Set<String>> columnNamesExpected;
- {
- /**
- * Init columnNames.
- */
- columnNamesExpected = new HashMap<String, Set<String>>();
- Set<String> table1ColumnNames = new HashSet<String>();
- table1ColumnNames.add("column1");
- table1ColumnNames.add("column2");
- Set<String> table2ColumnNames = new HashSet<String>();
- table2ColumnNames.add("column3");
- table2ColumnNames.add("column4");
- table2ColumnNames.add("column5");
- columnNamesExpected.put("table1", table1ColumnNames);
- columnNamesExpected.put("table2", table2ColumnNames);
- }
-
- Set<String> columnNamesActual;
- for (String tableName : tableNamesActual) {
- columnNamesActual = bigTable.getColumnsNames(tableName);
- assertEquals(columnNamesExpected.get(tableName), columnNamesActual);
- }
- }
-
- /**
- * Import the database from the file tenCells.
- * Verify the content.
- */
- public void testImportFromThreeTenCells() {
-
- File twoTablesFiveColumns =
- getFile.getTestFile("/src/test/resources/sixCells.xml");
-
- // import fiveTables.
- Importer importer = new FromXMLXPP3();
- BigTable bigTable = new BigHashMapV2();
-
- importer.importFrom(bigTable, twoTablesFiveColumns);
-
- /************************
- * Test Tables *
- ************************/
- Set<String> tableNamesExpected;
- {
- /**
- * Init tableNames.
- */
- tableNamesExpected = new HashSet<String>();
- tableNamesExpected.add("table1");
- tableNamesExpected.add("table2");
- }
- Set<String> tableNamesActual = bigTable.getTablesNames();
- assertEquals(tableNamesExpected, tableNamesActual);
-
- /************************
- * Test Columns *
- ************************/
- Map<String, Set<String>> columnNamesExpected;
- {
- /**
- * Init columnNames.
- */
- columnNamesExpected = new HashMap<String, Set<String>>();
- Set<String> table1ColumnNames = new HashSet<String>();
- table1ColumnNames.add("column1");
- Set<String> table2ColumnNames = new HashSet<String>();
- table2ColumnNames.add("column2");
- table2ColumnNames.add("column3");
- columnNamesExpected.put("table1", table1ColumnNames);
- columnNamesExpected.put("table2", table2ColumnNames);
- }
-
- Set<String> columnNamesActual;
- for (String tableName : tableNamesActual) {
- columnNamesActual = bigTable.getColumnsNames(tableName);
- assertEquals(columnNamesExpected.get(tableName), columnNamesActual);
- }
-
- /************************
- * Test Cells *
- ************************/
- Map<String, Map<String, Map<String, String>>> CellContentExpected;
- {
- /**
- * Init cellContent.
- */
- CellContentExpected = new HashMap<String,
- Map<String, Map<String, String>>>();
- // table 1.
- Map<String, Map<String, String>> table1 =
- new HashMap<String, Map<String, String>>();
- // column 1.
- Map<String,String> column1 = new HashMap<String, String>();
- column1.put("111", "111");
- table1.put("column1", column1);
- // table 2.
- Map<String, Map<String, String>> table2 =
- new HashMap<String, Map<String, String>>();
- // column 2.
- Map<String,String> column2 = new HashMap<String, String>();
- column2.put("221", "221");
- column2.put("222", "222");
- table2.put("column2", column2);
- // column 3.
- Map<String,String> column3 = new HashMap<String, String>();
- column3.put("231", "231");
- column3.put("232", "232");
- column3.put("233", "233");
- table2.put("column3", column3);
-
- CellContentExpected.put("table1", table1);
- CellContentExpected.put("table2", table2);
- LOG.info(CellContentExpected);
- }
-
- Set<String> tableKeys;
- String cellContentActual;
- String cellContentExpected = null;
- for (String tableName : tableNamesActual) {
- columnNamesActual = bigTable.getColumnsNames(tableName);
- tableKeys = bigTable.getKeys(tableName);
- for (String columnName : columnNamesActual) {
- for (String cellKey : tableKeys) {
-
- try {
- try{
- cellContentExpected =
- CellContentExpected
- .get(tableName)
- .get(columnName)
- .get(cellKey);
- } catch (NullPointerException ex) {
- LOG.trace(ex);
- }
-
- LOG.info(tableName + ' '
- + columnName + ' '
- + cellKey + ' '
- + cellContentExpected);
-
- cellContentActual =
- bigTable.get(tableName, columnName, cellKey);
- assertEquals(cellContentExpected, cellContentActual);
- } catch (NoSuchElementException ex) {
- if(cellContentExpected != null) {
- LOG.error(ex, ex);
- Assert.fail();
- } else {
- LOG.trace(ex);
- }
- }
- }
- }
- }
- }
-
- /**
- * Test of getPluginName().
- */
- public void testGetPluginName() {
- Plugin fromXML = new FromXMLXPP3();
- String expectedPluginName = fromXML.getClass().getSimpleName();
- String actualPluginName = fromXML.getPluginName();
- LOG.info("pluginName : {expected,'" + expectedPluginName
- + "'} - {actual,'" + actualPluginName + "'}");
- assertEquals(expectedPluginName, actualPluginName);
- }
-
- /**
- * Test of getFileFilter.
- */
- public void testGetFileFilter(){
-
- Importer fromXML = new FromXMLXPP3();
-
- FileNameExtensionFilter fileFilterExpected
- = new FileNameExtensionFilter("Fichiers XML", "xml");
- FileNameExtensionFilter fileFilterActual =
- (FileNameExtensionFilter) fromXML.getFileFilter();
-
- /** Same Description */
- assertEquals(fileFilterExpected.getDescription(),
- fileFilterActual.getDescription());
-
- /** get extension Set and assertEquals */
- Set<String> acceptedExtensionExpected = new HashSet<String>();
- Set<String> acceptedExtensionActual = new HashSet<String>();
- for (String extension : fileFilterExpected.getExtensions()) {
- acceptedExtensionExpected.add(extension);
- }
- for (String extension : fileFilterActual.getExtensions()) {
- acceptedExtensionActual.add(extension);
- }
- assertEquals(acceptedExtensionExpected, acceptedExtensionActual);
- }
-}
Added: trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Test.java
===================================================================
--- trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Test.java (rev 0)
+++ trunk/msm-fromtoXPP3/src/test/java/org/nuiton/mapstoragemanager/plugins/importer/FromXMLXPP3Test.java 2010-03-11 07:30:09 UTC (rev 212)
@@ -0,0 +1,308 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.nuiton.mapstoragemanager.plugins.importer;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+import javax.swing.filechooser.FileNameExtensionFilter;
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.mapstoragemanager.plugins.Importer;
+import org.nuiton.mapstoragemanager.plugins.BigTable;
+import org.nuiton.mapstoragemanager.plugins.Plugin;
+import org.nuiton.mapstoragemanager.plugins.bighashmapv2.BigHashMapV2;
+import org.nuiton.mapstoragemanager.plugins.getFile;
+
+/**
+ *
+ * @author Dorian Langlais
+ */
+public class FromXMLXPP3Test extends TestCase {
+
+ /**
+ * Logger.
+ */
+ private static final Log LOG = LogFactory.getLog(FromXMLXPP3Test.class);
+
+// public void testImportFrom() {
+// Assert.fail();
+// }
+
+ /**
+ * Import the database from the file fiveTables.
+ * Verify the content.
+ */
+ public void testImportFromFiveTables() {
+
+ File fiveTables =
+ getFile.getTestFile("/src/test/resources/fiveTables.xml");
+
+ // import fiveTables.
+ Importer importer = new FromXMLXPP3();
+ BigTable bigTable = new BigHashMapV2();
+
+ importer.importFrom(bigTable, fiveTables);
+
+ /************************
+ * Test Tables *
+ ************************/
+ Set<String> tableNamesExpected;
+ {
+ /**
+ * Init tableNames.
+ */
+ tableNamesExpected = new HashSet<String>();
+ tableNamesExpected.add("table1");
+ tableNamesExpected.add("table2");
+ tableNamesExpected.add("table3");
+ tableNamesExpected.add("table4");
+ tableNamesExpected.add("table5");
+ }
+ Set<String> tableNamesActual = bigTable.getTablesNames();
+ assertEquals(tableNamesExpected, tableNamesActual);
+
+
+ for (String tableName : tableNamesActual) {
+ Set<String> columnNamesExpected = new HashSet<String>();
+ assertEquals(columnNamesExpected,
+ bigTable.getColumnsNames(tableName));
+ }
+ }
+
+ /**
+ * Import the database from the file fiveColumns.
+ * Verify the content.
+ */
+ public void testImportFromFiveColumns() {
+
+ File twoTablesFiveColumns =
+ getFile.getTestFile("/src/test/resources/fiveColumns.xml");
+
+ // import fiveTables.
+ Importer importer = new FromXMLXPP3();
+ BigTable bigTable = new BigHashMapV2();
+
+ importer.importFrom(bigTable, twoTablesFiveColumns);
+
+ /************************
+ * Test Tables *
+ ************************/
+ Set<String> tableNamesExpected;
+ {
+ /**
+ * Init tableNames.
+ */
+ tableNamesExpected = new HashSet<String>();
+ tableNamesExpected.add("table1");
+ tableNamesExpected.add("table2");
+ }
+ Set<String> tableNamesActual = bigTable.getTablesNames();
+ assertEquals(tableNamesExpected, tableNamesActual);
+
+ /************************
+ * Test Columns *
+ ************************/
+ Map<String, Set<String>> columnNamesExpected;
+ {
+ /**
+ * Init columnNames.
+ */
+ columnNamesExpected = new HashMap<String, Set<String>>();
+ Set<String> table1ColumnNames = new HashSet<String>();
+ table1ColumnNames.add("column1");
+ table1ColumnNames.add("column2");
+ Set<String> table2ColumnNames = new HashSet<String>();
+ table2ColumnNames.add("column3");
+ table2ColumnNames.add("column4");
+ table2ColumnNames.add("column5");
+ columnNamesExpected.put("table1", table1ColumnNames);
+ columnNamesExpected.put("table2", table2ColumnNames);
+ }
+
+ Set<String> columnNamesActual;
+ for (String tableName : tableNamesActual) {
+ columnNamesActual = bigTable.getColumnsNames(tableName);
+ assertEquals(columnNamesExpected.get(tableName), columnNamesActual);
+ }
+ }
+
+ /**
+ * Import the database from the file tenCells.
+ * Verify the content.
+ */
+ public void testImportFromThreeTenCells() {
+
+ File twoTablesFiveColumns =
+ getFile.getTestFile("/src/test/resources/sixCells.xml");
+
+ // import fiveTables.
+ Importer importer = new FromXMLXPP3();
+ BigTable bigTable = new BigHashMapV2();
+
+ importer.importFrom(bigTable, twoTablesFiveColumns);
+
+ /************************
+ * Test Tables *
+ ************************/
+ Set<String> tableNamesExpected;
+ {
+ /**
+ * Init tableNames.
+ */
+ tableNamesExpected = new HashSet<String>();
+ tableNamesExpected.add("table1");
+ tableNamesExpected.add("table2");
+ }
+ Set<String> tableNamesActual = bigTable.getTablesNames();
+ assertEquals(tableNamesExpected, tableNamesActual);
+
+ /************************
+ * Test Columns *
+ ************************/
+ Map<String, Set<String>> columnNamesExpected;
+ {
+ /**
+ * Init columnNames.
+ */
+ columnNamesExpected = new HashMap<String, Set<String>>();
+ Set<String> table1ColumnNames = new HashSet<String>();
+ table1ColumnNames.add("column1");
+ Set<String> table2ColumnNames = new HashSet<String>();
+ table2ColumnNames.add("column2");
+ table2ColumnNames.add("column3");
+ columnNamesExpected.put("table1", table1ColumnNames);
+ columnNamesExpected.put("table2", table2ColumnNames);
+ }
+
+ Set<String> columnNamesActual;
+ for (String tableName : tableNamesActual) {
+ columnNamesActual = bigTable.getColumnsNames(tableName);
+ assertEquals(columnNamesExpected.get(tableName), columnNamesActual);
+ }
+
+ /************************
+ * Test Cells *
+ ************************/
+ Map<String, Map<String, Map<String, String>>> CellContentExpected;
+ {
+ /**
+ * Init cellContent.
+ */
+ CellContentExpected = new HashMap<String,
+ Map<String, Map<String, String>>>();
+ // table 1.
+ Map<String, Map<String, String>> table1 =
+ new HashMap<String, Map<String, String>>();
+ // column 1.
+ Map<String,String> column1 = new HashMap<String, String>();
+ column1.put("111", "111");
+ table1.put("column1", column1);
+ // table 2.
+ Map<String, Map<String, String>> table2 =
+ new HashMap<String, Map<String, String>>();
+ // column 2.
+ Map<String,String> column2 = new HashMap<String, String>();
+ column2.put("221", "221");
+ column2.put("222", "222");
+ table2.put("column2", column2);
+ // column 3.
+ Map<String,String> column3 = new HashMap<String, String>();
+ column3.put("231", "231");
+ column3.put("232", "232");
+ column3.put("233", "233");
+ table2.put("column3", column3);
+
+ CellContentExpected.put("table1", table1);
+ CellContentExpected.put("table2", table2);
+ LOG.info(CellContentExpected);
+ }
+
+ Set<String> tableKeys;
+ String cellContentActual;
+ String cellContentExpected = null;
+ for (String tableName : tableNamesActual) {
+ columnNamesActual = bigTable.getColumnsNames(tableName);
+ tableKeys = bigTable.getKeys(tableName);
+ for (String columnName : columnNamesActual) {
+ for (String cellKey : tableKeys) {
+
+ try {
+ try{
+ cellContentExpected =
+ CellContentExpected
+ .get(tableName)
+ .get(columnName)
+ .get(cellKey);
+ } catch (NullPointerException ex) {
+ LOG.trace(ex);
+ }
+
+ LOG.info(tableName + ' '
+ + columnName + ' '
+ + cellKey + ' '
+ + cellContentExpected);
+
+ cellContentActual =
+ bigTable.get(tableName, columnName, cellKey);
+ assertEquals(cellContentExpected, cellContentActual);
+ } catch (NoSuchElementException ex) {
+ if(cellContentExpected != null) {
+ LOG.error(ex, ex);
+ Assert.fail();
+ } else {
+ LOG.trace(ex);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Test of getPluginName().
+ */
+ public void testGetPluginName() {
+ Plugin fromXML = new FromXMLXPP3();
+ String expectedPluginName = fromXML.getClass().getSimpleName();
+ String actualPluginName = fromXML.getPluginName();
+ LOG.info("pluginName : {expected,'" + expectedPluginName
+ + "'} - {actual,'" + actualPluginName + "'}");
+ assertEquals(expectedPluginName, actualPluginName);
+ }
+
+ /**
+ * Test of getFileFilter.
+ */
+ public void testGetFileFilter(){
+
+ Importer fromXML = new FromXMLXPP3();
+
+ FileNameExtensionFilter fileFilterExpected
+ = new FileNameExtensionFilter("Fichiers XML", "xml");
+ FileNameExtensionFilter fileFilterActual =
+ (FileNameExtensionFilter) fromXML.getFileFilter();
+
+ /** Same Description */
+ assertEquals(fileFilterExpected.getDescription(),
+ fileFilterActual.getDescription());
+
+ /** get extension Set and assertEquals */
+ Set<String> acceptedExtensionExpected = new HashSet<String>();
+ Set<String> acceptedExtensionActual = new HashSet<String>();
+ for (String extension : fileFilterExpected.getExtensions()) {
+ acceptedExtensionExpected.add(extension);
+ }
+ for (String extension : fileFilterActual.getExtensions()) {
+ acceptedExtensionActual.add(extension);
+ }
+ assertEquals(acceptedExtensionExpected, acceptedExtensionActual);
+ }
+}
1
0
r211 - in trunk: msm/src/main/java/org/nuiton/mapstoragemanager/ui msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui msm/src/main/resources/i18n msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter
by dlanglais@users.nuiton.org 11 Mar '10
by dlanglais@users.nuiton.org 11 Mar '10
11 Mar '10
Author: dlanglais
Date: 2010-03-11 07:52:56 +0100 (Thu, 11 Mar 2010)
New Revision: 211
Log:
Modification de l'int?\195?\169gration des plugins d'import/export dans l'application :
- Suppression des JInternalFrame contenant un menu d?\195?\169roulant (noms des plugins d'im/export) et un bouton permettant de lancer l'im/export ;
- Remplac?\195?\169 par deux sous-menu fichier Im/Export contenant un JMenuItem pour chaque plugin assurant l'im/export.
Am?\195?\169lioration (avec JOptionPane) :
- Il n'est plus possible de im/exporter une base si l'on n'est pas connect?\195?\169 ?\195?\160 une base (cela g?\195?\169n?\195?\169rait une NullPointerException...),
- V?\195?\169rification que le plugin d'im/export est bien trouv?\195?\169,
- ?\195?\160 la fin de l'import/export on avertit l'utilisateur du succ?\195?\168s ou de l'echec de l'op?\195?\169ration.
Modified:
trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx
trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java
trunk/msm/src/main/resources/i18n/msm-en_GB.properties
trunk/msm/src/main/resources/i18n/msm-fr_FR.properties
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css 2010-03-11 01:13:57 UTC (rev 210)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.css 2010-03-11 06:52:56 UTC (rev 211)
@@ -49,14 +49,14 @@
mnemonic:D;
}
-#menuImport {
+#menuImport, #menuImportBis {
text:"mapstoragemanager.action.import";
toolTipText:"mapstoragemanager.action.import.tip";
actionIcon:"databaseImport_16";
mnemonic:I;
}
-#menuExport {
+#menuExport, #menuExportBis {
text:"mapstoragemanager.action.export";
toolTipText:"mapstoragemanager.action.export.tip";
actionIcon:"databaseExport_16";
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx 2010-03-11 01:13:57 UTC (rev 210)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/MainUI.jaxx 2010-03-11 06:52:56 UTC (rev 211)
@@ -95,6 +95,14 @@
m.start();
}
+public void doActionPerformed__on__menuImport2(java.awt.event.ActionEvent event) {
+ engine.showImportFrame();
+}
+
+public void doActionPerformed__on__menuExport2(java.awt.event.ActionEvent event) {
+ engine.showExportFrame();
+}
+
/**
* Test.
*/
@@ -117,10 +125,13 @@
<JMenuItem id='menuDisconnect' enabled='false'
onActionPerformed='engine.disposeToolBar()'/>
<JSeparator/>
- <JMenuItem id='menuImport'
+ <!--JMenuItem id='menuImport'
onActionPerformed='engine.showImportFrame()'/>
<JMenuItem id='menuExport'
onActionPerformed='engine.showExportFrame()'/>
+ <JSeparator/-->
+ <JMenu id='menuImportBis' enabled='false'/>
+ <JMenu id='menuExportBis' enabled='false'/>
<JSeparator/>
<JMenuItem id='menuExit'
onActionPerformed='engine.close()'/>
Modified: trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java
===================================================================
--- trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-03-11 01:13:57 UTC (rev 210)
+++ trunk/msm/src/main/java/org/nuiton/mapstoragemanager/ui/gui/ApplicationEngine.java 2010-03-11 06:52:56 UTC (rev 211)
@@ -1,12 +1,15 @@
package org.nuiton.mapstoragemanager.ui.gui;
import java.awt.Desktop;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Locale;
import java.util.Properties;
import javax.swing.JFileChooser;
+import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
@@ -130,18 +133,40 @@
ui.getNameBase().setSelectedItem(bigTableItem);
}
for (Plugin imPlugin : pluginLoader.getAllPlugin(Importer.class)) {
- String imName = imPlugin.getPluginName();
- jaxx.runtime.swing.Item importerItem =
- new jaxx.runtime.swing.Item(imName, null, imName, true);
- ui.getImporter().addItem(importerItem);
- ui.getImporter().setSelectedItem(importerItem);
+ final String imName = imPlugin.getPluginName();
+// jaxx.runtime.swing.Item importerItem =
+// new jaxx.runtime.swing.Item(imName, null, imName, true);
+// ui.getImporter().addItem(importerItem);
+// ui.getImporter().setSelectedItem(importerItem);
+
+ JMenuItem menuItem = new JMenuItem(imName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ importBase(imName);
+ }
+ });
+ ui.getMenuImportBis().add(menuItem);
+ ui.getMenuImportBis ().setEnabled(true);
}
for (Plugin exPlugin : pluginLoader.getAllPlugin(Exporter.class)) {
- String exName = exPlugin.getPluginName();
- jaxx.runtime.swing.Item exporterItem =
- new jaxx.runtime.swing.Item(exName, null, exName, true);
- ui.getExporter().addItem(exporterItem);
- ui.getExporter().setSelectedItem(exporterItem);
+ final String exName = exPlugin.getPluginName();
+// jaxx.runtime.swing.Item exporterItem =
+// new jaxx.runtime.swing.Item(exName, null, exName, true);
+// ui.getExporter().addItem(exporterItem);
+// ui.getExporter().setSelectedItem(exporterItem);
+
+ JMenuItem menuItem = new JMenuItem(exName);
+ menuItem.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ exportBase(exName);
+ }
+ });
+ ui.getMenuExportBis().add(menuItem);
+ ui.getMenuExportBis().setEnabled(true);
}
for (Plugin exPlugin : pluginLoader.getAllPlugin(Monitoring.class)) {
Monitoring monitor = (Monitoring) exPlugin;
@@ -413,57 +438,179 @@
Item selectedItem = ui.getImporter().getSelectedJaxxItem();
String importerName = selectedItem.getValue().toString();
+ this.importBase(importerName);
+// Importer importer = (Importer) pluginLoader.getPlugin(importerName);
+//
+// /** Create FileChooser and set FileFilter. */
+// JFileChooser jfc = new JFileChooser(lastPath);
+// jfc.setFileFilter(importer.getFileFilter());
+//
+// /** ShowOpenDialog and get the return value. */
+// int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
+//
+// if( JFileChooser.APPROVE_OPTION == jfcReturn ) {
+//
+// lastPath = jfc.getSelectedFile().getAbsolutePath();
+//
+// File importFile = jfc.getSelectedFile();
+// LOG.info("chosen file for import : " + importFile.getPath());
+//
+// /** Import. */
+// importer.importFrom(bigTable, importFile);
+// clean(ui);
+// uptableNavigationTree(ui.getNavigation(), importFile.getName());
+// }
+ }
+
+ /**
+ * Export the database into a file.
+ */
+ public void exportBase() {
+
+ /** Get exporter plugin. */
+ MainUI ui = MainUI.getInstance();
+ Item selectedItem = ui.getExporter().getSelectedJaxxItem();
+ String exporterName = selectedItem.getValue().toString();
+
+ this.exportBase(exporterName);
+// Exporter exporter = (Exporter) pluginLoader.getPlugin(exporterName);
+//
+// /** Create FileChooser and set FileFilter. */
+// JFileChooser jfc = new JFileChooser(lastPath);
+// jfc.setFileFilter(exporter.getFileFilter());
+//
+// /** ShowOpenDialog and get the return value. */
+// int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
+//
+// if (JFileChooser.APPROVE_OPTION == jfcReturn) {
+//
+// lastPath = jfc.getSelectedFile().getAbsolutePath();
+//
+// File importFile = jfc.getSelectedFile();
+// LOG.info("chosen file for export : " + importFile.getPath());
+//
+// /** Export */
+// exporter.exportTo(bigTable, importFile);
+// }
+ }
+
+ /**
+ * Import database from a file.
+ * @param importName the name of the importer plugin.
+ */
+ public void importBase(final String importerName) {
+
+ /** Get importer plugin. */
Importer importer = (Importer) pluginLoader.getPlugin(importerName);
- /** Create FileChooser and set FileFilter. */
- JFileChooser jfc = new JFileChooser(lastPath);
- jfc.setFileFilter(importer.getFileFilter());
-
- /** ShowOpenDialog and get the return value. */
- int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
-
- if( JFileChooser.APPROVE_OPTION == jfcReturn ) {
+ if (importer == null) {
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("notFoundPlugin.JOptionPaneTitle"),
+ _("notFoundPlugin.JOptionPaneMessage"),
+ JOptionPane.ERROR_MESSAGE);
+ } else if (! bigTableIsSet()) {
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("unconnectedError.JOptionPaneTitle"),
+ _("unconnectedError.JOptionPaneMessage"),
+ JOptionPane.ERROR_MESSAGE);
- lastPath = jfc.getSelectedFile().getAbsolutePath();
+ } else {
- File importFile = jfc.getSelectedFile();
- LOG.info("chosen file for import : " + importFile.getPath());
+ /** Create FileChooser and set FileFilter. */
+ JFileChooser jfc = new JFileChooser(lastPath);
+ jfc.setFileFilter(importer.getFileFilter());
- /** Import. */
- importer.importFrom(bigTable, importFile);
- clean(ui);
- uptableNavigationTree(ui.getNavigation(), importFile.getName());
+ /** ShowOpenDialog and get the return value. */
+ int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
+
+ if( JFileChooser.APPROVE_OPTION == jfcReturn ) {
+
+ lastPath = jfc.getSelectedFile().getAbsolutePath();
+
+ File importFile = jfc.getSelectedFile();
+ LOG.info("chosen file for import : " + importFile.getPath());
+
+ try {
+ /** Import. */
+ importer.importFrom(bigTable, importFile);
+ MainUI ui = MainUI.getInstance();
+ clean(ui);
+ uptableNavigationTree(ui.getNavigation(),
+ importFile.getName());
+
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("importSuccessfull.JOptionPaneTitle"),
+ _("importSuccessfull.JOptionPaneMessage"),
+ JOptionPane.INFORMATION_MESSAGE);
+ } catch (Exception ex) {
+ LOG.error(ex, ex);
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("importUnsuccessfull.JOptionPaneTitle"),
+ _("importUnsuccessfull.JOptionPaneMessage"),
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
}
}
/**
* Export the database into a file.
+ * @param exporterName the name of the exporter plugin.
*/
- public void exportBase() {
+ public void exportBase(final String exporterName) {
/** Get exporter plugin. */
- MainUI ui = MainUI.getInstance();
- Item selectedItem = ui.getExporter().getSelectedJaxxItem();
- String exporterName = selectedItem.getValue().toString();
-
Exporter exporter = (Exporter) pluginLoader.getPlugin(exporterName);
- /** Create FileChooser and set FileFilter. */
- JFileChooser jfc = new JFileChooser(lastPath);
- jfc.setFileFilter(exporter.getFileFilter());
+ if (exporter == null) {
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("notFoundPlugin.JOptionPaneTitle"),
+ _("notFoundPlugin.JOptionPaneMessage"),
+ JOptionPane.ERROR_MESSAGE);
+ } else if (! bigTableIsSet()) {
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("unconnectedError.JOptionPaneTitle"),
+ _("unconnectedError.JOptionPaneMessage"),
+ JOptionPane.ERROR_MESSAGE);
+ } else {
- /** ShowOpenDialog and get the return value. */
- int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
+ /** Create FileChooser and set FileFilter. */
+ JFileChooser jfc = new JFileChooser(lastPath);
+ jfc.setFileFilter(exporter.getFileFilter());
- if (JFileChooser.APPROVE_OPTION == jfcReturn) {
+ /** ShowOpenDialog and get the return value. */
+ int jfcReturn = jfc.showOpenDialog(MainUI.getFrames()[0]);
- lastPath = jfc.getSelectedFile().getAbsolutePath();
+ if (JFileChooser.APPROVE_OPTION == jfcReturn) {
- File importFile = jfc.getSelectedFile();
- LOG.info("chosen file for export : " + importFile.getPath());
+ lastPath = jfc.getSelectedFile().getAbsolutePath();
- /** Export */
- exporter.exportTo(bigTable, importFile);
+ File importFile = jfc.getSelectedFile();
+ LOG.info("chosen file for export : " + importFile.getPath());
+
+ try {
+ /** Export */
+ exporter.exportTo(bigTable, importFile);
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("exportSuccessfull.JOptionPaneTitle"),
+ _("exportSuccessfull.JOptionPaneMessage"),
+ JOptionPane.INFORMATION_MESSAGE);
+ } catch (Exception ex) {
+ LOG.error(ex, ex);
+ JOptionPane.showMessageDialog(MainUI.getInstance(),
+ _("exportUnsuccessfull.JOptionPaneTitle"),
+ _("exportUnsuccessfull.JOptionPaneMessage"),
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
}
}
+
+ /**
+ * Method to control if the bigtable is set.
+ * @return true if bigTable is set, false otherwise.
+ */
+ public boolean bigTableIsSet() {
+ return this.bigTable != null;
+ }
}
Modified: trunk/msm/src/main/resources/i18n/msm-en_GB.properties
===================================================================
--- trunk/msm/src/main/resources/i18n/msm-en_GB.properties 2010-03-11 01:13:57 UTC (rev 210)
+++ trunk/msm/src/main/resources/i18n/msm-en_GB.properties 2010-03-11 06:52:56 UTC (rev 211)
@@ -19,7 +19,7 @@
mapstoragemanager.action.exit=Exit
mapstoragemanager.action.exit.tip=
mapstoragemanager.action.export=Export
-mapstoragemanager.action.export.tip=
+mapstoragemanager.action.export.tip=Export the base
mapstoragemanager.action.file=File
mapstoragemanager.action.file.tip=
mapstoragemanager.action.fr=French
@@ -27,7 +27,7 @@
mapstoragemanager.action.help=Help
mapstoragemanager.action.help.tip=
mapstoragemanager.action.import=Import
-mapstoragemanager.action.import.tip=
+mapstoragemanager.action.import.tip=Import the base
mapstoragemanager.action.language=Choose language
mapstoragemanager.action.language.tip=
mapstoragemanager.action.menuHelp=Help
@@ -52,3 +52,16 @@
table.keys=Keys
table.values=Values
welcome.MapStorageManager=Welcome to MapStorageManager
+
+unconnectedError.JOptionPaneTitle=No bigtable connected !
+unconnectedError.JOptionPaneMessage=No bigtable connected !
+notFoundPlugin.JOptionPaneTitle=Plugin not found !
+notFoundPlugin.JOptionPaneMessage=Plugin not found !
+importSuccessfull.JOptionPaneTitle=Import successfully proceded.
+importSuccessfull.JOptionPaneMessage=Import successfully proceded.
+exportSuccessfull.JOptionPaneTitle=Export successfully proceded.
+exportSuccessfull.JOptionPaneMessage=Export successfully proceded.
+importUnsuccessfull.JOptionPaneTitle=Exception while import.
+importUnsuccessfull.JOptionPaneMessage=An exception occured while import database.
+exportUnsuccessfull.JOptionPaneTitle=Exception while export.
+exportUnsuccessfull.JOptionPaneMessage=An exception occured while export database.
\ No newline at end of file
Modified: trunk/msm/src/main/resources/i18n/msm-fr_FR.properties
===================================================================
--- trunk/msm/src/main/resources/i18n/msm-fr_FR.properties 2010-03-11 01:13:57 UTC (rev 210)
+++ trunk/msm/src/main/resources/i18n/msm-fr_FR.properties 2010-03-11 06:52:56 UTC (rev 211)
@@ -19,7 +19,7 @@
mapstoragemanager.action.exit=Quitter
mapstoragemanager.action.exit.tip=Quitte l'application
mapstoragemanager.action.export=Exporter
-mapstoragemanager.action.export.tip=
+mapstoragemanager.action.export.tip=Exporter la base
mapstoragemanager.action.file=Fichier
mapstoragemanager.action.file.tip=
mapstoragemanager.action.fr=Fran\u00E7ais
@@ -27,7 +27,7 @@
mapstoragemanager.action.help=Aide
mapstoragemanager.action.help.tip=
mapstoragemanager.action.import=Importer
-mapstoragemanager.action.import.tip=
+mapstoragemanager.action.import.tip=Import la base
mapstoragemanager.action.language=Choisir la langue
mapstoragemanager.action.language.tip=
mapstoragemanager.action.menuHelp=Aide
@@ -52,3 +52,16 @@
table.keys=Cl\u00E9s
table.values=Valeurs
welcome.MapStorageManager=Bienvenue dans MapStorageManager
+
+unconnectedError.JOptionPaneTitle=Connect\u00E9 \u00E0 aucune base !
+unconnectedError.JOptionPaneMessage=Connect\u00E9 \u00E0 aucune base !
+notFoundPlugin.JOptionPaneTitle=Plugin non trouv\u00E9 !
+notFoundPlugin.JOptionPaneMessage=Plugin non trouv\u00E9 !
+importSuccessfull.JOptionPaneTitle=Import r\u00E9alis\u00E9 avec succ\u00E8s.
+importSuccessfull.JOptionPaneMessage=Import r\u00E9alis\u00E9 avec succ\u00E8s.
+exportSuccessfull.JOptionPaneTitle=Export r\u00E9alis\u00E9 avec succ\u00E8s.
+exportSuccessfull.JOptionPaneMessage=Export r\u00E9alis\u00E9 avec succ\u00E8s.
+importUnsuccessfull.JOptionPaneTitle=Exception durant l'import.
+importUnsuccessfull.JOptionPaneMessage=Une exception s'est produite lors de l'import de la base.
+exportUnsuccessfull.JOptionPaneTitle=Exception durant l'export.
+exportUnsuccessfull.JOptionPaneMessage=Une exception s'est produite lors de l'export de la base.
\ No newline at end of file
Modified: trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java
===================================================================
--- trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-11 01:13:57 UTC (rev 210)
+++ trunk/msm-fromtoXPP3/src/main/java/org/nuiton/mapstoragemanager/plugins/exporter/ToXMLXPP3.java 2010-03-11 06:52:56 UTC (rev 211)
@@ -80,7 +80,8 @@
serializer.endTag(NAMESPACE, "database");
serializer.endDocument();
-
+
+ serializer.flush();
} catch (IOException ex) {
LOG.fatal(ex, ex);
} catch (IllegalArgumentException ex) {
1
0
r210 - trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring
by dlanglais@users.nuiton.org 11 Mar '10
by dlanglais@users.nuiton.org 11 Mar '10
11 Mar '10
Author: dlanglais
Date: 2010-03-11 02:13:57 +0100 (Thu, 11 Mar 2010)
New Revision: 210
Log:
modification :
- Arrondi des espaces m?\195?\169moires en Go (2 chiffres apr?\195?\168s la virgule).
- Suppression magic numbers.
Correction :
- la fermeture de la fen?\195?\170tre du plugin fermait l'application enti?\195?\168re..
Modified:
trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java
Modified: trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java
===================================================================
--- trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java 2010-03-10 22:50:08 UTC (rev 209)
+++ trunk/msm-monitoring-plugins/src/main/java/org/nuiton/monitoring/ShowDiskSpace.java 2010-03-11 01:13:57 UTC (rev 210)
@@ -2,6 +2,7 @@
import java.awt.GridLayout;
import java.io.File;
+import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -17,64 +18,94 @@
* Number for division byte -> Mb -> Gb.
*/
private static final int DIV = 1024;
-
/**
+ * Width of the frame.
+ */
+ private static final int FRAME_WIDTH = 300;
+ /**
+ * Height of the frame.
+ */
+ private static final int FRAME_HEIGHT = 300;
+
+ /**
* Constructor.
*/
- public ShowDiskSpace(){
+ public ShowDiskSpace() {
}
-
+
/**
* Display.
*/
@Override
- public void display(){
- this.setTitle("Plugin ShowDiskSpace");
- this.setSize(300, 300);
- this.setLocationRelativeTo(null);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ public void display() {
- JPanel content = new JPanel();
- File f = new File(new File("").getAbsolutePath()).getParentFile();
- if (f.exists()) {
- long freeSpaceByte = f.getFreeSpace();
- long totalSpaceByte = f.getTotalSpace();
- long usableSpaceByte = f.getUsableSpace();
- double freeSpaceMb = freeSpaceByte / (DIV * DIV);
- double totalSpaceMb = totalSpaceByte / (DIV * DIV);
- double usableSpaceMb = usableSpaceByte / (DIV * DIV);
- double freeSpaceGb = freeSpaceMb / DIV;
- double totalSpaceGb = totalSpaceMb / DIV;
- double usableSpaceGb = usableSpaceMb / DIV;
- content.setLayout(new GridLayout(7,1));
+ this.setTitle("Plugin ShowDiskSpace");
+ this.setSize(FRAME_WIDTH, FRAME_HEIGHT);
+ this.setLocationRelativeTo(null);
+// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // exit MSM...
+
+ JPanel content = new JPanel();
+ File f = new File(new File("").getAbsolutePath()).getParentFile();
+ if (f.exists()) {
+
+ final long freeSpaceByte = f.getFreeSpace();
+ final long totalSpaceByte = f.getTotalSpace();
+ final long usableSpaceByte = f.getUsableSpace();
+
+ final double freeSpaceMb = freeSpaceByte / (DIV * DIV);
+ final double totalSpaceMb = totalSpaceByte / (DIV * DIV);
+ final double usableSpaceMb = usableSpaceByte / (DIV * DIV);
+
+ final double freeSpaceGb = freeSpaceMb / DIV;
+ final double totalSpaceGb = totalSpaceMb / DIV;
+ final double usableSpaceGb = usableSpaceMb / DIV;
+
+ final int rows = 7, cols = 1;
+ content.setLayout(new GridLayout(rows, cols));
+
content.add(new JLabel(
- "freeSpace : " + freeSpaceMb + " Mb (" + freeSpaceGb + " Gb)"));
+ "freeSpace : " + freeSpaceMb + " Mb ("
+ + new DecimalFormat("0.00").format(freeSpaceGb) + " Gb)"));
content.add(new JLabel(
- "totalSpace : " + totalSpaceMb + " Mb (" + totalSpaceGb + " Gb)"));
+ "totalSpace : " + totalSpaceMb + " Mb ("
+ + new DecimalFormat("0.00").format(totalSpaceGb) + " Gb)"));
content.add(new JLabel(
- "usableSpace : " + usableSpaceMb + " Mb (" + usableSpaceGb + " Gb)"));
+ "usableSpace : " + usableSpaceMb + " Mb ("
+ + new DecimalFormat("0.00").format(usableSpaceGb) + " Gb)"));
content.add(new JLabel(""));
- }
- Runtime runtime = Runtime.getRuntime();
- long freeMemoryByte = runtime.freeMemory();
- long totalMemoryByte = runtime.totalMemory();
- long maxMemoryByte = runtime.maxMemory();
- double freeMemoryMb = freeMemoryByte/(DIV*DIV);
- double totalMemoryMb = totalMemoryByte/(DIV*DIV);
- double maxMemoryMb = maxMemoryByte/(DIV*DIV);
- double freeMemoryGb = freeMemoryMb/DIV;
- double totalMemoryGb = totalMemoryMb/DIV;
- double maxMemoryGb = maxMemoryMb/DIV;
- content.add(new JLabel(
- "freeMemory : " + freeMemoryMb + " Mb (" + freeMemoryGb + " Gb)"));
- content.add(new JLabel(
- "totalMemory : " + totalMemoryMb + " Mb (" + totalMemoryGb + " Gb)"));
- content.add(new JLabel(
- "maxMemory : " + maxMemoryMb + " Mb (" + maxMemoryGb + " Gb)"));
- this.setContentPane(content);
- this.pack();
- this.setVisible(true);
+ } else {
+ final int rows = 3, cols = 1;
+ content.setLayout(new GridLayout(rows, cols));
+ }
+
+ Runtime runtime = Runtime.getRuntime();
+
+ final long freeMemoryByte = runtime.freeMemory();
+ final long totalMemoryByte = runtime.totalMemory();
+ final long maxMemoryByte = runtime.maxMemory();
+
+ final double freeMemoryMb = freeMemoryByte / (DIV * DIV);
+ final double totalMemoryMb = totalMemoryByte / (DIV * DIV);
+ final double maxMemoryMb = maxMemoryByte / (DIV * DIV);
+
+ final double freeMemoryGb = freeMemoryMb / DIV;
+ final double totalMemoryGb = totalMemoryMb / DIV;
+ final double maxMemoryGb = maxMemoryMb / DIV;
+
+ content.add(new JLabel(
+ "freeMemory : " + freeMemoryMb + " Mb (" +
+ new DecimalFormat("0.00").format(freeMemoryGb) + " Gb)"));
+ content.add(new JLabel(
+ "totalMemory : " + totalMemoryMb + " Mb (" +
+ new DecimalFormat("0.00").format(totalMemoryGb) + " Gb)"));
+ content.add(new JLabel(
+ "maxMemory : " + maxMemoryMb + " Mb (" +
+ new DecimalFormat("0.00").format(maxMemoryGb) + " Gb)"));
+
+ this.setContentPane(content);
+ this.pack();
+ this.setVisible(true);
}
public String getPluginName() {
1
0