Premier commit - Inclusion dans le système git

This commit is contained in:
Mysaa 2021-05-23 20:59:39 +02:00
commit a6dd92269a
8 changed files with 247 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
.classpath
.project
.settings/
bin/

View File

@ -0,0 +1,13 @@
package com.bernard.inutil;
public class BinarYnutil {
public static int concat(byte b1,byte b2,byte b3,byte b4) {
return (int)b1 << 0x30 + (int)b2 << 0x20 + (int)b3 << 0x10 + (int)b4;
}
public static int concatInt(byte... data) {
assert data.length ==4;
return concat(data[0],data[1],data[2],data[3]);
}
}

View File

@ -0,0 +1,7 @@
package com.bernard.math.geom;
public interface Figure {
public boolean appartient(Point p);
}

View File

@ -0,0 +1,5 @@
package com.bernard.math.geom;
public class Map2D {
double[] data;
}

View File

@ -0,0 +1,9 @@
package com.bernard.math.geom;
public class Point {
double[] coords;
}

View File

@ -0,0 +1,76 @@
package com.bernard.util;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public abstract class BaseFrame<Configuration> extends JFrame implements ActionListener
{
/**
* Just for eclipse to shut up
*/
private static final long serialVersionUID = -2440841592914910177L;
/**
* Create and show a frame which is centered and which has the
* EXIT_ON_CLOSE default close operation with the given parameters
* @param title The frame's title
* @param width The frame width
* @param height The frame height
*/
public BaseFrame(String title, int width, int height)
{
this(title, width, height, true);
}
/**
* Create and show a frame which is centered and which has the
* EXIT_ON_CLOSE default close operation with the given parameters
* @param title The frame's title
* @param dimension The frame dimensions (int casted)
*/
public BaseFrame(String title, Dimension dimension)
{
this(title, dimension, true);
}
/**
* Create a frame which is centered and which has the
* EXIT_ON_CLOSE default close operation with the given parameters
* @param title The frame's title
* @param dimension The frame dimensions (int casted)
* @param visible Must the frame be visible once constructed ?
*/
public BaseFrame(String title, Dimension dimension, boolean visible)
{
this(title, (int)dimension.getWidth(), (int)dimension.getHeight(), visible);
}
/**
* Create a frame which is centered and which has the
* EXIT_ON_CLOSE default close operation with the given parameters
* @param title The frame's title
* @param width The frame width
* @param height The frame height
* @param visible Must the frame be visible once constructed ?
*/
public BaseFrame(String title, int width, int height, boolean visible)
{
this.setTitle(title);
this.setSize(width, height);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init();
this.setVisible(visible);
}
/**
* In this method, do all the stuff for drawing components (pannels,layouts) an make them active (Listeners)
*/
public abstract void init();
}

View File

@ -0,0 +1,95 @@
package com.bernard.util;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import org.ho.yaml.Yaml;
public abstract class ConfiguredFrame<Configuration> extends JFrame implements ActionListener {
/**
* Just for eclipse to shut up
*/
private static final long serialVersionUID = -2440841592914910177L;
private final String defaultConfigPath = "config.yml";
private Configuration config = getConfig();
private Class<?> configurationClass;
public ConfiguredFrame(String title,int width,int height,Class<?> configClass) {
configurationClass = configClass;
this.setTitle(title);
this.setSize(width,height);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
super.windowClosing(arg0);
end();
}
});
init();
this.setVisible(true);
}
public abstract void init();
/**
* To be overrided : default output : "config.yml"
* @return the yaml config file path (relative or absolute)
*/
public String getConfigPath(){
return "config.yml";
}
@SuppressWarnings("unchecked")//Les tests sont faits
public Configuration getConfig(){
File configFile = new File(getConfigPath());
if(configFile.exists()){
Configuration out;
try {
out = (Configuration)Yaml.load(configFile);
return out;
} catch (FileNotFoundException e) {//TODO add others errors witch need to be catched
error("Fichier non trouvé", "Le fichier n'a pas été trouvé");
}catch(ClassCastException e){
error("Fichier corrompu","Le fichier de configuration (\""+configFile.getPath()+"\") est corrompu : supprimez ou remplacez le");
}
}else{
try {
return (Configuration) configurationClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
error("Impossible de créer le fichier de configuration","La configuration n'a pas pu être créée : verifiez que le paramêtre configClass représente une classe accessible et instanciable sans arguments.");
} catch (ClassCastException e) {
error("Non correspondance","Le type génerique \"Configuration\" et l'objet configurationClass ne correspondent pas");
}
}
return null;
}
private void error(String title,String description){
JOptionPane.showMessageDialog(null,description,title,JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
public void end(){
try {
Yaml.dump(config, new File(defaultConfigPath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Override
public abstract void actionPerformed(ActionEvent e);
}

View File

@ -0,0 +1,38 @@
package com.bernard.util;
import java.awt.Frame;
import javax.swing.JDialog;
public class ErrorDialog extends JDialog{
/**
* JFESU
*/
private static final long serialVersionUID = 5223556105926415144L;
private Exception exception;
public ErrorDialog(Exception e,Frame f) {
super(f,"A "+e.getClass().getName()+" occured",true);
exception = e;
this.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
this.setSize(500, 200);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(false);
this.initComponent();
}
private void initComponent() {
// TODO Auto-generated method stub
}
public ErrorDialog(Exception e) {
this(e,null);
}
}