1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
| package utilitaire;
import java.util.Properties;
import java.io.*;
import java.sql.*;
import javax.swing.*;
import java.lang.Runtime;
import java.awt.*;
import java.net.*;
public class Setup{ // cette classe sera appelé au tout début du programme de manière à setuper celui ci selon des valeurs prédéfinis et de connecter le programme à la BDD
public static boolean firstUse; // première utilisation oui ou non
public static int taillex; // longueur fenetre
public static int tailley; // largeur fenetre
public static int tailleminix;// longueur mini fenetre
public static int tailleminiy;// largeur mini fenetre
public static int couleurr; //
public static int couleurv; // couleur rvb tu fonds
public static int couleurb; //
public static Color c; // couleur crée
public static int sleepTime; // temps d'arret pour démarage wamp en ms
public static String driver; // nom du driver de la base de donnée ne devra jamais etre accessible à l'utilisateur uniquement modification via ce fichier
public static String cheminbdd; // nom du driver
public static String bdduser; //nom de l'utilisateur par lequel on va se connecter à la base de donnée
public static String bddpassword; // mot de passe avec lequel on va se connecter à la base de donnée
public static Statement stLienBd; // lien qui nous permet d'interoger la base de donnée
public static Connection connexion;
public static String wampPath;
public static int btn_larg; // largeur des boutons
public static int btn_haut; // longueur des boutons
public static int btn_mini_larg;// largeur des boutons mini
public static int btn_mini_haut;// longueur des boutons mini
public static Runtime runtime; // permettra d'effectuer des lancement de programme externe à Java et Aurora
private static Properties prop;// permettra de recuperer les données a partir d'un fichier
private static FileInputStream in; // pour gérer l'entree du fichier
private static FileOutputStream out;// pour gérer les sorties du fichier
public static void getSetup()
{
//verifInstance();//verifie si l'instance existe ou pas
setVariable(); // setup des variables a partir du .properties
if (firstUse==false)// si ce n'est pas la premier utilisation alors lancement normal
{
lanceWamp(); // lancement de wampserver avec mysql...
lanceBdd(); // mise en place de la connexion à la base de données
}
else
{
firstuse(); // j'appelle la fonction qui gerera cela
}
}
//------------------------------------------------------------------------------
// procédure pour récupérer les variables
//fonctionnement du config.properties:
// _ c'est le meme principe qu'un fichier.ini
// _ dans le fichier on met par exemple " ip : 192.168.0.1 " ip est la clé et 192.168.0.1 la valeur... grace à ce système on peut récuperer les valeurs des clés donc de nos config
// _ ce système fonctionne si le fichier est caché ou non
// _ pour mettre des commentaires simplement utiliser --
// _ si vous attribuer une valeur nulle ou "" à une chaine alors ne remplissez pas la valeur
public static void setVariable()
{
prop = new Properties(); // classe de configuration java
runtime = Runtime.getRuntime();
try
{
in = new FileInputStream("./propriete/config.properties"); // ouverture du fichier config.txt
prop.load(in); // lecture du fichier et mise en memoire dans le fichier prop donc fichier de configuration
//---------------------------------------------------------------------------------
// recupération dans le .properties
int tempfirstuse=Integer.parseInt(prop.getProperty("firstuse"));
if (tempfirstuse==1)
{
firstUse=true;
}
else
{
firstUse=false;
}
taillex = Integer.parseInt(prop.getProperty("taillex")); // je récupere la valeur de la clé "taillex", comme il s'agit d'une chaine de doit le caster en entier pour cela je passe par la methode parseint de la classe integer
tailley = Integer.parseInt(prop.getProperty("tailley")); // je recupere la valeur de la clé "tailley"
tailleminix = Integer.parseInt(prop.getProperty("tailleminix"));
tailleminiy = Integer.parseInt(prop.getProperty("tailleminiy"));
couleurr= Integer.parseInt(prop.getProperty("couleurr"));
couleurv= Integer.parseInt(prop.getProperty("couleurv"));
couleurb= Integer.parseInt(prop.getProperty("couleurb"));
c = new Color(Setup.couleurr,Setup.couleurv,Setup.couleurb);
sleepTime= Integer.parseInt(prop.getProperty("sleeptime"));
driver = prop.getProperty("driver");
cheminbdd = prop.getProperty("cheminbdd");
bdduser = prop.getProperty("bdduser");
bddpassword = prop.getProperty("bddpassword");
wampPath = prop.getProperty("wampPath"); // récupération du chemin pour accéder à wamp
btn_larg= Integer.parseInt(prop.getProperty("btn_larg"));
btn_haut= Integer.parseInt(prop.getProperty("btn_haut"));
btn_mini_larg= Integer.parseInt(prop.getProperty("btn_mini_larg"));
btn_mini_haut= Integer.parseInt(prop.getProperty("btn_mini_haut"));
in.close();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,
"erreur lors du chargement des donnees de configuration : "+e,
"Erreur externe : connexion fichier config.properties",
JOptionPane.ERROR_MESSAGE);
}
}
//-----------------------------------------------------------------------------------------
// procédure permettant de gérer la modification du fichier .properties
public static void modifVariable(String clé, String value)
{
try
{
out=new FileOutputStream("./propriete/config.properties");
prop.setProperty(clé,value);
prop.store(out,"Fichier de configuration");
out.close();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,
"erreur lors de la modification des donnees de configuration : "+e,
"Erreur externe : modification fichier config.properties",
JOptionPane.ERROR_MESSAGE);
}
}
//--------------------------------------------------------------------------------------------
// procédure pour gérer la première utilisation
public static void firstuse() // fonction gerant tous les premieres choses à faire lors du premier lancement
{
Dimension d=new Dimension(Toolkit.getDefaultToolkit().getScreenSize());
Double hauteur=new Double(d.getHeight());
Double largeur=new Double(d.getWidth());
int haut=hauteur.intValue()-30;
int larg=largeur.intValue();
String h=""+haut;
String l=""+larg;
modifVariable("taillex",l);
modifVariable("tailley",h);
modifVariable("firstuse","0"); // firstuse pas a faux
JOptionPane.showMessageDialog(null,
"Bienvenue et merci d'avoir choisit aurora ",
"Bienvenue",
JOptionPane.INFORMATION_MESSAGE);
setVariable();
lanceBdd();
lanceWamp();
}
//---------------------------------------------------------------------------------------
// procédure qui me permettra de modifier le .bat dans wamp qui possède une erreur, si je
// ne précise pas l'adresse de wampserver... il ne le trouve pas il faut donc modifier la ligne
// START wampserver par START C:/wamp/wampserver
public static void creationWampBat()
{
}
//---------------------------------------------------------------
// procédure pour lancer la base de donnée
public static void lanceBdd()
{
try
{
Class.forName(driver);
}
catch (ClassNotFoundException e)
{
JOptionPane.showMessageDialog(null,
"erreur chargement du driver d'attaque de la base de donnee : " + e,
"Erreur interne : utilisation driver",
JOptionPane.ERROR_MESSAGE);
}
try
{
connexion=DriverManager.getConnection(cheminbdd,bdduser,bddpassword);
stLienBd=connexion.createStatement();
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null,
"impossibilite de se connecter a la base de donnee : le serveur (wamperver.exe) est il lance ? "+e,
"Erreur interne : connexion base de donnée",
JOptionPane.ERROR_MESSAGE);
}
}
//---------------------------------------------------------------------------------------
// procedure pour lancer wamp
public static void lanceWamp()
{
String lancementWamp=wampPath + "/launch_wampserver.bat";
try
{
runtime.exec(lancementWamp);
JOptionPane.showMessageDialog(null,
"La base de donnée se lance. \n veuillez patienter merci. ",
"Lancement wampserver",
JOptionPane.INFORMATION_MESSAGE);
Thread.sleep(sleepTime); // bloque le systeme le temps du lancement de wamp
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,
"erreurimpossibilité de lancer wampserver.exe : " + e,
"Erreur externe : lancement wampserver",
JOptionPane.ERROR_MESSAGE);
System.out.println(e);
}
}
//--------------------------------------------------------------------------------
// procédure pour vérifier si une autre instance est lancée...
public static void verifInstance()
{
}
} |
Partager