Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 072fd86

Browse files
Merge pull request #37 from Fakhreddine10/master
Schema Decorator
2 parents 5f06f37 + 148f91f commit 072fd86

18 files changed

+265
-12
lines changed

‎demo/src/main/java/io/asfjava/ui/demo/screen/DemoForm.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,16 @@ public String getCivilState() {
101101
public void setCivilState(String civilState) {
102102
this.civilState = civilState;
103103
}
104+
105+
106+
public String getCurrency() {
107+
return currency;
108+
}
109+
110+
public String getColor() {
111+
return color;
112+
}
113+
104114

105115
private static final long serialVersionUID = -5073515619469444978L;
106116
}

‎src/main/java/io/asfjava/ui/core/GeneratorFactoryInitializer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class GeneratorFactoryInitializer implements ServletContextListener {
1010
@Override
1111
public final void contextInitialized(final ServletContextEvent sce) {
1212
GeneratorFactoryLoader.getInstance().load();
13+
SchemaDecoratorLoader.getInstance().load();
1314
}
1415

1516
@Override
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.asfjava.ui.core;
2+
3+
import java.util.Map;
4+
import java.util.concurrent.ConcurrentHashMap;
5+
6+
import io.asfjava.ui.schema.decorator.SchemaDecorator;
7+
8+
public final class SchemaDecoratorFactory {
9+
public SchemaDecorator getGenerator(String annotationName) {
10+
return GENERATORS.get(annotationName);
11+
}
12+
13+
void register(String annotationName, SchemaDecorator generator) {
14+
GENERATORS.put(annotationName, generator);
15+
}
16+
17+
public static SchemaDecoratorFactory getInstance() {
18+
if (INSTANCE == null) {
19+
INSTANCE = new SchemaDecoratorFactory();
20+
}
21+
return INSTANCE;
22+
}
23+
24+
private static final Map<String, SchemaDecorator> GENERATORS = new ConcurrentHashMap<>();
25+
26+
private static SchemaDecoratorFactory INSTANCE;
27+
28+
private SchemaDecoratorFactory() {
29+
}
30+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package io.asfjava.ui.core;
2+
3+
import java.util.Set;
4+
5+
import org.reflections.Reflections;
6+
7+
import io.asfjava.ui.schema.decorator.SchemaDecorator;
8+
9+
10+
11+
final class SchemaDecoratorLoader {
12+
13+
private static final String PACKAGESCAN = "io.asfjava.ui.schema.decorator";
14+
private static Reflections reflections = new Reflections(PACKAGESCAN);
15+
void load() {
16+
17+
Set<Class<? extends SchemaDecorator>> subTypes = reflections
18+
.getSubTypesOf(SchemaDecorator.class);
19+
for (Class<? extends SchemaDecorator> subtype : subTypes) {
20+
SchemaDecorator schemaDecorator;
21+
try {
22+
schemaDecorator = (SchemaDecorator) Class.forName(subtype.getName()).newInstance();
23+
SchemaDecoratorFactory.getInstance().register(schemaDecorator.getAnnotation(),
24+
schemaDecorator);
25+
} catch (InstantiationException e) {
26+
e.printStackTrace();
27+
} catch (IllegalAccessException e) {
28+
e.printStackTrace();
29+
} catch (ClassNotFoundException e) {
30+
e.printStackTrace();
31+
}
32+
}
33+
}
34+
35+
void unload() {
36+
System.out.println("I'm unloader");
37+
}
38+
39+
static SchemaDecoratorLoader getInstance() {
40+
if (INSTANCE == null)
41+
INSTANCE = new SchemaDecoratorLoader();
42+
return INSTANCE;
43+
}
44+
45+
private static SchemaDecoratorLoader INSTANCE;
46+
47+
private SchemaDecoratorLoader() {
48+
}
49+
}

‎src/main/java/io/asfjava/ui/core/generators/CheckBoxGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
2020
fieldFormDefinition.put("type", "checkboxes");
2121
fieldFormDefinition.put("multiple", annotation.multiple());
2222
fieldFormDefinition.put("required", annotation.required());
23-
fieldFormDefinition.put("title", annotation.title());
23+
// fieldFormDefinition.put("title", annotation.title());
2424

2525
ObjectMapper checkBoxMapper = new ObjectMapper();
2626
ArrayNode titlesMap = checkBoxMapper.createArrayNode();

‎src/main/java/io/asfjava/ui/core/generators/ComboBoxGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
2323
fieldFormDefinition.put("multiple", annotation.multiple());
2424
fieldFormDefinition.put("required", annotation.required());
2525
fieldFormDefinition.put("size", annotation.size());
26-
fieldFormDefinition.put("title", annotation.title());
26+
// fieldFormDefinition.put("title", annotation.title());
2727

2828
ObjectMapper comboMapper = new ObjectMapper();
2929
ArrayNode titlesMap = comboMapper.createArrayNode();

‎src/main/java/io/asfjava/ui/core/generators/PasswordGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class PasswordGenerator implements FormDefinitionGenerator {
1212
public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
Password annotation = field.getAnnotation(Password.class);
1414
fieldFormDefinition.put("key", field.getName());
15-
fieldFormDefinition.put("title", annotation.title());
15+
// fieldFormDefinition.put("title", annotation.title());
1616
fieldFormDefinition.put("type", "password");
1717

1818
String description = annotation.description();

‎src/main/java/io/asfjava/ui/core/generators/RadioBoxGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
1919
fieldFormDefinition.put("key", field.getName());
2020
fieldFormDefinition.put("readOnly", annotation.readOnly());
2121
fieldFormDefinition.put("type", "radios");
22-
fieldFormDefinition.put("title", annotation.title());
22+
// fieldFormDefinition.put("title", annotation.title());
2323

2424
JsonNode radioFieldFormDefinition = ((JsonNode) fieldFormDefinition);
2525

‎src/main/java/io/asfjava/ui/core/generators/TextAreaGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class TextAreaGenerator implements FormDefinitionGenerator {
1212
public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
TextArea annotation = field.getAnnotation(TextArea.class);
1414
fieldFormDefinition.put("key", field.getName());
15-
fieldFormDefinition.put("title", annotation.title());
15+
// fieldFormDefinition.put("title", annotation.title());
1616
fieldFormDefinition.put("type", "textarea");
1717

1818
String description = annotation.description();

‎src/main/java/io/asfjava/ui/core/generators/TextFieldGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
TextField annotation = field.getAnnotation(TextField.class);
1414

1515
fieldFormDefinition.put("key", field.getName());
16-
fieldFormDefinition.put("title", annotation.title());
16+
// fieldFormDefinition.put("title", annotation.title());
1717

1818
String description = annotation.description();
1919
if (!description.isEmpty()) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /