package org.ntlab.rdlcanvas.generaterdl;
import org.ntlab.rdlcanvas.models.*;
import java.util.ArrayList;
import java.util.List;
public class ScreenTemplateGenerateRDL extends BaseGenerateRDL{
ArrayList<String> metaIdList = new ArrayList<>(List.of("wText", "wType", "wState", "wX", "wY", "wWidth", "wHeight", "wEnabled", "wVisible", "wColor"));
public ScreenTemplateGenerateRDL(RDLSpec spec){
createScreenTemplateResourceDeclaration(spec);
createScreenTemplateFormula(spec);
//System.out.println(spec.toString()); //デバッグ用
}
private void createScreenTemplateResourceDeclaration(RDLSpec spec){
//ex screen(1) :: struct
BaseGenerateRDL.addResourceDeclaration(spec, "screen", 1, StructuralType.structure, null);
BaseGenerateRDL.addResourceDeclaration(spec, "scId", 1, StructuralType.id, RDLSpecLang.typeString);
BaseGenerateRDL.addResourceDeclaration(spec, "widget", 2, StructuralType.structure, null);
BaseGenerateRDL.addResourceDeclaration(spec, "wId", 2, StructuralType.id, RDLSpecLang.typeString);
BaseGenerateRDL.addResourceDeclaration(spec, "wText", 2, RDLSpecLang.typeString);
BaseGenerateRDL.addResourceDeclaration(spec, "wType", 2, RDLSpecLang.typeString);
BaseGenerateRDL.addResourceDeclaration(spec, "wState", 2, RDLSpecLang.typeString);
BaseGenerateRDL.addResourceDeclaration(spec, "wX", 2, RDLSpecLang.typeInt);
BaseGenerateRDL.addResourceDeclaration(spec, "wY", 2, RDLSpecLang.typeInt);
BaseGenerateRDL.addResourceDeclaration(spec, "wWidth", 2, RDLSpecLang.typeInt);
BaseGenerateRDL.addResourceDeclaration(spec, "wHeight", 2, RDLSpecLang.typeInt);
BaseGenerateRDL.addResourceDeclaration(spec, "wEnabled", 2, RDLSpecLang.typeBoolean);
BaseGenerateRDL.addResourceDeclaration(spec, "wVisible", 2, RDLSpecLang.typeBoolean);
BaseGenerateRDL.addResourceDeclaration(spec, "wColor", 2, RDLSpecLang.typeString);
}
private void createScreenTemplateFormula(RDLSpec spec){
//ex screen:scId
BaseGenerateRDL.addElementPairDependencyFormula(spec, "screen", false, "scId", false);
for(String mId : metaIdList){
BaseGenerateRDL.addElementPairDependencyFormula(spec, mId,false, "widget", false);
}
// [widget:wid]:screen
BaseGenerateRDL.addNestedDependencyFormula(spec, "widget", false, "wId", false, "screen", false);
}
}