Skip to content

Commit 2a1aeaa

Browse files
committed
Refactored SimpleForm
1 parent 9060682 commit 2a1aeaa

7 files changed

Lines changed: 41 additions & 72 deletions

File tree

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ SimpleFormHandler handler = (p, button) -> {
2929

3030
form.setContent("This is a text")
3131
.addContent("\nThis is addition :3")
32-
.addButton("Test button", handler)
33-
.addButton("Same button but with image", ImageType.PATH, "textures/items/diamond", handler)
34-
.addButton("Button without handler");
32+
.add(new Button("Test button", handler))
33+
.add(new Button("Same button but with image", Button.Icon.texture("textures/items/diamond"), handler));
3534

3635
//We can set handler for null result
3736
form.setNoneHandler(p -> {

src/main/java/ru/contentforge/formconstructor/form/SimpleForm.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import com.google.gson.annotations.SerializedName;
44
import lombok.Getter;
55
import ru.contentforge.formconstructor.form.element.Button;
6-
import ru.contentforge.formconstructor.form.element.ImageType;
76
import ru.contentforge.formconstructor.form.handler.NoneHandler;
8-
import ru.contentforge.formconstructor.form.handler.SimpleFormHandler;
97
import ru.contentforge.formconstructor.form.response.SimpleFormResponse;
108

119
import java.util.ArrayList;
@@ -41,7 +39,7 @@ public SimpleForm(String title, String content, NoneHandler noneHandler, Collect
4139
this.noneHandler = noneHandler;
4240

4341
if(buttons == null) return;
44-
for(Button button: buttons) addButton(button);
42+
for(Button button: buttons) add(button);
4543
}
4644

4745
public SimpleForm setTitle(String title) {
@@ -59,30 +57,18 @@ public SimpleForm addContent(String addition){
5957
return this;
6058
}
6159

62-
public SimpleForm addButton(SimpleFormHandler handler){
63-
return addButton("", handler);
64-
}
65-
66-
public SimpleForm addButton(String text, SimpleFormHandler handler){
67-
return addButton(text, ImageType.PATH, "", handler);
68-
}
69-
70-
public SimpleForm addButton(String text, ImageType imageType, String path, SimpleFormHandler handler){
71-
return addButton(new Button(text, imageType, path, handler));
72-
}
73-
74-
public SimpleForm addButton(Button button){
60+
public SimpleForm add(Button button){
7561
buttons.add(button);
7662
return this;
7763
}
7864

79-
public SimpleForm addButtons(Button... buttons){
80-
for(Button button: buttons) addButton(button);
65+
public SimpleForm add(Button... buttons){
66+
for(Button button: buttons) add(button);
8167
return this;
8268
}
8369

84-
public SimpleForm addButtons(Collection<Button> buttons){
85-
for(Button button: buttons) addButton(button);
70+
public SimpleForm add(Collection<Button> buttons){
71+
for(Button button: buttons) add(button);
8672
return this;
8773
}
8874

src/main/java/ru/contentforge/formconstructor/form/element/Button.java

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,47 @@
22

33
import com.google.gson.annotations.SerializedName;
44
import lombok.Getter;
5-
import ru.contentforge.formconstructor.form.handler.SimpleFormHandler;
5+
import ru.contentforge.formconstructor.form.handler.ButtonClickHandler;
66

77
@Getter
88
public class Button extends FormElement {
99

10-
@SerializedName("image") protected ImageButton image;
11-
protected transient SimpleFormHandler handler;
10+
@SerializedName("image") protected Icon image;
11+
protected transient ButtonClickHandler handler;
1212

13-
public Button(){
14-
this("");
13+
public Button(String name, ButtonClickHandler handler){
14+
this(name, Icon.texture(""), handler);
1515
}
1616

17-
public Button(String name){
18-
this(name, null);
19-
}
17+
public Button(String name, Icon icon, ButtonClickHandler handler) {
18+
super(name);
2019

21-
public Button(String name, SimpleFormHandler handler){
22-
this(name, ImageType.PATH, "", handler);
20+
this.handler = handler;
21+
this.image = icon;
2322
}
2423

25-
public Button(String name, ImageType imageType, String image){
26-
this(name, imageType, image, null);
27-
}
24+
public static class Icon {
2825

29-
public Button(String name, ImageType imageType, String image, SimpleFormHandler handler) {
30-
super(name);
26+
@SerializedName("type") protected Type type;
27+
@SerializedName("data") protected String path;
3128

32-
this.handler = handler;
33-
this.image = new ImageButton(imageType, image);
29+
private Icon(Type type, String path){
30+
this.path = path;
31+
this.type = type;
32+
}
33+
34+
public static Icon texture(String path) {
35+
return new Icon(Type.PATH, path);
36+
}
37+
38+
public static Icon url(String url) {
39+
return new Icon(Type.URL, url);
40+
}
41+
42+
public enum Type {
43+
44+
@SerializedName("path") PATH,
45+
@SerializedName("url") URL,
46+
}
3447
}
3548
}

src/main/java/ru/contentforge/formconstructor/form/element/ImageButton.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/main/java/ru/contentforge/formconstructor/form/element/ImageType.java

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/main/java/ru/contentforge/formconstructor/form/handler/SimpleFormHandler.java renamed to src/main/java/ru/contentforge/formconstructor/form/handler/ButtonClickHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import cn.nukkit.Player;
44
import ru.contentforge.formconstructor.form.element.Button;
55

6-
public interface SimpleFormHandler extends FormHandler {
6+
public interface ButtonClickHandler extends FormHandler {
77

88
void handle(Player player, Button button);
99
}

src/main/java/ru/contentforge/formconstructor/form/response/SimpleFormResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import cn.nukkit.Player;
44
import ru.contentforge.formconstructor.form.element.Button;
5-
import ru.contentforge.formconstructor.form.handler.SimpleFormHandler;
5+
import ru.contentforge.formconstructor.form.handler.ButtonClickHandler;
66

7-
public class SimpleFormResponse extends Response<SimpleFormHandler> {
7+
public class SimpleFormResponse extends Response<ButtonClickHandler> {
88

99
protected Button button;
1010

0 commit comments

Comments
 (0)