diff --git a/src/main/java/org/ntlab/rdlcanvas/generaterdl/MetaScreenGenerateRDL.java b/src/main/java/org/ntlab/rdlcanvas/generaterdl/MetaScreenGenerateRDL.java new file mode 100644 index 0000000..2a24c22 --- /dev/null +++ b/src/main/java/org/ntlab/rdlcanvas/generaterdl/MetaScreenGenerateRDL.java @@ -0,0 +1,54 @@ +package org.ntlab.rdlcanvas.generaterdl; + +import org.ntlab.rdlcanvas.models.*; + +import java.util.ArrayList; +import java.util.List; + + +public class MetaScreenGenerateRDL extends BaseMetaGenerateRDL { + + ArrayList metaIdList = new ArrayList<>(List.of("wText", "wType", "wState", "wX", "wY", "wWidth", "wHeight", "wEnabled", "wVisible", "wColor")); + + public MetaScreenGenerateRDL(RDLSpec spec){ + addScreenTemplateResourceDeclaration(spec); + addScreenTemplateFormula(spec); + //System.out.println(spec.toString()); //デバッグ用 + } + + private void addScreenTemplateResourceDeclaration(RDLSpec spec){ + + //ex screen(1) :: struct + addResourceDeclaration(spec, "screen", 1, StructuralType.structure, null); + addResourceDeclaration(spec, "scId", 1, StructuralType.id, RDLSpecLang.typeString); + addResourceDeclaration(spec, "widget", 2, StructuralType.structure, null); + addResourceDeclaration(spec, "wId", 2, StructuralType.id, RDLSpecLang.typeString); + addResourceDeclaration(spec, "wText", 2, RDLSpecLang.typeString); + addResourceDeclaration(spec, "wType", 2, RDLSpecLang.typeString); + addResourceDeclaration(spec, "wState", 2, RDLSpecLang.typeString); + addResourceDeclaration(spec, "wX", 2, RDLSpecLang.typeInt); + addResourceDeclaration(spec, "wY", 2, RDLSpecLang.typeInt); + addResourceDeclaration(spec, "wWidth", 2, RDLSpecLang.typeInt); + addResourceDeclaration(spec, "wHeight", 2, RDLSpecLang.typeInt); + addResourceDeclaration(spec, "wEnabled", 2, RDLSpecLang.typeBoolean); + addResourceDeclaration(spec, "wVisible", 2, RDLSpecLang.typeBoolean); + addResourceDeclaration(spec, "wColor", 2, RDLSpecLang.typeString); + } + + private void addScreenTemplateFormula(RDLSpec spec){ + + //ex screen:scId + addElementPairDependencyFormula(spec, "screen", false, "scId", false); + addElementPairDependencyFormula(spec, "screen", false, "scId", true); + for(String mId : metaIdList){ + addElementPairDependencyFormula(spec, mId,false, "widget", false); + } + + // [widget:wid]:screen + addNestedDependencyFormula(spec, "widget", false, "wId", false, "screen", false); + + } + + + +}