diff --git a/build.gradle b/build.gradle index c3e2368..5621793 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,6 @@ jar { dependencies { implementation 'com.amihaiemil.web:eo-yaml:5.2.1' - implementation 'com.formdev:flatlaf:0.37' + implementation 'com.formdev:flatlaf:1.3' } diff --git a/murderator-config.yml b/murderator-config.yml new file mode 100644 index 0000000..560b3f6 --- /dev/null +++ b/murderator-config.yml @@ -0,0 +1,11 @@ +class: com.bernard.murder.Parametres +minielTitleFont: + name: Dialog + style: 1 + size: 12 +textPanMinielBackgroundColor: 0xffffe085 +textPanMinielTextColor: 0xff274290 +minielMinSize: 200x300 +minielParLigne: 2 +lignesDeMinielAvantScroll: 2 +lookAndFeel: "flatlaf-light" diff --git a/src/main/java/com/bernard/murder/BytesUtils.java b/src/main/java/com/bernard/murder/BytesUtils.java deleted file mode 100755 index a89a5d7..0000000 --- a/src/main/java/com/bernard/murder/BytesUtils.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bernard.murder; - -import java.nio.ByteBuffer; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.Stream.Builder; - -public class BytesUtils { - - public static String readString(ByteBuffer buffer) { - int stringLength = buffer.getInt(); - byte[] stringData = new byte[stringLength]; - buffer.get(stringData); - return new String(stringData); - } - - public static void writeString(ByteBuffer buffer, String s) { - byte[] data = s.getBytes(); - buffer.putInt(data.length); - buffer.put(data); - } - - public static Stream toStream(ByteBuffer buffer){ - Builder bldr = Stream.builder(); - - for(Byte b: buffer.array()) - bldr.add(b); - - return bldr.build(); - } - - public static void dump(ByteBuffer buffer) { - System.out.println(toStream(buffer).limit(buffer.position()).map(b -> Integer.toString(Byte.toUnsignedInt(b))).collect(Collectors.joining(","))); - } - -} diff --git a/src/main/java/com/bernard/murder/FuncUtils.java b/src/main/java/com/bernard/murder/FuncUtils.java deleted file mode 100644 index 5033495..0000000 --- a/src/main/java/com/bernard/murder/FuncUtils.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.bernard.murder; - -import java.util.function.Function; - -public class FuncUtils { - - public static final Function compose(Function f,Function g) { - return f.compose(g); - } - - -} diff --git a/src/main/java/com/bernard/murder/Parametres.java b/src/main/java/com/bernard/murder/Parametres.java index 21f954e..db74a94 100644 --- a/src/main/java/com/bernard/murder/Parametres.java +++ b/src/main/java/com/bernard/murder/Parametres.java @@ -9,21 +9,31 @@ import java.util.Map; import javax.swing.UIManager; +import com.bernard.configurator.annotations.ConfigClass; + +@ConfigClass(requireOption = false) public class Parametres { - public static Font minielTitleFont = UIManager.getFont("Label.font"); - static { + public static Parametres instance; + + public Font minielTitleFont = UIManager.getFont("Label.font"); + + public Color textPanMinielBackgroundColor = new Color(0xFFE085); + public Color textPanMinielTextColor = new Color(0x274290); + + + public Dimension minielMinSize = new Dimension(200, 300); + public int minielParLigne = 2; + public int lignesDeMinielAvantScroll = 2; + + public String lookAndFeel = "flatlaf-darcula"; + + public Parametres() { Map ftAttrs = new HashMap<>(minielTitleFont.getAttributes()); ftAttrs.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); minielTitleFont = minielTitleFont.deriveFont(Font.BOLD).deriveFont(ftAttrs); } - public static Color textPanMinielBackgroundColor = new Color(0xFFE085); - public static Color textPanMinielTextColor = new Color(0x274290); - public static Dimension minielMinSize = new Dimension(200, 300); - public static int minielParLigne = 2; - public static int lignesDeMinielAvantScroll = 2; - } diff --git a/src/main/java/com/bernard/murder/ParseUtils.java b/src/main/java/com/bernard/murder/ParseUtils.java deleted file mode 100644 index 0d3bced..0000000 --- a/src/main/java/com/bernard/murder/ParseUtils.java +++ /dev/null @@ -1,184 +0,0 @@ -package com.bernard.murder; - -import java.awt.Color; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.time.Instant; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.util.Base64; -import java.util.Collection; -import java.util.Set; -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.function.Function; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import com.amihaiemil.eoyaml.Yaml; -import com.amihaiemil.eoyaml.YamlMapping; -import com.amihaiemil.eoyaml.YamlMappingBuilder; -import com.amihaiemil.eoyaml.YamlNode; -import com.amihaiemil.eoyaml.YamlSequence; -import com.amihaiemil.eoyaml.YamlSequenceBuilder; - -public class ParseUtils { - - - static Pattern timeLengthPattern = Pattern.compile("^(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s?)?$"); - - public static long parseTimeLength(String tl) { - Matcher mtch = timeLengthPattern.matcher(tl); - if(!mtch.matches())throw new IllegalArgumentException("La chaine de caractères «"+tl+"» ne décrit pas un intervalle de temps normalisé"); - int h = mtch.group(2)==null?0:Integer.parseInt(mtch.group(2)); - int m = mtch.group(4)==null?0:Integer.parseInt(mtch.group(4)); - int s = mtch.group(6)==null?0:Integer.parseInt(mtch.group(6)); - return (h*3600+m*60+s)*1000; - } - - public static T watch(T el) { - System.out.println(el); - return el; - } - - - public static String dumpTimeLength(long t) { - long h=t/1000/3600, m=t/1000/60%60, s=t/1000%60; - return (h!=0?h+"h":"" )+ (m!=0?m+"m":"")+(s!=0?s+"s":""); - } - - - public static String dumpHourDate(long t) { - return DateTimeFormatter.ISO_LOCAL_TIME.format(LocalTime.ofInstant(Instant.ofEpochMilli(t-t%1000), ZoneId.systemDefault())); - } - - - public static Set union(Collection c1, Collection c2){ - Set out = c1.stream().collect(Collectors.toSet()); - out.addAll(c2); - return out; - } - - public static boolean isSubWord(String word, String subword) { - int i=0,j=0; - while(true) { - if(i==subword.length())return true; - if(j==word.length())return false; - if(subword.charAt(i)==word.charAt(j))i++; - j++; - } - } - - public static boolean and(boolean[] bb) { - for(boolean b : bb) - if(!b)return false; - return true; - } - - - public static Set mappingStringKeys(YamlMapping mapping) throws IOException{ - return mapping.keys().stream().map(n ->n.asScalar().value()).collect(Collectors.toSet()); - } - - - public static Stream sequenceStream(YamlSequence sequence){ - return StreamSupport.stream(Spliterators.spliteratorUnknownSize(sequence.iterator(),Spliterator.ORDERED),false); - } - - public static Function wetherMapping(Function fnot,Function fyes){ - return n -> (n instanceof YamlMapping)?fyes.apply((YamlMapping)n):fnot.apply(n); - } - - public static Color randColor() { - return Color.getHSBColor((float) Math.random(), 1.0f, 1.0f); - } - public static Color randDarkColor() { - return Color.getHSBColor((float) Math.random(), 1.0f, 0.3f); - } - public static Color randDarkBlueColor() { - // 180° to 240° - return Color.getHSBColor( (float) (0.5f + 0.2f*Math.random()), 1.0f, 0.3f); - } - public static Color getContrastColor(Color color) { - double y = (299 * color.getRed() + 587 * color.getGreen() + 114 * color.getBlue()) / 1000; - return y >= 128 ? Color.black : Color.white; - } - - - public static final YamlMapping setToMapSS(Set nodes, Function key, Function value) { - YamlMappingBuilder builder = Yaml.createYamlMappingBuilder(); - for(M n : nodes) - builder = builder.add(key.apply(n), value.apply(n)); - return builder.build(); - } - public static final YamlMapping setToMapSY(Set nodes, Function key, Function value) { - YamlMappingBuilder builder = Yaml.createYamlMappingBuilder(); - for(M n : nodes) - builder = builder.add(key.apply(n), value.apply(n)); - return builder.build(); - } - public static final YamlMapping setToMapYS(Set nodes, Function key, Function value) { - YamlMappingBuilder builder = Yaml.createYamlMappingBuilder(); - for(M n : nodes) - builder = builder.add(key.apply(n), value.apply(n)); - return builder.build(); - } - public static final YamlMapping setToMapYY(Set nodes, Function key, Function value) { - YamlMappingBuilder builder = Yaml.createYamlMappingBuilder(); - for(M n : nodes) - builder = builder.add(key.apply(n), value.apply(n)); - return builder.build(); - } - public static final YamlSequence setToSeqY(Set nodes) { - YamlSequenceBuilder builder = Yaml.createYamlSequenceBuilder(); - for(YamlNode n : nodes) - builder = builder.add(n); - return builder.build(); - } - - public static final YamlSequence setToSeqS(Set nodes) { - YamlSequenceBuilder builder = Yaml.createYamlSequenceBuilder(); - for (String n : nodes) - builder = builder.add(n); - return builder.build(); - } - - public static final Object fromBase64(String s) throws ClassNotFoundException { - try { - byte[] data = Base64.getDecoder().decode(s); - ObjectInputStream ois; - ois = new ObjectInputStream(new ByteArrayInputStream(data)); - Object o = ois.readObject(); - ois.close(); - return o; - } catch (IOException e) { - System.err.println("Erreur dans la lecture de la chaine de caractères"); - e.printStackTrace(); - } - return null; - } - - public static final String toBase64(Serializable o) { - try { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ObjectOutputStream oos; - oos = new ObjectOutputStream(baos); - oos.writeObject(o); - oos.close(); - return Base64.getEncoder().encodeToString(baos.toByteArray()); - } catch (IOException e) { - System.err.println("Erreur dans l'écriture de la chaine de caractères"); - e.printStackTrace(); - } - return null; - } - -} diff --git a/src/main/java/com/bernard/murder/YamlUtils.java b/src/main/java/com/bernard/murder/YamlUtils.java deleted file mode 100755 index 39abdb6..0000000 --- a/src/main/java/com/bernard/murder/YamlUtils.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.bernard.murder; - -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.function.BiConsumer; -import java.util.function.BinaryOperator; -import java.util.function.Function; -import java.util.function.Supplier; -import java.util.stream.Collector; - -import com.amihaiemil.eoyaml.Yaml; -import com.amihaiemil.eoyaml.YamlMapping; -import com.amihaiemil.eoyaml.YamlMappingBuilder; -import com.amihaiemil.eoyaml.YamlNode; -import com.amihaiemil.eoyaml.YamlSequence; -import com.amihaiemil.eoyaml.YamlSequenceBuilder; - - -public class YamlUtils { - - public static final YamlSequence listToSeq(List nodes) { - YamlSequenceBuilder ysb = Yaml.createYamlSequenceBuilder(); - for(YamlNode n : nodes) - ysb = ysb.add(n); - return ysb.build(); - } - - public static final YamlSequence listToSeqString(List nodes) { - YamlSequenceBuilder ysb = Yaml.createYamlSequenceBuilder(); - for(String n : nodes) - ysb = ysb.add(n); - return ysb.build(); - } - - public static final YamlMapping mapToMapping(Map nodes) { - YamlMappingBuilder ysb = Yaml.createYamlMappingBuilder(); - for(Entry n : nodes.entrySet()) - ysb = ysb.add(n.getKey(),n.getValue()); - return ysb.build(); - } - - public static final YamlMapping mapToMapping(Map map,Function fKey,Function fVal) { - YamlMappingBuilder ysb = Yaml.createYamlMappingBuilder(); - for(Entry e : map.entrySet()) - ysb.add(fKey.apply(e.getKey()), fVal.apply(e.getValue())); - return ysb.build(); - } - - public static final YamlNode scalar(Object in) { - return Yaml.createYamlScalarBuilder().addLine(in.toString()).buildPlainScalar(); - } - public static final YamlNode foldedScalar(String in) { - return Yaml.createYamlScalarBuilder().addLine(in).buildFoldedBlockScalar(); - } - - public static final YamlSequenceBuilder seqMerge(YamlSequenceBuilder ysba,YamlSequenceBuilder ysbb) { - for(YamlNode na : ysba.build().values()) - ysbb = ysbb.add(na); - return ysbb; - } - - public static final CollectorImpl sequenceCollector = - new CollectorImpl<>( - Yaml::createYamlSequenceBuilder, - YamlSequenceBuilder::add, - YamlUtils::seqMerge, - YamlSequenceBuilder::build, - Set.of(Collector.Characteristics.UNORDERED)); - - /** - * (Copied from Collectors class) - * Simple implementation class for {@code Collector}. - * - * @param the type of elements to be collected - * @param the type of the result - */ - static class CollectorImpl implements Collector { - private final Supplier supplier; - private final BiConsumer accumulator; - private final BinaryOperator combiner; - private final Function finisher; - private final Set characteristics; - - CollectorImpl(Supplier supplier, - BiConsumer accumulator, - BinaryOperator combiner, - Function finisher, - Set characteristics) { - this.supplier = supplier; - this.accumulator = accumulator; - this.combiner = combiner; - this.finisher = finisher; - this.characteristics = characteristics; - } - - @Override - public BiConsumer accumulator() { - return accumulator; - } - - @Override - public Supplier supplier() { - return supplier; - } - - @Override - public BinaryOperator combiner() { - return combiner; - } - - @Override - public Function finisher() { - return finisher; - } - - @Override - public Set characteristics() { - return characteristics; - } - } - -} diff --git a/src/main/java/com/bernard/murder/audio/AudioServer.java b/src/main/java/com/bernard/murder/audio/AudioServer.java index 75b582a..8e2fd3f 100755 --- a/src/main/java/com/bernard/murder/audio/AudioServer.java +++ b/src/main/java/com/bernard/murder/audio/AudioServer.java @@ -25,9 +25,9 @@ import com.amihaiemil.eoyaml.Yaml; import com.amihaiemil.eoyaml.YamlMapping; import com.amihaiemil.eoyaml.YamlNode; import com.amihaiemil.eoyaml.YamlSequenceBuilder; -import com.bernard.murder.BytesUtils; -import com.bernard.murder.ParseUtils; -import com.bernard.murder.YamlUtils; +import com.bernard.util.BytesUtils; +import com.bernard.util.ParseUtils; +import com.bernard.util.YamlUtils; public class AudioServer { diff --git a/src/main/java/com/bernard/murder/audio/MicServer.java b/src/main/java/com/bernard/murder/audio/MicServer.java index 34d8700..2442ab2 100755 --- a/src/main/java/com/bernard/murder/audio/MicServer.java +++ b/src/main/java/com/bernard/murder/audio/MicServer.java @@ -12,7 +12,7 @@ import java.util.UUID; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.TargetDataLine; -import com.bernard.murder.BytesUtils; +import com.bernard.util.BytesUtils; public class MicServer { diff --git a/src/main/java/com/bernard/murder/audio/Serveur.java b/src/main/java/com/bernard/murder/audio/Serveur.java index f1f4345..a455e43 100755 --- a/src/main/java/com/bernard/murder/audio/Serveur.java +++ b/src/main/java/com/bernard/murder/audio/Serveur.java @@ -14,8 +14,8 @@ import java.util.UUID; import java.util.function.BiConsumer; import java.util.function.Consumer; -import com.bernard.murder.BytesUtils; -import com.bernard.murder.ParseUtils; +import com.bernard.util.BytesUtils; +import com.bernard.util.ParseUtils; public class Serveur { diff --git a/src/main/java/com/bernard/murder/audio/SpeakerServer.java b/src/main/java/com/bernard/murder/audio/SpeakerServer.java index 4a2f2df..9e57cf2 100755 --- a/src/main/java/com/bernard/murder/audio/SpeakerServer.java +++ b/src/main/java/com/bernard/murder/audio/SpeakerServer.java @@ -15,7 +15,7 @@ import java.util.function.Consumer; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.SourceDataLine; -import com.bernard.murder.BytesUtils; +import com.bernard.util.BytesUtils; public class SpeakerServer { diff --git a/src/main/java/com/bernard/murder/game/GameCreator.java b/src/main/java/com/bernard/murder/game/GameCreator.java index c7f5213..eb286b4 100644 --- a/src/main/java/com/bernard/murder/game/GameCreator.java +++ b/src/main/java/com/bernard/murder/game/GameCreator.java @@ -1,10 +1,9 @@ package com.bernard.murder.game; -import static com.bernard.murder.ParseUtils.mappingStringKeys; -import static com.bernard.murder.ParseUtils.parseTimeLength; -import static com.bernard.murder.ParseUtils.sequenceStream; - -import static com.bernard.murder.ParseUtils.watch; +import static com.bernard.util.ParseUtils.mappingStringKeys; +import static com.bernard.util.ParseUtils.parseTimeLength; +import static com.bernard.util.ParseUtils.sequenceStream; +import static com.bernard.util.ParseUtils.watch; import java.io.File; import java.io.FileWriter; @@ -27,13 +26,13 @@ import com.amihaiemil.eoyaml.YamlMappingBuilder; import com.amihaiemil.eoyaml.YamlNode; import com.amihaiemil.eoyaml.YamlPrinter; import com.amihaiemil.eoyaml.YamlSequence; -import com.bernard.murder.ParseUtils; import com.bernard.murder.model.Action; import com.bernard.murder.model.Objet; import com.bernard.murder.model.Partie; import com.bernard.murder.model.Personnage; import com.bernard.murder.model.Piece; import com.bernard.murder.model.Status; +import com.bernard.util.ParseUtils; public class GameCreator { diff --git a/src/main/java/com/bernard/murder/view/LauncherFrame.java b/src/main/java/com/bernard/murder/view/LauncherFrame.java index 1f26d21..5f52b5d 100755 --- a/src/main/java/com/bernard/murder/view/LauncherFrame.java +++ b/src/main/java/com/bernard/murder/view/LauncherFrame.java @@ -2,6 +2,8 @@ package com.bernard.murder.view; import java.awt.GridLayout; import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.text.DateFormat; import java.util.Calendar; import java.util.List; @@ -15,25 +17,80 @@ import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; +import com.amihaiemil.eoyaml.Yaml; +import com.amihaiemil.eoyaml.YamlNode; +import com.amihaiemil.eoyaml.YamlPrinter; +import com.bernard.configurator.Configurator; +import com.bernard.murder.Parametres; import com.bernard.murder.game.GameCreator; import com.bernard.murder.game.GameCreator.QuicksavedPartie; import com.bernard.murder.game.GameManager; import com.bernard.murder.model.Partie; import com.bernard.murder.model.Personnage; import com.bernard.murder.view.minel.Minel; +import com.formdev.flatlaf.FlatDarculaLaf; +import com.formdev.flatlaf.FlatDarkLaf; +import com.formdev.flatlaf.FlatIntelliJLaf; +import com.formdev.flatlaf.FlatLightLaf; public class LauncherFrame extends JFrame{ private static final long serialVersionUID = 5831232688024137883L; + public static final String paramPath = "./murderator-config.yml"; + + public static void main2(String[] args) throws IOException { + File test = new File("/tmp/test.yml"); + YamlPrinter yp = Yaml.createYamlPrinter(new FileWriter(test)); + YamlNode theNode = Configurator.objectToNode(new Parametres()); + System.out.println(theNode); + yp.print(theNode); + System.out.println("--------------------------------------------"); + System.out.println("On tente de relire ..."); + Parametres params = Configurator.readYaml(theNode, Parametres.class); + System.out.println(params); + System.out.println("Terminé !"); + } + public static void main(String[] args) { + try { + File paramFile = new File(LauncherFrame.paramPath); + if(!paramFile.exists()) { + try { + YamlPrinter yp = Yaml.createYamlPrinter(new FileWriter(paramFile)); + yp.print(Configurator.objectToNode(new Parametres())); + } catch (IOException e) { + e.printStackTrace(); + } + } + YamlNode theConf = Yaml.createYamlInput(paramFile).readYamlMapping(); + Parametres.instance = (Parametres)Configurator.readYaml(theConf, Parametres.class); + } catch (Exception e) { + System.err.println("Impossible de lire les paramètres, on tombe sur les défauts."); + e.printStackTrace(); + Parametres.instance = new Parametres(); + } new LauncherFrame(); } public LauncherFrame() { try { //TODO implement flatlaf look&feel - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + if(Parametres.instance.lookAndFeel==null) + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + else + switch(Parametres.instance.lookAndFeel) { + case "flatlaf-light": + FlatLightLaf.install();break; + case "flatlaf-dark": + FlatDarkLaf.install();break; + case "flatlaf-intelliJ": + FlatIntelliJLaf.install();break; + case "flatlaf-darcula": + FlatDarculaLaf.install();break; + default: + UIManager.setLookAndFeel(Parametres.instance.lookAndFeel); + } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e1) { e1.printStackTrace(); } diff --git a/src/main/java/com/bernard/murder/view/MinelsCreator.java b/src/main/java/com/bernard/murder/view/MinelsCreator.java index 36213ae..fa39f21 100644 --- a/src/main/java/com/bernard/murder/view/MinelsCreator.java +++ b/src/main/java/com/bernard/murder/view/MinelsCreator.java @@ -14,7 +14,6 @@ import com.amihaiemil.eoyaml.YamlMapping; import com.amihaiemil.eoyaml.YamlMappingBuilder; import com.amihaiemil.eoyaml.YamlNode; import com.amihaiemil.eoyaml.YamlSequence; -import com.bernard.murder.YamlUtils; import com.bernard.murder.game.GameCreator.QuicksavedPartie; import com.bernard.murder.game.GameManager; import com.bernard.murder.model.Partie; @@ -25,6 +24,7 @@ import com.bernard.murder.view.minel.Minel; import com.bernard.murder.view.minel.ObjetSearchMinel; import com.bernard.murder.view.minel.ServeurMinel; import com.bernard.murder.view.minel.TextPanMinel; +import com.bernard.util.YamlUtils; public class MinelsCreator { diff --git a/src/main/java/com/bernard/murder/view/MurderatorGameFrame.java b/src/main/java/com/bernard/murder/view/MurderatorGameFrame.java index 7675db2..f3c1759 100755 --- a/src/main/java/com/bernard/murder/view/MurderatorGameFrame.java +++ b/src/main/java/com/bernard/murder/view/MurderatorGameFrame.java @@ -16,7 +16,6 @@ import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import com.bernard.murder.Parametres; -import com.bernard.murder.ParseUtils; import com.bernard.murder.game.GameCreator.QuicksavedPartie; import com.bernard.murder.game.GameManager; import com.bernard.murder.model.Partie; @@ -24,6 +23,7 @@ import com.bernard.murder.model.Personnage; import com.bernard.murder.util.view.MouseReactiveTabbedPane; import com.bernard.murder.util.view.ScrollablePanel; import com.bernard.murder.view.minel.Minel; +import com.bernard.util.ParseUtils; public class MurderatorGameFrame extends JFrame{ @@ -70,18 +70,18 @@ public class MurderatorGameFrame extends JFrame{ for(String s : minelsSup.keySet()) { //Calcul des dimensions max int minelCount = minelsSup.get(s).size(); - int lincount = (int) Math.ceil(((double)minelCount)/((double)Parametres.minielParLigne)); - ScrollablePanel centralLocalBpanPan = new ScrollablePanel(new GridLayout(lincount,Parametres.minielParLigne,-1,-1)); + int lincount = (int) Math.ceil(((double)minelCount)/((double)Parametres.instance.minielParLigne)); + ScrollablePanel centralLocalBpanPan = new ScrollablePanel(new GridLayout(lincount,Parametres.instance.minielParLigne,-1,-1)); centralLocalBpanPan.setScrollableWidth( ScrollablePanel.ScrollableSizeHint.FIT ); minelsSup.get(s).stream() .map(m -> m.genContentPane()) .forEach(mpan -> { centralLocalBpanPan.add(mpan); mpan.setBorder(BorderFactory.createLineBorder(ParseUtils.randDarkBlueColor(),3)); - mpan.setMinimumSize(Parametres.minielMinSize); + mpan.setMinimumSize(Parametres.instance.minielMinSize); } ); - if(lincount > Parametres.lignesDeMinielAvantScroll) { + if(lincount > Parametres.instance.lignesDeMinielAvantScroll) { JScrollPane jsp = new JScrollPane(centralLocalBpanPan,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); centerPan.insertTab(s,null,jsp,null,j++); @@ -93,19 +93,19 @@ public class MurderatorGameFrame extends JFrame{ //Calcul des dimensions max int minelCount = minels.get(p).size(); - int lincount = (int) Math.ceil(((double)minelCount)/((double)Parametres.minielParLigne)); - ScrollablePanel centralLocalBpanPan = new ScrollablePanel(new GridLayout(lincount,Parametres.minielParLigne,-1,-1)); + int lincount = (int) Math.ceil(((double)minelCount)/((double)Parametres.instance.minielParLigne)); + ScrollablePanel centralLocalBpanPan = new ScrollablePanel(new GridLayout(lincount,Parametres.instance.minielParLigne,-1,-1)); centralLocalBpanPan.setScrollableWidth( ScrollablePanel.ScrollableSizeHint.FIT ); minels.get(p).stream() .map(m -> m.genContentPane()) .forEach(mpan -> { centralLocalBpanPan.add(mpan); mpan.setBorder(BorderFactory.createLineBorder(ParseUtils.randDarkBlueColor(),3)); - mpan.setMinimumSize(Parametres.minielMinSize); + mpan.setMinimumSize(Parametres.instance.minielMinSize); } ); - if(lincount > Parametres.lignesDeMinielAvantScroll) { + if(lincount > Parametres.instance.lignesDeMinielAvantScroll) { JScrollPane jsp = new JScrollPane(centralLocalBpanPan,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); centerPan.insertTab(p.getNom(),null,jsp,null,j++); } else diff --git a/src/main/java/com/bernard/murder/view/minel/ActionsMinel.java b/src/main/java/com/bernard/murder/view/minel/ActionsMinel.java index f75074e..c5ed4b7 100755 --- a/src/main/java/com/bernard/murder/view/minel/ActionsMinel.java +++ b/src/main/java/com/bernard/murder/view/minel/ActionsMinel.java @@ -26,10 +26,10 @@ import com.amihaiemil.eoyaml.Yaml; import com.amihaiemil.eoyaml.YamlMapping; import com.amihaiemil.eoyaml.YamlMappingBuilder; import com.bernard.murder.Parametres; -import com.bernard.murder.ParseUtils; import com.bernard.murder.game.GameManager; import com.bernard.murder.model.Action; import com.bernard.murder.model.Personnage; +import com.bernard.util.ParseUtils; public class ActionsMinel extends Minel { @@ -100,7 +100,7 @@ public class ActionsMinel extends Minel { JScrollPane globalScroll = new JScrollPane(actionsListPan); JLabel titre = new JLabel("Actions de "+personnage.getNom(),JLabel.CENTER); - titre.setFont(Parametres.minielTitleFont); + titre.setFont(Parametres.instance.minielTitleFont); titre.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); globalPan.add(titre,BorderLayout.NORTH); diff --git a/src/main/java/com/bernard/murder/view/minel/InventaireMinel.java b/src/main/java/com/bernard/murder/view/minel/InventaireMinel.java index 76d7107..04b36a0 100644 --- a/src/main/java/com/bernard/murder/view/minel/InventaireMinel.java +++ b/src/main/java/com/bernard/murder/view/minel/InventaireMinel.java @@ -54,7 +54,7 @@ public class InventaireMinel extends Minel { titre = new JLabel(inv.getInventoryName(),JLabel.CENTER); else titre = new JLabel("Inventaire",JLabel.CENTER); - titre.setFont(Parametres.minielTitleFont); + titre.setFont(Parametres.instance.minielTitleFont); titre.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); globalpan.add(titre, BorderLayout.NORTH); diff --git a/src/main/java/com/bernard/murder/view/minel/ObjetSearchMinel.java b/src/main/java/com/bernard/murder/view/minel/ObjetSearchMinel.java index aed75c1..a8e237c 100755 --- a/src/main/java/com/bernard/murder/view/minel/ObjetSearchMinel.java +++ b/src/main/java/com/bernard/murder/view/minel/ObjetSearchMinel.java @@ -23,12 +23,12 @@ import com.amihaiemil.eoyaml.YamlMapping; import com.amihaiemil.eoyaml.YamlMappingBuilder; import com.amihaiemil.eoyaml.YamlNode; import com.bernard.murder.Parametres; -import com.bernard.murder.ParseUtils; -import com.bernard.murder.YamlUtils; import com.bernard.murder.game.GameManager; import com.bernard.murder.model.Inventaire; import com.bernard.murder.model.Objet; import com.bernard.murder.util.view.SimpleDocumentListener; +import com.bernard.util.ParseUtils; +import com.bernard.util.YamlUtils; public class ObjetSearchMinel extends Minel { @@ -65,7 +65,7 @@ public class ObjetSearchMinel extends Minel { JPanel globalPan = new JPanel(new BorderLayout()); JLabel titre = new JLabel("Recherche d'objets",JLabel.CENTER); - titre.setFont(Parametres.minielTitleFont); + titre.setFont(Parametres.instance.minielTitleFont); JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); diff --git a/src/main/java/com/bernard/murder/view/minel/ServeurMinel.java b/src/main/java/com/bernard/murder/view/minel/ServeurMinel.java index c6fe454..e4d8682 100755 --- a/src/main/java/com/bernard/murder/view/minel/ServeurMinel.java +++ b/src/main/java/com/bernard/murder/view/minel/ServeurMinel.java @@ -54,7 +54,7 @@ public class ServeurMinel extends Minel { JPanel panel = new JPanel(new BorderLayout()); JLabel titre = new JLabel("Status du serveur",JLabel.CENTER); - titre.setFont(Parametres.minielTitleFont); + titre.setFont(Parametres.instance.minielTitleFont); titre.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); micListe = new JList<>(); diff --git a/src/main/java/com/bernard/murder/view/minel/TextPanMinel.java b/src/main/java/com/bernard/murder/view/minel/TextPanMinel.java index 4336fdc..dd80793 100644 --- a/src/main/java/com/bernard/murder/view/minel/TextPanMinel.java +++ b/src/main/java/com/bernard/murder/view/minel/TextPanMinel.java @@ -33,7 +33,7 @@ public class TextPanMinel extends Minel { JPanel globalPan = new JPanel(new BorderLayout()); JLabel titre = new JLabel("Notes",JLabel.CENTER); - titre.setFont(Parametres.minielTitleFont); + titre.setFont(Parametres.instance.minielTitleFont); titre.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); @@ -42,8 +42,8 @@ public class TextPanMinel extends Minel { textArea.setText(""); textArea.setLineWrap(true); - textArea.setBackground(Parametres.textPanMinielBackgroundColor); - textArea.setForeground(Parametres.textPanMinielTextColor); + textArea.setBackground(Parametres.instance.textPanMinielBackgroundColor); + textArea.setForeground(Parametres.instance.textPanMinielTextColor); globalPan.add(titre,BorderLayout.NORTH); globalPan.add(new JScrollPane(textArea),BorderLayout.CENTER);