diff --git a/prism/src/settings/BooleanSetting.java b/prism/src/settings/BooleanSetting.java index 9150a55e..efb97a41 100644 --- a/prism/src/settings/BooleanSetting.java +++ b/prism/src/settings/BooleanSetting.java @@ -30,14 +30,7 @@ public class BooleanSetting extends Setting { private static BooleanRenderer renderer; private static BooleanEditor editor; - - static - { - renderer = new BooleanRenderer(); - editor = new BooleanEditor(); - } - - + /** Creates a new instance of BooleanSetting */ public BooleanSetting(String name, Boolean value, String comment, SettingOwner owner, boolean editableWhenMultiple) { @@ -51,11 +44,17 @@ public class BooleanSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new BooleanEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new BooleanRenderer(); + } return renderer; } diff --git a/prism/src/settings/ChoiceSetting.java b/prism/src/settings/ChoiceSetting.java index dd180164..41c65a38 100644 --- a/prism/src/settings/ChoiceSetting.java +++ b/prism/src/settings/ChoiceSetting.java @@ -29,29 +29,25 @@ package settings; public class ChoiceSetting extends Setting { private static ChoiceRenderer renderer; - - - static - { - renderer = new ChoiceRenderer(); - } - - + private String[]values; - private ChoiceEditor editor; //editor is not static, we need one editor for each object + /** + * Editor for these settings. + * It is not static, as we need one editor for each object. + * Delayed allocation on first use, so we don't allocate on headless use. + */ + private ChoiceEditor editor; /** Creates a new instance of ChoiceSetting */ public ChoiceSetting(String name, String[]values, String value, String comment, SettingOwner owner, boolean editableWhenMultiple) { super(name, value, comment, owner, editableWhenMultiple); - editor = new ChoiceEditor(values); this.values = values; } public ChoiceSetting(String name, String[]values, String value, String comment, SettingOwner owner, boolean editableWhenMultiple, StringConstraint constraint) { super(name, value, comment, owner, editableWhenMultiple, constraint); - editor = new ChoiceEditor(values); this.values = values; } @@ -72,11 +68,17 @@ public class ChoiceSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new ChoiceEditor(values); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new ChoiceRenderer(); + } return renderer; } diff --git a/prism/src/settings/ColorSetting.java b/prism/src/settings/ColorSetting.java index f5c7a98e..bce285a3 100644 --- a/prism/src/settings/ColorSetting.java +++ b/prism/src/settings/ColorSetting.java @@ -33,13 +33,7 @@ public class ColorSetting extends Setting { private static ColorRenderer renderer; private static ColorEditor editor; - - static - { - renderer = new ColorRenderer(); - editor = new ColorEditor(); - } - + /** Creates a new instance of ColorSetting */ public ColorSetting(String name, Color value, String comment, SettingOwner owner, boolean editableWhenMultiple) { @@ -54,11 +48,17 @@ public class ColorSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new ColorEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new ColorRenderer(); + } return renderer; } diff --git a/prism/src/settings/DoubleSetting.java b/prism/src/settings/DoubleSetting.java index a2685b52..4f3ccc18 100644 --- a/prism/src/settings/DoubleSetting.java +++ b/prism/src/settings/DoubleSetting.java @@ -30,14 +30,7 @@ public class DoubleSetting extends Setting { private static DoubleRenderer renderer; private static DoubleEditor editor; - - static - { - renderer = new DoubleRenderer(); - editor = new DoubleEditor(); - } - - + /** Creates a new instance of DoubleSetting */ public DoubleSetting(String name, Double value, String comment, SettingOwner owner, boolean editableWhenMultiple, NumericConstraint constraint) { @@ -51,11 +44,17 @@ public class DoubleSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new DoubleEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new DoubleRenderer(); + } return renderer; } diff --git a/prism/src/settings/FontColorSetting.java b/prism/src/settings/FontColorSetting.java index 525e26fb..96b53022 100644 --- a/prism/src/settings/FontColorSetting.java +++ b/prism/src/settings/FontColorSetting.java @@ -33,14 +33,7 @@ public class FontColorSetting extends Setting { private static FontColorRenderer renderer; private static FontColorEditor editor; - - static - { - renderer = new FontColorRenderer(); - editor = new FontColorEditor(); - } - - + /** Creates a new instance of FontColorSetting */ public FontColorSetting(String name, FontColorPair value, String comment, SettingOwner owner, boolean editableWhenMultiple) { @@ -54,11 +47,17 @@ public class FontColorSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new FontColorEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new FontColorRenderer(); + } return renderer; } diff --git a/prism/src/settings/IntegerSetting.java b/prism/src/settings/IntegerSetting.java index 1fec6327..e28ed4ad 100644 --- a/prism/src/settings/IntegerSetting.java +++ b/prism/src/settings/IntegerSetting.java @@ -30,14 +30,7 @@ public class IntegerSetting extends Setting { private static IntegerRenderer renderer; private static IntegerEditor editor; - - static - { - renderer = new IntegerRenderer(); - editor = new IntegerEditor(); - } - - + /** Creates a new instance of DoubleSetting */ public IntegerSetting(String name, Integer value, String comment, SettingOwner owner, boolean editableWhenMultiple) { @@ -51,11 +44,17 @@ public class IntegerSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new IntegerEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new IntegerRenderer(); + } return renderer; } diff --git a/prism/src/settings/LongSetting.java b/prism/src/settings/LongSetting.java index 3cceb0f1..d3eec188 100644 --- a/prism/src/settings/LongSetting.java +++ b/prism/src/settings/LongSetting.java @@ -30,14 +30,7 @@ public class LongSetting extends Setting { private static LongRenderer renderer; private static LongEditor editor; - - static - { - renderer = new LongRenderer(); - editor = new LongEditor(); - } - - + /** Creates a new instance of LongSetting */ public LongSetting(String name, Long value, String comment, SettingOwner owner, boolean editableWhenMultiple) { @@ -51,11 +44,17 @@ public class LongSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new LongEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new LongRenderer(); + } return renderer; } diff --git a/prism/src/settings/MultipleLineStringSetting.java b/prism/src/settings/MultipleLineStringSetting.java index 7bfa33cf..229c3c97 100644 --- a/prism/src/settings/MultipleLineStringSetting.java +++ b/prism/src/settings/MultipleLineStringSetting.java @@ -30,14 +30,7 @@ public class MultipleLineStringSetting extends Setting { private static MultipleLineStringRenderer renderer; private static MultipleLineStringEditor editor; - - static - { - renderer = new MultipleLineStringRenderer(); - editor = new MultipleLineStringEditor(); - } - - + /** Creates a new instance of MultipleLineStringSetting */ public MultipleLineStringSetting(String name, String value, String comment, SettingOwner owner, boolean editableWhenMultiple) { @@ -51,11 +44,17 @@ public class MultipleLineStringSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new MultipleLineStringEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new MultipleLineStringRenderer(); + } return renderer; } diff --git a/prism/src/settings/SingleLineStringSetting.java b/prism/src/settings/SingleLineStringSetting.java index d846bb31..5a56f513 100644 --- a/prism/src/settings/SingleLineStringSetting.java +++ b/prism/src/settings/SingleLineStringSetting.java @@ -31,14 +31,6 @@ public class SingleLineStringSetting extends Setting private static SingleLineStringRenderer renderer; private static SingleLineStringEditor editor; - static - { - renderer = new SingleLineStringRenderer(); - editor = new SingleLineStringEditor(); - } - - - /** Creates a new instance of SingleLineStringSetting */ public SingleLineStringSetting(String name, String value, String comment, SettingOwner owner, boolean editableWhenMultiple, StringConstraint constraint) { @@ -52,11 +44,17 @@ public class SingleLineStringSetting extends Setting public SettingEditor getSettingEditor() { + if (editor == null) { + editor = new SingleLineStringEditor(); + } return editor; } public SettingRenderer getSettingRenderer() { + if (renderer == null) { + renderer = new SingleLineStringRenderer(); + } return renderer; }