diff options
| author | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-11-26 12:09:38 +0900 |
|---|---|---|
| committer | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-11-26 12:09:38 +0900 |
| commit | 4ada6858039f3ca2f5de3c81df8c78f481d897d4 (patch) | |
| tree | ec8438ec41929552d74d9630525ad8fcd62594d4 /src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit | |
| parent | 49b083afffdf24f0bcd637909d15b88d9ed272b8 (diff) | |
| download | Skyblock-Dungeons-Guide-4ada6858039f3ca2f5de3c81df8c78f481d897d4.tar.gz Skyblock-Dungeons-Guide-4ada6858039f3ca2f5de3c81df8c78f481d897d4.tar.bz2 Skyblock-Dungeons-Guide-4ada6858039f3ca2f5de3c81df8c78f481d897d4.zip | |
value edit stuff
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit')
6 files changed, 136 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ActuallyClonable.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ActuallyClonable.java new file mode 100644 index 00000000..4473954e --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ActuallyClonable.java @@ -0,0 +1,5 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +public interface ActuallyClonable extends Cloneable { + public ActuallyClonable clone(); +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java new file mode 100644 index 00000000..dcff4ebd --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java @@ -0,0 +1,7 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import kr.syeyoung.dungeonsguide.roomedit.Parameter; + +public interface ValueEdit<T extends Object> { + public void setParameter(Parameter parameter); +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditCreator.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditCreator.java new file mode 100644 index 00000000..2991e03e --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditCreator.java @@ -0,0 +1,11 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import kr.syeyoung.dungeonsguide.roomedit.Parameter; + +public interface ValueEditCreator<T extends ValueEdit> { + public T createValueEdit(Parameter parameter); + + public Object createDefaultValue(Parameter parameter); + + public Object cloneObj(Object object); +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java new file mode 100644 index 00000000..42488e98 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java @@ -0,0 +1,15 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import kr.syeyoung.dungeonsguide.roomedit.Parameter; + +public class ValueEditNull implements ValueEditCreator { + @Override + public ValueEdit createValueEdit(Parameter parameter) { + return null; + } + + @Override + public ActuallyClonable createDefaultValue(Parameter parameter) { + return null; + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java new file mode 100644 index 00000000..72120c0f --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java @@ -0,0 +1,23 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ValueEditRegistry { + private static Map<String, ValueEditCreator> valueEditMap = new HashMap<String, ValueEditCreator>(); + + public static ValueEditCreator getValueEditMap(String className) { + return valueEditMap.get(className); + } + + public static List<String> getClassesSupported() { + return new ArrayList<String>(valueEditMap.keySet()); + } + + static { + valueEditMap.put("null", new ValueEditNull()); + valueEditMap.put(String.class.getName(), new ValueEditString.Generator()); + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java new file mode 100644 index 00000000..e7162a1a --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java @@ -0,0 +1,75 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import kr.syeyoung.dungeonsguide.roomedit.MPanel; +import kr.syeyoung.dungeonsguide.roomedit.Parameter; +import kr.syeyoung.dungeonsguide.roomedit.elements.MLabel; +import kr.syeyoung.dungeonsguide.roomedit.elements.MLabelAndElement; +import kr.syeyoung.dungeonsguide.roomedit.elements.MTextField; + +import java.awt.*; + +public class ValueEditString extends MPanel implements ValueEdit<String> { + private Parameter parameter; + + + public ValueEditString(Parameter parameter2) { + this.parameter = parameter2; + { + MLabel label = new MLabel() { + @Override + public String getText() { + return parameter.getPreviousData().toString(); + } + }; + MLabelAndElement mLabelAndElement = new MLabelAndElement("Prev",label); + mLabelAndElement.setBounds(new Rectangle(0,0,bounds.width,20)); + add(mLabelAndElement); + } + { + MTextField textField = new MTextField() { + @Override + public void edit(String str) { + parameter.setNewData(str); + } + }; + MLabelAndElement mLabelAndElement = new MLabelAndElement("New",textField); + mLabelAndElement.setBounds(new Rectangle(0,20,bounds.width,20)); + add(mLabelAndElement); + } + } + + @Override + public void onBoundsUpdate() { + for (MPanel panel :getChildComponents()){ + panel.setSize(new Dimension(bounds.width, 20)); + } + } + + @Override + public void setParameter(Parameter parameter) { + this.parameter = parameter; + } + + @Override + public void resize(int parentWidth, int parentHeight) { + this.setBounds(new Rectangle(0,0,parentWidth, parentHeight)); + } + + public static class Generator implements ValueEditCreator<ValueEditString> { + + @Override + public ValueEditString createValueEdit(Parameter parameter) { + return new ValueEditString(parameter); + } + + @Override + public Object createDefaultValue(Parameter parameter) { + return "default"; + } + + @Override + public Object cloneObj(Object object) { + return object; + } + } +} |
