aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit
diff options
context:
space:
mode:
authorsyeyoung <42869671+cyoung06@users.noreply.github.com>2020-11-26 12:09:38 +0900
committersyeyoung <42869671+cyoung06@users.noreply.github.com>2020-11-26 12:09:38 +0900
commit4ada6858039f3ca2f5de3c81df8c78f481d897d4 (patch)
treeec8438ec41929552d74d9630525ad8fcd62594d4 /src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit
parent49b083afffdf24f0bcd637909d15b88d9ed272b8 (diff)
downloadSkyblock-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')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ActuallyClonable.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java7
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditCreator.java11
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java15
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java23
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java75
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;
+ }
+ }
+}