Removes loader, adds some missing features, refactors for easier comprehension and maintenance

This commit is contained in:
Guillaume Tâche
2024-11-30 17:47:47 +01:00
parent 102927b040
commit 17d112fb41
177 changed files with 17395 additions and 31206 deletions

View File

@@ -3,6 +3,7 @@ package com.github.gtache.fxml.compiler;
/**
* Generates compiled FXML code
*/
@FunctionalInterface
public interface Generator {
/**

View File

@@ -1,6 +1,7 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedCollection;
import java.util.SequencedMap;
@@ -27,4 +28,9 @@ public interface ParsedConstant extends ParsedObject {
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
@Override
default SequencedCollection<ParsedObject> children() {
return List.of();
}
}

View File

@@ -0,0 +1,42 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedCollection;
import java.util.SequencedMap;
/**
* Special {@link ParsedObject} for fx:copy
*/
@FunctionalInterface
public interface ParsedCopy extends ParsedObject {
/**
* Returns the source from fx:copy
*
* @return The source
*/
default String source() {
final var attribute = attributes().get("source");
if (attribute == null) {
throw new IllegalStateException("Missing source");
} else {
return attribute.value();
}
}
@Override
default String className() {
return ParsedCopy.class.getName();
}
@Override
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
@Override
default SequencedCollection<ParsedObject> children() {
return List.of();
}
}

View File

@@ -0,0 +1,39 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.Map;
import java.util.SequencedCollection;
import java.util.SequencedMap;
/**
* Special {@link ParsedObject} for fx:define
*/
@FunctionalInterface
public interface ParsedDefine extends ParsedObject {
/**
* Returns the object defined by this fx:define
*
* @return The object
*/
ParsedObject object();
@Override
default String className() {
return object().className();
}
@Override
default Map<String, ParsedProperty> attributes() {
return object().attributes();
}
@Override
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return object().properties();
}
@Override
default SequencedCollection<ParsedObject> children() {
return object().children();
}
}

View File

@@ -0,0 +1,37 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.SequencedCollection;
import java.util.SequencedMap;
/**
* Special {@link ParsedObject} for fx:factory
*/
public interface ParsedFactory extends ParsedObject {
/**
* Returns the factory value from fx:factory
*
* @return The value
*/
default String factory() {
final var attribute = attributes().get("fx:factory");
if (attribute == null) {
throw new IllegalStateException("Missing fx:factory");
} else {
return attribute.value();
}
}
@Override
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
/**
* Returns the arguments for the factory
*
* @return The arguments
*/
SequencedCollection<ParsedObject> arguments();
}

View File

@@ -1,6 +1,7 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedCollection;
import java.util.SequencedMap;
@@ -61,4 +62,9 @@ public interface ParsedInclude extends ParsedObject {
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
@Override
default SequencedCollection<ParsedObject> children() {
return List.of();
}
}

View File

@@ -29,4 +29,11 @@ public interface ParsedObject {
* @return The properties
*/
SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties();
/**
* Returns the children (fx:define, fx:copy, etc.) contained in this object
*
* @return The children
*/
SequencedCollection<ParsedObject> children();
}

View File

@@ -0,0 +1,42 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedCollection;
import java.util.SequencedMap;
/**
* Special {@link ParsedObject} for fx:reference
*/
@FunctionalInterface
public interface ParsedReference extends ParsedObject {
/**
* Returns the source from fx:reference
*
* @return The source
*/
default String source() {
final var attribute = attributes().get("source");
if (attribute == null) {
throw new IllegalStateException("Missing source");
} else {
return attribute.value();
}
}
@Override
default String className() {
return ParsedReference.class.getName();
}
@Override
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
@Override
default SequencedCollection<ParsedObject> children() {
return List.of();
}
}

View File

@@ -0,0 +1,41 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.SequencedCollection;
import java.util.SequencedMap;
/**
* Special {@link ParsedObject} for simple text
*/
@FunctionalInterface
public interface ParsedText extends ParsedObject {
/**
* Returns the text value
*
* @return The value
*/
String text();
@Override
default String className() {
return "java.lang.String";
}
@Override
default SequencedCollection<ParsedObject> children() {
return List.of();
}
@Override
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
@Override
default Map<String, ParsedProperty> attributes() {
return Map.of();
}
}

View File

@@ -0,0 +1,36 @@
package com.github.gtache.fxml.compiler.parsing;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedCollection;
import java.util.SequencedMap;
/**
* Special {@link ParsedObject} for fx:value
*/
public interface ParsedValue extends ParsedObject {
/**
* Returns the value from fx:value
*
* @return The value
*/
default String value() {
final var attribute = attributes().get("fx:value");
if (attribute == null) {
throw new IllegalStateException("Missing fx:value");
} else {
return attribute.value();
}
}
@Override
default SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties() {
return new LinkedHashMap<>();
}
@Override
default SequencedCollection<ParsedObject> children() {
return List.of();
}
}

View File

@@ -0,0 +1,53 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.nio.file.Files;
import java.nio.file.Paths;
import static java.util.Objects.requireNonNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class TestFXMLParser {
private final FXMLParser parser;
private final String content;
private final ParsedObject object;
TestFXMLParser(@Mock final ParsedObject object) {
this.parser = spy(FXMLParser.class);
this.content = "content";
this.object = requireNonNull(object);
}
@BeforeEach
void beforeEach() throws ParseException {
when(parser.parse(content)).thenReturn(object);
}
@Test
void testParse() throws Exception {
final var file = Files.createTempFile("test", ".fxml");
try {
Files.writeString(file, content);
assertEquals(object, parser.parse(file));
verify(parser).parse(content);
} finally {
Files.deleteIfExists(file);
}
}
@Test
void testParseIOException() throws Exception {
final var file = Paths.get("whatever");
assertThrows(ParseException.class, () -> parser.parse(file));
verify(parser, never()).parse(content);
}
}

View File

@@ -9,6 +9,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -53,4 +54,9 @@ class TestParsedConstant {
void testProperties() {
assertEquals(new LinkedHashMap<>(), constant.properties());
}
@Test
void testChildren() {
assertEquals(List.of(), constant.children());
}
}

View File

@@ -0,0 +1,67 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestParsedCopy {
private final Map<String, ParsedProperty> attributes;
private final ParsedProperty property;
private final String string;
private final ParsedCopy reference;
TestParsedCopy(@Mock final ParsedProperty property) {
this.attributes = new HashMap<>();
this.property = Objects.requireNonNull(property);
this.string = "str/ing";
this.reference = spy(ParsedCopy.class);
}
@BeforeEach
void beforeEach() {
when(reference.attributes()).thenReturn(attributes);
when(property.value()).thenReturn(string);
}
@Test
void testSourceNull() {
assertThrows(IllegalStateException.class, reference::source);
}
@Test
void testSource() {
attributes.put("source", property);
assertEquals(string, reference.source());
}
@Test
void testClassName() {
assertEquals(ParsedCopy.class.getName(), reference.className());
}
@Test
void testProperties() {
assertEquals(new LinkedHashMap<>(), reference.properties());
}
@Test
void testChildren() {
assertEquals(List.of(), reference.children());
}
}

View File

@@ -0,0 +1,80 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.SequencedCollection;
import static java.util.Objects.requireNonNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class TestParsedDefine {
private final ParsedProperty property;
private final ParsedObject object;
private final String string;
private final ParsedDefine define;
TestParsedDefine(@Mock final ParsedProperty property, @Mock final ParsedObject object) {
this.property = requireNonNull(property);
this.object = requireNonNull(object);
this.string = "str/ing";
this.define = spy(ParsedDefine.class);
}
@BeforeEach
void beforeEach() {
when(property.value()).thenReturn(string);
when(define.object()).thenReturn(object);
when(object.className()).thenReturn(string);
when(object.children()).thenReturn(List.of(define));
final var map = new LinkedHashMap<ParsedProperty, SequencedCollection<ParsedObject>>();
map.put(property, List.of(object));
when(object.properties()).thenReturn(map);
when(object.attributes()).thenReturn(Map.of(string, property));
}
@Test
void testObject() {
assertEquals(object, define.object());
}
@Test
void testClassName() {
assertEquals(string, define.className());
verify(define).object();
verify(object).className();
}
@Test
void testAttributes() {
assertEquals(Map.of(string, property), define.attributes());
verify(define).object();
verify(object).attributes();
}
@Test
void testProperties() {
final var map = new LinkedHashMap<ParsedProperty, SequencedCollection<ParsedObject>>();
map.put(property, List.of(object));
assertEquals(map, define.properties());
verify(define).object();
verify(object).properties();
}
@Test
void testChildren() {
assertEquals(List.of(define), define.children());
verify(define).object();
verify(object).children();
}
}

View File

@@ -0,0 +1,56 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestParsedFactory {
private final Map<String, ParsedProperty> attributes;
private final ParsedProperty property;
private final String string;
private final ParsedFactory value;
TestParsedFactory(@Mock final ParsedProperty property) {
this.attributes = new HashMap<>();
this.property = Objects.requireNonNull(property);
this.string = "str/ing";
this.value = spy(ParsedFactory.class);
}
@BeforeEach
void beforeEach() {
when(value.attributes()).thenReturn(attributes);
when(property.value()).thenReturn(string);
}
@Test
void testConstantNull() {
assertThrows(IllegalStateException.class, value::factory);
}
@Test
void testConstant() {
attributes.put("fx:factory", property);
assertEquals(string, value.factory());
}
@Test
void testProperties() {
assertEquals(new LinkedHashMap<>(), value.properties());
}
}

View File

@@ -9,6 +9,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -79,4 +80,9 @@ class TestParsedInclude {
void testProperties() {
assertEquals(new LinkedHashMap<>(), include.properties());
}
@Test
void testChildren() {
assertEquals(List.of(), include.children());
}
}

View File

@@ -0,0 +1,67 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestParsedReference {
private final Map<String, ParsedProperty> attributes;
private final ParsedProperty property;
private final String string;
private final ParsedReference reference;
TestParsedReference(@Mock final ParsedProperty property) {
this.attributes = new HashMap<>();
this.property = Objects.requireNonNull(property);
this.string = "str/ing";
this.reference = spy(ParsedReference.class);
}
@BeforeEach
void beforeEach() {
when(reference.attributes()).thenReturn(attributes);
when(property.value()).thenReturn(string);
}
@Test
void testSourceNull() {
assertThrows(IllegalStateException.class, reference::source);
}
@Test
void testSource() {
attributes.put("source", property);
assertEquals(string, reference.source());
}
@Test
void testClassName() {
assertEquals(ParsedReference.class.getName(), reference.className());
}
@Test
void testProperties() {
assertEquals(new LinkedHashMap<>(), reference.properties());
}
@Test
void testChildren() {
assertEquals(List.of(), reference.children());
}
}

View File

@@ -0,0 +1,39 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.Test;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.spy;
class TestParsedText {
private final ParsedText parsedText;
TestParsedText() {
this.parsedText = spy(ParsedText.class);
}
@Test
void testClassName() {
assertEquals(String.class.getName(), parsedText.className());
}
@Test
void testChildren() {
assertEquals(List.of(), parsedText.children());
}
@Test
void testProperties() {
assertEquals(new LinkedHashMap<>(), parsedText.properties());
}
@Test
void testAttributes() {
assertEquals(Map.of(), parsedText.attributes());
}
}

View File

@@ -0,0 +1,62 @@
package com.github.gtache.fxml.compiler.parsing;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestParsedValue {
private final Map<String, ParsedProperty> attributes;
private final ParsedProperty property;
private final String string;
private final ParsedValue value;
TestParsedValue(@Mock final ParsedProperty property) {
this.attributes = new HashMap<>();
this.property = Objects.requireNonNull(property);
this.string = "str/ing";
this.value = spy(ParsedValue.class);
}
@BeforeEach
void beforeEach() {
when(value.attributes()).thenReturn(attributes);
when(property.value()).thenReturn(string);
}
@Test
void testConstantNull() {
assertThrows(IllegalStateException.class, value::value);
}
@Test
void testConstant() {
attributes.put("fx:value", property);
assertEquals(string, value.value());
}
@Test
void testProperties() {
assertEquals(new LinkedHashMap<>(), value.properties());
}
@Test
void testChildren() {
assertEquals(List.of(), value.children());
}
}

View File

@@ -1,83 +1,59 @@
package com.github.gtache.fxml.compiler.impl;
import com.github.gtache.fxml.compiler.ControllerInjection;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.GenerationRequest;
import com.github.gtache.fxml.compiler.Generator;
import com.github.gtache.fxml.compiler.parsing.ParsedConstant;
import com.github.gtache.fxml.compiler.parsing.ParsedInclude;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import javafx.event.EventHandler;
import com.github.gtache.fxml.compiler.impl.internal.GenerationProgress;
import com.github.gtache.fxml.compiler.impl.internal.HelperMethodsProvider;
import java.lang.reflect.Constructor;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.getControllerInjection;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.getVariablePrefix;
import static com.github.gtache.fxml.compiler.impl.internal.ObjectFormatter.format;
import static com.github.gtache.fxml.compiler.impl.ReflectionHelper.*;
//TODO handle binding (${})
/**
* Implementation of {@link Generator}
*/
public class GeneratorImpl implements Generator {
private static final Pattern INT_PATTERN = Pattern.compile("\\d+");
private static final Pattern DECIMAL_PATTERN = Pattern.compile("\\d+(?:\\.\\d+)?");
private final Collection<String> controllerFactoryPostAction;
private final Map<String, AtomicInteger> variableNameCounters;
/**
* Instantiates a new generator
*/
public GeneratorImpl() {
this.controllerFactoryPostAction = new ArrayList<>();
this.variableNameCounters = new ConcurrentHashMap<>();
}
@Override
public String generate(final GenerationRequest request) throws GenerationException {
controllerFactoryPostAction.clear();
variableNameCounters.clear();
final var progress = new GenerationProgress(request);
final var className = request.outputClassName();
final var pkgName = className.substring(0, className.lastIndexOf('.'));
final var simpleClassName = className.substring(className.lastIndexOf('.') + 1);
final var loadMethod = getLoadMethod(request);
final var controllerInjection = getControllerInjection(request);
final var loadMethod = getLoadMethod(progress);
final var controllerInjection = getControllerInjection(progress);
final var controllerInjectionType = controllerInjection.fieldInjectionType();
final var controllerInjectionClass = controllerInjection.injectionClass();
final String constructorArgument;
final String constructorControllerJavadoc;
final String controllerArgumentType;
final String controllerMapType;
final var controllerInjectionClass = controllerInjection.injectionClass();
final var imports = getImports(request);
if (controllerInjectionType == ControllerFieldInjectionTypes.FACTORY) {
constructorArgument = "controllerFactory";
constructorControllerJavadoc = "controller factory";
controllerArgumentType = "ControllerFactory<" + controllerInjectionClass + ">";
controllerMapType = "ControllerFactory<?>";
controllerArgumentType = "com.github.gtache.fxml.compiler.ControllerFactory<" + controllerInjectionClass + ">";
controllerMapType = "com.github.gtache.fxml.compiler.ControllerFactory<?>";
} else {
constructorArgument = "controller";
constructorControllerJavadoc = "controller";
controllerArgumentType = controllerInjectionClass;
controllerMapType = "Object";
}
final var helperMethods = getHelperMethods(request);
final var helperMethods = HelperMethodsProvider.getHelperMethods(progress);
return """
package %1$s;
%9$s
/**
* Generated code, not thread-safe
*/
public final class %2$s {
private final Map<Class<?>, %7$s> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private final java.util.Map<Class<?>, %7$s> controllersMap;
private final java.util.Map<Class<?>, java.util.ResourceBundle> resourceBundlesMap;
private boolean loaded;
private %3$s controller;
@@ -86,7 +62,7 @@ public class GeneratorImpl implements Generator {
* @param %4$s The %5$s
*/
public %2$s(final %8$s %4$s) {
this(Map.of(%3$s.class, %4$s), Map.of());
this(java.util.Map.of(%3$s.class, %4$s), java.util.Map.of());
}
/**
@@ -94,8 +70,8 @@ public class GeneratorImpl implements Generator {
* @param %4$s The %5$s
* @param resourceBundle The resource bundle
*/
public %2$s(final %8$s %4$s, final ResourceBundle resourceBundle) {
this(Map.of(%3$s.class, %4$s), Map.of(%3$s.class, resourceBundle));
public %2$s(final %8$s %4$s, final java.util.ResourceBundle resourceBundle) {
this(java.util.Map.of(%3$s.class, %4$s), java.util.Map.of(%3$s.class, resourceBundle));
}
/**
@@ -103,9 +79,9 @@ public class GeneratorImpl implements Generator {
* @param controllersMap The map of controller class to %5$s
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public %2$s(final Map<Class<?>, %7$s> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
public %2$s(final java.util.Map<Class<?>, %7$s> controllersMap, final java.util.Map<Class<?>, java.util.ResourceBundle> resourceBundlesMap) {
this.controllersMap = java.util.Map.copyOf(controllersMap);
this.resourceBundlesMap = java.util.Map.copyOf(resourceBundlesMap);
}
/**
@@ -115,7 +91,7 @@ public class GeneratorImpl implements Generator {
*/
%6$s
%10$s
%9$s
/**
* @return The controller
@@ -129,113 +105,30 @@ public class GeneratorImpl implements Generator {
}
}
""".formatted(pkgName, simpleClassName, controllerInjectionClass, constructorArgument, constructorControllerJavadoc,
loadMethod, controllerMapType, controllerArgumentType, imports, helperMethods);
loadMethod, controllerMapType, controllerArgumentType, helperMethods);
}
/**
* Gets helper methods string for the given generation request
*
* @param request The generation request
* @return The helper methods
*/
private static String getHelperMethods(final GenerationRequest request) throws GenerationException {
final var injection = getControllerInjection(request);
final var methodInjectionType = injection.methodInjectionType();
final var sb = new StringBuilder();
if (methodInjectionType == ControllerMethodsInjectionType.REFLECTION) {
sb.append("""
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
""");
}
if (injection.fieldInjectionType() == ControllerFieldInjectionTypes.REFLECTION) {
sb.append("""
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
""");
}
return sb.toString();
}
/**
* Gets imports for the given generation request
*
* @param request The generation request
* @return The imports
*/
private static String getImports(final GenerationRequest request) throws GenerationException {
final var injection = getControllerInjection(request);
final var fieldInjectionType = injection.fieldInjectionType();
final var sb = new StringBuilder("import java.util.Map;\nimport java.util.ResourceBundle;\nimport java.util.HashMap;\n");
if (fieldInjectionType == ControllerFieldInjectionTypes.FACTORY) {
sb.append("import com.github.gtache.fxml.compiler.ControllerFactory;\n");
}
final var methodInjectionType = injection.methodInjectionType();
if (methodInjectionType == ControllerMethodsInjectionType.REFLECTION) {
sb.append("import java.lang.reflect.InvocationTargetException;\n");
sb.append("import java.util.Arrays;\n");
sb.append("import javafx.event.Event;\n");
sb.append("import java.lang.reflect.Method;\n");
}
return sb.toString();
}
/**
* Computes the load method
*
* @param request The generation request
* @param progress The generation progress
* @return The load method
*/
private String getLoadMethod(final GenerationRequest request) throws GenerationException {
private static String getLoadMethod(final GenerationProgress progress) throws GenerationException {
final var request = progress.request();
final var rootObject = request.rootObject();
final var controllerInjection = getControllerInjection(request);
final var controllerInjection = getControllerInjection(progress);
final var controllerInjectionType = controllerInjection.fieldInjectionType();
final var controllerClass = controllerInjection.injectionClass();
final var sb = new StringBuilder("public <T> T load() {\n");
final var sb = progress.stringBuilder();
sb.append("public <T> T load() {\n");
sb.append(" if (loaded) {\n");
sb.append(" throw new IllegalStateException(\"Already loaded\");\n");
sb.append(" }\n");
final var resourceBundleInjection = request.parameters().resourceBundleInjection();
if (resourceBundleInjection.injectionType() == ResourceBundleInjectionTypes.GET_BUNDLE) {
sb.append(" final var bundle = ResourceBundle.getBundle(\"").append(resourceBundleInjection.bundleName()).append("\");\n");
sb.append(" final var bundle = java.util.ResourceBundle.getBundle(\"").append(resourceBundleInjection.bundleName()).append("\");\n");
} else if (resourceBundleInjection.injectionType() == ResourceBundleInjectionTypes.CONSTRUCTOR) {
sb.append(" final var bundle = resourceBundlesMap.get(").append(controllerClass).append(".class);\n");
}
@@ -244,19 +137,19 @@ public class GeneratorImpl implements Generator {
} else {
sb.append(" controller = (").append(controllerClass).append(") controllersMap.get(").append(controllerClass).append(".class);\n");
}
final var variableName = getNextVariableName("object");
format(request, rootObject, variableName, sb);
final var variableName = progress.getNextVariableName(getVariablePrefix(rootObject));
format(progress, rootObject, variableName);
if (controllerInjectionType == ControllerFieldInjectionTypes.FACTORY) {
sb.append(" final var controllerFactory = controllersMap.get(").append(controllerClass).append(".class);\n");
sb.append(" controller = (").append(controllerClass).append(") controllerFactory.create(fieldMap);\n");
controllerFactoryPostAction.forEach(sb::append);
progress.controllerFactoryPostAction().forEach(sb::append);
}
if (controllerInjection.methodInjectionType() == ControllerMethodsInjectionType.REFLECTION) {
sb.append(" try {\n");
sb.append(" final var initialize = controller.getClass().getDeclaredMethod(\"initialize\");\n");
sb.append(" initialize.setAccessible(true);\n");
sb.append(" initialize.invoke(controller);\n");
sb.append(" } catch (final InvocationTargetException | IllegalAccessException e) {\n");
sb.append(" } catch (final java.lang.reflect.InvocationTargetException | IllegalAccessException e) {\n");
sb.append(" throw new RuntimeException(\"Error using reflection\", e);\n");
sb.append(" } catch (final NoSuchMethodException ignored) {\n");
sb.append(" }\n");
@@ -264,584 +157,10 @@ public class GeneratorImpl implements Generator {
sb.append(" controller.initialize();\n");
}
sb.append(" loaded = true;\n");
sb.append(" return ").append(variableName).append(";\n");
sb.append(" return (T) ").append(variableName).append(";\n");
sb.append("}");
return sb.toString();
}
/**
* Formats an object
*
* @param request The generation request
* @param parsedObject The parsed object to format
* @param variableName The variable name for the object
* @param sb The string builder
*/
private void format(final GenerationRequest request, final ParsedObject parsedObject, final String variableName, final StringBuilder sb) throws GenerationException {
switch (parsedObject) {
case final ParsedInclude include -> formatInclude(request, include, variableName, sb);
case final ParsedConstant constant -> formatConstant(constant, variableName, sb);
default -> {
final var clazz = getClass(parsedObject.className());
final var constructors = clazz.getConstructors();
final var allPropertyNames = new HashSet<>(parsedObject.attributes().keySet());
allPropertyNames.addAll(parsedObject.properties().keySet().stream().map(ParsedProperty::name).collect(Collectors.toSet()));
final var constructorArgs = getMatchingConstructorArgs(constructors, allPropertyNames);
if (constructorArgs == null) {
if (allPropertyNames.size() == 1 && allPropertyNames.iterator().next().equals("fx:constant")) {
final var property = parsedObject.attributes().get("fx:constant");
sb.append(" final var ").append(variableName).append(" = ").append(clazz.getCanonicalName()).append(".").append(property.value()).append(";\n");
} else {
throw new GenerationException("Cannot find constructor for " + clazz.getCanonicalName());
}
} else {
final var args = getListConstructorArgs(constructorArgs, parsedObject);
final var genericTypes = getGenericTypes(request, parsedObject);
sb.append(" final var ").append(variableName).append(" = new ").append(clazz.getCanonicalName())
.append(genericTypes).append("(").append(String.join(", ", args)).append(");\n");
final var sortedAttributes = parsedObject.attributes().entrySet().stream().sorted(Map.Entry.comparingByKey()).toList();
for (final var e : sortedAttributes) {
if (!constructorArgs.namedArgs().containsKey(e.getKey())) {
final var p = e.getValue();
formatProperty(request, p, parsedObject, variableName, sb);
}
}
final var sortedProperties = parsedObject.properties().entrySet().stream().sorted(Comparator.comparing(e -> e.getKey().name())).toList();
for (final var e : sortedProperties) {
if (!constructorArgs.namedArgs().containsKey(e.getKey().name())) {
final var p = e.getKey();
final var o = e.getValue();
formatChild(request, parsedObject, p, o, variableName, sb);
}
}
}
}
}
}
private static String getGenericTypes(final GenerationRequest request, final ParsedObject parsedObject) throws GenerationException {
final var clazz = getClass(parsedObject.className());
if (isGeneric(clazz)) {
final var idProperty = parsedObject.attributes().get("fx:id");
if (idProperty == null) {
return "<>";
} else {
final var id = idProperty.value();
final var genericTypes = request.controllerInfo().propertyGenericTypes(id);
if (genericTypes == null) { //Raw
return "";
} else {
return "<" + String.join(", ", genericTypes) + ">";
}
}
}
return "";
}
/**
* Formats an include object
*
* @param request The generation request
* @param include The include object
* @param subNodeName The sub node name
* @param sb The string builder
*/
private void formatInclude(final GenerationRequest request, final ParsedInclude include, final String subNodeName, final StringBuilder sb) throws GenerationException {
final var subViewVariable = getNextVariableName("view");
final var source = include.source();
final var resources = include.resources();
final var subControllerClass = request.parameters().sourceToControllerName().get(source);
final var subClassName = request.parameters().sourceToGeneratedClassName().get(source);
if (subClassName == null) {
throw new GenerationException("Unknown include source : " + source);
}
if (resources == null) {
sb.append(" final var ").append(subViewVariable).append(" = new ").append(subClassName).append("(controllersMap, resourceBundlesMap);\n");
} else {
final var subResourceBundlesMapVariable = getNextVariableName("map");
final var subBundleVariable = getNextVariableName("bundle");
sb.append(" final var ").append(subResourceBundlesMapVariable).append(" = new HashMap<>(resourceBundlesMap);\n");
sb.append(" final var ").append(subBundleVariable).append(" = ResourceBundle.getBundle(\"").append(resources).append("\");\n");
sb.append(" ").append(subResourceBundlesMapVariable).append(".put(").append(subControllerClass).append(", ").append(subBundleVariable).append(");\n");
sb.append(" final var ").append(subViewVariable).append(" = new ").append(subClassName).append("(controllersMap, ").append(subResourceBundlesMapVariable).append(");\n");
}
sb.append(" final var ").append(subNodeName).append(" = ").append(subViewVariable).append(".load();\n");
final var id = include.controllerId();
if (id != null) {
final var subControllerVariable = getNextVariableName("controller");
sb.append(" final var ").append(subControllerVariable).append(" = ").append(subViewVariable).append(".controller();\n");
injectControllerField(request, id, subControllerVariable, sb);
}
}
/**
* Formats a constant object
*
* @param constant The constant
* @param variableName The variable name
* @param sb The string builder
*/
private static void formatConstant(final ParsedConstant constant, final String variableName, final StringBuilder sb) {
sb.append(" final var ").append(variableName).append(" = ").append(constant.className()).append(".").append(constant.constant()).append(";\n");
}
/**
* Formats a property
*
* @param request The generation request
* @param property The property to format
* @param parent The property's parent object
* @param parentVariable The parent variable
* @param sb The string builder
*/
private void formatProperty(final GenerationRequest request, final ParsedProperty property, final ParsedObject parent, final String parentVariable, final StringBuilder sb) throws GenerationException {
final var propertyName = property.name();
final var setMethod = getSetMethod(propertyName);
if (propertyName.equals("fx:id")) {
final var id = property.value();
injectControllerField(request, id, parentVariable, sb);
} else if (propertyName.equals("fx:controller")) {
if (parent != request.rootObject()) {
throw new GenerationException("Invalid nested controller");
}
} else if (Objects.equals(property.sourceType(), EventHandler.class.getName())) {
injectControllerMethod(request, property, parentVariable, sb);
} else if (property.sourceType() != null) {
final var propertySourceTypeClass = getClass(property.sourceType());
if (hasStaticMethod(propertySourceTypeClass, setMethod)) {
final var method = getStaticMethod(propertySourceTypeClass, setMethod);
final var parameterType = method.getParameterTypes()[1];
final var arg = getArg(request, property.value(), parameterType);
setLaterIfNeeded(request, property, parameterType, " " + property.sourceType() + "." + setMethod + "(" + parentVariable + ", " + arg + ");\n", sb);
} else {
throw new GenerationException("Cannot set " + propertyName + " on " + property.sourceType());
}
} else {
final var getMethod = getGetMethod(propertyName);
final var parentClass = getClass(parent.className());
if (hasMethod(parentClass, setMethod)) {
final var method = getMethod(parentClass, setMethod);
final var parameterType = method.getParameterTypes()[0];
final var arg = getArg(request, property.value(), parameterType);
setLaterIfNeeded(request, property, parameterType, " " + parentVariable + "." + setMethod + "(" + arg + ");\n", sb);
} else if (hasMethod(parentClass, getMethod)) {
final var method = getMethod(parentClass, getMethod);
final var returnType = method.getReturnType();
if (hasMethod(returnType, "addAll")) {
final var arg = getArg(request, property.value(), String.class);
setLaterIfNeeded(request, property, String.class, " " + parentVariable + "." + getMethod + "().addAll(" + arg + ");\n", sb);
}
} else {
throw new GenerationException("Cannot set " + propertyName + " on " + parent.className());
}
}
}
private void setLaterIfNeeded(final GenerationRequest request, final ParsedProperty property, final Class<?> type, final String arg, final StringBuilder sb) throws GenerationException {
if (type == String.class && property.value().startsWith("%") && request.parameters().resourceBundleInjection().injectionType() == ResourceBundleInjectionTypes.GETTER
&& getControllerInjection(request).fieldInjectionType() == ControllerFieldInjectionTypes.FACTORY) {
controllerFactoryPostAction.add(arg);
} else {
sb.append(arg);
}
}
/**
* Injects a controller method
*
* @param request The generation request
* @param property The property to inject
* @param parentVariable The parent variable
* @param sb The string builder
*/
private void injectControllerMethod(final GenerationRequest request, final ParsedProperty property, final String parentVariable, final StringBuilder sb) throws GenerationException {
final var injection = getControllerInjection(request);
final var methodInjection = getMethodInjection(request, property, parentVariable, sb);
if (injection.fieldInjectionType() instanceof final ControllerFieldInjectionTypes fieldTypes) {
switch (fieldTypes) {
case FACTORY -> controllerFactoryPostAction.add(methodInjection);
case ASSIGN, SETTERS, REFLECTION -> sb.append(methodInjection);
}
} else {
throw new GenerationException("Unknown injection type : " + injection.fieldInjectionType());
}
}
/**
* Computes the method injection
*
* @param request The generation request
* @param property The property
* @param parentVariable The parent variable
* @param sb The string builder
* @return The method injection
*/
private static String getMethodInjection(final GenerationRequest request, final ParsedProperty property, final String parentVariable, final StringBuilder sb) throws GenerationException {
final var setMethod = getSetMethod(property.name());
final var injection = getControllerInjection(request);
final var controllerMethod = property.value().replace("#", "");
if (injection.methodInjectionType() instanceof final ControllerMethodsInjectionType methodTypes) {
return switch (methodTypes) {
case REFERENCE -> {
final var hasArgument = request.controllerInfo().handlerHasArgument(controllerMethod);
if (hasArgument) {
yield " " + parentVariable + "." + setMethod + "(controller::" + controllerMethod + ");\n";
} else {
yield " " + parentVariable + "." + setMethod + "(e -> controller." + controllerMethod + "());\n";
}
}
case REFLECTION ->
" " + parentVariable + "." + setMethod + "(e -> callMethod(\"" + controllerMethod + "\", e));\n";
};
} else {
throw new GenerationException("Unknown injection type : " + injection.methodInjectionType());
}
}
/**
* Formats an argument to a method
*
* @param request The generation request
* @param value The value
* @param parameterType The parameter type
* @return The formatted value
*/
private static String getArg(final GenerationRequest request, final String value, final Class<?> parameterType) throws GenerationException {
if (parameterType == String.class && value.startsWith("%")) {
return getBundleValue(request, value.substring(1));
} else {
return toString(value, parameterType);
}
}
/**
* Injects the given variable into the controller
*
* @param request The generation request
* @param id The object id
* @param variable The object variable
* @param sb The string builder
*/
private static void injectControllerField(final GenerationRequest request, final String id, final String variable, final StringBuilder sb) throws GenerationException {
final var controllerInjection = getControllerInjection(request);
final var controllerInjectionType = controllerInjection.fieldInjectionType();
if (controllerInjectionType instanceof final ControllerFieldInjectionTypes types) {
switch (types) {
case FACTORY ->
sb.append(" fieldMap.put(\"").append(id).append("\", ").append(variable).append(");\n");
case ASSIGN -> sb.append(" controller.").append(id).append(" = ").append(variable).append(";\n");
case SETTERS -> {
final var setMethod = getSetMethod(id);
sb.append(" controller.").append(setMethod).append("(").append(variable).append(");\n");
}
case REFLECTION ->
sb.append(" injectField(\"").append(id).append("\", ").append(variable).append(");\n");
}
} else {
throw new GenerationException("Unknown controller injection type : " + controllerInjectionType);
}
}
/**
* Gets the controller injection object from the generation request
*
* @param request The generation request
* @return The controller injection
*/
private static ControllerInjection getControllerInjection(final GenerationRequest request) throws GenerationException {
final var property = request.rootObject().attributes().get("fx:controller");
if (property == null) {
throw new GenerationException("Root object must have a controller property");
} else {
final var id = property.value();
return request.parameters().controllerInjections().get(id);
}
}
/**
* Formats the children objects of a property
*
* @param request The generation request
* @param parent The parent object
* @param property The parent property
* @param objects The child objects
* @param parentVariable The parent object variable
* @param sb The string builder
*/
private void formatChild(final GenerationRequest request, final ParsedObject parent, final ParsedProperty property,
final Collection<? extends ParsedObject> objects, final String parentVariable, final StringBuilder sb) throws GenerationException {
final var propertyName = property.name();
final var variables = new ArrayList<String>();
for (final var object : objects) {
final var vn = getNextVariableName("object");
format(request, object, vn, sb);
variables.add(vn);
}
if (variables.size() > 1) {
formatMultipleChildren(variables, propertyName, parent, parentVariable, sb);
} else if (variables.size() == 1) {
final var vn = variables.getFirst();
formatSingleChild(vn, property, parent, parentVariable, sb);
}
}
/**
* Formats children objects given that they are more than one
*
* @param variables The children variables
* @param propertyName The property name
* @param parent The parent object
* @param parentVariable The parent object variable
* @param sb The string builder
*/
private static void formatMultipleChildren(final Iterable<String> variables, final String propertyName, final ParsedObject parent,
final String parentVariable, final StringBuilder sb) throws GenerationException {
final var getMethod = getGetMethod(propertyName);
if (hasMethod(getClass(parent.className()), getMethod)) {
sb.append(" ").append(parentVariable).append(".").append(getMethod).append("().addAll(").append(String.join(", ", variables)).append(");\n");
} else {
throw new GenerationException("Cannot set " + propertyName + " on " + parent.className());
}
}
/**
* Formats a single child object
*
* @param variableName The child's variable name
* @param property The parent property
* @param parent The parent object
* @param parentVariable The parent object variable
* @param sb The string builder
*/
private static void formatSingleChild(final String variableName, final ParsedProperty property, final ParsedObject parent,
final String parentVariable, final StringBuilder sb) throws GenerationException {
if (property.sourceType() == null) {
formatSingleChildInstance(variableName, property, parent, parentVariable, sb);
} else {
formatSingleChildStatic(variableName, property, parentVariable, sb);
}
}
/**
* Formats a single child object using an instance method on the parent object
*
* @param variableName The child's variable name
* @param property The parent property
* @param parent The parent object
* @param parentVariable The parent object variable
* @param sb The string builder
*/
private static void formatSingleChildInstance(final String variableName, final ParsedProperty property, final ParsedObject parent,
final String parentVariable, final StringBuilder sb) throws GenerationException {
final var setMethod = getSetMethod(property);
final var getMethod = getGetMethod(property);
final var parentClass = getClass(parent.className());
if (hasMethod(parentClass, setMethod)) {
sb.append(" ").append(parentVariable).append(".").append(setMethod).append("(").append(variableName).append(");\n");
} else if (hasMethod(parentClass, getMethod)) {
//Probably a list method that has only one element
sb.append(" ").append(parentVariable).append(".").append(getMethod).append("().addAll(").append(variableName).append(");\n");
} else {
throw new GenerationException("Cannot set " + property.name() + " on " + parent.className());
}
}
/**
* Formats a child object using a static method
*
* @param variableName The child's variable name
* @param property The parent property
* @param parentVariable The parent variable
* @param sb The string builder
*/
private static void formatSingleChildStatic(final String variableName, final ParsedProperty property, final String parentVariable, final StringBuilder sb) throws GenerationException {
final var setMethod = getSetMethod(property);
if (hasStaticMethod(getClass(property.sourceType()), setMethod)) {
sb.append(" ").append(property.sourceType()).append(".").append(setMethod).append("(").append(parentVariable).append(", ").append(variableName).append(");\n");
} else {
throw new GenerationException("Cannot set " + property.name() + " on " + property.sourceType());
}
}
/**
* Returns the getter method name for the given property
*
* @param property The property
* @return The getter method name
*/
private static String getGetMethod(final ParsedProperty property) {
return getGetMethod(property.name());
}
/**
* Returns the getter method name for the given property name
*
* @param propertyName The property name
* @return The getter method name
*/
private static String getGetMethod(final String propertyName) {
return "get" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
}
/**
* Returns the setter method name for the given property
*
* @param property The property
* @return The setter method name
*/
private static String getSetMethod(final ParsedProperty property) {
return getSetMethod(property.name());
}
/**
* Returns the setter method name for the given property name
*
* @param propertyName The property name
* @return The setter method name
*/
private static String getSetMethod(final String propertyName) {
return "set" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
}
private static String getBundleValue(final GenerationRequest request, final String value) throws GenerationException {
final var resourceBundleInjectionType = request.parameters().resourceBundleInjection().injectionType();
if (resourceBundleInjectionType instanceof final ResourceBundleInjectionTypes types) {
return switch (types) {
case CONSTRUCTOR, GET_BUNDLE -> "bundle.getString(\"" + value + "\")";
case GETTER -> "controller.resources().getString(\"" + value + "\")";
};
} else {
throw new GenerationException("Unknown resource bundle injection type : " + resourceBundleInjectionType);
}
}
/**
* Gets the constructor arguments as a list of strings
*
* @param constructorArgs The constructor arguments
* @param parsedObject The parsed object
* @return The list of constructor arguments
*/
private static List<String> getListConstructorArgs(final ConstructorArgs constructorArgs, final ParsedObject parsedObject) throws GenerationException {
final var args = new ArrayList<String>(constructorArgs.namedArgs().size());
for (final var entry : constructorArgs.namedArgs().entrySet()) {
final var type = entry.getValue().type();
final var p = parsedObject.attributes().get(entry.getKey());
if (p == null) {
final var c = parsedObject.properties().entrySet().stream().filter(e ->
e.getKey().name().equals(entry.getKey())).findFirst().orElse(null);
if (c == null) {
args.add(toString(entry.getValue().defaultValue(), type));
} else {
throw new GenerationException("Constructor using complex property not supported yet");
}
} else {
args.add(toString(p.value(), type));
}
}
return args;
}
/**
* Gets the constructor arguments that best match the given property names
*
* @param constructors The constructors
* @param allPropertyNames The property names
* @return The matching constructor arguments, or null if no constructor matches and no default constructor exists
*/
private static ConstructorArgs getMatchingConstructorArgs(final Constructor<?>[] constructors, final Set<String> allPropertyNames) {
ConstructorArgs matchingConstructorArgs = null;
for (final var constructor : constructors) {
final var constructorArgs = getConstructorArgs(constructor);
final var matchingArgsCount = getMatchingArgsCount(constructorArgs, allPropertyNames);
if (matchingConstructorArgs == null ? matchingArgsCount > 0 : matchingArgsCount > getMatchingArgsCount(matchingConstructorArgs, allPropertyNames)) {
matchingConstructorArgs = constructorArgs;
}
}
if (matchingConstructorArgs == null) {
return Arrays.stream(constructors).filter(c -> c.getParameterCount() == 0).findFirst().map(c -> new ConstructorArgs(c, new LinkedHashMap<>())).orElse(null);
} else {
return matchingConstructorArgs;
}
}
/**
* Checks how many arguments of the given constructor match the given property names
*
* @param constructorArgs The constructor arguments
* @param allPropertyNames The property names
* @return The number of matching arguments
*/
private static long getMatchingArgsCount(final ConstructorArgs constructorArgs, final Set<String> allPropertyNames) {
return constructorArgs.namedArgs().keySet().stream().filter(allPropertyNames::contains).count();
}
/**
* Computes the string value to use in the generated code
*
* @param value The value
* @param clazz The value class
* @return The computed string value
*/
private static String toString(final String value, final Class<?> clazz) {
if (clazz == String.class) {
return "\"" + value.replace("\"", "\\\"") + "\"";
} else if (clazz == char.class || clazz == Character.class) {
return "'" + value + "'";
} else if (clazz == boolean.class || clazz == Boolean.class) {
return value;
} else if (clazz == byte.class || clazz == Byte.class || clazz == short.class || clazz == Short.class ||
clazz == int.class || clazz == Integer.class || clazz == long.class || clazz == Long.class) {
if (INT_PATTERN.matcher(value).matches()) {
return value;
} else {
return getWrapperClass(clazz) + ".valueOf(\"" + value + "\")";
}
} else if (clazz == float.class || clazz == Float.class || clazz == double.class || clazz == Double.class) {
if (DECIMAL_PATTERN.matcher(value).matches()) {
return value;
} else {
return getWrapperClass(clazz) + ".valueOf(\"" + value + "\")";
}
} else if (hasValueOf(clazz)) {
if (clazz.isEnum()) {
return clazz.getCanonicalName() + "." + value;
} else {
return clazz.getCanonicalName() + ".valueOf(\"" + value + "\")";
}
} else {
return value;
}
}
private static String getWrapperClass(final Class<?> clazz) {
final var name = clazz.getName();
if (name.contains(".") || Character.isUpperCase(name.charAt(0))) {
return name;
} else {
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
}
/**
* Computes the next available variable name for the given prefix
*
* @param prefix The variable name prefix
* @return The next available variable name
*/
private String getNextVariableName(final String prefix) {
final var counter = variableNameCounters.computeIfAbsent(prefix, k -> new AtomicInteger(0));
return prefix + counter.getAndIncrement();
}
private static Class<?> getClass(final String className) throws GenerationException {
try {
return Class.forName(className, false, Thread.currentThread().getContextClassLoader());
} catch (final ClassNotFoundException e) {
throw new GenerationException("Cannot find class " + className + " ; Is a dependency missing for the plugin?", e);
}
}
}

View File

@@ -1,4 +1,4 @@
package com.github.gtache.fxml.compiler.impl;
package com.github.gtache.fxml.compiler.impl.internal;
import java.lang.reflect.Constructor;
import java.util.Collections;
@@ -15,6 +15,14 @@ import static java.util.Objects.requireNonNull;
*/
record ConstructorArgs(Constructor<?> constructor,
SequencedMap<String, Parameter> namedArgs) {
/**
* Instantiates new args
*
* @param constructor The constructor
* @param namedArgs The named args
* @throws NullPointerException if any argument is null
*/
ConstructorArgs {
requireNonNull(constructor);
namedArgs = Collections.unmodifiableSequencedMap(new LinkedHashMap<>(namedArgs));

View File

@@ -0,0 +1,84 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import static com.github.gtache.fxml.compiler.impl.internal.ReflectionHelper.getConstructorArgs;
/**
* Helper methods for {@link GeneratorImpl} to handle constructors
*/
final class ConstructorHelper {
private ConstructorHelper() {
}
/**
* Gets the constructor arguments as a list of strings
*
* @param constructorArgs The constructor arguments
* @param parsedObject The parsed object
* @return The list of constructor arguments
* @throws GenerationException if an error occurs
*/
static List<String> getListConstructorArgs(final ConstructorArgs constructorArgs, final ParsedObject parsedObject) throws GenerationException {
final var args = new ArrayList<String>(constructorArgs.namedArgs().size());
for (final var entry : constructorArgs.namedArgs().entrySet()) {
final var type = entry.getValue().type();
final var p = parsedObject.attributes().get(entry.getKey());
if (p == null) {
final var c = parsedObject.properties().entrySet().stream().filter(e ->
e.getKey().name().equals(entry.getKey())).findFirst().orElse(null);
if (c == null) {
args.add(ValueFormatter.toString(entry.getValue().defaultValue(), type));
} else {
throw new GenerationException("Constructor using complex property not supported yet");
}
} else {
args.add(ValueFormatter.toString(p.value(), type));
}
}
return args;
}
/**
* Gets the constructor arguments that best match the given property names
*
* @param constructors The constructors
* @param allPropertyNames The property names
* @return The matching constructor arguments, or null if no constructor matches and no default constructor exists
*/
static ConstructorArgs getMatchingConstructorArgs(final Constructor<?>[] constructors, final Set<String> allPropertyNames) {
ConstructorArgs matchingConstructorArgs = null;
for (final var constructor : constructors) {
final var constructorArgs = getConstructorArgs(constructor);
final var matchingArgsCount = getMatchingArgsCount(constructorArgs, allPropertyNames);
if (matchingConstructorArgs == null ? matchingArgsCount > 0 : matchingArgsCount > getMatchingArgsCount(matchingConstructorArgs, allPropertyNames)) {
matchingConstructorArgs = constructorArgs;
}
}
if (matchingConstructorArgs == null) {
return Arrays.stream(constructors).filter(c -> c.getParameterCount() == 0).findFirst().map(c -> new ConstructorArgs(c, new LinkedHashMap<>())).orElse(null);
} else {
return matchingConstructorArgs;
}
}
/**
* Checks how many arguments of the given constructor match the given property names
*
* @param constructorArgs The constructor arguments
* @param allPropertyNames The property names
* @return The number of matching arguments
*/
private static long getMatchingArgsCount(final ConstructorArgs constructorArgs, final Set<String> allPropertyNames) {
return constructorArgs.namedArgs().keySet().stream().filter(allPropertyNames::contains).count();
}
}

View File

@@ -0,0 +1,154 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.InjectionType;
import com.github.gtache.fxml.compiler.impl.ControllerFieldInjectionTypes;
import com.github.gtache.fxml.compiler.impl.ControllerMethodsInjectionType;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.getControllerInjection;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.getSetMethod;
/**
* Various methods to help {@link GeneratorImpl} for injecting controllers
*/
final class ControllerInjector {
private ControllerInjector() {
}
/**
* Injects the given variable into the controller
*
* @param progress The generation progress
* @param id The object id
* @param variable The object variable
* @throws GenerationException if an error occurs
*/
static void injectControllerField(final GenerationProgress progress, final String id, final String variable) throws GenerationException {
final var controllerInjection = getControllerInjection(progress);
final var controllerInjectionType = controllerInjection.fieldInjectionType();
if (controllerInjectionType instanceof final ControllerFieldInjectionTypes types) {
final var sb = progress.stringBuilder();
switch (types) {
case FACTORY ->
sb.append(" fieldMap.put(\"").append(id).append("\", ").append(variable).append(");\n");
case ASSIGN -> sb.append(" controller.").append(id).append(" = ").append(variable).append(";\n");
case SETTERS -> {
final var setMethod = getSetMethod(id);
sb.append(" controller.").append(setMethod).append("(").append(variable).append(");\n");
}
case REFLECTION ->
sb.append(" injectField(\"").append(id).append("\", ").append(variable).append(");\n");
}
} else {
throw new GenerationException("Unknown controller injection type : " + controllerInjectionType);
}
}
/**
* Injects an event handler controller method
*
* @param progress The generation progress
* @param property The property to inject
* @param parentVariable The parent variable
* @throws GenerationException if an error occurs
*/
static void injectEventHandlerControllerMethod(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) throws GenerationException {
injectControllerMethod(progress, getEventHandlerMethodInjection(progress, property, parentVariable));
}
/**
* Injects a callback controller method
*
* @param progress The generation progress
* @param property The property to inject
* @param parentVariable The parent variable
* @param argumentClazz The argument class
* @throws GenerationException if an error occurs
*/
static void injectCallbackControllerMethod(final GenerationProgress progress, final ParsedProperty property, final String parentVariable, final String argumentClazz) throws GenerationException {
injectControllerMethod(progress, getCallbackMethodInjection(progress, property, parentVariable, argumentClazz));
}
/**
* Injects a controller method
*
* @param progress The generation progress
* @param methodInjection The method injection
* @throws GenerationException if an error occurs
*/
private static void injectControllerMethod(final GenerationProgress progress, final String methodInjection) throws GenerationException {
final var injection = getControllerInjection(progress);
if (injection.fieldInjectionType() instanceof final ControllerFieldInjectionTypes fieldTypes) {
switch (fieldTypes) {
case FACTORY -> progress.controllerFactoryPostAction().add(methodInjection);
case ASSIGN, SETTERS, REFLECTION -> progress.stringBuilder().append(methodInjection);
}
} else {
throw getUnknownInjectionException(injection.fieldInjectionType());
}
}
/**
* Computes the method injection for event handler
*
* @param progress The generation progress
* @param property The property
* @param parentVariable The parent variable
* @return The method injection
* @throws GenerationException if an error occurs
*/
private static String getEventHandlerMethodInjection(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) throws GenerationException {
final var setMethod = getSetMethod(property.name());
final var injection = getControllerInjection(progress);
final var controllerMethod = property.value().replace("#", "");
if (injection.methodInjectionType() instanceof final ControllerMethodsInjectionType methodTypes) {
return switch (methodTypes) {
case REFERENCE -> {
final var hasArgument = progress.request().controllerInfo().handlerHasArgument(controllerMethod);
if (hasArgument) {
yield " " + parentVariable + "." + setMethod + "(controller::" + controllerMethod + ");\n";
} else {
yield " " + parentVariable + "." + setMethod + "(e -> controller." + controllerMethod + "());\n";
}
}
case REFLECTION ->
" " + parentVariable + "." + setMethod + "(e -> callEventHandlerMethod(\"" + controllerMethod + "\", e));\n";
};
} else {
throw getUnknownInjectionException(injection.methodInjectionType());
}
}
/**
* Computes the method injection for callback
*
* @param progress The generation progress
* @param property The property
* @param parentVariable The parent variable
* @param argumentClazz The argument class
* @return The method injection
* @throws GenerationException if an error occurs
*/
private static String getCallbackMethodInjection(final GenerationProgress progress, final ParsedProperty property, final String parentVariable, final String argumentClazz) throws GenerationException {
final var setMethod = getSetMethod(property.name());
final var injection = getControllerInjection(progress);
final var controllerMethod = property.value().replace("#", "");
if (injection.methodInjectionType() instanceof final ControllerMethodsInjectionType methodTypes) {
return switch (methodTypes) {
case REFERENCE ->
" " + parentVariable + "." + setMethod + "(controller::" + controllerMethod + ");\n";
case REFLECTION ->
" " + parentVariable + "." + setMethod + "(e -> callCallbackMethod(\"" + controllerMethod + "\", e, " + argumentClazz + "));\n";
};
} else {
throw getUnknownInjectionException(injection.methodInjectionType());
}
}
private static GenerationException getUnknownInjectionException(final InjectionType type) {
return new GenerationException("Unknown injection type : " + type);
}
}

View File

@@ -0,0 +1,94 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.ControllerFieldInjectionTypes;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
/**
* Helper methods for {@link GeneratorImpl} to set fields
*/
final class FieldSetter {
private FieldSetter() {
}
/**
* Sets an event handler field
*
* @param progress The generation progress
* @param property The property to inject
* @param parentVariable The parent variable
* @throws GenerationException if an error occurs@
*/
static void setEventHandler(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) throws GenerationException {
setField(progress, property, parentVariable, "javafx.event.EventHandler");
}
/**
* Sets a field
*
* @param progress The generation progress
* @param property The property to inject
* @param parentVariable The parent variable
* @param fieldType The field type
* @throws GenerationException if an error occurs
*/
static void setField(final GenerationProgress progress, final ParsedProperty property, final String parentVariable, final String fieldType) throws GenerationException {
final var injection = getControllerInjection(progress);
if (injection.fieldInjectionType() instanceof final ControllerFieldInjectionTypes fieldTypes) {
switch (fieldTypes) {
case ASSIGN -> setAssign(progress, property, parentVariable);
case FACTORY -> setFactory(progress, property, parentVariable);
case SETTERS -> setSetter(progress, property, parentVariable);
case REFLECTION -> setReflection(progress, property, parentVariable, fieldType);
}
} else {
throw new GenerationException("Unknown injection type : " + injection.fieldInjectionType());
}
}
private static void setAssign(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) {
final var methodName = getSetMethod(property);
final var value = property.value().replace("$", "");
progress.stringBuilder().append(" ").append(parentVariable).append(".").append(methodName).append("(").append(value).append(");\n");
}
private static void setFactory(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) {
progress.controllerFactoryPostAction().add(getSetString(property, parentVariable));
}
private static void setSetter(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) {
progress.stringBuilder().append(getSetString(property, parentVariable));
}
private static String getSetString(final ParsedProperty property, final String parentVariable) {
final var methodName = getSetMethod(property);
final var value = property.value().replace("$", "");
final var split = value.split("\\.");
final var getterName = getGetMethod(split[1]);
return " " + parentVariable + "." + methodName + "(" + split[0] + "." + getterName + ");\n";
}
private static void setReflection(final GenerationProgress progress, final ParsedProperty property, final String parentVariable, final String fieldType) {
final var methodName = getSetMethod(property);
final var value = property.value().replace("$", "");
final var split = value.split("\\.");
final var fieldName = split[1];
progress.stringBuilder().append("""
try {
final var field = controller.getClass().getDeclaredField("%s");
field.setAccessible(true);
final var value = (%s) field.get(controller);
%s.%s(value);
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException(e);
}
""".formatted(fieldName, fieldType, parentVariable, methodName));
}
}

View File

@@ -0,0 +1,138 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
/**
* Helper methods for {@link GeneratorImpl} to format fonts
*/
final class FontFormatter {
private FontFormatter() {
}
static void formatFont(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (parsedObject.children().isEmpty() && parsedObject.properties().isEmpty()) {
final var value = parseFontValue(parsedObject);
final var url = value.url();
final var fw = value.fontWeight();
final var fp = value.fontPosture();
final var size = value.size();
final var name = value.name();
if (url != null) {
formatURL(progress, url, size, variableName);
} else if (fw == null && fp == null) {
formatNoStyle(progress, name, size, variableName);
} else {
formatStyle(progress, fw, fp, size, name, variableName);
}
handleId(progress, parsedObject, variableName);
} else {
throw new GenerationException("Font cannot have children or properties : " + parsedObject);
}
}
private static void formatURL(final GenerationProgress progress, final URL url, final double size, final String variableName) {
final var urlVariableName = URLBuilder.formatURL(progress, url.toString());
progress.stringBuilder().append("""
Font %1$s;
try (final var in = %2$s.openStream()) {
%1$s = Font.loadFont(in, %3$s);
} catch (final IOException e) {
throw new RuntimeException(e);
}
""".formatted(variableName, urlVariableName, size));
}
private static void formatNoStyle(final GenerationProgress progress, final String name, final double size, final String variableName) {
progress.stringBuilder().append(START_VAR).append(variableName).append(" = new javafx.scene.text.Font(\"").append(name).append("\", ").append(size).append(");\n");
}
private static void formatStyle(final GenerationProgress progress, final FontWeight fw, final FontPosture fp, final double size, final String name, final String variableName) {
final var finalFW = fw == null ? FontWeight.NORMAL : fw;
final var finalFP = fp == null ? FontPosture.REGULAR : fp;
progress.stringBuilder().append(START_VAR).append(variableName).append(" = new javafx.scene.text.Font(\"").append(name)
.append("\", javafx.scene.text.FontWeight.").append(finalFW.name()).append(", javafx.scene.text.FontPosture.")
.append(finalFP.name()).append(", ").append(size).append(");\n");
}
private static FontValue parseFontValue(final ParsedObject parsedObject) throws GenerationException {
URL url = null;
String name = null;
double size = 12;
FontWeight fw = null;
FontPosture fp = null;
final var sortedAttributes = getSortedAttributes(parsedObject);
for (final var property : sortedAttributes) {
switch (property.name()) {
case FX_ID -> {
//Do nothing
}
case "name" -> {
try {
url = new URI(property.value()).toURL();
} catch (final MalformedURLException | URISyntaxException | IllegalArgumentException ignored) {
name = property.value();
}
}
case "size" -> size = Double.parseDouble(property.value());
case "style" -> {
final var style = getFontStyle(property);
if (style.fontWeight() != null) {
fw = style.fontWeight();
}
if (style.fontPosture() != null) {
fp = style.fontPosture();
}
}
case "url" -> url = getURL(property);
default -> throw new GenerationException("Unknown font attribute : " + property.name());
}
}
return new FontValue(url, name, size, fw, fp);
}
private static URL getURL(final ParsedProperty property) throws GenerationException {
try {
return new URI(property.value()).toURL();
} catch (final MalformedURLException | URISyntaxException e) {
throw new GenerationException("Couldn't parse url : " + property.value(), e);
}
}
private static FontStyle getFontStyle(final ParsedProperty property) {
final var split = property.value().split(" ");
FontWeight fw = null;
FontPosture fp = null;
for (final var s : split) {
final var fontWeight = FontWeight.findByName(s);
final var fontPosture = FontPosture.findByName(s);
if (fontWeight != null) {
fw = fontWeight;
} else if (fontPosture != null) {
fp = fontPosture;
}
}
return new FontStyle(fw, fp);
}
private record FontValue(URL url, String name, double size, FontWeight fontWeight,
FontPosture fontPosture) {
}
private record FontStyle(FontWeight fontWeight, FontPosture fontPosture) {
}
}

View File

@@ -0,0 +1,124 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.ControllerInjection;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import java.util.List;
import java.util.Map;
import static com.github.gtache.fxml.compiler.impl.internal.ControllerInjector.injectControllerField;
/**
* Various helper methods for {@link GeneratorImpl}
*/
public final class GenerationHelper {
static final String FX_ID = "fx:id";
static final String FX_VALUE = "fx:value";
static final String VALUE = "value";
static final String START_VAR = " final var ";
private GenerationHelper() {
}
/**
* Returns the variable prefix for the given object
*
* @param object The object
* @return The variable prefix
*/
public static String getVariablePrefix(final ParsedObject object) {
final var className = object.className();
return className.substring(className.lastIndexOf('.') + 1).toLowerCase();
}
/**
* Gets the controller injection object from the generation request
*
* @param progress The generation progress
* @return The controller injection
* @throws GenerationException If the controller is not found
*/
public static ControllerInjection getControllerInjection(final GenerationProgress progress) throws GenerationException {
final var request = progress.request();
final var property = request.rootObject().attributes().get("fx:controller");
if (property == null) {
throw new GenerationException("Root object must have a controller property");
} else {
final var id = property.value();
return request.parameters().controllerInjections().get(id);
}
}
/**
* Returns the getter method name for the given property
*
* @param property The property
* @return The getter method name
*/
static String getGetMethod(final ParsedProperty property) {
return getGetMethod(property.name());
}
/**
* Returns the getter method name for the given property name
*
* @param propertyName The property name
* @return The getter method name
*/
static String getGetMethod(final String propertyName) {
return "get" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
}
/**
* Returns the setter method name for the given property
*
* @param property The property
* @return The setter method name
*/
static String getSetMethod(final ParsedProperty property) {
return getSetMethod(property.name());
}
/**
* Returns the setter method name for the given property name
*
* @param propertyName The property name
* @return The setter method name
*/
static String getSetMethod(final String propertyName) {
return "set" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
}
/**
* Handles the fx:id attribute of an object
*
* @param progress The generation progress
* @param parsedObject The parsed object
* @param variableName The variable name
* @throws GenerationException if an error occurs
*/
static void handleId(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
final var id = parsedObject.attributes().get(FX_ID);
if (id != null) {
progress.idToVariableName().put(id.value(), variableName);
progress.idToObject().put(id.value(), parsedObject);
//TODO Don't inject if variable doesn't exist
injectControllerField(progress, id.value(), variableName);
}
}
/**
* Returns the sorted attributes of the given object
*
* @param parsedObject The parsed object
* @return The sorted attributes
*/
static List<ParsedProperty> getSortedAttributes(final ParsedObject parsedObject) {
return parsedObject.attributes().entrySet().stream().sorted(Map.Entry.comparingByKey()).map(Map.Entry::getValue).toList();
}
}

View File

@@ -0,0 +1,70 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationRequest;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.SequencedCollection;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Used by {@link GeneratorImpl} to track the generation progress
*
* @param request The generation request
* @param idToVariableName The id to variable name mapping
* @param idToObject The id to parsed object mapping
* @param variableNameCounters The variable name counters for variable name generation
* @param controllerFactoryPostAction The controller factory post action for factory injection
* @param stringBuilder The string builder
*/
public record GenerationProgress(GenerationRequest request, Map<String, String> idToVariableName,
Map<String, ParsedObject> idToObject,
Map<String, AtomicInteger> variableNameCounters,
SequencedCollection<String> controllerFactoryPostAction,
StringBuilder stringBuilder) {
/**
* Instantiates a new GenerationProgress
*
* @param request The generation request
* @param idToVariableName The id to variable name mapping
* @param idToObject The id to parsed object mapping
* @param variableNameCounters The variable name counters
* @param controllerFactoryPostAction The controller factory post action
* @param stringBuilder The string builder
* @throws NullPointerException if any parameter is null
*/
public GenerationProgress {
Objects.requireNonNull(request);
Objects.requireNonNull(idToVariableName);
Objects.requireNonNull(idToObject);
Objects.requireNonNull(variableNameCounters);
Objects.requireNonNull(controllerFactoryPostAction);
Objects.requireNonNull(stringBuilder);
}
/**
* Instantiates a new GenerationProgress
*
* @param request The generation request
* @throws NullPointerException if request is null
*/
public GenerationProgress(final GenerationRequest request) {
this(request, new HashMap<>(), new HashMap<>(), new HashMap<>(), new ArrayList<>(), new StringBuilder());
}
/**
* Gets the next available variable name for the given prefix
*
* @param prefix The variable name prefix
* @return The next available variable name
*/
public String getNextVariableName(final String prefix) {
final var counter = variableNameCounters.computeIfAbsent(prefix, k -> new AtomicInteger(0));
return prefix + counter.getAndIncrement();
}
}

View File

@@ -0,0 +1,106 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.ControllerFieldInjectionTypes;
import com.github.gtache.fxml.compiler.impl.ControllerMethodsInjectionType;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.getControllerInjection;
/**
* Provides the helper methods for the generated code
*/
public final class HelperMethodsProvider {
private HelperMethodsProvider() {
}
/**
* Gets helper methods string for the given generation progress
*
* @param progress The generation progress
* @return The helper methods
* @throws GenerationException if an error occurs
*/
public static String getHelperMethods(final GenerationProgress progress) throws GenerationException {
final var injection = getControllerInjection(progress);
final var methodInjectionType = injection.methodInjectionType();
final var sb = new StringBuilder();
if (methodInjectionType == ControllerMethodsInjectionType.REFLECTION) {
sb.append("""
private <T extends javafx.event.Event> void callEventHandlerMethod(final String methodName, final T event) {
try {
final java.lang.reflect.Method method;
final var methods = java.util.Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && javafx.event.Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | java.lang.reflect.InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
private <T, U> U callCallbackMethod(final String methodName, final T value, final Class<T> clazz) {
try {
final java.lang.reflect.Method method;
final var methods = java.util.Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && clazz.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
return (U) method.invoke(controller, value);
} catch (final IllegalAccessException | java.lang.reflect.InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
""");
}
if (injection.fieldInjectionType() == ControllerFieldInjectionTypes.REFLECTION) {
sb.append("""
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
""");
}
return sb.toString();
}
}

View File

@@ -0,0 +1,52 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.URLBuilder.formatURL;
/**
* Helper methods for {@link GeneratorImpl} to format Images
*/
final class ImageBuilder {
private ImageBuilder() {
}
static void formatImage(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (parsedObject.children().isEmpty() && parsedObject.properties().isEmpty()) {
final var sortedAttributes = getSortedAttributes(parsedObject);
String url = null;
var requestedWidth = 0.0;
var requestedHeight = 0.0;
var preserveRatio = false;
var smooth = false;
var backgroundLoading = false;
for (final var property : sortedAttributes) {
switch (property.name()) {
case FX_ID -> {
//Do nothing
}
case "url" -> url = formatURL(progress, property.value());
case "requestedWidth" -> requestedWidth = Double.parseDouble(property.value());
case "requestedHeight" -> requestedHeight = Double.parseDouble(property.value());
case "preserveRatio" -> preserveRatio = Boolean.parseBoolean(property.value());
case "smooth" -> smooth = Boolean.parseBoolean(property.value());
case "backgroundLoading" -> backgroundLoading = Boolean.parseBoolean(property.value());
default -> throw new GenerationException("Unknown image attribute : " + property.name());
}
}
final var urlString = progress.getNextVariableName("urlStr");
progress.stringBuilder().append(START_VAR).append(urlString).append(" = ").append(url).append(".toString();\n");
progress.stringBuilder().append(START_VAR).append(variableName).append(" = new javafx.scene.image.Image(").append(urlString)
.append(", ").append(requestedWidth).append(", ").append(requestedHeight).append(", ")
.append(preserveRatio).append(", ").append(smooth).append(", ").append(backgroundLoading).append(");\n");
handleId(progress, parsedObject, variableName);
} else {
throw new GenerationException("Image cannot have children or properties : " + parsedObject);
}
}
}

View File

@@ -0,0 +1,511 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.*;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedPropertyImpl;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
import java.util.SequencedCollection;
import java.util.Set;
import java.util.stream.Collectors;
import static com.github.gtache.fxml.compiler.impl.internal.ConstructorHelper.getListConstructorArgs;
import static com.github.gtache.fxml.compiler.impl.internal.ConstructorHelper.getMatchingConstructorArgs;
import static com.github.gtache.fxml.compiler.impl.internal.ControllerInjector.injectControllerField;
import static com.github.gtache.fxml.compiler.impl.internal.FontFormatter.formatFont;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.ImageBuilder.formatImage;
import static com.github.gtache.fxml.compiler.impl.internal.PropertyFormatter.formatProperty;
import static com.github.gtache.fxml.compiler.impl.internal.ReflectionHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.SceneBuilder.formatScene;
import static com.github.gtache.fxml.compiler.impl.internal.TriangleMeshBuilder.formatTriangleMesh;
import static com.github.gtache.fxml.compiler.impl.internal.URLBuilder.formatURL;
import static com.github.gtache.fxml.compiler.impl.internal.WebViewBuilder.formatWebView;
/**
* Helper methods for {@link GeneratorImpl} to format properties
*/
public final class ObjectFormatter {
private static final String NEW_ASSIGN = " = new ";
private static final Set<String> BUILDER_CLASSES = Set.of(
"javafx.scene.Scene",
"javafx.scene.text.Font",
"javafx.scene.image.Image",
"java.net.URL",
"javafx.scene.shape.TriangleMesh",
"javafx.scene.web.WebView"
);
private static final Set<String> SIMPLE_CLASSES = Set.of(
"java.lang.String",
"java.lang.Integer",
"java.lang.Byte",
"java.lang.Short",
"java.lang.Long",
"java.lang.Float",
"java.lang.Double"
);
private ObjectFormatter() {
}
/**
* Formats an object
*
* @param progress The generation progress
* @param parsedObject The parsed object to format
* @param variableName The variable name for the object
* @throws GenerationException if an error occurs
*/
public static void format(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
switch (parsedObject) {
case final ParsedConstant constant -> formatConstant(progress, constant, variableName);
case final ParsedCopy copy -> formatCopy(progress, copy, variableName);
case final ParsedDefine define -> formatDefine(progress, define, variableName);
case final ParsedFactory factory -> formatFactory(progress, factory, variableName);
case final ParsedInclude include -> formatInclude(progress, include, variableName);
case final ParsedReference reference -> formatReference(progress, reference, variableName);
case final ParsedValue value -> formatValue(progress, value, variableName);
case final ParsedText text -> formatText(progress, text, variableName);
default -> formatObject(progress, parsedObject, variableName);
}
}
/**
* Formats a simple text
*
* @param progress The generation progress
* @param text The parsed text
* @param variableName The variable name
*/
private static void formatText(final GenerationProgress progress, final ParsedText text, final String variableName) {
progress.stringBuilder().append(START_VAR).append(variableName).append(" = \"").append(text.text()).append("\";\n");
}
/**
* Formats a basic object
*
* @param progress The generation progress
* @param parsedObject The parsed object to format
* @param variableName The variable name for the object
*/
private static void formatObject(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (BUILDER_CLASSES.contains(parsedObject.className())) {
formatBuilderObject(progress, parsedObject, variableName);
} else {
formatNotBuilder(progress, parsedObject, variableName);
}
}
/**
* Formats a builder object
*
* @param progress The generation progress
* @param parsedObject The parsed object
* @param variableName The variable name
*/
private static void formatBuilderObject(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
final var className = parsedObject.className();
switch (className) {
case "javafx.scene.Scene" -> formatScene(progress, parsedObject, variableName);
case "javafx.scene.text.Font" -> formatFont(progress, parsedObject, variableName);
case "javafx.scene.image.Image" -> formatImage(progress, parsedObject, variableName);
case "java.net.URL" -> formatURL(progress, parsedObject, variableName);
case "javafx.scene.shape.TriangleMesh" -> formatTriangleMesh(progress, parsedObject, variableName);
case "javafx.scene.web.WebView" -> formatWebView(progress, parsedObject, variableName);
default -> throw new IllegalArgumentException("Unknown builder class : " + className);
}
}
private static void formatNotBuilder(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (isSimpleClass(parsedObject)) {
formatSimpleClass(progress, parsedObject, variableName);
} else {
formatComplexClass(progress, parsedObject, variableName);
}
}
private static void formatSimpleClass(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (!parsedObject.properties().isEmpty()) {
throw new GenerationException("Simple class cannot have properties : " + parsedObject);
}
if (parsedObject.attributes().keySet().stream().anyMatch(k -> !k.equals(FX_ID) && !k.equals(VALUE) && !k.equals(FX_VALUE))) {
throw new GenerationException("Invalid attributes for simple class : " + parsedObject);
}
final var value = getSimpleValue(progress, parsedObject);
final var valueStr = ValueFormatter.toString(value, ReflectionHelper.getClass(parsedObject.className()));
progress.stringBuilder().append(START_VAR).append(variableName).append(" = ").append(valueStr).append(";\n");
handleId(progress, parsedObject, variableName);
}
private static String getSimpleValue(final GenerationProgress progress, final ParsedObject parsedObject) throws GenerationException {
final var definedChildren = parsedObject.children().stream().filter(ParsedDefine.class::isInstance).toList();
for (final var definedChild : definedChildren) {
formatObject(progress, definedChild, progress.getNextVariableName("define"));
}
final var notDefinedChildren = parsedObject.children().stream().filter(c -> !(c instanceof ParsedDefine)).toList();
if (parsedObject.attributes().containsKey(FX_VALUE)) {
return getSimpleFXValue(parsedObject, notDefinedChildren);
} else if (parsedObject.attributes().containsKey(VALUE)) {
return getSimpleValue(parsedObject, notDefinedChildren);
} else {
return getSimpleChild(parsedObject, notDefinedChildren);
}
}
private static String getSimpleFXValue(final ParsedObject parsedObject, final Collection<ParsedObject> notDefinedChildren) throws GenerationException {
if (notDefinedChildren.isEmpty() && !parsedObject.attributes().containsKey(VALUE)) {
return parsedObject.attributes().get(FX_VALUE).value();
} else {
throw new GenerationException("Malformed simple class : " + parsedObject);
}
}
private static String getSimpleValue(final ParsedObject parsedObject, final Collection<ParsedObject> notDefinedChildren) throws GenerationException {
if (notDefinedChildren.isEmpty()) {
return parsedObject.attributes().get(VALUE).value();
} else {
throw new GenerationException("Malformed simple class : " + parsedObject);
}
}
private static String getSimpleChild(final ParsedObject parsedObject, final SequencedCollection<ParsedObject> notDefinedChildren) throws GenerationException {
if (notDefinedChildren.size() == 1) {
final var child = notDefinedChildren.getFirst();
if (child instanceof final ParsedText text) {
return text.text();
} else {
throw new GenerationException("Invalid value for : " + parsedObject);
}
} else {
throw new GenerationException("Value not found for : " + parsedObject);
}
}
private static boolean isSimpleClass(final ParsedObject object) throws GenerationException {
final var className = object.className();
if (SIMPLE_CLASSES.contains(className)) {
return true;
} else {
final var clazz = ReflectionHelper.getClass(className);
return clazz.isEnum();
}
}
private static void formatComplexClass(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
final var clazz = ReflectionHelper.getClass(parsedObject.className());
final var children = parsedObject.children();
final var definedChildren = children.stream().filter(ParsedDefine.class::isInstance).toList();
final var notDefinedChildren = children.stream().filter(c -> !(c instanceof ParsedDefine)).toList();
final var constructors = clazz.getConstructors();
final var allPropertyNames = new HashSet<>(parsedObject.attributes().keySet());
allPropertyNames.addAll(parsedObject.properties().keySet().stream().map(ParsedProperty::name).collect(Collectors.toSet()));
if (!definedChildren.isEmpty()) {
for (final var definedChild : definedChildren) {
format(progress, definedChild, progress.getNextVariableName("define"));
}
}
if (!notDefinedChildren.isEmpty()) {
final var defaultProperty = getDefaultProperty(parsedObject.className());
if (defaultProperty != null) {
allPropertyNames.add(defaultProperty);
}
}
final var constructorArgs = getMatchingConstructorArgs(constructors, allPropertyNames);
if (constructorArgs == null) {
formatNoConstructor(progress, parsedObject, variableName, allPropertyNames);
} else {
formatConstructor(progress, parsedObject, variableName, constructorArgs);
}
}
private static void formatNoConstructor(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName, final Collection<String> allPropertyNames) throws GenerationException {
final var clazz = ReflectionHelper.getClass(parsedObject.className());
if (allPropertyNames.size() == 1 && allPropertyNames.iterator().next().equals("fx:constant")) {
final var property = parsedObject.attributes().get("fx:constant");
progress.stringBuilder().append(START_VAR).append(variableName).append(" = ").append(clazz.getCanonicalName()).append(".").append(property.value()).append(";\n");
} else {
throw new GenerationException("Cannot find constructor for " + clazz.getCanonicalName());
}
}
private static void formatConstructor(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName, final ConstructorArgs constructorArgs) throws GenerationException {
final var args = getListConstructorArgs(constructorArgs, parsedObject);
final var genericTypes = getGenericTypes(progress, parsedObject);
progress.stringBuilder().append(START_VAR).append(variableName).append(NEW_ASSIGN).append(parsedObject.className())
.append(genericTypes).append("(").append(String.join(", ", args)).append(");\n");
final var sortedAttributes = getSortedAttributes(parsedObject);
for (final var value : sortedAttributes) {
if (!constructorArgs.namedArgs().containsKey(value.name())) {
formatProperty(progress, value, parsedObject, variableName);
}
}
final var sortedProperties = parsedObject.properties().entrySet().stream().sorted(Comparator.comparing(e -> e.getKey().name())).toList();
for (final var e : sortedProperties) {
if (!constructorArgs.namedArgs().containsKey(e.getKey().name())) {
final var p = e.getKey();
final var o = e.getValue();
formatChild(progress, parsedObject, p, o, variableName);
}
}
final var notDefinedChildren = parsedObject.children().stream().filter(c -> !(c instanceof ParsedDefine)).toList();
if (!notDefinedChildren.isEmpty()) {
final var defaultProperty = getDefaultProperty(parsedObject.className());
if (!constructorArgs.namedArgs().containsKey(defaultProperty)) {
final var property = new ParsedPropertyImpl(defaultProperty, null, null);
formatChild(progress, parsedObject, property, notDefinedChildren, variableName);
}
}
}
/**
* Formats an include object
*
* @param progress The generation progress
* @param include The include object
* @param subNodeName The sub node name
*/
private static void formatInclude(final GenerationProgress progress, final ParsedInclude include, final String subNodeName) throws GenerationException {
final var subViewVariable = progress.getNextVariableName("view");
final var source = include.source();
final var resources = include.resources();
final var request = progress.request();
final var subControllerClass = request.parameters().sourceToControllerName().get(source);
final var subClassName = request.parameters().sourceToGeneratedClassName().get(source);
if (subClassName == null) {
throw new GenerationException("Unknown include source : " + source);
}
final var sb = progress.stringBuilder();
if (resources == null) {
sb.append(START_VAR).append(subViewVariable).append(NEW_ASSIGN).append(subClassName).append("(controllersMap, resourceBundlesMap);\n");
} else {
final var subResourceBundlesMapVariable = progress.getNextVariableName("map");
final var subBundleVariable = progress.getNextVariableName("bundle");
sb.append(START_VAR).append(subResourceBundlesMapVariable).append(" = new HashMap<>(resourceBundlesMap);\n");
sb.append(START_VAR).append(subBundleVariable).append(" = java.util.ResourceBundle.getBundle(\"").append(resources).append("\");\n");
sb.append(" ").append(subResourceBundlesMapVariable).append(".put(").append(subControllerClass).append(", ").append(subBundleVariable).append(");\n");
sb.append(START_VAR).append(subViewVariable).append(NEW_ASSIGN).append(subClassName).append("(controllersMap, ").append(subResourceBundlesMapVariable).append(");\n");
}
sb.append(" final javafx.scene.Parent ").append(subNodeName).append(" = ").append(subViewVariable).append(".load();\n");
injectSubController(progress, include, subViewVariable);
}
private static void injectSubController(final GenerationProgress progress, final ParsedInclude include, final String subViewVariable) throws GenerationException {
final var id = include.controllerId();
if (id != null) {
final var subControllerVariable = progress.getNextVariableName("controller");
progress.stringBuilder().append(START_VAR).append(subControllerVariable).append(" = ").append(subViewVariable).append(".controller();\n");
progress.idToVariableName().put(id, subControllerVariable);
progress.idToObject().put(id, include);
//TODO Don't inject if variable doesn't exist
injectControllerField(progress, id, subControllerVariable);
}
}
/**
* Formats a fx:define
*
* @param progress The generation progress
* @param define The parsed define
* @param variableName The variable name
* @throws GenerationException if an error occurs
*/
private static void formatDefine(final GenerationProgress progress, final ParsedDefine define, final String variableName) throws GenerationException {
formatObject(progress, define.object(), variableName);
}
/**
* Formats a fx:reference
*
* @param progress The generation progress
* @param reference The parsed reference
* @throws GenerationException if an error occurs
*/
private static void formatReference(final GenerationProgress progress, final ParsedReference reference, final String variableName) throws GenerationException {
final var id = reference.source();
final var variable = progress.idToVariableName().get(id);
if (variable == null) {
throw new GenerationException("Unknown id : " + id);
}
progress.stringBuilder().append(START_VAR).append(variableName).append(" = ").append(variable).append(";\n");
}
/**
* Formats a fx:copy
*
* @param progress The generation progress
* @param copy The parsed copy
* @param variableName The variable name
* @throws GenerationException if an error occurs
*/
private static void formatCopy(final GenerationProgress progress, final ParsedCopy copy, final String variableName) throws GenerationException {
final var id = copy.source();
final var variable = progress.idToVariableName().get(id);
final var object = progress.idToObject().get(id);
if (variable == null || object == null) {
throw new GenerationException("Unknown id : " + id);
}
progress.stringBuilder().append(START_VAR).append(variableName).append(NEW_ASSIGN).append(object.className()).append("(").append(variable).append(");\n");
}
/**
* Formats a constant object
*
* @param progress The generation progress
* @param constant The constant
* @param variableName The variable name
*/
private static void formatConstant(final GenerationProgress progress, final ParsedConstant constant, final String variableName) {
progress.stringBuilder().append(START_VAR).append(variableName).append(" = ").append(constant.className()).append(".").append(constant.constant()).append(";\n");
}
/**
* Formats a value object
*
* @param progress The generation progress
* @param value The value
* @param variableName The variable name
*/
private static void formatValue(final GenerationProgress progress, final ParsedValue value, final String variableName) {
progress.stringBuilder().append(START_VAR).append(variableName).append(" = ").append(value.className()).append(".valueOf(\"").append(value.value()).append("\");\n");
}
/**
* Formats a factory object
*
* @param progress The generation progress
* @param factory The factory
* @param variableName The variable name
*/
private static void formatFactory(final GenerationProgress progress, final ParsedFactory factory, final String variableName) throws GenerationException {
final var variables = new ArrayList<String>();
for (final var argument : factory.arguments()) {
final var argumentVariable = progress.getNextVariableName("arg");
variables.add(argumentVariable);
format(progress, argument, argumentVariable);
}
progress.stringBuilder().append(START_VAR).append(variableName).append(" = ").append(factory.className())
.append(".").append(factory.factory()).append("(").append(String.join(", ", variables)).append(");\n");
}
/**
* Formats the children objects of a property
*
* @param progress The generation progress
* @param parent The parent object
* @param property The parent property
* @param objects The child objects
* @param parentVariable The parent object variable
*/
private static void formatChild(final GenerationProgress progress, final ParsedObject parent, final ParsedProperty property,
final Iterable<? extends ParsedObject> objects, final String parentVariable) throws GenerationException {
final var propertyName = property.name();
final var variables = new ArrayList<String>();
for (final var object : objects) {
final var vn = progress.getNextVariableName(getVariablePrefix(object));
format(progress, object, vn);
if (!(object instanceof ParsedDefine)) {
variables.add(vn);
}
}
if (variables.size() > 1) {
formatMultipleChildren(progress, variables, propertyName, parent, parentVariable);
} else if (variables.size() == 1) {
final var vn = variables.getFirst();
formatSingleChild(progress, vn, property, parent, parentVariable);
}
}
/**
* Formats children objects given that they are more than one
*
* @param progress The generation progress
* @param variables The children variables
* @param propertyName The property name
* @param parent The parent object
* @param parentVariable The parent object variable
*/
private static void formatMultipleChildren(final GenerationProgress progress, final Iterable<String> variables, final String propertyName, final ParsedObject parent,
final String parentVariable) throws GenerationException {
final var getMethod = getGetMethod(propertyName);
if (hasMethod(ReflectionHelper.getClass(parent.className()), getMethod)) {
progress.stringBuilder().append(" ").append(parentVariable).append(".").append(getMethod).append("().addAll(java.util.List.of(").append(String.join(", ", variables)).append("));\n");
} else {
throw getCannotSetException(propertyName, parent.className());
}
}
/**
* Formats a single child object
*
* @param progress The generation progress
* @param variableName The child's variable name
* @param property The parent property
* @param parent The parent object
* @param parentVariable The parent object variable
*/
private static void formatSingleChild(final GenerationProgress progress, final String variableName, final ParsedProperty property, final ParsedObject parent,
final String parentVariable) throws GenerationException {
if (property.sourceType() == null) {
formatSingleChildInstance(progress, variableName, property, parent, parentVariable);
} else {
formatSingleChildStatic(progress, variableName, property, parentVariable);
}
}
/**
* Formats a single child object using an instance method on the parent object
*
* @param progress The generation progress
* @param variableName The child's variable name
* @param property The parent property
* @param parent The parent object
* @param parentVariable The parent object variable
*/
private static void formatSingleChildInstance(final GenerationProgress progress, final String variableName,
final ParsedProperty property, final ParsedObject parent,
final String parentVariable) throws GenerationException {
final var setMethod = getSetMethod(property);
final var getMethod = getGetMethod(property);
final var parentClass = ReflectionHelper.getClass(parent.className());
final var sb = progress.stringBuilder();
if (hasMethod(parentClass, setMethod)) {
sb.append(" ").append(parentVariable).append(".").append(setMethod).append("(").append(variableName).append(");\n");
} else if (hasMethod(parentClass, getMethod)) {
//Probably a list method that has only one element
sb.append(" ").append(parentVariable).append(".").append(getMethod).append("().addAll(java.util.List.of(").append(variableName).append("));\n");
} else {
throw getCannotSetException(property.name(), parent.className());
}
}
/**
* Formats a child object using a static method
*
* @param progress The generation progress
* @param variableName The child's variable name
* @param property The parent property
* @param parentVariable The parent variable
*/
private static void formatSingleChildStatic(final GenerationProgress progress, final String variableName,
final ParsedProperty property, final String parentVariable) throws GenerationException {
final var setMethod = getSetMethod(property);
if (hasStaticMethod(ReflectionHelper.getClass(property.sourceType()), setMethod)) {
progress.stringBuilder().append(" ").append(property.sourceType()).append(".").append(setMethod)
.append("(").append(parentVariable).append(", ").append(variableName).append(");\n");
} else {
throw getCannotSetException(property.name(), property.sourceType());
}
}
private static GenerationException getCannotSetException(final String propertyName, final String className) {
return new GenerationException("Cannot set " + propertyName + " on " + className);
}
}

View File

@@ -1,4 +1,4 @@
package com.github.gtache.fxml.compiler.impl;
package com.github.gtache.fxml.compiler.impl.internal;
import static java.util.Objects.requireNonNull;
@@ -11,7 +11,15 @@ import static java.util.Objects.requireNonNull;
*/
record Parameter(String name, Class<?> type, String defaultValue) {
Parameter {
/**
* Instantiates a new Parameter
*
* @param name The parameter name
* @param type The parameter type
* @param defaultValue The parameter default value
* @throws NullPointerException if any parameter is null
*/
public Parameter {
requireNonNull(name);
requireNonNull(type);
requireNonNull(defaultValue);

View File

@@ -0,0 +1,127 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.ControllerFieldInjectionTypes;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.impl.ResourceBundleInjectionTypes;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import javafx.event.EventHandler;
import java.util.Objects;
import static com.github.gtache.fxml.compiler.impl.internal.ControllerInjector.injectEventHandlerControllerMethod;
import static com.github.gtache.fxml.compiler.impl.internal.FieldSetter.setEventHandler;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.ReflectionHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.ValueFormatter.getArg;
/**
* Helper methods for {@link GeneratorImpl} to format properties
*/
final class PropertyFormatter {
private PropertyFormatter() {
}
/**
* Formats a property
*
* @param progress The generation progress
* @param property The property to format
* @param parent The property's parent object
* @param parentVariable The parent variable
* @throws GenerationException if an error occurs
*/
static void formatProperty(final GenerationProgress progress, final ParsedProperty property, final ParsedObject parent, final String parentVariable) throws GenerationException {
final var propertyName = property.name();
if (propertyName.equals(FX_ID)) {
handleId(progress, parent, parentVariable);
} else if (propertyName.equals("fx:controller")) {
checkDuplicateController(progress, parent);
} else if (Objects.equals(property.sourceType(), EventHandler.class.getName())) {
handleEventHandler(progress, property, parentVariable);
} else if (property.sourceType() != null) {
handleStaticProperty(progress, property, parentVariable, propertyName);
} else {
handleProperty(progress, property, parent, parentVariable);
}
}
private static void checkDuplicateController(final GenerationProgress progress, final ParsedObject parent) throws GenerationException {
if (parent != progress.request().rootObject()) {
throw new GenerationException("Invalid nested controller");
}
}
private static void handleEventHandler(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) throws GenerationException {
if (property.value().startsWith("#")) {
injectEventHandlerControllerMethod(progress, property, parentVariable);
} else {
setEventHandler(progress, property, parentVariable);
}
}
private static void handleStaticProperty(final GenerationProgress progress, final ParsedProperty property, final String parentVariable, final String propertyName) throws GenerationException {
final var setMethod = getSetMethod(propertyName);
final var propertySourceTypeClass = ReflectionHelper.getClass(property.sourceType());
if (hasStaticMethod(propertySourceTypeClass, setMethod)) {
final var method = getStaticMethod(propertySourceTypeClass, setMethod);
final var parameterType = method.getParameterTypes()[1];
final var arg = getArg(progress, property.value(), parameterType);
setLaterIfNeeded(progress, property, parameterType, " " + property.sourceType() + "." + setMethod + "(" + parentVariable + ", " + arg + ");\n");
} else {
throw new GenerationException("Cannot set " + propertyName + " on " + property.sourceType());
}
}
private static void handleProperty(final GenerationProgress progress, final ParsedProperty property, final ParsedObject parent, final String parentVariable) throws GenerationException {
final var propertyName = property.name();
final var setMethod = getSetMethod(propertyName);
final var getMethod = getGetMethod(propertyName);
final var parentClass = ReflectionHelper.getClass(parent.className());
if (hasMethod(parentClass, setMethod)) {
handleSetProperty(progress, property, parentClass, parentVariable);
} else if (hasMethod(parentClass, getMethod)) {
handleGetProperty(progress, property, parentClass, parentVariable);
} else {
throw new GenerationException("Cannot set " + propertyName + " on " + parent.className());
}
}
private static void handleSetProperty(final GenerationProgress progress, final ParsedProperty property, final Class<?> parentClass, final String parentVariable) throws GenerationException {
final var setMethod = getSetMethod(property.name());
final var method = getMethod(parentClass, setMethod);
final var parameterType = method.getParameterTypes()[0];
final var arg = getArg(progress, property.value(), parameterType);
setLaterIfNeeded(progress, property, parameterType, " " + parentVariable + "." + setMethod + "(" + arg + ");\n");
}
private static void handleGetProperty(final GenerationProgress progress, final ParsedProperty property, final Class<?> parentClass, final String parentVariable) throws GenerationException {
final var getMethod = getGetMethod(property.name());
final var method = getMethod(parentClass, getMethod);
final var returnType = method.getReturnType();
if (hasMethod(returnType, "addAll")) {
final var arg = getArg(progress, property.value(), String.class);
setLaterIfNeeded(progress, property, String.class, " " + parentVariable + "." + getMethod + "().addAll(java.util.List.of(" + arg + "));\n");
}
}
/**
* Saves the text to set after constructor creation if factory injection is used
*
* @param progress The generation progress
* @param property The property
* @param type The type
* @param arg The argument
* @throws GenerationException if an error occurs
*/
private static void setLaterIfNeeded(final GenerationProgress progress, final ParsedProperty property, final Class<?> type, final String arg) throws GenerationException {
if (type == String.class && property.value().startsWith("%") && progress.request().parameters().resourceBundleInjection().injectionType() == ResourceBundleInjectionTypes.GETTER
&& getControllerInjection(progress).fieldInjectionType() == ControllerFieldInjectionTypes.FACTORY) {
progress.controllerFactoryPostAction().add(arg);
} else {
progress.stringBuilder().append(arg);
}
}
}

View File

@@ -1,5 +1,8 @@
package com.github.gtache.fxml.compiler.impl;
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import javafx.beans.DefaultProperty;
import javafx.beans.NamedArg;
import javafx.scene.Node;
@@ -12,12 +15,15 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.FX_ID;
/**
* Helper methods for reflection
*/
final class ReflectionHelper {
private static final Map<Class<?>, Boolean> HAS_VALUE_OF = new ConcurrentHashMap<>();
private static final Map<Class<?>, Boolean> IS_GENERIC = new ConcurrentHashMap<>();
private static final Map<String, String> DEFAULT_PROPERTY = new ConcurrentHashMap<>();
private static final Map<Class<?>, Map<String, Method>> METHODS = new ConcurrentHashMap<>();
private static final Map<Class<?>, Map<String, Method>> STATIC_METHODS = new ConcurrentHashMap<>();
@@ -199,6 +205,69 @@ final class ReflectionHelper {
}
}
/**
* Computes the default property for the given class
*
* @param className The class name
* @return The default property
* @throws GenerationException If the class is not found or no default property is found
*/
static String getDefaultProperty(final String className) throws GenerationException {
if (DEFAULT_PROPERTY.containsKey(className)) {
return DEFAULT_PROPERTY.get(className);
} else {
final var defaultProperty = computeDefaultProperty(className);
if (defaultProperty != null) {
DEFAULT_PROPERTY.put(className, defaultProperty);
}
return defaultProperty;
}
}
/**
* Gets the wrapper class for the given class
*
* @param clazz The class
* @return The wrapper class (e.g. int.class -> Integer.class) or the original class if it is not a primitive
*/
static String getWrapperClass(final Class<?> clazz) {
final var name = clazz.getName();
if (name.contains(".") || Character.isUpperCase(name.charAt(0))) {
return name;
} else {
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
}
/**
* Gets the class for the given class name
*
* @param className The class name
* @return The class
* @throws GenerationException If the class is not found
*/
public static Class<?> getClass(final String className) throws GenerationException {
try {
return Class.forName(className, false, Thread.currentThread().getContextClassLoader());
} catch (final ClassNotFoundException e) {
throw new GenerationException("Cannot find class " + className + " ; Is a dependency missing for the plugin?", e);
}
}
private static String computeDefaultProperty(final String className) throws GenerationException {
try {
final var clazz = Class.forName(className, false, Thread.currentThread().getContextClassLoader());
final var annotation = clazz.getAnnotation(DefaultProperty.class);
if (annotation == null) {
return null;
} else {
return annotation.value();
}
} catch (final ClassNotFoundException e) {
throw new GenerationException("Class " + className + " not found ; Either specify the property explicitly or put the class in a dependency", e);
}
}
/**
* Computes the default value for the given class
*
@@ -217,4 +286,31 @@ final class ReflectionHelper {
return "null";
}
}
/**
* Gets the generic types for the given object
*
* @param progress The generation progress
* @param parsedObject The parsed object
* @return The generic types
* @throws GenerationException if an error occurs
*/
static String getGenericTypes(final GenerationProgress progress, final ParsedObject parsedObject) throws GenerationException {
final var clazz = getClass(parsedObject.className());
if (isGeneric(clazz)) {
final var idProperty = parsedObject.attributes().get(FX_ID);
if (idProperty == null) {
return "<>";
} else {
final var id = idProperty.value();
final var genericTypes = progress.request().controllerInfo().propertyGenericTypes(id);
if (genericTypes == null) { //Raw
return "";
} else {
return "<" + String.join(", ", genericTypes) + ">";
}
}
}
return "";
}
}

View File

@@ -0,0 +1,77 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import javafx.scene.paint.Color;
import java.util.ArrayList;
import java.util.Collection;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.ObjectFormatter.format;
import static com.github.gtache.fxml.compiler.impl.internal.URLBuilder.formatURL;
/**
* Helper methods for {@link GeneratorImpl} to format Scenes
*/
final class SceneBuilder {
private SceneBuilder() {
}
static void formatScene(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
final var root = findRoot(parsedObject);
final var rootVariableName = progress.getNextVariableName("root");
format(progress, root, rootVariableName);
final var sortedAttributes = getSortedAttributes(parsedObject);
double width = -1;
double height = -1;
var paint = Color.WHITE.toString();
final var stylesheets = new ArrayList<String>();
for (final var property : sortedAttributes) {
switch (property.name()) {
case FX_ID -> {
//Do nothing
}
case "width" -> width = Double.parseDouble(property.value());
case "height" -> height = Double.parseDouble(property.value());
case "fill" -> paint = property.value();
case "stylesheets" -> stylesheets.add(property.value());
default -> throw new GenerationException("Unknown font attribute : " + property.name());
}
}
final var sb = progress.stringBuilder();
sb.append(START_VAR).append(variableName).append(" = new javafx.scene.Scene(").append(rootVariableName).append(", ")
.append(width).append(", ").append(height).append(", javafx.scene.paint.Color.valueOf(\"").append(paint).append("\"));\n");
addStylesheets(progress, variableName, stylesheets);
handleId(progress, parsedObject, variableName);
}
private static ParsedObject findRoot(final ParsedObject parsedObject) throws GenerationException {
final var rootProperty = parsedObject.properties().entrySet().stream().filter(e -> e.getKey().name().equals("root"))
.filter(e -> e.getValue().size() == 1)
.map(e -> e.getValue().getFirst()).findFirst().orElse(null);
if (rootProperty != null) {
return rootProperty;
} else if (parsedObject.children().size() == 1) {
return parsedObject.children().getFirst();
} else {
throw new GenerationException("Scene must have a root");
}
}
private static void addStylesheets(final GenerationProgress progress, final String variableName, final Collection<String> stylesheets) {
if (!stylesheets.isEmpty()) {
final var urlVariables = formatURL(progress, stylesheets);
final var tmpVariable = progress.getNextVariableName("stylesheets");
final var sb = progress.stringBuilder();
sb.append("""
final var %1$s = %2$s.getStylesheets();
%1$s.addAll(java.util.List.of(%3$s));
""".formatted(tmpVariable, variableName, String.join(", ", urlVariables)));
stylesheets.forEach(s -> sb.append(" ").append(variableName).append(".getStyleSheets().add(\"").append(s).append("\");\n"));
}
}
}

View File

@@ -0,0 +1,136 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import javafx.scene.shape.VertexFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
/**
* Helper methods for {@link GeneratorImpl} to format TriangleMeshes
*/
final class TriangleMeshBuilder {
private TriangleMeshBuilder() {
}
static void formatTriangleMesh(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (parsedObject.children().isEmpty() && parsedObject.properties().isEmpty()) {
final var sortedAttributes = getSortedAttributes(parsedObject);
final var points = new ArrayList<Float>();
final var texCoords = new ArrayList<Float>();
final var normals = new ArrayList<Float>();
final var faces = new ArrayList<Integer>();
final var faceSmoothingGroups = new ArrayList<Integer>();
VertexFormat vertexFormat = null;
for (final var property : sortedAttributes) {
switch (property.name().toLowerCase()) {
case FX_ID -> {
//Do nothing
}
case "points" -> {
points.clear();
points.addAll(parseList(property.value(), Float::parseFloat));
}
case "texcoords" -> {
texCoords.clear();
texCoords.addAll(parseList(property.value(), Float::parseFloat));
}
case "normals" -> {
normals.clear();
normals.addAll(parseList(property.value(), Float::parseFloat));
}
case "faces" -> {
faces.clear();
faces.addAll(parseList(property.value(), Integer::parseInt));
}
case "facesmoothinggroups" -> {
faceSmoothingGroups.clear();
faceSmoothingGroups.addAll(parseList(property.value(), Integer::parseInt));
}
case "vertexformat" -> vertexFormat = parseVertexFormat(property);
default -> throw new GenerationException("Unknown TriangleMesh attribute : " + property.name());
}
}
final var sb = progress.stringBuilder();
sb.append(START_VAR).append(variableName).append(" = new javafx.scene.shape.TriangleMesh();\n");
setPoints(progress, variableName, points);
setTexCoords(progress, variableName, texCoords);
setNormals(progress, variableName, normals);
setFaces(progress, variableName, faces);
setFaceSmoothingGroups(progress, variableName, faceSmoothingGroups);
setVertexFormat(progress, variableName, vertexFormat);
handleId(progress, parsedObject, variableName);
} else {
throw new GenerationException("Image cannot have children or properties : " + parsedObject);
}
}
private static VertexFormat parseVertexFormat(final ParsedProperty property) throws GenerationException {
if (property.value().equalsIgnoreCase("point_texcoord")) {
return VertexFormat.POINT_TEXCOORD;
} else if (property.value().equalsIgnoreCase("point_normal_texcoord")) {
return VertexFormat.POINT_NORMAL_TEXCOORD;
} else {
throw new GenerationException("Unknown vertex format : " + property.value());
}
}
private static void setPoints(final GenerationProgress progress, final String variableName, final Collection<Float> points) {
if (!points.isEmpty()) {
progress.stringBuilder().append(" ").append(variableName).append(".getPoints().setAll(new float[]{").append(formatList(points)).append("});\n");
}
}
private static void setTexCoords(final GenerationProgress progress, final String variableName, final Collection<Float> texCoords) {
if (!texCoords.isEmpty()) {
progress.stringBuilder().append(" ").append(variableName).append(".getTexCoords().setAll(new float[]{").append(formatList(texCoords)).append("});\n");
}
}
private static void setNormals(final GenerationProgress progress, final String variableName, final Collection<Float> normals) {
if (!normals.isEmpty()) {
progress.stringBuilder().append(" ").append(variableName).append(".getNormals().setAll(new float[]{").append(formatList(normals)).append("});\n");
}
}
private static void setFaces(final GenerationProgress progress, final String variableName, final Collection<Integer> faces) {
if (!faces.isEmpty()) {
progress.stringBuilder().append(" ").append(variableName).append(".getFaces().setAll(new int[]{").append(formatList(faces)).append("});\n");
}
}
private static void setFaceSmoothingGroups(final GenerationProgress progress, final String variableName, final Collection<Integer> faceSmoothingGroups) {
if (!faceSmoothingGroups.isEmpty()) {
progress.stringBuilder().append(" ").append(variableName).append(".getFaceSmoothingGroups().setAll(new int[]{").append(formatList(faceSmoothingGroups)).append("});\n");
}
}
private static void setVertexFormat(final GenerationProgress progress, final String variableName, final VertexFormat vertexFormat) {
if (vertexFormat != null) {
progress.stringBuilder().append(" ").append(variableName).append(".setVertexFormat(javafx.scene.shape.VertexFormat.").append(vertexFormat).append(");\n");
}
}
private static <T> String formatList(final Collection<T> list) {
return list.stream().map(String::valueOf).collect(Collectors.joining(", "));
}
private static <T> List<T> parseList(final CharSequence value, final Function<? super String, ? extends T> parser) {
final var splitPattern = Pattern.compile("[\\s+,]");
final var split = splitPattern.split(value);
return Arrays.stream(split).map(parser).collect(Collectors.toList());
}
}

View File

@@ -0,0 +1,62 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import java.util.Collection;
import java.util.List;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
/**
* Helper methods for {@link GeneratorImpl} to format URLs
*/
final class URLBuilder {
private URLBuilder() {
}
static List<String> formatURL(final GenerationProgress progress, final Collection<String> stylesheets) {
return stylesheets.stream().map(s -> formatURL(progress, s)).toList();
}
static String formatURL(final GenerationProgress progress, final String url) {
final var variableName = progress.getNextVariableName("url");
final var sb = progress.stringBuilder();
if (url.startsWith("@")) {
sb.append(START_VAR).append(variableName).append(" = getClass().getResource(\"").append(url.substring(1)).append("\");\n");
} else {
sb.append("""
final java.net.URL %1$s;
try {
%1$s = new java.net.URI("%2$s").toURL();
} catch (final java.net.MalformedURLException | java.net.URISyntaxException e) {
throw new RuntimeException("Couldn't parse url : %2$s", e);
}
""".formatted(variableName, url));
}
return variableName;
}
static void formatURL(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (parsedObject.children().isEmpty() && parsedObject.properties().isEmpty()) {
final var sortedAttributes = getSortedAttributes(parsedObject);
String value = null;
for (final var property : sortedAttributes) {
switch (property.name()) {
case FX_ID -> {
//Do nothing
}
case "value" -> value = property.value();
default -> throw new GenerationException("Unknown URL attribute : " + property.name());
}
}
progress.stringBuilder().append(START_VAR).append(variableName).append(" = getClass().getResource(\"").append(value).append("\");\n");
handleId(progress, parsedObject, variableName);
} else {
throw new GenerationException("URL cannot have children or properties : " + parsedObject);
}
}
}

View File

@@ -0,0 +1,118 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.impl.ResourceBundleInjectionTypes;
import java.util.regex.Pattern;
import static com.github.gtache.fxml.compiler.impl.internal.ReflectionHelper.getWrapperClass;
import static com.github.gtache.fxml.compiler.impl.internal.ReflectionHelper.hasValueOf;
/**
* Helper methods for {@link GeneratorImpl} to format values
*/
final class ValueFormatter {
private static final Pattern INT_PATTERN = Pattern.compile("\\d+");
private static final Pattern DECIMAL_PATTERN = Pattern.compile("\\d+(?:\\.\\d+)?");
private static final Pattern START_BACKSLASH_PATTERN = Pattern.compile("^\\\\");
private ValueFormatter() {
}
/**
* Formats an argument to a method
*
* @param progress The generation progress
* @param value The value
* @param parameterType The parameter type
* @return The formatted value
* @throws GenerationException if an error occurs
*/
static String getArg(final GenerationProgress progress, final String value, final Class<?> parameterType) throws GenerationException {
if (parameterType == String.class && value.startsWith("%")) {
return getBundleValue(progress, value.substring(1));
} else if (value.startsWith("@")) {
final var subpath = value.substring(1);
return getResourceValue(subpath);
} else if (value.startsWith("${")) {
throw new UnsupportedOperationException("Not implemented yet");
} else if (value.startsWith("$")) {
final var variable = progress.idToVariableName().get(value.substring(1));
if (variable == null) {
throw new GenerationException("Unknown variable : " + value.substring(1));
}
return variable;
} else {
return toString(value, parameterType);
}
}
private static String getResourceValue(final String subpath) {
return "getClass().getResource(\"" + subpath + "\").toString()";
}
/**
* Gets the resource bundle value for the given value
*
* @param progress The generation progress
* @param value The value
* @return The resource bundle value
* @throws GenerationException if an error occurs
*/
private static String getBundleValue(final GenerationProgress progress, final String value) throws GenerationException {
final var resourceBundleInjectionType = progress.request().parameters().resourceBundleInjection().injectionType();
if (resourceBundleInjectionType instanceof final ResourceBundleInjectionTypes types) {
return switch (types) {
case CONSTRUCTOR, GET_BUNDLE -> "bundle.getString(\"" + value + "\")";
case GETTER -> "controller.resources().getString(\"" + value + "\")";
};
} else {
throw new GenerationException("Unknown resource bundle injection type : " + resourceBundleInjectionType);
}
}
/**
* Computes the string value to use in the generated code
*
* @param value The value
* @param clazz The value class
* @return The computed string value
*/
static String toString(final String value, final Class<?> clazz) {
if (clazz == String.class) {
return "\"" + START_BACKSLASH_PATTERN.matcher(value).replaceAll("").replace("\"", "\\\"") + "\"";
} else if (clazz == char.class || clazz == Character.class) {
return "'" + value + "'";
} else if (clazz == boolean.class || clazz == Boolean.class) {
return value;
} else if (clazz == byte.class || clazz == Byte.class || clazz == short.class || clazz == Short.class ||
clazz == int.class || clazz == Integer.class || clazz == long.class || clazz == Long.class) {
if (INT_PATTERN.matcher(value).matches()) {
return value;
} else {
return getValueOf(getWrapperClass(clazz), value);
}
} else if (clazz == float.class || clazz == Float.class || clazz == double.class || clazz == Double.class) {
if (DECIMAL_PATTERN.matcher(value).matches()) {
return value;
} else {
return getValueOf(getWrapperClass(clazz), value);
}
} else if (hasValueOf(clazz)) {
if (clazz.isEnum()) {
return clazz.getCanonicalName() + "." + value;
} else {
return getValueOf(clazz.getCanonicalName(), value);
}
} else {
return value;
}
}
private static String getValueOf(final String clazz, final String value) {
return clazz + ".valueOf(\"" + value + "\")";
}
}

View File

@@ -0,0 +1,111 @@
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import static com.github.gtache.fxml.compiler.impl.internal.ControllerInjector.injectCallbackControllerMethod;
import static com.github.gtache.fxml.compiler.impl.internal.ControllerInjector.injectEventHandlerControllerMethod;
import static com.github.gtache.fxml.compiler.impl.internal.FieldSetter.setEventHandler;
import static com.github.gtache.fxml.compiler.impl.internal.FieldSetter.setField;
import static com.github.gtache.fxml.compiler.impl.internal.GenerationHelper.*;
import static com.github.gtache.fxml.compiler.impl.internal.PropertyFormatter.formatProperty;
/**
* Helper methods for {@link GeneratorImpl} to format WebViews
*/
final class WebViewBuilder {
private WebViewBuilder() {
}
/**
* Formats a WebView object
*
* @param progress The generation progress
* @param parsedObject The parsed object
* @param variableName The variable name
* @throws GenerationException if an error occurs
*/
static void formatWebView(final GenerationProgress progress, final ParsedObject parsedObject, final String variableName) throws GenerationException {
if (parsedObject.children().isEmpty() && parsedObject.properties().isEmpty()) {
final var sortedAttributes = getSortedAttributes(parsedObject);
final var sb = progress.stringBuilder();
sb.append(START_VAR).append(variableName).append(" = new javafx.scene.web.WebView();\n");
final var engineVariable = progress.getNextVariableName("engine");
sb.append(START_VAR).append(engineVariable).append(" = ").append(variableName).append(".getEngine();\n");
for (final var value : sortedAttributes) {
formatAttribute(progress, value, parsedObject, variableName, engineVariable);
}
handleId(progress, parsedObject, variableName);
} else {
throw new GenerationException("WebView cannot have children or properties : " + parsedObject);
}
}
private static void formatAttribute(final GenerationProgress progress, final ParsedProperty value, final ParsedObject parsedObject,
final String variableName, final String engineVariable) throws GenerationException {
switch (value.name()) {
case FX_ID -> {
//Do nothing
}
case "confirmHandler" -> injectConfirmHandler(progress, value, engineVariable);
case "createPopupHandler" -> injectCreatePopupHandler(progress, value, engineVariable);
case "onAlert", "onResized", "onStatusChanged", "onVisibilityChanged" ->
injectEventHandler(progress, value, engineVariable);
case "promptHandler" -> injectPromptHandler(progress, value, engineVariable);
case "location" -> injectLocation(progress, value, engineVariable);
default -> formatProperty(progress, value, parsedObject, variableName);
}
}
private static void injectConfirmHandler(final GenerationProgress progress, final ParsedProperty value, final String engineVariable) throws GenerationException {
if (value.value().startsWith("#")) {
injectCallbackControllerMethod(progress, value, engineVariable, "String.class");
} else {
setCallback(progress, value, engineVariable);
}
}
private static void injectCreatePopupHandler(final GenerationProgress progress, final ParsedProperty value, final String engineVariable) throws GenerationException {
if (value.value().startsWith("#")) {
injectCallbackControllerMethod(progress, value, engineVariable, "javafx.scene.web.PopupFeatures.class");
} else {
setCallback(progress, value, engineVariable);
}
}
private static void injectEventHandler(final GenerationProgress progress, final ParsedProperty value, final String engineVariable) throws GenerationException {
if (value.value().startsWith("#")) {
injectEventHandlerControllerMethod(progress, value, engineVariable);
} else {
setEventHandler(progress, value, engineVariable);
}
}
private static void injectPromptHandler(final GenerationProgress progress, final ParsedProperty value, final String engineVariable) throws GenerationException {
if (value.value().startsWith("#")) {
injectCallbackControllerMethod(progress, value, engineVariable, "javafx.scene.web.PromptData.class");
} else {
setCallback(progress, value, engineVariable);
}
}
private static void injectLocation(final GenerationProgress progress, final ParsedProperty value, final String engineVariable) {
progress.stringBuilder().append(" ").append(engineVariable).append(".load(\"").append(value.value()).append("\");\n");
}
/**
* Sets a callback field
*
* @param progress The generation progress
* @param property The property to inject
* @param parentVariable The parent variable
*/
private static void setCallback(final GenerationProgress progress, final ParsedProperty property, final String parentVariable) throws GenerationException {
setField(progress, property, parentVariable, "javafx.util.Callback");
}
}

View File

@@ -0,0 +1,18 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedCopy;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import java.util.Map;
/**
* Implementation of {@link ParsedCopy}
*
* @param attributes The reference properties
*/
public record ParsedCopyImpl(Map<String, ParsedProperty> attributes) implements ParsedCopy {
public ParsedCopyImpl {
attributes = Map.copyOf(attributes);
}
}

View File

@@ -0,0 +1,20 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedDefine;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import java.util.Objects;
/**
* Implementation of {@link ParsedObject}
*
* @param className The object class
* @param attributes The object properties
* @param properties The object children (complex properties)
*/
public record ParsedDefineImpl(ParsedObject object) implements ParsedDefine {
public ParsedDefineImpl {
Objects.requireNonNull(object);
}
}

View File

@@ -0,0 +1,29 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedFactory;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.SequencedCollection;
/**
* Implementation of {@link ParsedFactory}
*
* @param className The factory class
* @param attributes The factory properties
* @param arguments The factory arguments
*/
public record ParsedFactoryImpl(String className, Map<String, ParsedProperty> attributes,
SequencedCollection<ParsedObject> arguments,
SequencedCollection<ParsedObject> children) implements ParsedFactory {
public ParsedFactoryImpl {
Objects.requireNonNull(className);
attributes = Map.copyOf(attributes);
arguments = List.copyOf(arguments);
children = List.copyOf(children);
}
}

View File

@@ -3,10 +3,9 @@ package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.SequencedCollection;
@@ -20,74 +19,13 @@ import java.util.SequencedMap;
* @param properties The object children (complex properties)
*/
public record ParsedObjectImpl(String className, Map<String, ParsedProperty> attributes,
SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties) implements ParsedObject {
SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties,
SequencedCollection<ParsedObject> children) implements ParsedObject {
public ParsedObjectImpl {
Objects.requireNonNull(className);
attributes = Map.copyOf(attributes);
properties = Collections.unmodifiableSequencedMap(new LinkedHashMap<>(properties));
}
/**
* Builder for {@link ParsedObjectImpl}
*/
public static class Builder {
private String className;
private final Map<String, ParsedProperty> attributes;
private final SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties;
/**
* Creates a new builder
*/
public Builder() {
this.attributes = new HashMap<>();
this.properties = new LinkedHashMap<>();
}
/**
* Sets the object class
*
* @param className The object class
* @return The builder
*/
public Builder className(final String className) {
this.className = className;
return this;
}
/**
* Adds an attribute
*
* @param attribute The attribute
* @return The builder
*/
public Builder addAttribute(final ParsedProperty attribute) {
attributes.put(attribute.name(), attribute);
return this;
}
/**
* Adds a property
*
* @param property The property
* @param child The property element
* @return The builder
*/
public Builder addProperty(final ParsedProperty property, final ParsedObject child) {
final var sequence = properties.computeIfAbsent(property, k -> new ArrayList<>());
sequence.add(child);
properties.put(property, sequence);
return this;
}
/**
* Builds the object
*
* @return The object
*/
public ParsedObjectImpl build() {
return new ParsedObjectImpl(className, attributes, properties);
}
children = List.copyOf(children);
}
}

View File

@@ -10,6 +10,7 @@ import java.util.Objects;
* @param name The property name
* @param sourceType The property source type
* @param value The property value
* @param defines The property defines
*/
public record ParsedPropertyImpl(String name, String sourceType, String value) implements ParsedProperty {

View File

@@ -0,0 +1,18 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import com.github.gtache.fxml.compiler.parsing.ParsedReference;
import java.util.Map;
/**
* Implementation of {@link ParsedReference}
*
* @param attributes The reference properties
*/
public record ParsedReferenceImpl(Map<String, ParsedProperty> attributes) implements ParsedReference {
public ParsedReferenceImpl {
attributes = Map.copyOf(attributes);
}
}

View File

@@ -0,0 +1,23 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedText;
import java.util.Objects;
/**
* Implementation of {@link ParsedText}
*
* @param text The text
*/
public record ParsedTextImpl(String text) implements ParsedText {
/**
* Instantiates a new parsed text
*
* @param text The text
* @throws NullPointerException if the text is null
*/
public ParsedTextImpl {
Objects.requireNonNull(text);
}
}

View File

@@ -0,0 +1,21 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import com.github.gtache.fxml.compiler.parsing.ParsedValue;
import java.util.Map;
import java.util.Objects;
/**
* Implementation of {@link ParsedValue}
*
* @param className The value class
* @param attributes The value properties
*/
public record ParsedValueImpl(String className, Map<String, ParsedProperty> attributes) implements ParsedValue {
public ParsedValueImpl {
Objects.requireNonNull(className);
attributes = Map.copyOf(attributes);
}
}

View File

@@ -13,10 +13,14 @@ class TestClassesFinder {
void testGetClassesCurrent() throws IOException {
final var expected = Set.of(
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedConstantImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedCopyImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedFactoryImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedIncludeImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedObjectImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedObjectImplBuilder",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedPropertyImpl");
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedPropertyImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedReferenceImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedTextImpl",
"com.github.gtache.fxml.compiler.parsing.impl.TestParsedValueImpl");
final var actual = ClassesFinder.getClasses("com.github.gtache.fxml.compiler.parsing.impl");
assertEquals(expected, actual);
}

View File

@@ -0,0 +1,121 @@
package com.github.gtache.fxml.compiler.impl;
import com.github.gtache.fxml.compiler.GenerationRequest;
import com.github.gtache.fxml.compiler.impl.internal.GenerationProgress;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.SequencedCollection;
import java.util.concurrent.atomic.AtomicInteger;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
@ExtendWith(MockitoExtension.class)
class TestGenerationProgress {
private final GenerationRequest request;
private final Map<String, String> idToVariableName;
private final Map<String, ParsedObject> idToObject;
private final Map<String, AtomicInteger> variableNameCounters;
private final SequencedCollection<String> controllerFactoryPostAction;
private final StringBuilder sb;
private final GenerationProgress progress;
TestGenerationProgress(@Mock final GenerationRequest request, @Mock final ParsedObject object) {
this.request = Objects.requireNonNull(request);
this.idToVariableName = new HashMap<>();
idToVariableName.put("var1", "var2");
this.idToObject = new HashMap<>();
idToObject.put("var1", object);
this.variableNameCounters = new HashMap<>();
variableNameCounters.put("var", new AtomicInteger(0));
this.controllerFactoryPostAction = new ArrayList<>();
controllerFactoryPostAction.add("bla");
this.sb = new StringBuilder("test");
this.progress = new GenerationProgress(request, idToVariableName, idToObject, variableNameCounters, controllerFactoryPostAction, sb);
}
@Test
void testGetters() {
assertEquals(request, progress.request());
assertEquals(idToVariableName, progress.idToVariableName());
assertEquals(variableNameCounters, progress.variableNameCounters());
assertEquals(controllerFactoryPostAction, progress.controllerFactoryPostAction());
assertEquals(sb, progress.stringBuilder());
}
@Test
void testConstructorDoesntCopy() {
idToVariableName.clear();
assertEquals(idToVariableName, progress.idToVariableName());
idToObject.clear();
assertEquals(idToObject, progress.idToObject());
variableNameCounters.clear();
assertEquals(variableNameCounters, progress.variableNameCounters());
controllerFactoryPostAction.clear();
assertEquals(controllerFactoryPostAction, progress.controllerFactoryPostAction());
sb.setLength(0);
assertEquals(sb, progress.stringBuilder());
}
@Test
void testCanModify() {
progress.idToVariableName().put("var3", "var4");
assertEquals(idToVariableName, progress.idToVariableName());
progress.idToObject().put("var3", mock(ParsedObject.class));
assertEquals(idToObject, progress.idToObject());
progress.variableNameCounters().put("var5", new AtomicInteger(0));
assertEquals(variableNameCounters, progress.variableNameCounters());
progress.controllerFactoryPostAction().add("bla2");
assertEquals(controllerFactoryPostAction, progress.controllerFactoryPostAction());
progress.stringBuilder().append("test2");
assertEquals(sb, progress.stringBuilder());
}
@Test
void testOtherConstructor() {
final var progress2 = new GenerationProgress(request);
assertEquals(request, progress2.request());
assertEquals(Map.of(), progress2.idToVariableName());
assertEquals(Map.of(), progress2.variableNameCounters());
assertEquals(List.of(), progress2.controllerFactoryPostAction());
assertEquals("", progress2.stringBuilder().toString());
}
@Test
void testGetNextVariableName() {
assertEquals("var0", progress.getNextVariableName("var"));
assertEquals("var1", progress.getNextVariableName("var"));
assertEquals("var2", progress.getNextVariableName("var"));
assertEquals("bla0", progress.getNextVariableName("bla"));
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new GenerationProgress(null, idToVariableName, idToObject, variableNameCounters, controllerFactoryPostAction, sb));
assertThrows(NullPointerException.class, () -> new GenerationProgress(request, null, idToObject, variableNameCounters, controllerFactoryPostAction, sb));
assertThrows(NullPointerException.class, () -> new GenerationProgress(request, idToVariableName, null, variableNameCounters, controllerFactoryPostAction, sb));
assertThrows(NullPointerException.class, () -> new GenerationProgress(request, idToVariableName, idToObject, null, controllerFactoryPostAction, sb));
assertThrows(NullPointerException.class, () -> new GenerationProgress(request, idToVariableName, idToObject, variableNameCounters, null, sb));
assertThrows(NullPointerException.class, () -> new GenerationProgress(request, idToVariableName, idToObject, variableNameCounters, controllerFactoryPostAction, null));
}
}

View File

@@ -1,4 +1,4 @@
package com.github.gtache.fxml.compiler.impl;
package com.github.gtache.fxml.compiler.impl.internal;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;

View File

@@ -1,4 +1,4 @@
package com.github.gtache.fxml.compiler.impl;
package com.github.gtache.fxml.compiler.impl.internal;
import org.junit.jupiter.api.Test;

View File

@@ -1,5 +1,7 @@
package com.github.gtache.fxml.compiler.impl;
package com.github.gtache.fxml.compiler.impl.internal;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.impl.WholeConstructorArgs;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.ComboBox;
@@ -110,4 +112,19 @@ class TestReflectionHelper {
final var constructor = Arrays.stream(WholeConstructorArgs.class.getConstructors()).filter(c -> c.getParameterCount() == 3).findFirst().orElseThrow();
assertThrows(IllegalStateException.class, () -> ReflectionHelper.getConstructorArgs(constructor));
}
@Test
void testGetDefaultPropertyClassNotFound() {
assertThrows(GenerationException.class, () -> ReflectionHelper.getDefaultProperty("bla.bla"));
}
@Test
void testGetDefaultPropertyNoDefaultProperty() throws GenerationException {
assertNull(ReflectionHelper.getDefaultProperty("java.lang.String"));
}
@Test
void testGetDefaultProperty() throws GenerationException {
assertEquals("items", ReflectionHelper.getDefaultProperty("javafx.scene.control.ListView"));
}
}

View File

@@ -0,0 +1,52 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedCopy;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.LinkedHashMap;
import java.util.SequencedMap;
import static org.junit.jupiter.api.Assertions.*;
@ExtendWith(MockitoExtension.class)
class TestParsedCopyImpl {
private final SequencedMap<String, ParsedProperty> properties;
private final ParsedCopy copy;
TestParsedCopyImpl(@Mock final ParsedProperty property) {
this.properties = new LinkedHashMap<>();
this.properties.put("name", property);
this.copy = new ParsedCopyImpl(properties);
}
@Test
void testGetters() {
assertEquals(properties, copy.attributes());
assertEquals(ParsedCopy.class.getName(), copy.className());
assertEquals(new LinkedHashMap<>(), copy.properties());
}
@Test
void testCopyMap() {
final var originalProperties = copy.attributes();
properties.clear();
assertEquals(originalProperties, copy.attributes());
assertNotEquals(properties, copy.attributes());
}
@Test
void testUnmodifiable() {
final var objectProperties = copy.attributes();
assertThrows(UnsupportedOperationException.class, objectProperties::clear);
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new TestParsedCopyImpl(null));
}
}

View File

@@ -0,0 +1,90 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedDefine;
import com.github.gtache.fxml.compiler.parsing.ParsedFactory;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.SequencedCollection;
import static org.junit.jupiter.api.Assertions.*;
@ExtendWith(MockitoExtension.class)
class TestParsedFactoryImpl {
private final String className;
private final Map<String, ParsedProperty> attributes;
private final SequencedCollection<ParsedObject> arguments;
private final SequencedCollection<ParsedObject> children;
private final ParsedFactory factory;
TestParsedFactoryImpl(@Mock final ParsedObject object1, @Mock final ParsedObject object2, @Mock final ParsedDefine define) {
this.className = "test";
this.attributes = new HashMap<>(Map.of("fx:factory", new ParsedPropertyImpl("fx:factory", String.class.getName(), "value")));
this.arguments = new ArrayList<>(List.of(object1, object2));
this.children = new ArrayList<>(List.of(define));
this.factory = new ParsedFactoryImpl(className, attributes, arguments, children);
}
@Test
void testGetters() {
assertEquals(className, factory.className());
assertEquals(attributes, factory.attributes());
assertEquals(attributes.get("fx:factory").value(), factory.factory());
assertEquals(arguments, factory.arguments());
assertEquals(children, factory.children());
assertEquals(Map.of(), factory.properties());
}
@Test
void testCopyMap() {
final var originalAttributes = factory.attributes();
attributes.clear();
assertEquals(originalAttributes, factory.attributes());
assertNotEquals(attributes, factory.attributes());
}
@Test
void testCopyArguments() {
final var originalArguments = factory.arguments();
arguments.clear();
assertEquals(originalArguments, factory.arguments());
assertNotEquals(arguments, factory.arguments());
}
@Test
void testCopyDefines() {
final var originalDefines = factory.children();
children.clear();
assertEquals(originalDefines, factory.children());
assertNotEquals(children, factory.children());
}
@Test
void testUnmodifiable() {
final var objectProperties = factory.attributes();
assertThrows(UnsupportedOperationException.class, objectProperties::clear);
final var objectArguments = factory.arguments();
assertThrows(UnsupportedOperationException.class, objectArguments::clear);
final var objectDefines = factory.children();
assertThrows(UnsupportedOperationException.class, objectDefines::clear);
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new ParsedFactoryImpl(null, attributes, arguments, children));
assertThrows(NullPointerException.class, () -> new ParsedFactoryImpl(className, null, arguments, children));
assertThrows(NullPointerException.class, () -> new ParsedFactoryImpl(className, attributes, null, children));
assertThrows(NullPointerException.class, () -> new ParsedFactoryImpl(className, attributes, arguments, null));
}
}

View File

@@ -1,5 +1,6 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedDefine;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import org.junit.jupiter.api.Test;
@@ -7,6 +8,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedCollection;
@@ -19,48 +21,57 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
class TestParsedObjectImpl {
private final String clazz;
private final SequencedMap<String, ParsedProperty> properties;
private final SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> children;
private final SequencedMap<String, ParsedProperty> attributes;
private final SequencedMap<ParsedProperty, SequencedCollection<ParsedObject>> properties;
private final SequencedCollection<ParsedObject> objects;
private final ParsedObject parsedObject;
TestParsedObjectImpl(@Mock final ParsedProperty property, @Mock final ParsedObject object) {
TestParsedObjectImpl(@Mock final ParsedProperty property, @Mock final ParsedObject object, @Mock final ParsedDefine define) {
this.clazz = Object.class.getName();
this.attributes = new LinkedHashMap<>();
this.attributes.put("name", property);
this.properties = new LinkedHashMap<>();
this.properties.put("name", property);
this.children = new LinkedHashMap<>();
this.children.put(property, List.of(object));
this.parsedObject = new ParsedObjectImpl(clazz, properties, children);
this.properties.put(property, List.of(object));
this.objects = new ArrayList<>(List.of(define));
this.parsedObject = new ParsedObjectImpl(clazz, attributes, properties, objects);
}
@Test
void testGetters() {
assertEquals(clazz, parsedObject.className());
assertEquals(properties, parsedObject.attributes());
assertEquals(children, parsedObject.properties());
assertEquals(attributes, parsedObject.attributes());
assertEquals(properties, parsedObject.properties());
assertEquals(objects, parsedObject.children());
}
@Test
void testCopyMap() {
final var originalProperties = parsedObject.attributes();
final var originalChildren = parsedObject.properties();
final var originalAttributes = parsedObject.attributes();
final var originalProperties = parsedObject.properties();
final var originalChildren = parsedObject.children();
attributes.clear();
properties.clear();
children.clear();
assertEquals(originalProperties, parsedObject.attributes());
assertEquals(originalChildren, parsedObject.properties());
objects.clear();
assertEquals(originalAttributes, parsedObject.attributes());
assertEquals(originalProperties, parsedObject.properties());
assertEquals(originalChildren, parsedObject.children());
}
@Test
void testUnmodifiable() {
final var objectProperties = parsedObject.attributes();
final var objectChildren = parsedObject.properties();
final var objectAttributes = parsedObject.attributes();
final var objectProperties = parsedObject.properties();
final var objectChildren = parsedObject.children();
assertThrows(UnsupportedOperationException.class, objectAttributes::clear);
assertThrows(UnsupportedOperationException.class, objectProperties::clear);
assertThrows(UnsupportedOperationException.class, objectChildren::clear);
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(null, properties, children));
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(clazz, null, children));
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(clazz, properties, null));
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(null, attributes, properties, objects));
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(clazz, null, properties, objects));
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(clazz, attributes, null, objects));
assertThrows(NullPointerException.class, () -> new ParsedObjectImpl(clazz, attributes, properties, null));
}
}

View File

@@ -1,108 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestParsedObjectImplBuilder {
private final String clazz1;
private final String clazz2;
private final ParsedProperty property1;
private final ParsedProperty property2;
private final ParsedObject object1;
private final ParsedObject object2;
private final ParsedObjectImpl.Builder builder;
TestParsedObjectImplBuilder(@Mock final ParsedProperty property1, @Mock final ParsedProperty property2,
@Mock final ParsedObject object1, @Mock final ParsedObject object2) {
this.clazz1 = Object.class.getName();
this.clazz2 = String.class.getName();
this.property1 = Objects.requireNonNull(property1);
this.property2 = Objects.requireNonNull(property2);
this.object1 = Objects.requireNonNull(object1);
this.object2 = Objects.requireNonNull(object2);
this.builder = new ParsedObjectImpl.Builder();
}
@BeforeEach
void beforeEach() {
when(property1.name()).thenReturn("property1");
when(property2.name()).thenReturn("property2");
}
@Test
void testBuildNullClass() {
assertThrows(NullPointerException.class, builder::build);
}
@Test
void testClassName() {
builder.className(clazz1);
final var built = builder.build();
assertEquals(clazz1, built.className());
assertEquals(Map.of(), built.attributes());
assertEquals(Map.of(), built.properties());
}
@Test
void testOverwriteClassName() {
builder.className(clazz1);
builder.className(clazz2);
final var built = builder.build();
assertEquals(clazz2, built.className());
assertEquals(Map.of(), built.attributes());
assertEquals(Map.of(), built.properties());
}
@Test
void testAddAttribute() {
builder.className(clazz1);
builder.addAttribute(property1);
final var built = builder.build();
assertEquals(Map.of(property1.name(), property1), built.attributes());
assertEquals(Map.of(), built.properties());
}
@Test
void testAddMultipleAttributes() {
builder.className(clazz1);
builder.addAttribute(property1);
builder.addAttribute(property2);
final var built = builder.build();
assertEquals(Map.of(property1.name(), property1, property2.name(), property2), built.attributes());
assertEquals(Map.of(), built.properties());
}
@Test
void testAddProperty() {
builder.className(clazz1);
builder.addProperty(property1, object1);
final var built = builder.build();
assertEquals(Map.of(), built.attributes());
assertEquals(Map.of(property1, List.of(object1)), built.properties());
}
@Test
void testAddMultipleProperties() {
builder.className(clazz1);
builder.addProperty(property1, object1);
builder.addProperty(property2, object2);
final var built = builder.build();
assertEquals(Map.of(), built.attributes());
assertEquals(Map.of(property1, List.of(object1), property2, List.of(object2)), built.properties());
}
}

View File

@@ -0,0 +1,52 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import com.github.gtache.fxml.compiler.parsing.ParsedReference;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.LinkedHashMap;
import java.util.SequencedMap;
import static org.junit.jupiter.api.Assertions.*;
@ExtendWith(MockitoExtension.class)
class TestParsedReferenceImpl {
private final SequencedMap<String, ParsedProperty> properties;
private final ParsedReference reference;
TestParsedReferenceImpl(@Mock final ParsedProperty property) {
this.properties = new LinkedHashMap<>();
this.properties.put("name", property);
this.reference = new ParsedReferenceImpl(properties);
}
@Test
void testGetters() {
assertEquals(properties, reference.attributes());
assertEquals(ParsedReference.class.getName(), reference.className());
assertEquals(new LinkedHashMap<>(), reference.properties());
}
@Test
void testCopyMap() {
final var originalProperties = reference.attributes();
properties.clear();
assertEquals(originalProperties, reference.attributes());
assertNotEquals(properties, reference.attributes());
}
@Test
void testUnmodifiable() {
final var objectProperties = reference.attributes();
assertThrows(UnsupportedOperationException.class, objectProperties::clear);
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new ParsedReferenceImpl(null));
}
}

View File

@@ -0,0 +1,28 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedText;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
class TestParsedTextImpl {
private final String text;
private final ParsedText parsedText;
TestParsedTextImpl() {
this.text = "text";
this.parsedText = new ParsedTextImpl(text);
}
@Test
void testText() {
assertEquals(text, parsedText.text());
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new ParsedTextImpl(null));
}
}

View File

@@ -0,0 +1,51 @@
package com.github.gtache.fxml.compiler.parsing.impl;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import com.github.gtache.fxml.compiler.parsing.ParsedValue;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
class TestParsedValueImpl {
private final String className;
private final Map<String, ParsedProperty> attributes;
private final ParsedValue value;
TestParsedValueImpl() {
this.className = "test";
this.attributes = new HashMap<>(Map.of("fx:value", new ParsedPropertyImpl("fx:value", String.class.getName(), "value")));
this.value = new ParsedValueImpl(className, attributes);
}
@Test
void testGetters() {
assertEquals(className, value.className());
assertEquals(attributes, value.attributes());
assertEquals(attributes.get("fx:value").value(), value.value());
assertEquals(Map.of(), value.properties());
}
@Test
void testCopyMap() {
final var originalAttributes = value.attributes();
attributes.clear();
assertEquals(originalAttributes, value.attributes());
assertNotEquals(attributes, value.attributes());
}
@Test
void testUnmodifiable() {
final var objectProperties = value.attributes();
assertThrows(UnsupportedOperationException.class, objectProperties::clear);
}
@Test
void testIllegal() {
assertThrows(NullPointerException.class, () -> new ParsedValueImpl(null, attributes));
assertThrows(NullPointerException.class, () -> new ParsedValueImpl(className, null));
}
}

View File

@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.github.gtache</groupId>
<artifactId>fxml-compiler</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>fxml-compiler-loader</artifactId>
<dependencies>
<dependency>
<groupId>com.github.gtache</groupId>
<artifactId>fxml-compiler-core</artifactId>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>${javafx.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${javafx.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useModulePath>false</useModulePath>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -1,306 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import com.github.gtache.fxml.compiler.parsing.FXMLParser;
import com.github.gtache.fxml.compiler.parsing.ParseException;
import com.github.gtache.fxml.compiler.parsing.ParsedObject;
import com.github.gtache.fxml.compiler.parsing.ParsedProperty;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedIncludeImpl;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedObjectImpl;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedPropertyImpl;
import javafx.application.Platform;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.fxml.LoadListener;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.net.MalformedURLException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedMap;
import java.util.concurrent.CompletableFuture;
/**
* {@link LoadListener} implementation parsing the FXML file to {@link ParsedObject}
*/
public class LoadListenerParser implements LoadListener, FXMLParser {
private static final Logger logger = LogManager.getLogger(LoadListenerParser.class);
private final Deque<ParsedObjectImpl.Builder> stack;
private final Deque<ParsedProperty> propertyStack;
private final Deque<List<ParsedObject>> currentObjectStack;
private final SequencedMap<String, ParsedProperty> currentIncludeProperties;
private ParsedObjectImpl.Builder current;
private ParsedProperty currentProperty;
private List<ParsedObject> currentObjects;
private Object previousEnd;
private boolean isInclude;
/**
* Instantiates the listener
*/
public LoadListenerParser() {
this.stack = new ArrayDeque<>();
this.propertyStack = new ArrayDeque<>();
this.currentObjectStack = new ArrayDeque<>();
this.currentObjects = new ArrayList<>();
this.currentIncludeProperties = new LinkedHashMap<>();
}
/**
* @return The parsed root
*/
ParsedObject root() {
if (currentObjects != null && currentObjects.size() == 1) {
return currentObjects.getFirst();
} else {
throw new IllegalStateException("Expected 1 root object, found " + currentObjects);
}
}
@Override
public void readImportProcessingInstruction(final String target) {
logger.debug("Import processing instruction : {}", target);
previousEnd = null;
//Do nothing
}
@Override
public void readLanguageProcessingInstruction(final String language) {
logger.debug("Language processing instruction : {}", language);
previousEnd = null;
//Do nothing
}
@Override
public void readComment(final String comment) {
logger.debug("Comment : {}", comment);
//Do nothing
}
@Override
public void beginInstanceDeclarationElement(final Class<?> type) {
logger.debug("Instance declaration : {}", type);
previousEnd = null;
if (current != null) {
stack.push(current);
}
current = new ParsedObjectImpl.Builder();
current.className(type.getName());
}
@Override
public void beginUnknownTypeElement(final String name) {
logger.debug("Unknown type : {}", name);
throw new IllegalArgumentException("Unknown type : " + name);
}
@Override
public void beginIncludeElement() {
logger.debug("Include");
previousEnd = null;
if (isInclude) {
throw new IllegalStateException("Nested include");
} else if (!currentIncludeProperties.isEmpty()) {
throw new IllegalStateException("Include properties not empty");
}
isInclude = true;
}
@Override
public void beginReferenceElement() {
logger.debug("Reference");
throw new UnsupportedOperationException("Reference not supported yet");
}
@Override
public void beginCopyElement() {
logger.debug("Copy");
throw new UnsupportedOperationException("Copy not supported yet");
}
@Override
public void beginRootElement() {
logger.debug("Root element");
throw new UnsupportedOperationException("Root element not supported yet");
}
@Override
public void beginPropertyElement(final String name, final Class<?> sourceType) {
logger.debug("Property ({}): {}", sourceType, name);
previousEnd = null;
if (isInclude) {
throw new IllegalStateException("Reading complex property for include");
} else {
if (currentProperty != null) {
propertyStack.push(currentProperty);
}
currentProperty = new ParsedPropertyImpl(name, sourceType == null ? null : sourceType.getName(), null);
currentObjectStack.push(currentObjects);
currentObjects = new ArrayList<>();
}
}
@Override
public void beginUnknownStaticPropertyElement(final String name) {
logger.debug("Unknown static property : {}", name);
throw new IllegalArgumentException("Unknown static property : " + name);
}
@Override
public void beginScriptElement() {
logger.debug("Script");
throw new UnsupportedOperationException("Script not supported yet");
}
@Override
public void beginDefineElement() {
logger.debug("Define");
throw new UnsupportedOperationException("Define not supported yet");
}
@Override
public void readInternalAttribute(final String name, final String value) {
logger.debug("Internal attribute : {} = {}", name, value);
previousEnd = null;
final var property = new ParsedPropertyImpl(name, null, value);
if (isInclude) {
currentIncludeProperties.put(name, property);
} else if (current == null) {
throw new IllegalStateException("Current object is null (trying to add attribute " + name + " = " + value + ")");
} else {
current.addAttribute(property);
}
}
@Override
public void readPropertyAttribute(final String name, final Class<?> sourceType, final String value) {
logger.debug("Property ({}): {} = {}", sourceType, name, value);
if (isInclude) {
throw new IllegalStateException("Reading complex property for include");
} else if (current == null) {
throw new IllegalStateException("Current object is null (trying to add property " + name + "/" + sourceType + " = " + value + ")");
} else {
previousEnd = null;
current.addAttribute(new ParsedPropertyImpl(name, sourceType == null ? null : sourceType.getName(), value));
}
}
@Override
public void readUnknownStaticPropertyAttribute(final String name, final String value) {
logger.debug("Unknown static property attribute : {} = {}", name, value);
throw new IllegalArgumentException("Unknown static property : " + name);
}
@Override
public void readEventHandlerAttribute(final String name, final String value) {
logger.debug("Event handler attribute : {} = {}", name, value);
if (isInclude) {
throw new IllegalStateException("Reading event handler for include");
} else if (current == null) {
throw new IllegalStateException("Current object is null (trying to add event handler" + name + " = " + value + ")");
} else {
current.addAttribute(new ParsedPropertyImpl(name, EventHandler.class.getName(), value));
}
}
@Override
public void endElement(final Object value) {
logger.debug("End element : {}", value);
if (isInclude) {
endInclude();
} else if (previousEnd == value || value instanceof ObservableList<?>) {
endProperty(value);
} else if (current != null) {
endObject(value);
} else {
throw new IllegalStateException("Unexpected end element (current is null) : " + value);
}
}
private void endInclude() {
currentObjects.add(new ParsedIncludeImpl(currentIncludeProperties));
currentIncludeProperties.clear();
isInclude = false;
}
private void endProperty(final Object value) {
//End of property
if (currentProperty == null) {
throw new IllegalStateException("Unexpected end element (property is null) : " + value);
} else {
currentObjects.forEach(go -> current.addProperty(currentProperty, go));
currentObjects = currentObjectStack.isEmpty() ? new ArrayList<>() : currentObjectStack.pop();
currentProperty = propertyStack.isEmpty() ? null : propertyStack.pop();
}
}
private void endObject(final Object value) {
final var built = current.build();
currentObjects.add(built);
current = stack.isEmpty() ? null : stack.pop();
previousEnd = value;
}
@Override
public ParsedObject parse(final String content) throws ParseException {
Path path = null;
try {
path = Files.createTempFile("temp", ".fxml");
Files.writeString(path, content);
return parse(path);
} catch (final IOException e) {
throw new ParseException("Error creating temp file", e);
} finally {
if (path != null) {
try {
Files.deleteIfExists(path);
} catch (final IOException ignored) {
}
}
}
}
private void reset() {
current = null;
stack.clear();
propertyStack.clear();
currentObjects.clear();
currentObjectStack.clear();
currentIncludeProperties.clear();
currentProperty = null;
isInclude = false;
previousEnd = null;
}
@Override
public ParsedObject parse(final Path path) throws ParseException {
reset();
try {
final var url = path.toUri().toURL();
logger.info("Parsing {}", url);
return CompletableFuture.supplyAsync(() -> {
try {
final var loader = new FXMLLoader(url);
loader.setLoadListener(this);
loader.load();
return root();
} catch (final IOException e) {
throw new UncheckedIOException(e);
}
}, Platform::runLater).join();
} catch (final MalformedURLException | RuntimeException e) {
throw new ParseException("Error parsing " + path, e);
}
}
}

View File

@@ -1,10 +0,0 @@
/**
* FXML LoadListener module for FXML compiler
*/
module com.github.gtache.fxml.compiler.loader {
requires transitive com.github.gtache.fxml.compiler.core;
requires transitive javafx.fxml;
requires org.apache.logging.log4j;
exports com.github.gtache.fxml.compiler.parsing.listener;
}

View File

@@ -1,489 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.scene.web.HTMLEditor;
import javafx.scene.web.WebView;
public class ControlsController {
@FXML
GridPane gridPane;
@FXML
Button button;
@FXML
CheckBox checkBox;
@FXML
ChoiceBox<String> choiceBox;
@FXML
ColorPicker colorPicker;
@FXML
ComboBox comboBox;
@FXML
DatePicker datePicker;
@FXML
HTMLEditor htmlEditor;
@FXML
Hyperlink hyperlink;
@FXML
ImageView imageView;
@FXML
Label label;
@FXML
ListView<Label> listView;
@FXML
MediaView mediaView;
@FXML
MenuBar menuBar;
@FXML
MenuButton menuButton;
@FXML
Pagination pagination;
@FXML
PasswordField passwordField;
@FXML
ProgressBar progressBar;
@FXML
ProgressIndicator progressIndicator;
@FXML
RadioButton radioButton;
@FXML
ScrollBar scrollBarH;
@FXML
ScrollBar scrollBarV;
@FXML
Separator separatorH;
@FXML
Separator separatorV;
@FXML
Slider sliderH;
@FXML
Slider sliderV;
@FXML
Spinner<Double> spinner;
@FXML
SplitMenuButton splitMenuButton;
@FXML
TableView<TextArea> tableView;
@FXML
TextArea textArea;
@FXML
TextField textField;
@FXML
TreeTableView<TreeItem<String>> treeTableView;
@FXML
TreeView<String> treeView;
@FXML
TreeTableColumn<TreeItem<String>, String> treeTableColumn1;
@FXML
TreeTableColumn<TreeItem<String>, Integer> treeTableColumn2;
@FXML
TableColumn<TextArea, Float> tableColumn1;
@FXML
TableColumn<TextArea, String> tableColumn2;
@FXML
WebView webView;
@FXML
MenuItem item1;
@FXML
MenuItem item2;
@FXML
Menu menu1;
@FXML
MenuItem menuItem1;
@FXML
Color color;
@FXML
void inputMethodTextChanged(final javafx.scene.input.InputMethodEvent inputMethodEvent) {
}
@FXML
void keyPressed() {
}
@FXML
void keyReleased(final javafx.scene.input.KeyEvent keyEvent) {
}
@FXML
void keyTyped(final javafx.scene.input.KeyEvent keyEvent) {
}
@FXML
void dragDetected(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void dragDone(final javafx.scene.input.DragEvent dragEvent) {
}
@FXML
void dragDropped(final javafx.scene.input.DragEvent dragEvent) {
}
@FXML
void dragEntered(final javafx.scene.input.DragEvent dragEvent) {
}
@FXML
void dragExited(final javafx.scene.input.DragEvent dragEvent) {
}
@FXML
void dragOver(final javafx.scene.input.DragEvent dragEvent) {
}
@FXML
void mouseDragEntered(final javafx.scene.input.MouseDragEvent mouseDragEvent) {
}
@FXML
void mouseDragExited(final javafx.scene.input.MouseDragEvent mouseDragEvent) {
}
@FXML
void mouseDragOver(final javafx.scene.input.MouseDragEvent mouseDragEvent) {
}
@FXML
void mouseDragReleased(final javafx.scene.input.MouseDragEvent mouseDragEvent) {
}
@FXML
void contextMenuRequested(final javafx.scene.input.ContextMenuEvent contextMenuEvent) {
}
@FXML
void mouseClicked() {
}
@FXML
void mouseDragged(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void mouseEntered(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void mouseExited(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void mouseMoved(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void mousePressed(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void mouseReleased(final javafx.scene.input.MouseEvent mouseEvent) {
}
@FXML
void onScroll(final javafx.scene.input.ScrollEvent scrollEvent) {
}
@FXML
void onScrollFinished(final javafx.scene.input.ScrollEvent scrollEvent) {
}
@FXML
void onScrollStarted(final javafx.scene.input.ScrollEvent scrollEvent) {
}
@FXML
void onZoom(final javafx.scene.input.ZoomEvent zoomEvent) {
}
@FXML
void onZoomFinished(final javafx.scene.input.ZoomEvent zoomEvent) {
}
@FXML
void onZoomStarted(final javafx.scene.input.ZoomEvent zoomEvent) {
}
@FXML
void onAction(final javafx.event.ActionEvent actionEvent) {
}
@FXML
void onRotate(final javafx.scene.input.RotateEvent rotateEvent) {
}
@FXML
void onRotationFinished(final javafx.scene.input.RotateEvent rotateEvent) {
}
@FXML
void onRotationStarted(final javafx.scene.input.RotateEvent rotateEvent) {
}
@FXML
void onEditCancel(final TreeTableColumn.CellEditEvent<TreeItem<String>, String> cellEditEvent) {
}
@FXML
void onEditCommit(final TreeTableColumn.CellEditEvent<TreeItem<String>, String> cellEditEvent) {
}
@FXML
void onEditStart(final TreeTableColumn.CellEditEvent<TreeItem<String>, String> cellEditEvent) {
}
@FXML
void onSwipeDown(final javafx.scene.input.SwipeEvent swipeEvent) {
}
@FXML
void onSwipeLeft(final javafx.scene.input.SwipeEvent swipeEvent) {
}
@FXML
void onSwipeRight(final javafx.scene.input.SwipeEvent swipeEvent) {
}
@FXML
void onSwipeUp(final javafx.scene.input.SwipeEvent swipeEvent) {
}
@FXML
void onTouchMoved(final javafx.scene.input.TouchEvent touchEvent) {
}
@FXML
void onTouchPressed(final javafx.scene.input.TouchEvent touchEvent) {
}
@FXML
void onTouchReleased(final javafx.scene.input.TouchEvent touchEvent) {
}
@FXML
void onTouchStationary(final javafx.scene.input.TouchEvent touchEvent) {
}
void initialize() {
}
public void setGridPane(final GridPane gridPane) {
this.gridPane = gridPane;
}
public void setButton(final Button button) {
this.button = button;
}
public void setCheckBox(final CheckBox checkBox) {
this.checkBox = checkBox;
}
public void setChoiceBox(final ChoiceBox<String> choiceBox) {
this.choiceBox = choiceBox;
}
public void setColorPicker(final ColorPicker colorPicker) {
this.colorPicker = colorPicker;
}
public void setComboBox(final ComboBox comboBox) {
this.comboBox = comboBox;
}
public void setDatePicker(final DatePicker datePicker) {
this.datePicker = datePicker;
}
public void setHtmlEditor(final HTMLEditor htmlEditor) {
this.htmlEditor = htmlEditor;
}
public void setHyperlink(final Hyperlink hyperlink) {
this.hyperlink = hyperlink;
}
public void setImageView(final ImageView imageView) {
this.imageView = imageView;
}
public void setLabel(final Label label) {
this.label = label;
}
public void setListView(final ListView<Label> listView) {
this.listView = listView;
}
public void setMediaView(final MediaView mediaView) {
this.mediaView = mediaView;
}
public void setMenuBar(final MenuBar menuBar) {
this.menuBar = menuBar;
}
public void setMenuButton(final MenuButton menuButton) {
this.menuButton = menuButton;
}
public void setPagination(final Pagination pagination) {
this.pagination = pagination;
}
public void setPasswordField(final PasswordField passwordField) {
this.passwordField = passwordField;
}
public void setProgressBar(final ProgressBar progressBar) {
this.progressBar = progressBar;
}
public void setProgressIndicator(final ProgressIndicator progressIndicator) {
this.progressIndicator = progressIndicator;
}
public void setRadioButton(final RadioButton radioButton) {
this.radioButton = radioButton;
}
public void setScrollBarH(final ScrollBar scrollBarH) {
this.scrollBarH = scrollBarH;
}
public void setScrollBarV(final ScrollBar scrollBarV) {
this.scrollBarV = scrollBarV;
}
public void setSeparatorH(final Separator separatorH) {
this.separatorH = separatorH;
}
public void setSeparatorV(final Separator separatorV) {
this.separatorV = separatorV;
}
public void setSliderH(final Slider sliderH) {
this.sliderH = sliderH;
}
public void setSliderV(final Slider sliderV) {
this.sliderV = sliderV;
}
public void setSpinner(final Spinner<Double> spinner) {
this.spinner = spinner;
}
public void setSplitMenuButton(final SplitMenuButton splitMenuButton) {
this.splitMenuButton = splitMenuButton;
}
public void setTableView(final TableView<TextArea> tableView) {
this.tableView = tableView;
}
public void setTextArea(final TextArea textArea) {
this.textArea = textArea;
}
public void setTextField(final TextField textField) {
this.textField = textField;
}
public void setTreeTableView(final TreeTableView<TreeItem<String>> treeTableView) {
this.treeTableView = treeTableView;
}
public void setTreeView(final TreeView<String> treeView) {
this.treeView = treeView;
}
public void setTreeTableColumn1(final TreeTableColumn<TreeItem<String>, String> treeTableColumn1) {
this.treeTableColumn1 = treeTableColumn1;
}
public void setTreeTableColumn2(final TreeTableColumn<TreeItem<String>, Integer> treeTableColumn2) {
this.treeTableColumn2 = treeTableColumn2;
}
public void setTableColumn1(final TableColumn<TextArea, Float> tableColumn1) {
this.tableColumn1 = tableColumn1;
}
public void setTableColumn2(final TableColumn<TextArea, String> tableColumn2) {
this.tableColumn2 = tableColumn2;
}
public void setWebView(final WebView webView) {
this.webView = webView;
}
public void setItem1(final MenuItem item1) {
this.item1 = item1;
}
public void setItem2(final MenuItem item2) {
this.item2 = item2;
}
public void setMenu1(final Menu menu1) {
this.menu1 = menu1;
}
public void setMenuItem1(final MenuItem menuItem1) {
this.menuItem1 = menuItem1;
}
public void setColor(final Color color) {
this.color = color;
}
}

View File

@@ -1,179 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Group;
import javafx.scene.control.*;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.TilePane;
import javafx.scene.layout.VBox;
import javafx.scene.text.TextFlow;
public class IncludesController {
@FXML
StackPane stackPane;
@FXML
Slider volumeSlider;
@FXML
Label volumeValueLabel;
@FXML
Button playButton;
@FXML
Label playLabel;
@FXML
Slider playSlider;
@FXML
ControlsController controlsController;
@FXML
VBox vbox;
@FXML
ToolBar toolBar;
@FXML
TitledPane titledPane;
@FXML
TilePane tilePane;
@FXML
TextFlow textFlow;
@FXML
TabPane tabPane;
@FXML
Tab tab;
@FXML
SplitPane splitPane;
@FXML
ScrollPane scrollPane;
@FXML
Pane pane;
@FXML
HBox hbox;
@FXML
Group group;
@FXML
GridPane gridPane;
@FXML
ColumnConstraints columnConstraints;
@FXML
FlowPane flowPane;
@FXML
DialogPane dialogPane;
@FXML
ButtonBar buttonBar;
@FXML
AnchorPane anchorPane;
@FXML
void initialize() {
}
@FXML
void playPressed(final ActionEvent actionEvent) {
}
public void setStackPane(final StackPane stackPane) {
this.stackPane = stackPane;
}
public void setVolumeSlider(final Slider volumeSlider) {
this.volumeSlider = volumeSlider;
}
public void setVolumeValueLabel(final Label volumeValueLabel) {
this.volumeValueLabel = volumeValueLabel;
}
public void setPlayButton(final Button playButton) {
this.playButton = playButton;
}
public void setPlayLabel(final Label playLabel) {
this.playLabel = playLabel;
}
public void setPlaySlider(final Slider playSlider) {
this.playSlider = playSlider;
}
public void setIncludeController(final ControlsController controlsController) {
this.controlsController = controlsController;
}
public void setVbox(final VBox vbox) {
this.vbox = vbox;
}
public void setToolBar(final ToolBar toolBar) {
this.toolBar = toolBar;
}
public void setTitledPane(final TitledPane titledPane) {
this.titledPane = titledPane;
}
public void setTilePane(final TilePane tilePane) {
this.tilePane = tilePane;
}
public void setTextFlow(final TextFlow textFlow) {
this.textFlow = textFlow;
}
public void setTabPane(final TabPane tabPane) {
this.tabPane = tabPane;
}
public void setTab(final Tab tab) {
this.tab = tab;
}
public void setSplitPane(final SplitPane splitPane) {
this.splitPane = splitPane;
}
public void setScrollPane(final ScrollPane scrollPane) {
this.scrollPane = scrollPane;
}
public void setPane(final Pane pane) {
this.pane = pane;
}
public void setHbox(final HBox hbox) {
this.hbox = hbox;
}
public void setGroup(final Group group) {
this.group = group;
}
public void setGridPane(final GridPane gridPane) {
this.gridPane = gridPane;
}
public void setColumnConstraints(final ColumnConstraints columnConstraints) {
this.columnConstraints = columnConstraints;
}
public void setFlowPane(final FlowPane flowPane) {
this.flowPane = flowPane;
}
public void setDialogPane(final DialogPane dialogPane) {
this.dialogPane = dialogPane;
}
public void setButtonBar(final ButtonBar buttonBar) {
this.buttonBar = buttonBar;
}
public void setAnchorPane(final AnchorPane anchorPane) {
this.anchorPane = anchorPane;
}
}

View File

@@ -1,17 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
public class LoadController {
@FXML
private Slider playSlider;
@FXML
private Label playLabel;
@FXML
private void mouseClicked() {
}
}

View File

@@ -1,167 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import com.github.gtache.fxml.compiler.GenerationException;
import com.github.gtache.fxml.compiler.GenerationRequest;
import com.github.gtache.fxml.compiler.Generator;
import com.github.gtache.fxml.compiler.impl.ControllerFieldInjectionTypes;
import com.github.gtache.fxml.compiler.impl.ControllerInfoImpl;
import com.github.gtache.fxml.compiler.impl.ControllerInjectionImpl;
import com.github.gtache.fxml.compiler.impl.ControllerMethodsInjectionType;
import com.github.gtache.fxml.compiler.impl.GenerationParametersImpl;
import com.github.gtache.fxml.compiler.impl.GenerationRequestImpl;
import com.github.gtache.fxml.compiler.impl.GeneratorImpl;
import com.github.gtache.fxml.compiler.impl.ResourceBundleInjectionImpl;
import com.github.gtache.fxml.compiler.impl.ResourceBundleInjectionTypes;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.assertEquals;
class TestGeneratorImpl {
private static final Map<String, List<String>> GENERIC_TYPES;
static {
GENERIC_TYPES = new HashMap<>();
GENERIC_TYPES.put("choiceBox", List.of("String"));
GENERIC_TYPES.put("listView", List.of("javafx.scene.control.Label"));
GENERIC_TYPES.put("spinner", List.of("Double"));
GENERIC_TYPES.put("tableView", List.of("javafx.scene.control.TextArea"));
GENERIC_TYPES.put("treeView", List.of("String"));
GENERIC_TYPES.put("treeTableView", List.of("javafx.scene.control.TreeItem<String>"));
GENERIC_TYPES.put("treeTableColumn1", List.of("javafx.scene.control.TreeItem<String>", "String"));
GENERIC_TYPES.put("treeTableColumn2", List.of("javafx.scene.control.TreeItem<String>", "Integer"));
GENERIC_TYPES.put("tableColumn1", List.of("javafx.scene.control.TextArea", "Float"));
GENERIC_TYPES.put("tableColumn2", List.of("javafx.scene.control.TextArea", "String"));
}
private final Generator generator;
TestGeneratorImpl() {
this.generator = new GeneratorImpl();
}
@BeforeAll
static void beforeAll() {
try {
Platform.startup(() -> {
});
} catch (final IllegalStateException ignored) {
}
}
@ParameterizedTest
@MethodSource("providesGenerationTestCases")
void testGenerate(final String file, final ControllerFieldInjectionTypes field, final ControllerMethodsInjectionType method, final ResourceBundleInjectionTypes bundle) {
final var request = getRequest(file, field, method, bundle);
final var path = Paths.get(getPath(file, field, method, bundle));
try (final var in = getClass().getResourceAsStream("/com/github/gtache/fxml/compiler/parsing/listener/" + path)) {
final var expected = new String(in.readAllBytes(), StandardCharsets.UTF_8);
final var actual = generator.generate(request);
assertEquals(expected, actual);
} catch (final IOException | GenerationException e) {
throw new RuntimeException(e);
}
}
public static void main(final String[] args) {
Platform.startup(() -> {
});
//Generates the test cases
try {
final var generator = new GeneratorImpl();
final var files = List.of("Controls", "Includes");
for (final var file : files) {
for (final var field : ControllerFieldInjectionTypes.values()) {
for (final var method : ControllerMethodsInjectionType.values()) {
for (final var bundle : ResourceBundleInjectionTypes.values()) {
final var request = getRequest(file, field, method, bundle);
try {
final var content = generator.generate(request);
final var path = Paths.get(getPath(file, field, method, bundle));
Files.writeString(path, content);
} catch (final IOException | GenerationException e) {
throw new RuntimeException(e);
}
}
}
}
}
} finally {
Platform.exit();
}
}
private static String getPath(final String file, final ControllerFieldInjectionTypes field, final ControllerMethodsInjectionType method, final ResourceBundleInjectionTypes bundle) {
return "expected-" + file.toLowerCase() + "-" + field.name().toLowerCase() + "-" + method.name().toLowerCase() + "-" + bundle.name().replace("_", "").toLowerCase() + ".txt";
}
private static GenerationRequest getRequest(final String file, final ControllerFieldInjectionTypes field, final ControllerMethodsInjectionType method, final ResourceBundleInjectionTypes bundle) {
return CompletableFuture.supplyAsync(() -> {
final var controlsControllerInfo = new ControllerInfoImpl(Map.of("keyPressed", false, "mouseClicked", false),
GENERIC_TYPES);
final var includesControllerInfo = new ControllerInfoImpl(Map.of(), Map.of());
final var controllerInfo = file.equals("Controls") ? controlsControllerInfo : includesControllerInfo;
final var resourceBundlePath = "com.github.gtache.fxml.compiler.parsing.listener." + file + "Bundle";
final var viewPath = "/com/github/gtache/fxml/compiler/parsing/listener/" + file + "View.fxml";
final var listener = new LoadListenerParser();
final var loader = new FXMLLoader(TestGeneratorImpl.class.getResource(viewPath));
loader.setLoadListener(listener);
loader.setResources(ResourceBundle.getBundle(resourceBundlePath));
try {
loader.load();
} catch (final IOException e) {
throw new RuntimeException(e);
}
final var root = listener.root();
return new GenerationRequestImpl(
new GenerationParametersImpl(Map.of(
"com.github.gtache.fxml.compiler.parsing.listener.ControlsController", new ControllerInjectionImpl(field, method,
"com.github.gtache.fxml.compiler.parsing.listener.ControlsController"),
"com.github.gtache.fxml.compiler.parsing.listener.IncludesController", new ControllerInjectionImpl(field, method,
"com.github.gtache.fxml.compiler.parsing.listener.IncludesController")),
Map.of("controlsView.fxml", "com.github.gtache.fxml.compiler.parsing.listener.ControlsView"),
Map.of("controlsView.fxml", "com.github.gtache.fxml.compiler.parsing.listener.ControlsController"),
new ResourceBundleInjectionImpl(bundle, resourceBundlePath)
),
controllerInfo,
root,
"com.github.gtache.fxml.compiler.parsing.listener." + file + "Controller"
);
}, Platform::runLater).join();
}
private static Stream<Arguments> providesGenerationTestCases() {
final var files = List.of("Controls", "Includes");
final var list = new ArrayList<Arguments>();
for (final var file : files) {
for (final var field : ControllerFieldInjectionTypes.values()) {
for (final var method : ControllerMethodsInjectionType.values()) {
for (final var bundle : ResourceBundleInjectionTypes.values()) {
list.add(Arguments.of(file, field, method, bundle));
}
}
}
}
return list.stream();
}
}

View File

@@ -1,273 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedIncludeImpl;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedObjectImpl;
import com.github.gtache.fxml.compiler.parsing.impl.ParsedPropertyImpl;
import javafx.application.Platform;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Insets;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.SequencedMap;
import java.util.concurrent.CompletableFuture;
import static org.junit.jupiter.api.Assertions.*;
class TestLoadListenerParser {
private final LoadListenerParser listener;
TestLoadListenerParser() {
this.listener = new LoadListenerParser();
}
@BeforeAll
static void beforeAll() {
try {
Platform.startup(() -> {
});
} catch (final IllegalStateException ignored) {
}
}
@Test
void testRealCase() {
final var expected = new ParsedObjectImpl(BorderPane.class.getName(),
newLinkedHashMap("fx:controller", new ParsedPropertyImpl("fx:controller", null, "com.github.gtache.fxml.compiler.parsing.listener.LoadController")),
newLinkedHashMap(new ParsedPropertyImpl("bottom", null, null),
List.of(new ParsedObjectImpl(VBox.class.getName(),
newLinkedHashMap("alignment", new ParsedPropertyImpl("alignment", BorderPane.class.getName(), "CENTER")),
newLinkedHashMap(new ParsedPropertyImpl("children", null, null), List.of(
new ParsedObjectImpl(Slider.class.getName(),
newLinkedHashMap("fx:id", new ParsedPropertyImpl("fx:id", null, "playSlider"), "hgrow", new ParsedPropertyImpl("hgrow", HBox.class.getName(), "ALWAYS")),
newLinkedHashMap(new ParsedPropertyImpl("padding", null, null),
List.of(new ParsedObjectImpl(Insets.class.getName(),
newLinkedHashMap("left", new ParsedPropertyImpl("left", null, "10.0")),
newLinkedHashMap())))),
new ParsedObjectImpl(Label.class.getName(),
newLinkedHashMap("fx:id", new ParsedPropertyImpl("fx:id", null, "playLabel"), "text", new ParsedPropertyImpl("text", null, "Label"), "onMouseClicked", new ParsedPropertyImpl("onMouseClicked", EventHandler.class.getName(), "#mouseClicked")),
newLinkedHashMap(new ParsedPropertyImpl("padding", null, null),
List.of(new ParsedObjectImpl(Insets.class.getName(),
newLinkedHashMap("right", new ParsedPropertyImpl("right", null, "10.0")),
newLinkedHashMap())))),
new ParsedIncludeImpl(
newLinkedHashMap("source", new ParsedPropertyImpl("source", null, "includedView.fxml"), "resources", new ParsedPropertyImpl("resources", null, "com/github/gtache/fxml/compiler/parsing/listener/IncludedBundle"), "fx:id", new ParsedPropertyImpl("fx:id", null, "id")))
)))),
new ParsedPropertyImpl("center", null, null),
List.of(new ParsedObjectImpl(VBox.class.getName(), newLinkedHashMap("fx:id", new ParsedPropertyImpl("fx:id", null, "vbox")), newLinkedHashMap()))
));
final var actual = CompletableFuture.supplyAsync(() -> {
final var loader = new FXMLLoader(TestLoadListenerParser.class.getResource("loadView.fxml"));
loader.setLoadListener(listener);
try {
loader.load();
} catch (final IOException e) {
throw new RuntimeException(e);
}
return listener.root();
}, Platform::runLater).join();
assertEquals(expected, actual);
}
private static <K, V> SequencedMap<K, V> newLinkedHashMap() {
return new LinkedHashMap<K, V>();
}
private static <K, V> SequencedMap<K, V> newLinkedHashMap(final K k1, final V v1) {
final var map = new LinkedHashMap<K, V>();
map.put(k1, v1);
return map;
}
private static <K, V> SequencedMap<K, V> newLinkedHashMap(final K k1, final V v1, final K k2, final V v2) {
final var map = new LinkedHashMap<K, V>();
map.put(k1, v1);
map.put(k2, v2);
return map;
}
private static <K, V> SequencedMap<K, V> newLinkedHashMap(final K k1, final V v1, final K k2, final V v2, final K k3, final V v3) {
final var map = new LinkedHashMap<K, V>();
map.put(k1, v1);
map.put(k2, v2);
map.put(k3, v3);
return map;
}
@Test
void testRootNullObjects() {
assertThrows(IllegalStateException.class, listener::root);
}
@Test
void testRootOneObject() {
listener.beginInstanceDeclarationElement(String.class);
listener.endElement("");
final var expected = new ParsedObjectImpl(String.class.getName(), new LinkedHashMap<>(), new LinkedHashMap<>());
assertEquals(expected, listener.root());
}
@Test
void testRootTwoObjects() {
listener.beginInstanceDeclarationElement(String.class);
listener.endElement("");
listener.beginInstanceDeclarationElement(String.class);
listener.endElement("");
assertThrows(IllegalStateException.class, listener::root);
}
@Test
void testReadImportProcessingInstruction() {
listener.beginInstanceDeclarationElement(String.class);
listener.beginPropertyElement("name", null);
listener.beginInstanceDeclarationElement(String.class);
final var element = "element";
listener.endElement(element);
listener.readImportProcessingInstruction("test");
listener.endElement(element);
assertThrows(IllegalStateException.class, () -> listener.endElement("other"));
}
@Test
void testReadLanguageProcessingInstruction() {
listener.beginInstanceDeclarationElement(String.class);
listener.beginPropertyElement("name", null);
listener.beginInstanceDeclarationElement(String.class);
final var element = "element";
listener.endElement(element);
listener.readLanguageProcessingInstruction("test");
listener.endElement(element);
assertThrows(IllegalStateException.class, () -> listener.endElement("other"));
}
@Test
void testReadComment() {
listener.beginInstanceDeclarationElement(String.class);
listener.beginPropertyElement("name", null);
listener.beginInstanceDeclarationElement(String.class);
final var element = "element";
listener.endElement(element);
listener.readComment("test");
listener.endElement(element);
assertDoesNotThrow(() -> listener.endElement("other"));
assertDoesNotThrow(listener::root);
}
@Test
void testBeginUnknownTypeElement() {
assertThrows(IllegalArgumentException.class, () -> listener.beginUnknownTypeElement(""));
}
@Test
void testInclude() {
listener.beginInstanceDeclarationElement(Object.class);
listener.beginIncludeElement();
listener.readInternalAttribute("source", "s");
listener.readInternalAttribute("p", "v");
listener.endElement("String");
final var root = listener.root();
final var expected = new ParsedIncludeImpl(new LinkedHashMap<>(Map.of("source",
new ParsedPropertyImpl("source", null, "s"), "p", new ParsedPropertyImpl("p", null, "v"))));
assertEquals(expected, root);
}
@Test
void testBeginNestedIncludeElement() {
listener.beginIncludeElement();
assertThrows(IllegalStateException.class, listener::beginIncludeElement);
}
@Test
void testBeginReferenceElement() {
assertThrows(UnsupportedOperationException.class, listener::beginReferenceElement);
}
@Test
void testBeginCopyElement() {
assertThrows(UnsupportedOperationException.class, listener::beginCopyElement);
}
@Test
void testBeginRootElement() {
assertThrows(UnsupportedOperationException.class, listener::beginRootElement);
}
@Test
void testBeginPropertyElementInclude() {
listener.beginIncludeElement();
assertThrows(IllegalStateException.class, () -> listener.beginPropertyElement("", null));
}
@Test
void testBeginUnknownStaticPropertyElement() {
assertThrows(IllegalArgumentException.class, () -> listener.beginUnknownStaticPropertyElement(""));
}
@Test
void testBeginScriptElement() {
assertThrows(UnsupportedOperationException.class, listener::beginScriptElement);
}
@Test
void testBeginDefineElement() {
assertThrows(UnsupportedOperationException.class, listener::beginDefineElement);
}
@Test
void testReadInternalAttributeNull() {
assertThrows(IllegalStateException.class, () -> listener.readInternalAttribute("name", "value"));
}
@Test
void testReadPropertyAttributeNull() {
assertThrows(IllegalStateException.class, () -> listener.readPropertyAttribute("name", null, "value"));
}
@Test
void testReadPropertyAttributeIsInclude() {
listener.beginIncludeElement();
assertThrows(IllegalStateException.class, () -> listener.readPropertyAttribute("name", null, "value"));
}
@Test
void testReadUnknownStaticPropertyAttribute() {
assertThrows(IllegalArgumentException.class, () -> listener.readUnknownStaticPropertyAttribute("", ""));
}
@Test
void testReadEventHandlerAttributeNull() {
assertThrows(IllegalStateException.class, () -> listener.readEventHandlerAttribute("name", "value"));
}
@Test
void testReadEventHandlerAttributeInclude() {
listener.beginIncludeElement();
assertThrows(IllegalStateException.class, () -> listener.readEventHandlerAttribute("name", "value"));
}
@Test
void testEndPropertyNull() {
listener.beginInstanceDeclarationElement(String.class);
listener.beginInstanceDeclarationElement(String.class);
listener.endElement("");
assertThrows(IllegalStateException.class, () -> listener.endElement(""));
}
@Test
void testEndElementNull() {
assertThrows(IllegalStateException.class, () -> listener.endElement(""));
}
}

View File

@@ -1,189 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.geometry.Point3D?>
<?import javafx.scene.control.*?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.effect.Bloom?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.media.MediaView?>
<?import javafx.scene.paint.Color?>
<?import javafx.scene.web.HTMLEditor?>
<?import javafx.scene.web.WebView?>
<GridPane fx:id="gridPane" onInputMethodTextChanged="#inputMethodTextChanged" onKeyPressed="#keyPressed"
onKeyReleased="#keyReleased"
onKeyTyped="#keyTyped" xmlns="http://javafx.com/javafx/22" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.github.gtache.fxml.compiler.parsing.listener.ControlsController">
<rowConstraints>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
<RowConstraints/>
</rowConstraints>
<columnConstraints>
<ColumnConstraints/>
<ColumnConstraints/>
<ColumnConstraints minWidth="10.0" prefWidth="100.0"/>
</columnConstraints>
<children>
<Button fx:id="button" mnemonicParsing="false" text="Button"/>
<CheckBox fx:id="checkBox" indeterminate="true" mnemonicParsing="false" text="CheckBox"
GridPane.columnIndex="1"/>
<ChoiceBox fx:id="choiceBox" cacheShape="false" centerShape="false" disable="true" focusTraversable="false"
prefWidth="150.0"
scaleShape="false" visible="false" GridPane.rowIndex="1"/>
<ColorPicker fx:id="colorPicker" nodeOrientation="LEFT_TO_RIGHT" opacity="0.5" GridPane.columnIndex="1"
GridPane.rowIndex="1">
<value>
<Color fx:id="color" red="0.7894737124443054" green="0.08771929889917374" blue="0.08771929889917374"/>
</value>
<opaqueInsets>
<Insets bottom="3.0" left="2.0" right="4.0" top="5.0"/>
</opaqueInsets>
</ColorPicker>
<ComboBox fx:id="comboBox" editable="true" prefWidth="150.0" promptText="Text" visibleRowCount="5"
GridPane.rowIndex="2">
<cursor>
<Cursor fx:constant="CLOSED_HAND"/>
</cursor>
<effect>
<Bloom/>
</effect>
</ComboBox>
<DatePicker fx:id="datePicker" showWeekNumbers="true" style="-fx-background-color: #ffffff;"
GridPane.columnIndex="1"
GridPane.rowIndex="2"/>
<HTMLEditor fx:id="htmlEditor"
htmlText="&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body contenteditable=&quot;true&quot;&gt;&lt;/body&gt;&lt;/html&gt;"
prefHeight="200.0" prefWidth="506.0" styleClass="clazz" stylesheets="@style.css"
GridPane.rowIndex="3"/>
<Hyperlink fx:id="hyperlink" text="Hyperlink" GridPane.columnIndex="1" GridPane.rowIndex="3"/>
<ImageView fx:id="imageView" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true"
GridPane.rowIndex="4"/>
<Label fx:id="label" accessibleHelp="TTTTT" accessibleText="TTT" blendMode="ADD" cache="true"
cacheHint="QUALITY"
depthTest="ENABLE" mnemonicParsing="true" mouseTransparent="true" text="%include.label"
GridPane.columnIndex="1"
GridPane.rowIndex="4"/>
<ListView fx:id="listView" fixedCellSize="20.0" nodeOrientation="RIGHT_TO_LEFT" orientation="HORIZONTAL"
prefHeight="200.0"
prefWidth="200.0" GridPane.rowIndex="5"/>
<MediaView fx:id="mediaView" fitHeight="200.0" fitWidth="200.0" GridPane.columnIndex="1" GridPane.columnSpan="2"
GridPane.rowIndex="5" GridPane.rowSpan="2"/>
<MenuBar fx:id="menuBar" GridPane.halignment="RIGHT" GridPane.hgrow="ALWAYS" GridPane.rowIndex="7"
GridPane.valignment="BASELINE" GridPane.vgrow="SOMETIMES">
<menus>
<Menu fx:id="menu1" mnemonicParsing="false" text="File">
<items>
<MenuItem fx:id="menuItem1" mnemonicParsing="false" text="Close"/>
</items>
</Menu>
<Menu mnemonicParsing="false" text="Edit">
<items>
<MenuItem mnemonicParsing="false" text="Delete"/>
</items>
</Menu>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About"/>
</items>
</Menu>
</menus>
</MenuBar>
<MenuButton fx:id="menuButton" mnemonicParsing="false" text="MenuButton" GridPane.columnIndex="1"
GridPane.rowIndex="7">
<items>
<MenuItem mnemonicParsing="false" text="Action 1"/>
<MenuItem mnemonicParsing="false" text="Action 2"/>
</items>
<GridPane.margin>
<Insets bottom="3.0" left="2.0" right="4.0" top="5.0"/>
</GridPane.margin>
</MenuButton>
<Pagination fx:id="pagination" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="8">
<padding>
<Insets bottom="3.0" left="2.0" right="4.0" top="5.0"/>
</padding>
</Pagination>
<PasswordField fx:id="passwordField" maxHeight="Infinity" maxWidth="5.0" minHeight="-Infinity" minWidth="1.0"
prefColumnCount="7"
prefHeight="4.0" prefWidth="3.0" GridPane.columnIndex="1" GridPane.rowIndex="8"/>
<ProgressBar fx:id="progressBar" layoutX="10.0" layoutY="20.0" prefWidth="200.0" progress="0.0"
GridPane.rowIndex="9"/>
<ProgressIndicator fx:id="progressIndicator" progress="0.0" rotate="2.0" GridPane.columnIndex="1"
GridPane.rowIndex="9">
<rotationAxis>
<Point3D x="4.0" y="5.0" z="6.0"/>
</rotationAxis>
</ProgressIndicator>
<RadioButton fx:id="radioButton" mnemonicParsing="false" scaleX="7.0" scaleY="2.0" scaleZ="3.0"
text="RadioButton" translateX="4.0"
translateY="5.0" translateZ="6.0" GridPane.rowIndex="10"/>
<ScrollBar fx:id="scrollBarH" GridPane.columnIndex="1" GridPane.rowIndex="10"/>
<ScrollBar fx:id="scrollBarV" orientation="VERTICAL" GridPane.rowIndex="11"/>
<Separator fx:id="separatorH" onDragDetected="#dragDetected" onDragDone="#dragDone" onDragDropped="#dragDropped"
onDragEntered="#dragEntered" onDragExited="#dragExited" onDragOver="#dragOver"
onMouseDragEntered="#mouseDragEntered" onMouseDragExited="#mouseDragExited"
onMouseDragOver="#mouseDragOver" onMouseDragReleased="#mouseDragReleased" prefWidth="200.0"
GridPane.columnIndex="1" GridPane.rowIndex="11"/>
<Separator fx:id="separatorV" orientation="VERTICAL" prefHeight="200.0" GridPane.rowIndex="12"/>
<Slider fx:id="sliderH" onContextMenuRequested="#contextMenuRequested" onMouseClicked="#mouseClicked"
onMouseDragged="#mouseDragged" onMouseEntered="#mouseEntered" onMouseExited="#mouseExited"
onMouseMoved="#mouseMoved" onMousePressed="#mousePressed" onMouseReleased="#mouseReleased"
onScroll="#onScroll" onScrollFinished="#onScrollFinished" onScrollStarted="#onScrollStarted"
GridPane.columnIndex="1" GridPane.rowIndex="12"/>
<Slider fx:id="sliderV" onZoom="#onZoom" onZoomFinished="#onZoomFinished" onZoomStarted="#onZoomStarted"
orientation="VERTICAL"
GridPane.rowIndex="13"/>
<Spinner fx:id="spinner" GridPane.columnIndex="1" GridPane.rowIndex="13"/>
<SplitMenuButton fx:id="splitMenuButton" mnemonicParsing="false" text="SplitMenuButton" GridPane.rowIndex="14">
<items>
<MenuItem fx:id="item1" mnemonicParsing="false" text="Action 1"/>
<MenuItem fx:id="item2" mnemonicParsing="false" text="Action 2"/>
</items>
</SplitMenuButton>
<TableView fx:id="tableView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1"
GridPane.rowIndex="14">
<columns>
<TableColumn fx:id="tableColumn1" prefWidth="75.0" text="C1"/>
<TableColumn fx:id="tableColumn2" prefWidth="75.0" text="C2"/>
</columns>
</TableView>
<TextArea fx:id="textArea" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="15"/>
<TextField fx:id="textField" GridPane.columnIndex="1" GridPane.rowIndex="15"/>
<ToggleButton mnemonicParsing="false" onAction="#onAction" onRotate="#onRotate"
onRotationFinished="#onRotationFinished" onRotationStarted="#onRotationStarted"
text="ToggleButton" GridPane.rowIndex="16"/>
<TreeTableView fx:id="treeTableView" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1"
GridPane.rowIndex="16">
<columns>
<TreeTableColumn fx:id="treeTableColumn1" onEditCancel="#onEditCancel" onEditCommit="#onEditCommit"
onEditStart="#onEditStart"
prefWidth="75.0" text="C1"/>
<TreeTableColumn fx:id="treeTableColumn2" prefWidth="75.0" sortType="DESCENDING" text="C2"/>
</columns>
</TreeTableView>
<TreeView fx:id="treeView" onSwipeDown="#onSwipeDown" onSwipeLeft="#onSwipeLeft" onSwipeRight="#onSwipeRight"
onSwipeUp="#onSwipeUp" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="17"/>
<WebView fx:id="webView" onTouchMoved="#onTouchMoved" onTouchPressed="#onTouchPressed"
onTouchReleased="#onTouchReleased"
onTouchStationary="#onTouchStationary" prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1"
GridPane.rowIndex="17"/>
</children>
</GridPane>

View File

@@ -1,430 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.gridPane = object0;
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
controller.button = object1;
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.checkBox = object2;
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.choiceBox = object3;
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.colorPicker = object4;
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.color = object6;
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.comboBox = object7;
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.datePicker = object10;
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.htmlEditor = object11;
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.hyperlink = object12;
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.imageView = object13;
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.label = object14;
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.listView = object15;
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.mediaView = object16;
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.menuBar = object17;
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.menu1 = object18;
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.menuItem1 = object19;
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.menuButton = object24;
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.pagination = object28;
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.passwordField = object30;
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.progressBar = object31;
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.progressIndicator = object32;
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.radioButton = object34;
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.scrollBarH = object35;
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.scrollBarV = object36;
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.separatorH = object37;
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.separatorV = object38;
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.sliderH = object39;
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.sliderV = object40;
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.spinner = object41;
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.splitMenuButton = object42;
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.item1 = object43;
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.item2 = object44;
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.tableView = object45;
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.tableColumn1 = object46;
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.tableColumn2 = object47;
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.textArea = object48;
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.textField = object49;
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.treeTableView = object51;
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.treeTableColumn1 = object52;
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.treeTableColumn2 = object53;
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.treeView = object54;
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.webView = object55;
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,430 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.gridPane = object0;
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
controller.button = object1;
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.checkBox = object2;
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.choiceBox = object3;
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.colorPicker = object4;
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.color = object6;
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.comboBox = object7;
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.datePicker = object10;
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.htmlEditor = object11;
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.hyperlink = object12;
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.imageView = object13;
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.label = object14;
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.listView = object15;
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.mediaView = object16;
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.menuBar = object17;
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.menu1 = object18;
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.menuItem1 = object19;
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.menuButton = object24;
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.pagination = object28;
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.passwordField = object30;
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.progressBar = object31;
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.progressIndicator = object32;
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.radioButton = object34;
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.scrollBarH = object35;
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.scrollBarV = object36;
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.separatorH = object37;
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.separatorV = object38;
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.sliderH = object39;
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.sliderV = object40;
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.spinner = object41;
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.splitMenuButton = object42;
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.item1 = object43;
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.item2 = object44;
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.tableView = object45;
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.tableColumn1 = object46;
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.tableColumn2 = object47;
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.textArea = object48;
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.textField = object49;
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.treeTableView = object51;
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.treeTableColumn1 = object52;
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.treeTableColumn2 = object53;
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.treeView = object54;
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.webView = object55;
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,429 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.gridPane = object0;
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
controller.button = object1;
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.checkBox = object2;
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.choiceBox = object3;
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.colorPicker = object4;
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.color = object6;
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.comboBox = object7;
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.datePicker = object10;
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.htmlEditor = object11;
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.hyperlink = object12;
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.imageView = object13;
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.label = object14;
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(controller.resources().getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.listView = object15;
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.mediaView = object16;
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.menuBar = object17;
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.menu1 = object18;
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.menuItem1 = object19;
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.menuButton = object24;
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.pagination = object28;
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.passwordField = object30;
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.progressBar = object31;
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.progressIndicator = object32;
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.radioButton = object34;
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.scrollBarH = object35;
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.scrollBarV = object36;
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.separatorH = object37;
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.separatorV = object38;
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.sliderH = object39;
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.sliderV = object40;
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.spinner = object41;
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.splitMenuButton = object42;
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.item1 = object43;
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.item2 = object44;
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.tableView = object45;
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.tableColumn1 = object46;
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.tableColumn2 = object47;
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.textArea = object48;
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.textField = object49;
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.treeTableView = object51;
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.treeTableColumn1 = object52;
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.treeTableColumn2 = object53;
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.treeView = object54;
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.webView = object55;
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,474 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.gridPane = object0;
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
controller.button = object1;
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.checkBox = object2;
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.choiceBox = object3;
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.colorPicker = object4;
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.color = object6;
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.comboBox = object7;
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.datePicker = object10;
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.htmlEditor = object11;
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.hyperlink = object12;
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.imageView = object13;
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.label = object14;
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.listView = object15;
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.mediaView = object16;
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.menuBar = object17;
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.menu1 = object18;
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.menuItem1 = object19;
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.menuButton = object24;
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.pagination = object28;
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.passwordField = object30;
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.progressBar = object31;
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.progressIndicator = object32;
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.radioButton = object34;
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.scrollBarH = object35;
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.scrollBarV = object36;
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.separatorH = object37;
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.separatorV = object38;
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.sliderH = object39;
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.sliderV = object40;
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.spinner = object41;
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.splitMenuButton = object42;
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.item1 = object43;
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.item2 = object44;
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.tableView = object45;
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.tableColumn1 = object46;
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.tableColumn2 = object47;
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.textArea = object48;
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.textField = object49;
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.treeTableView = object51;
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.treeTableColumn1 = object52;
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.treeTableColumn2 = object53;
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.treeView = object54;
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.webView = object55;
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,474 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.gridPane = object0;
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
controller.button = object1;
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.checkBox = object2;
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.choiceBox = object3;
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.colorPicker = object4;
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.color = object6;
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.comboBox = object7;
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.datePicker = object10;
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.htmlEditor = object11;
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.hyperlink = object12;
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.imageView = object13;
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.label = object14;
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.listView = object15;
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.mediaView = object16;
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.menuBar = object17;
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.menu1 = object18;
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.menuItem1 = object19;
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.menuButton = object24;
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.pagination = object28;
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.passwordField = object30;
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.progressBar = object31;
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.progressIndicator = object32;
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.radioButton = object34;
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.scrollBarH = object35;
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.scrollBarV = object36;
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.separatorH = object37;
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.separatorV = object38;
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.sliderH = object39;
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.sliderV = object40;
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.spinner = object41;
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.splitMenuButton = object42;
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.item1 = object43;
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.item2 = object44;
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.tableView = object45;
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.tableColumn1 = object46;
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.tableColumn2 = object47;
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.textArea = object48;
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.textField = object49;
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.treeTableView = object51;
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.treeTableColumn1 = object52;
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.treeTableColumn2 = object53;
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.treeView = object54;
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.webView = object55;
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,473 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.gridPane = object0;
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
controller.button = object1;
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.checkBox = object2;
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.choiceBox = object3;
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.colorPicker = object4;
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.color = object6;
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.comboBox = object7;
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.datePicker = object10;
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.htmlEditor = object11;
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.hyperlink = object12;
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.imageView = object13;
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.label = object14;
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(controller.resources().getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.listView = object15;
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.mediaView = object16;
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.menuBar = object17;
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.menu1 = object18;
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.menuItem1 = object19;
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.menuButton = object24;
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.pagination = object28;
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.passwordField = object30;
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.progressBar = object31;
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.progressIndicator = object32;
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.radioButton = object34;
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.scrollBarH = object35;
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.scrollBarV = object36;
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.separatorH = object37;
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.separatorV = object38;
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.sliderH = object39;
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.sliderV = object40;
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.spinner = object41;
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.splitMenuButton = object42;
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.item1 = object43;
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.item2 = object44;
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.tableView = object45;
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.tableColumn1 = object46;
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.tableColumn2 = object47;
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.textArea = object48;
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.textField = object49;
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.treeTableView = object51;
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.treeTableColumn1 = object52;
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.treeTableColumn2 = object53;
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.treeView = object54;
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.webView = object55;
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,433 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import com.github.gtache.fxml.compiler.ControllerFactory;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, ControllerFactory<?>> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controllerFactory The controller factory
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controllerFactory The controller factory
* @param resourceBundle The resource bundle
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller factory
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, ControllerFactory<?>> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var fieldMap = new HashMap<String, Object>();
final var object0 = new javafx.scene.layout.GridPane();
fieldMap.put("gridPane", object0);
final var object1 = new javafx.scene.control.Button();
fieldMap.put("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
fieldMap.put("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
fieldMap.put("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
fieldMap.put("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
fieldMap.put("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
fieldMap.put("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
fieldMap.put("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
fieldMap.put("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
fieldMap.put("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
fieldMap.put("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
fieldMap.put("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
fieldMap.put("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
fieldMap.put("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
fieldMap.put("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
fieldMap.put("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
fieldMap.put("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
fieldMap.put("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
fieldMap.put("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
fieldMap.put("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
fieldMap.put("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
fieldMap.put("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
fieldMap.put("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
fieldMap.put("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
fieldMap.put("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
fieldMap.put("separatorH", object37);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
fieldMap.put("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
fieldMap.put("sliderH", object39);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
fieldMap.put("sliderV", object40);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
fieldMap.put("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
fieldMap.put("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
fieldMap.put("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
fieldMap.put("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
fieldMap.put("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
fieldMap.put("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
fieldMap.put("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
fieldMap.put("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
fieldMap.put("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
fieldMap.put("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
fieldMap.put("treeTableColumn1", object52);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
fieldMap.put("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
fieldMap.put("treeView", object54);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
fieldMap.put("webView", object55);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
final var controllerFactory = controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllerFactory.create(fieldMap);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,433 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import com.github.gtache.fxml.compiler.ControllerFactory;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, ControllerFactory<?>> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controllerFactory The controller factory
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controllerFactory The controller factory
* @param resourceBundle The resource bundle
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller factory
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, ControllerFactory<?>> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
final var fieldMap = new HashMap<String, Object>();
final var object0 = new javafx.scene.layout.GridPane();
fieldMap.put("gridPane", object0);
final var object1 = new javafx.scene.control.Button();
fieldMap.put("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
fieldMap.put("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
fieldMap.put("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
fieldMap.put("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
fieldMap.put("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
fieldMap.put("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
fieldMap.put("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
fieldMap.put("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
fieldMap.put("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
fieldMap.put("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
fieldMap.put("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
fieldMap.put("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
fieldMap.put("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
fieldMap.put("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
fieldMap.put("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
fieldMap.put("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
fieldMap.put("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
fieldMap.put("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
fieldMap.put("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
fieldMap.put("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
fieldMap.put("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
fieldMap.put("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
fieldMap.put("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
fieldMap.put("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
fieldMap.put("separatorH", object37);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
fieldMap.put("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
fieldMap.put("sliderH", object39);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
fieldMap.put("sliderV", object40);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
fieldMap.put("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
fieldMap.put("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
fieldMap.put("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
fieldMap.put("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
fieldMap.put("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
fieldMap.put("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
fieldMap.put("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
fieldMap.put("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
fieldMap.put("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
fieldMap.put("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
fieldMap.put("treeTableColumn1", object52);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
fieldMap.put("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
fieldMap.put("treeView", object54);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
fieldMap.put("webView", object55);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
final var controllerFactory = controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllerFactory.create(fieldMap);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,432 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import com.github.gtache.fxml.compiler.ControllerFactory;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, ControllerFactory<?>> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controllerFactory The controller factory
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controllerFactory The controller factory
* @param resourceBundle The resource bundle
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller factory
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, ControllerFactory<?>> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var fieldMap = new HashMap<String, Object>();
final var object0 = new javafx.scene.layout.GridPane();
fieldMap.put("gridPane", object0);
final var object1 = new javafx.scene.control.Button();
fieldMap.put("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
fieldMap.put("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
fieldMap.put("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
fieldMap.put("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
fieldMap.put("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
fieldMap.put("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
fieldMap.put("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
fieldMap.put("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
fieldMap.put("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
fieldMap.put("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
fieldMap.put("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
fieldMap.put("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
fieldMap.put("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
fieldMap.put("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
fieldMap.put("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
fieldMap.put("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
fieldMap.put("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
fieldMap.put("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
fieldMap.put("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
fieldMap.put("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
fieldMap.put("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
fieldMap.put("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
fieldMap.put("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
fieldMap.put("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
fieldMap.put("separatorH", object37);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
fieldMap.put("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
fieldMap.put("sliderH", object39);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
fieldMap.put("sliderV", object40);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
fieldMap.put("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
fieldMap.put("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
fieldMap.put("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
fieldMap.put("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
fieldMap.put("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
fieldMap.put("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
fieldMap.put("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
fieldMap.put("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
fieldMap.put("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
fieldMap.put("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
fieldMap.put("treeTableColumn1", object52);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
fieldMap.put("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
fieldMap.put("treeView", object54);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
fieldMap.put("webView", object55);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
final var controllerFactory = controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllerFactory.create(fieldMap);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
object14.setText(controller.resources().getString("include.label"));
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,477 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import com.github.gtache.fxml.compiler.ControllerFactory;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, ControllerFactory<?>> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controllerFactory The controller factory
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controllerFactory The controller factory
* @param resourceBundle The resource bundle
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller factory
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, ControllerFactory<?>> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var fieldMap = new HashMap<String, Object>();
final var object0 = new javafx.scene.layout.GridPane();
fieldMap.put("gridPane", object0);
final var object1 = new javafx.scene.control.Button();
fieldMap.put("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
fieldMap.put("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
fieldMap.put("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
fieldMap.put("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
fieldMap.put("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
fieldMap.put("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
fieldMap.put("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
fieldMap.put("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
fieldMap.put("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
fieldMap.put("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
fieldMap.put("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
fieldMap.put("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
fieldMap.put("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
fieldMap.put("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
fieldMap.put("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
fieldMap.put("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
fieldMap.put("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
fieldMap.put("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
fieldMap.put("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
fieldMap.put("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
fieldMap.put("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
fieldMap.put("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
fieldMap.put("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
fieldMap.put("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
fieldMap.put("separatorH", object37);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
fieldMap.put("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
fieldMap.put("sliderH", object39);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
fieldMap.put("sliderV", object40);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
fieldMap.put("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
fieldMap.put("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
fieldMap.put("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
fieldMap.put("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
fieldMap.put("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
fieldMap.put("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
fieldMap.put("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
fieldMap.put("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
fieldMap.put("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
fieldMap.put("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
fieldMap.put("treeTableColumn1", object52);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
fieldMap.put("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
fieldMap.put("treeView", object54);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
fieldMap.put("webView", object55);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
final var controllerFactory = controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllerFactory.create(fieldMap);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,477 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import com.github.gtache.fxml.compiler.ControllerFactory;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, ControllerFactory<?>> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controllerFactory The controller factory
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controllerFactory The controller factory
* @param resourceBundle The resource bundle
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller factory
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, ControllerFactory<?>> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
final var fieldMap = new HashMap<String, Object>();
final var object0 = new javafx.scene.layout.GridPane();
fieldMap.put("gridPane", object0);
final var object1 = new javafx.scene.control.Button();
fieldMap.put("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
fieldMap.put("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
fieldMap.put("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
fieldMap.put("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
fieldMap.put("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
fieldMap.put("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
fieldMap.put("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
fieldMap.put("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
fieldMap.put("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
fieldMap.put("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
fieldMap.put("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
fieldMap.put("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
fieldMap.put("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
fieldMap.put("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
fieldMap.put("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
fieldMap.put("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
fieldMap.put("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
fieldMap.put("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
fieldMap.put("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
fieldMap.put("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
fieldMap.put("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
fieldMap.put("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
fieldMap.put("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
fieldMap.put("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
fieldMap.put("separatorH", object37);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
fieldMap.put("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
fieldMap.put("sliderH", object39);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
fieldMap.put("sliderV", object40);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
fieldMap.put("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
fieldMap.put("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
fieldMap.put("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
fieldMap.put("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
fieldMap.put("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
fieldMap.put("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
fieldMap.put("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
fieldMap.put("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
fieldMap.put("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
fieldMap.put("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
fieldMap.put("treeTableColumn1", object52);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
fieldMap.put("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
fieldMap.put("treeView", object54);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
fieldMap.put("webView", object55);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
final var controllerFactory = controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllerFactory.create(fieldMap);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,476 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import com.github.gtache.fxml.compiler.ControllerFactory;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, ControllerFactory<?>> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controllerFactory The controller factory
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controllerFactory The controller factory
* @param resourceBundle The resource bundle
*/
public ControlsController(final ControllerFactory<com.github.gtache.fxml.compiler.parsing.listener.ControlsController> controllerFactory, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controllerFactory), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller factory
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, ControllerFactory<?>> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var fieldMap = new HashMap<String, Object>();
final var object0 = new javafx.scene.layout.GridPane();
fieldMap.put("gridPane", object0);
final var object1 = new javafx.scene.control.Button();
fieldMap.put("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
fieldMap.put("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
fieldMap.put("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
fieldMap.put("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
fieldMap.put("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
fieldMap.put("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
fieldMap.put("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
fieldMap.put("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
fieldMap.put("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
fieldMap.put("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
fieldMap.put("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
fieldMap.put("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
fieldMap.put("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
fieldMap.put("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
fieldMap.put("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
fieldMap.put("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
fieldMap.put("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
fieldMap.put("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
fieldMap.put("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
fieldMap.put("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
fieldMap.put("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
fieldMap.put("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
fieldMap.put("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
fieldMap.put("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
fieldMap.put("separatorH", object37);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
fieldMap.put("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
fieldMap.put("sliderH", object39);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
fieldMap.put("sliderV", object40);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
fieldMap.put("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
fieldMap.put("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
fieldMap.put("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
fieldMap.put("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
fieldMap.put("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
fieldMap.put("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
fieldMap.put("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
fieldMap.put("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
fieldMap.put("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
fieldMap.put("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
fieldMap.put("treeTableColumn1", object52);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
fieldMap.put("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
fieldMap.put("treeView", object54);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
fieldMap.put("webView", object55);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
final var controllerFactory = controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllerFactory.create(fieldMap);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
object14.setText(controller.resources().getString("include.label"));
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,439 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
injectField("gridPane", object0);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
injectField("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
injectField("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
injectField("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
injectField("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
injectField("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
injectField("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
injectField("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
injectField("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
injectField("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
injectField("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
injectField("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
injectField("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
injectField("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
injectField("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
injectField("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
injectField("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
injectField("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
injectField("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
injectField("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
injectField("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
injectField("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
injectField("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
injectField("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
injectField("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
injectField("separatorH", object37);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
injectField("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
injectField("sliderH", object39);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
injectField("sliderV", object40);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
injectField("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
injectField("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
injectField("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
injectField("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
injectField("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
injectField("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
injectField("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
injectField("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
injectField("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
injectField("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
injectField("treeTableColumn1", object52);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
injectField("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
injectField("treeView", object54);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
injectField("webView", object55);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,439 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
injectField("gridPane", object0);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
injectField("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
injectField("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
injectField("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
injectField("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
injectField("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
injectField("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
injectField("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
injectField("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
injectField("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
injectField("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
injectField("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
injectField("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
injectField("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
injectField("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
injectField("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
injectField("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
injectField("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
injectField("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
injectField("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
injectField("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
injectField("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
injectField("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
injectField("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
injectField("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
injectField("separatorH", object37);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
injectField("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
injectField("sliderH", object39);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
injectField("sliderV", object40);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
injectField("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
injectField("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
injectField("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
injectField("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
injectField("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
injectField("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
injectField("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
injectField("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
injectField("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
injectField("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
injectField("treeTableColumn1", object52);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
injectField("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
injectField("treeView", object54);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
injectField("webView", object55);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,438 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
injectField("gridPane", object0);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
injectField("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
injectField("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
injectField("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
injectField("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
injectField("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
injectField("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
injectField("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
injectField("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
injectField("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
injectField("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
injectField("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(controller.resources().getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
injectField("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
injectField("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
injectField("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
injectField("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
injectField("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
injectField("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
injectField("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
injectField("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
injectField("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
injectField("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
injectField("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
injectField("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
injectField("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
injectField("separatorH", object37);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
injectField("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
injectField("sliderH", object39);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
injectField("sliderV", object40);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
injectField("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
injectField("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
injectField("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
injectField("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
injectField("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
injectField("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
injectField("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
injectField("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
injectField("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
injectField("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
injectField("treeTableColumn1", object52);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
injectField("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
injectField("treeView", object54);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
injectField("webView", object55);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,483 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
injectField("gridPane", object0);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
injectField("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
injectField("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
injectField("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
injectField("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
injectField("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
injectField("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
injectField("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
injectField("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
injectField("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
injectField("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
injectField("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
injectField("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
injectField("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
injectField("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
injectField("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
injectField("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
injectField("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
injectField("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
injectField("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
injectField("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
injectField("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
injectField("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
injectField("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
injectField("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
injectField("separatorH", object37);
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
injectField("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
injectField("sliderH", object39);
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
injectField("sliderV", object40);
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
injectField("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
injectField("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
injectField("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
injectField("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
injectField("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
injectField("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
injectField("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
injectField("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
injectField("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
injectField("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
injectField("treeTableColumn1", object52);
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
injectField("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
injectField("treeView", object54);
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
injectField("webView", object55);
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,483 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
injectField("gridPane", object0);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
injectField("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
injectField("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
injectField("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
injectField("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
injectField("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
injectField("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
injectField("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
injectField("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
injectField("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
injectField("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
injectField("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
injectField("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
injectField("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
injectField("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
injectField("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
injectField("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
injectField("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
injectField("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
injectField("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
injectField("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
injectField("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
injectField("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
injectField("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
injectField("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
injectField("separatorH", object37);
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
injectField("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
injectField("sliderH", object39);
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
injectField("sliderV", object40);
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
injectField("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
injectField("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
injectField("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
injectField("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
injectField("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
injectField("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
injectField("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
injectField("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
injectField("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
injectField("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
injectField("treeTableColumn1", object52);
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
injectField("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
injectField("treeView", object54);
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
injectField("webView", object55);
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,482 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
injectField("gridPane", object0);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
injectField("button", object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
injectField("checkBox", object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
injectField("choiceBox", object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
injectField("colorPicker", object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
injectField("color", object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
injectField("comboBox", object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
injectField("datePicker", object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
injectField("htmlEditor", object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
injectField("hyperlink", object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
injectField("imageView", object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
injectField("label", object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(controller.resources().getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
injectField("listView", object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
injectField("mediaView", object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
injectField("menuBar", object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
injectField("menu1", object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
injectField("menuItem1", object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
injectField("menuButton", object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
injectField("pagination", object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
injectField("passwordField", object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
injectField("progressBar", object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
injectField("progressIndicator", object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
injectField("radioButton", object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
injectField("scrollBarH", object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
injectField("scrollBarV", object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
injectField("separatorH", object37);
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
injectField("separatorV", object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
injectField("sliderH", object39);
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
injectField("sliderV", object40);
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
injectField("spinner", object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
injectField("splitMenuButton", object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
injectField("item1", object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
injectField("item2", object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
injectField("tableView", object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
injectField("tableColumn1", object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
injectField("tableColumn2", object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
injectField("textArea", object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
injectField("textField", object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
injectField("treeTableView", object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
injectField("treeTableColumn1", object52);
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
injectField("treeTableColumn2", object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
injectField("treeView", object54);
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
injectField("webView", object55);
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
private <T> void injectField(final String fieldName, final T object) {
try {
final var field = controller.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(controller, object);
} catch (final NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection on " + fieldName, e);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,430 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.setGridPane(object0);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
controller.setButton(object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.setCheckBox(object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.setChoiceBox(object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.setColorPicker(object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.setColor(object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.setComboBox(object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.setDatePicker(object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.setHtmlEditor(object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.setHyperlink(object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.setImageView(object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.setLabel(object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.setListView(object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.setMediaView(object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.setMenuBar(object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.setMenu1(object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.setMenuItem1(object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.setMenuButton(object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.setPagination(object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.setPasswordField(object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.setProgressBar(object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.setProgressIndicator(object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.setRadioButton(object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.setScrollBarH(object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.setScrollBarV(object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.setSeparatorH(object37);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.setSeparatorV(object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.setSliderH(object39);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.setSliderV(object40);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.setSpinner(object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.setSplitMenuButton(object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.setItem1(object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.setItem2(object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.setTableView(object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.setTableColumn1(object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.setTableColumn2(object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.setTextArea(object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.setTextField(object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.setTreeTableView(object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.setTreeTableColumn1(object52);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.setTreeTableColumn2(object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.setTreeView(object54);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.setWebView(object55);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,430 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.setGridPane(object0);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
controller.setButton(object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.setCheckBox(object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.setChoiceBox(object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.setColorPicker(object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.setColor(object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.setComboBox(object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.setDatePicker(object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.setHtmlEditor(object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.setHyperlink(object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.setImageView(object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.setLabel(object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.setListView(object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.setMediaView(object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.setMenuBar(object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.setMenu1(object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.setMenuItem1(object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.setMenuButton(object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.setPagination(object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.setPasswordField(object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.setProgressBar(object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.setProgressIndicator(object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.setRadioButton(object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.setScrollBarH(object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.setScrollBarV(object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.setSeparatorH(object37);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.setSeparatorV(object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.setSliderH(object39);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.setSliderV(object40);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.setSpinner(object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.setSplitMenuButton(object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.setItem1(object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.setItem2(object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.setTableView(object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.setTableColumn1(object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.setTableColumn2(object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.setTextArea(object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.setTextField(object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.setTreeTableView(object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.setTreeTableColumn1(object52);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.setTreeTableColumn2(object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.setTreeView(object54);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.setWebView(object55);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,429 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.setGridPane(object0);
object0.setOnInputMethodTextChanged(controller::inputMethodTextChanged);
object0.setOnKeyPressed(e -> controller.keyPressed());
object0.setOnKeyReleased(controller::keyReleased);
object0.setOnKeyTyped(controller::keyTyped);
final var object1 = new javafx.scene.control.Button();
controller.setButton(object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.setCheckBox(object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.setChoiceBox(object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.setColorPicker(object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.setColor(object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.setComboBox(object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.setDatePicker(object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.setHtmlEditor(object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.setHyperlink(object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.setImageView(object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.setLabel(object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(controller.resources().getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.setListView(object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.setMediaView(object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.setMenuBar(object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.setMenu1(object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.setMenuItem1(object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.setMenuButton(object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.setPagination(object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.setPasswordField(object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.setProgressBar(object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.setProgressIndicator(object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.setRadioButton(object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.setScrollBarH(object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.setScrollBarV(object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.setSeparatorH(object37);
object37.setOnDragDetected(controller::dragDetected);
object37.setOnDragDone(controller::dragDone);
object37.setOnDragDropped(controller::dragDropped);
object37.setOnDragEntered(controller::dragEntered);
object37.setOnDragExited(controller::dragExited);
object37.setOnDragOver(controller::dragOver);
object37.setOnMouseDragEntered(controller::mouseDragEntered);
object37.setOnMouseDragExited(controller::mouseDragExited);
object37.setOnMouseDragOver(controller::mouseDragOver);
object37.setOnMouseDragReleased(controller::mouseDragReleased);
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.setSeparatorV(object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.setSliderH(object39);
object39.setOnContextMenuRequested(controller::contextMenuRequested);
object39.setOnMouseClicked(e -> controller.mouseClicked());
object39.setOnMouseDragged(controller::mouseDragged);
object39.setOnMouseEntered(controller::mouseEntered);
object39.setOnMouseExited(controller::mouseExited);
object39.setOnMouseMoved(controller::mouseMoved);
object39.setOnMousePressed(controller::mousePressed);
object39.setOnMouseReleased(controller::mouseReleased);
object39.setOnScroll(controller::onScroll);
object39.setOnScrollFinished(controller::onScrollFinished);
object39.setOnScrollStarted(controller::onScrollStarted);
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.setSliderV(object40);
object40.setOnZoom(controller::onZoom);
object40.setOnZoomFinished(controller::onZoomFinished);
object40.setOnZoomStarted(controller::onZoomStarted);
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.setSpinner(object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.setSplitMenuButton(object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.setItem1(object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.setItem2(object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.setTableView(object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.setTableColumn1(object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.setTableColumn2(object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.setTextArea(object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.setTextField(object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(controller::onAction);
object50.setOnRotate(controller::onRotate);
object50.setOnRotationFinished(controller::onRotationFinished);
object50.setOnRotationStarted(controller::onRotationStarted);
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.setTreeTableView(object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.setTreeTableColumn1(object52);
object52.setOnEditCancel(controller::onEditCancel);
object52.setOnEditCommit(controller::onEditCommit);
object52.setOnEditStart(controller::onEditStart);
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.setTreeTableColumn2(object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.setTreeView(object54);
object54.setOnSwipeDown(controller::onSwipeDown);
object54.setOnSwipeLeft(controller::onSwipeLeft);
object54.setOnSwipeRight(controller::onSwipeRight);
object54.setOnSwipeUp(controller::onSwipeUp);
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.setWebView(object55);
object55.setOnTouchMoved(controller::onTouchMoved);
object55.setOnTouchPressed(controller::onTouchPressed);
object55.setOnTouchReleased(controller::onTouchReleased);
object55.setOnTouchStationary(controller::onTouchStationary);
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,474 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.setGridPane(object0);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
controller.setButton(object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.setCheckBox(object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.setChoiceBox(object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.setColorPicker(object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.setColor(object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.setComboBox(object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.setDatePicker(object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.setHtmlEditor(object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.setHyperlink(object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.setImageView(object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.setLabel(object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.setListView(object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.setMediaView(object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.setMenuBar(object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.setMenu1(object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.setMenuItem1(object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.setMenuButton(object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.setPagination(object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.setPasswordField(object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.setProgressBar(object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.setProgressIndicator(object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.setRadioButton(object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.setScrollBarH(object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.setScrollBarV(object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.setSeparatorH(object37);
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.setSeparatorV(object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.setSliderH(object39);
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.setSliderV(object40);
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.setSpinner(object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.setSplitMenuButton(object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.setItem1(object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.setItem2(object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.setTableView(object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.setTableColumn1(object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.setTableColumn2(object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.setTextArea(object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.setTextField(object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.setTreeTableView(object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.setTreeTableColumn1(object52);
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.setTreeTableColumn2(object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.setTreeView(object54);
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.setWebView(object55);
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,474 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.setGridPane(object0);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
controller.setButton(object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.setCheckBox(object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.setChoiceBox(object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.setColorPicker(object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.setColor(object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.setComboBox(object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.setDatePicker(object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.setHtmlEditor(object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.setHyperlink(object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.setImageView(object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.setLabel(object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(bundle.getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.setListView(object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.setMediaView(object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.setMenuBar(object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.setMenu1(object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.setMenuItem1(object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.setMenuButton(object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.setPagination(object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.setPasswordField(object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.setProgressBar(object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.setProgressIndicator(object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.setRadioButton(object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.setScrollBarH(object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.setScrollBarV(object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.setSeparatorH(object37);
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.setSeparatorV(object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.setSliderH(object39);
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.setSliderV(object40);
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.setSpinner(object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.setSplitMenuButton(object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.setItem1(object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.setItem2(object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.setTableView(object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.setTableColumn1(object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.setTableColumn2(object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.setTextArea(object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.setTextField(object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.setTreeTableView(object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.setTreeTableColumn1(object52);
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.setTreeTableColumn2(object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.setTreeView(object54);
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.setWebView(object55);
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,473 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class ControlsController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller;
/**
* Instantiates a new ControlsController with no nested controllers and no resource bundle
* @param controller The controller
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of());
}
/**
* Instantiates a new ControlsController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public ControlsController(final com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class, resourceBundle));
}
/**
* Instantiates a new ControlsController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public ControlsController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.ControlsController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.ControlsController.class);
final var object0 = new javafx.scene.layout.GridPane();
controller.setGridPane(object0);
object0.setOnInputMethodTextChanged(e -> callMethod("inputMethodTextChanged", e));
object0.setOnKeyPressed(e -> callMethod("keyPressed", e));
object0.setOnKeyReleased(e -> callMethod("keyReleased", e));
object0.setOnKeyTyped(e -> callMethod("keyTyped", e));
final var object1 = new javafx.scene.control.Button();
controller.setButton(object1);
object1.setMnemonicParsing(false);
object1.setText("Button");
final var object2 = new javafx.scene.control.CheckBox();
javafx.scene.layout.GridPane.setColumnIndex(object2, 1);
controller.setCheckBox(object2);
object2.setIndeterminate(true);
object2.setMnemonicParsing(false);
object2.setText("CheckBox");
final var object3 = new javafx.scene.control.ChoiceBox<String>();
object3.setCacheShape(false);
object3.setCenterShape(false);
object3.setDisable(true);
object3.setFocusTraversable(false);
controller.setChoiceBox(object3);
object3.setPrefWidth(150.0);
javafx.scene.layout.GridPane.setRowIndex(object3, 1);
object3.setScaleShape(false);
object3.setVisible(false);
final var object4 = new javafx.scene.control.ColorPicker();
javafx.scene.layout.GridPane.setColumnIndex(object4, 1);
controller.setColorPicker(object4);
object4.setNodeOrientation(javafx.geometry.NodeOrientation.LEFT_TO_RIGHT);
object4.setOpacity(0.5);
javafx.scene.layout.GridPane.setRowIndex(object4, 1);
final var object5 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object4.setOpaqueInsets(object5);
final var object6 = new javafx.scene.paint.Color(0.7894737124443054, 0.08771929889917374, 0.08771929889917374, 1);
controller.setColor(object6);
object4.setValue(object6);
final var object7 = new javafx.scene.control.ComboBox();
object7.setEditable(true);
controller.setComboBox(object7);
object7.setPrefWidth(150.0);
object7.setPromptText("Text");
javafx.scene.layout.GridPane.setRowIndex(object7, 2);
object7.setVisibleRowCount(5);
final var object8 = javafx.scene.Cursor.CLOSED_HAND;
object7.setCursor(object8);
final var object9 = new javafx.scene.effect.Bloom();
object7.setEffect(object9);
final var object10 = new javafx.scene.control.DatePicker();
javafx.scene.layout.GridPane.setColumnIndex(object10, 1);
controller.setDatePicker(object10);
javafx.scene.layout.GridPane.setRowIndex(object10, 2);
object10.setShowWeekNumbers(true);
object10.setStyle("-fx-background-color: #ffffff;");
final var object11 = new javafx.scene.web.HTMLEditor();
controller.setHtmlEditor(object11);
object11.setHtmlText("<html><head></head><body contenteditable=\"true\"></body></html>");
object11.setPrefHeight(200.0);
object11.setPrefWidth(506.0);
javafx.scene.layout.GridPane.setRowIndex(object11, 3);
object11.getStyleClass().addAll("clazz");
object11.getStylesheets().addAll("@style.css");
final var object12 = new javafx.scene.control.Hyperlink();
javafx.scene.layout.GridPane.setColumnIndex(object12, 1);
controller.setHyperlink(object12);
javafx.scene.layout.GridPane.setRowIndex(object12, 3);
object12.setText("Hyperlink");
final var object13 = new javafx.scene.image.ImageView();
object13.setFitHeight(150.0);
object13.setFitWidth(200.0);
controller.setImageView(object13);
object13.setPickOnBounds(true);
object13.setPreserveRatio(true);
javafx.scene.layout.GridPane.setRowIndex(object13, 4);
final var object14 = new javafx.scene.control.Label();
object14.setAccessibleHelp("TTTTT");
object14.setAccessibleText("TTT");
object14.setBlendMode(javafx.scene.effect.BlendMode.ADD);
object14.setCache(true);
object14.setCacheHint(javafx.scene.CacheHint.QUALITY);
javafx.scene.layout.GridPane.setColumnIndex(object14, 1);
object14.setDepthTest(javafx.scene.DepthTest.ENABLE);
controller.setLabel(object14);
object14.setMnemonicParsing(true);
object14.setMouseTransparent(true);
javafx.scene.layout.GridPane.setRowIndex(object14, 4);
object14.setText(controller.resources().getString("include.label"));
final var object15 = new javafx.scene.control.ListView<javafx.scene.control.Label>();
object15.setFixedCellSize(20.0);
controller.setListView(object15);
object15.setNodeOrientation(javafx.geometry.NodeOrientation.RIGHT_TO_LEFT);
object15.setOrientation(javafx.geometry.Orientation.HORIZONTAL);
object15.setPrefHeight(200.0);
object15.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object15, 5);
final var object16 = new javafx.scene.media.MediaView();
javafx.scene.layout.GridPane.setColumnIndex(object16, 1);
javafx.scene.layout.GridPane.setColumnSpan(object16, 2);
object16.setFitHeight(200.0);
object16.setFitWidth(200.0);
controller.setMediaView(object16);
javafx.scene.layout.GridPane.setRowIndex(object16, 5);
javafx.scene.layout.GridPane.setRowSpan(object16, 2);
final var object17 = new javafx.scene.control.MenuBar();
controller.setMenuBar(object17);
javafx.scene.layout.GridPane.setHalignment(object17, javafx.geometry.HPos.RIGHT);
javafx.scene.layout.GridPane.setHgrow(object17, javafx.scene.layout.Priority.ALWAYS);
javafx.scene.layout.GridPane.setRowIndex(object17, 7);
javafx.scene.layout.GridPane.setValignment(object17, javafx.geometry.VPos.BASELINE);
javafx.scene.layout.GridPane.setVgrow(object17, javafx.scene.layout.Priority.SOMETIMES);
final var object18 = new javafx.scene.control.Menu();
controller.setMenu1(object18);
object18.setMnemonicParsing(false);
object18.setText("File");
final var object19 = new javafx.scene.control.MenuItem();
controller.setMenuItem1(object19);
object19.setMnemonicParsing(false);
object19.setText("Close");
object18.getItems().addAll(object19);
final var object20 = new javafx.scene.control.Menu();
object20.setMnemonicParsing(false);
object20.setText("Edit");
final var object21 = new javafx.scene.control.MenuItem();
object21.setMnemonicParsing(false);
object21.setText("Delete");
object20.getItems().addAll(object21);
final var object22 = new javafx.scene.control.Menu();
object22.setMnemonicParsing(false);
object22.setText("Help");
final var object23 = new javafx.scene.control.MenuItem();
object23.setMnemonicParsing(false);
object23.setText("About");
object22.getItems().addAll(object23);
object17.getMenus().addAll(object18, object20, object22);
final var object24 = new javafx.scene.control.MenuButton();
javafx.scene.layout.GridPane.setColumnIndex(object24, 1);
controller.setMenuButton(object24);
object24.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object24, 7);
object24.setText("MenuButton");
final var object25 = new javafx.scene.control.MenuItem();
object25.setMnemonicParsing(false);
object25.setText("Action 1");
final var object26 = new javafx.scene.control.MenuItem();
object26.setMnemonicParsing(false);
object26.setText("Action 2");
object24.getItems().addAll(object25, object26);
final var object27 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
javafx.scene.layout.GridPane.setMargin(object24, object27);
final var object28 = new javafx.scene.control.Pagination();
controller.setPagination(object28);
object28.setPrefHeight(200.0);
object28.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object28, 8);
final var object29 = new javafx.geometry.Insets(5.0, 4.0, 3.0, 2.0);
object28.setPadding(object29);
final var object30 = new javafx.scene.control.PasswordField();
javafx.scene.layout.GridPane.setColumnIndex(object30, 1);
controller.setPasswordField(object30);
object30.setMaxHeight(Double.valueOf("Infinity"));
object30.setMaxWidth(5.0);
object30.setMinHeight(Double.valueOf("-Infinity"));
object30.setMinWidth(1.0);
object30.setPrefColumnCount(7);
object30.setPrefHeight(4.0);
object30.setPrefWidth(3.0);
javafx.scene.layout.GridPane.setRowIndex(object30, 8);
final var object31 = new javafx.scene.control.ProgressBar();
controller.setProgressBar(object31);
object31.setLayoutX(10.0);
object31.setLayoutY(20.0);
object31.setPrefWidth(200.0);
object31.setProgress(0.0);
javafx.scene.layout.GridPane.setRowIndex(object31, 9);
final var object32 = new javafx.scene.control.ProgressIndicator();
javafx.scene.layout.GridPane.setColumnIndex(object32, 1);
controller.setProgressIndicator(object32);
object32.setProgress(0.0);
object32.setRotate(2.0);
javafx.scene.layout.GridPane.setRowIndex(object32, 9);
final var object33 = new javafx.geometry.Point3D(4.0, 5.0, 6.0);
object32.setRotationAxis(object33);
final var object34 = new javafx.scene.control.RadioButton();
controller.setRadioButton(object34);
object34.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object34, 10);
object34.setScaleX(7.0);
object34.setScaleY(2.0);
object34.setScaleZ(3.0);
object34.setText("RadioButton");
object34.setTranslateX(4.0);
object34.setTranslateY(5.0);
object34.setTranslateZ(6.0);
final var object35 = new javafx.scene.control.ScrollBar();
javafx.scene.layout.GridPane.setColumnIndex(object35, 1);
controller.setScrollBarH(object35);
javafx.scene.layout.GridPane.setRowIndex(object35, 10);
final var object36 = new javafx.scene.control.ScrollBar();
controller.setScrollBarV(object36);
object36.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object36, 11);
final var object37 = new javafx.scene.control.Separator();
javafx.scene.layout.GridPane.setColumnIndex(object37, 1);
controller.setSeparatorH(object37);
object37.setOnDragDetected(e -> callMethod("dragDetected", e));
object37.setOnDragDone(e -> callMethod("dragDone", e));
object37.setOnDragDropped(e -> callMethod("dragDropped", e));
object37.setOnDragEntered(e -> callMethod("dragEntered", e));
object37.setOnDragExited(e -> callMethod("dragExited", e));
object37.setOnDragOver(e -> callMethod("dragOver", e));
object37.setOnMouseDragEntered(e -> callMethod("mouseDragEntered", e));
object37.setOnMouseDragExited(e -> callMethod("mouseDragExited", e));
object37.setOnMouseDragOver(e -> callMethod("mouseDragOver", e));
object37.setOnMouseDragReleased(e -> callMethod("mouseDragReleased", e));
object37.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object37, 11);
final var object38 = new javafx.scene.control.Separator();
controller.setSeparatorV(object38);
object38.setOrientation(javafx.geometry.Orientation.VERTICAL);
object38.setPrefHeight(200.0);
javafx.scene.layout.GridPane.setRowIndex(object38, 12);
final var object39 = new javafx.scene.control.Slider();
javafx.scene.layout.GridPane.setColumnIndex(object39, 1);
controller.setSliderH(object39);
object39.setOnContextMenuRequested(e -> callMethod("contextMenuRequested", e));
object39.setOnMouseClicked(e -> callMethod("mouseClicked", e));
object39.setOnMouseDragged(e -> callMethod("mouseDragged", e));
object39.setOnMouseEntered(e -> callMethod("mouseEntered", e));
object39.setOnMouseExited(e -> callMethod("mouseExited", e));
object39.setOnMouseMoved(e -> callMethod("mouseMoved", e));
object39.setOnMousePressed(e -> callMethod("mousePressed", e));
object39.setOnMouseReleased(e -> callMethod("mouseReleased", e));
object39.setOnScroll(e -> callMethod("onScroll", e));
object39.setOnScrollFinished(e -> callMethod("onScrollFinished", e));
object39.setOnScrollStarted(e -> callMethod("onScrollStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object39, 12);
final var object40 = new javafx.scene.control.Slider();
controller.setSliderV(object40);
object40.setOnZoom(e -> callMethod("onZoom", e));
object40.setOnZoomFinished(e -> callMethod("onZoomFinished", e));
object40.setOnZoomStarted(e -> callMethod("onZoomStarted", e));
object40.setOrientation(javafx.geometry.Orientation.VERTICAL);
javafx.scene.layout.GridPane.setRowIndex(object40, 13);
final var object41 = new javafx.scene.control.Spinner<Double>();
javafx.scene.layout.GridPane.setColumnIndex(object41, 1);
controller.setSpinner(object41);
javafx.scene.layout.GridPane.setRowIndex(object41, 13);
final var object42 = new javafx.scene.control.SplitMenuButton();
controller.setSplitMenuButton(object42);
object42.setMnemonicParsing(false);
javafx.scene.layout.GridPane.setRowIndex(object42, 14);
object42.setText("SplitMenuButton");
final var object43 = new javafx.scene.control.MenuItem();
controller.setItem1(object43);
object43.setMnemonicParsing(false);
object43.setText("Action 1");
final var object44 = new javafx.scene.control.MenuItem();
controller.setItem2(object44);
object44.setMnemonicParsing(false);
object44.setText("Action 2");
object42.getItems().addAll(object43, object44);
final var object45 = new javafx.scene.control.TableView<javafx.scene.control.TextArea>();
javafx.scene.layout.GridPane.setColumnIndex(object45, 1);
controller.setTableView(object45);
object45.setPrefHeight(200.0);
object45.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object45, 14);
final var object46 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, Float>();
controller.setTableColumn1(object46);
object46.setPrefWidth(75.0);
object46.setText("C1");
final var object47 = new javafx.scene.control.TableColumn<javafx.scene.control.TextArea, String>();
controller.setTableColumn2(object47);
object47.setPrefWidth(75.0);
object47.setText("C2");
object45.getColumns().addAll(object46, object47);
final var object48 = new javafx.scene.control.TextArea();
controller.setTextArea(object48);
object48.setPrefHeight(200.0);
object48.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object48, 15);
final var object49 = new javafx.scene.control.TextField();
javafx.scene.layout.GridPane.setColumnIndex(object49, 1);
controller.setTextField(object49);
javafx.scene.layout.GridPane.setRowIndex(object49, 15);
final var object50 = new javafx.scene.control.ToggleButton();
object50.setMnemonicParsing(false);
object50.setOnAction(e -> callMethod("onAction", e));
object50.setOnRotate(e -> callMethod("onRotate", e));
object50.setOnRotationFinished(e -> callMethod("onRotationFinished", e));
object50.setOnRotationStarted(e -> callMethod("onRotationStarted", e));
javafx.scene.layout.GridPane.setRowIndex(object50, 16);
object50.setText("ToggleButton");
final var object51 = new javafx.scene.control.TreeTableView<javafx.scene.control.TreeItem<String>>();
javafx.scene.layout.GridPane.setColumnIndex(object51, 1);
controller.setTreeTableView(object51);
object51.setPrefHeight(200.0);
object51.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object51, 16);
final var object52 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, String>();
controller.setTreeTableColumn1(object52);
object52.setOnEditCancel(e -> callMethod("onEditCancel", e));
object52.setOnEditCommit(e -> callMethod("onEditCommit", e));
object52.setOnEditStart(e -> callMethod("onEditStart", e));
object52.setPrefWidth(75.0);
object52.setText("C1");
final var object53 = new javafx.scene.control.TreeTableColumn<javafx.scene.control.TreeItem<String>, Integer>();
controller.setTreeTableColumn2(object53);
object53.setPrefWidth(75.0);
object53.setSortType(javafx.scene.control.TreeTableColumn.SortType.DESCENDING);
object53.setText("C2");
object51.getColumns().addAll(object52, object53);
final var object54 = new javafx.scene.control.TreeView<String>();
controller.setTreeView(object54);
object54.setOnSwipeDown(e -> callMethod("onSwipeDown", e));
object54.setOnSwipeLeft(e -> callMethod("onSwipeLeft", e));
object54.setOnSwipeRight(e -> callMethod("onSwipeRight", e));
object54.setOnSwipeUp(e -> callMethod("onSwipeUp", e));
object54.setPrefHeight(200.0);
object54.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object54, 17);
final var object55 = new javafx.scene.web.WebView();
javafx.scene.layout.GridPane.setColumnIndex(object55, 1);
controller.setWebView(object55);
object55.setOnTouchMoved(e -> callMethod("onTouchMoved", e));
object55.setOnTouchPressed(e -> callMethod("onTouchPressed", e));
object55.setOnTouchReleased(e -> callMethod("onTouchReleased", e));
object55.setOnTouchStationary(e -> callMethod("onTouchStationary", e));
object55.setPrefHeight(200.0);
object55.setPrefWidth(200.0);
javafx.scene.layout.GridPane.setRowIndex(object55, 17);
object0.getChildren().addAll(object1, object2, object3, object4, object7, object10, object11, object12, object13, object14, object15, object16, object17, object24, object28, object30, object31, object32, object34, object35, object36, object37, object38, object39, object40, object41, object42, object45, object48, object49, object50, object51, object54, object55);
final var object56 = new javafx.scene.layout.ColumnConstraints();
final var object57 = new javafx.scene.layout.ColumnConstraints();
final var object58 = new javafx.scene.layout.ColumnConstraints();
object58.setMinWidth(10.0);
object58.setPrefWidth(100.0);
object0.getColumnConstraints().addAll(object56, object57, object58);
final var object59 = new javafx.scene.layout.RowConstraints();
final var object60 = new javafx.scene.layout.RowConstraints();
final var object61 = new javafx.scene.layout.RowConstraints();
final var object62 = new javafx.scene.layout.RowConstraints();
final var object63 = new javafx.scene.layout.RowConstraints();
final var object64 = new javafx.scene.layout.RowConstraints();
final var object65 = new javafx.scene.layout.RowConstraints();
final var object66 = new javafx.scene.layout.RowConstraints();
final var object67 = new javafx.scene.layout.RowConstraints();
final var object68 = new javafx.scene.layout.RowConstraints();
final var object69 = new javafx.scene.layout.RowConstraints();
final var object70 = new javafx.scene.layout.RowConstraints();
final var object71 = new javafx.scene.layout.RowConstraints();
final var object72 = new javafx.scene.layout.RowConstraints();
final var object73 = new javafx.scene.layout.RowConstraints();
final var object74 = new javafx.scene.layout.RowConstraints();
final var object75 = new javafx.scene.layout.RowConstraints();
final var object76 = new javafx.scene.layout.RowConstraints();
object0.getRowConstraints().addAll(object59, object60, object61, object62, object63, object64, object65, object66, object67, object68, object69, object70, object71, object72, object73, object74, object75, object76);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.ControlsController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,187 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class IncludesController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller;
/**
* Instantiates a new IncludesController with no nested controllers and no resource bundle
* @param controller The controller
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of());
}
/**
* Instantiates a new IncludesController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, resourceBundle));
}
/**
* Instantiates a new IncludesController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public IncludesController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.IncludesController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
final var object0 = new javafx.scene.layout.BorderPane();
final var object1 = new javafx.scene.layout.VBox();
javafx.scene.layout.BorderPane.setAlignment(object1, javafx.geometry.Pos.CENTER);
final var object2 = new javafx.scene.layout.HBox();
object2.setAlignment(javafx.geometry.Pos.CENTER);
object2.setSpacing(10.0);
final var object3 = new javafx.scene.control.Slider();
controller.playSlider = object3;
javafx.scene.layout.HBox.setHgrow(object3, javafx.scene.layout.Priority.ALWAYS);
final var object4 = new javafx.geometry.Insets(0, 0, 0, 10.0);
object3.setPadding(object4);
final var object5 = new javafx.scene.control.Label();
controller.playLabel = object5;
object5.setText("Label");
final var object6 = new javafx.geometry.Insets(0, 10.0, 0, 0);
object5.setPadding(object6);
object2.getChildren().addAll(object3, object5);
final var object7 = new javafx.geometry.Insets(10.0, 0, 0, 0);
object2.setPadding(object7);
final var object8 = new javafx.scene.layout.HBox();
object8.setAlignment(javafx.geometry.Pos.CENTER);
object8.setSpacing(10.0);
final var object9 = new javafx.scene.control.Button();
controller.playButton = object9;
object9.setMnemonicParsing(false);
object9.setOnAction(controller::playPressed);
final var object10 = new javafx.geometry.Insets(0, 20.0, 0, 0);
javafx.scene.layout.HBox.setMargin(object9, object10);
final var object11 = new javafx.scene.control.Label();
object11.setText(bundle.getString("media.volume.label"));
final var object12 = new javafx.scene.control.Slider();
controller.volumeSlider = object12;
object12.setValue(100);
final var object13 = new javafx.scene.control.Label();
controller.volumeValueLabel = object13;
object13.setText("Label");
final var map0 = new HashMap<>(resourceBundlesMap);
final var bundle0 = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
map0.put(com.github.gtache.fxml.compiler.parsing.listener.ControlsController, bundle0);
final var view0 = new com.github.gtache.fxml.compiler.parsing.listener.ControlsView(controllersMap, map0);
final var object14 = view0.load();
final var controller0 = view0.controller();
controller.controlsController = controller0;
object8.getChildren().addAll(object9, object11, object12, object13, object14);
final var object15 = new javafx.geometry.Insets(10.0, 10.0, 10.0, 10.0);
object8.setPadding(object15);
object1.getChildren().addAll(object2, object8);
object0.setBottom(object1);
final var object16 = new javafx.scene.layout.VBox();
controller.vbox = object16;
final var object17 = new javafx.scene.control.ToolBar();
controller.toolBar = object17;
final var object18 = new javafx.scene.control.TitledPane();
controller.titledPane = object18;
final var object19 = new javafx.scene.layout.TilePane();
controller.tilePane = object19;
final var object20 = new javafx.scene.text.TextFlow();
controller.textFlow = object20;
final var object21 = new javafx.scene.control.TabPane();
controller.tabPane = object21;
final var object22 = new javafx.scene.control.Tab();
controller.tab = object22;
final var object23 = new javafx.scene.layout.StackPane();
controller.stackPane = object23;
final var object24 = new javafx.scene.control.SplitPane();
controller.splitPane = object24;
final var object25 = new javafx.scene.control.ScrollPane();
controller.scrollPane = object25;
final var object26 = new javafx.scene.layout.Pane();
controller.pane = object26;
final var object27 = new javafx.scene.layout.HBox();
controller.hbox = object27;
final var object28 = new javafx.scene.Group();
controller.group = object28;
final var object29 = new javafx.scene.layout.GridPane();
controller.gridPane = object29;
final var object30 = new javafx.scene.layout.FlowPane();
controller.flowPane = object30;
final var object31 = new javafx.scene.control.DialogPane();
controller.dialogPane = object31;
final var object32 = new javafx.scene.control.ButtonBar();
controller.buttonBar = object32;
final var object33 = new javafx.scene.layout.AnchorPane();
controller.anchorPane = object33;
final var object34 = new javafx.scene.control.Label();
object34.setManaged(false);
object33.getChildren().addAll(object34);
object32.getButtons().addAll(object33);
object31.setContent(object32);
object30.getChildren().addAll(object31);
object29.getChildren().addAll(object30);
final var object35 = new javafx.scene.layout.ColumnConstraints();
controller.columnConstraints = object35;
object35.setHgrow(javafx.scene.layout.Priority.SOMETIMES);
object35.setMinWidth(10.0);
object29.getColumnConstraints().addAll(object35);
final var object36 = new javafx.scene.layout.RowConstraints();
object36.setMinHeight(10.0);
object36.setVgrow(javafx.scene.layout.Priority.SOMETIMES);
object29.getRowConstraints().addAll(object36);
object28.getChildren().addAll(object29);
object27.getChildren().addAll(object28);
object26.getChildren().addAll(object27);
object25.setContent(object26);
object24.getItems().addAll(object25);
object23.getChildren().addAll(object24);
object22.setContent(object23);
object21.getTabs().addAll(object22);
object20.getChildren().addAll(object21);
object19.getChildren().addAll(object20);
object18.setContent(object19);
object17.getItems().addAll(object18);
object16.getChildren().addAll(object17);
object0.setCenter(object16);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,187 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class IncludesController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller;
/**
* Instantiates a new IncludesController with no nested controllers and no resource bundle
* @param controller The controller
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of());
}
/**
* Instantiates a new IncludesController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, resourceBundle));
}
/**
* Instantiates a new IncludesController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public IncludesController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.IncludesBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.IncludesController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
final var object0 = new javafx.scene.layout.BorderPane();
final var object1 = new javafx.scene.layout.VBox();
javafx.scene.layout.BorderPane.setAlignment(object1, javafx.geometry.Pos.CENTER);
final var object2 = new javafx.scene.layout.HBox();
object2.setAlignment(javafx.geometry.Pos.CENTER);
object2.setSpacing(10.0);
final var object3 = new javafx.scene.control.Slider();
controller.playSlider = object3;
javafx.scene.layout.HBox.setHgrow(object3, javafx.scene.layout.Priority.ALWAYS);
final var object4 = new javafx.geometry.Insets(0, 0, 0, 10.0);
object3.setPadding(object4);
final var object5 = new javafx.scene.control.Label();
controller.playLabel = object5;
object5.setText("Label");
final var object6 = new javafx.geometry.Insets(0, 10.0, 0, 0);
object5.setPadding(object6);
object2.getChildren().addAll(object3, object5);
final var object7 = new javafx.geometry.Insets(10.0, 0, 0, 0);
object2.setPadding(object7);
final var object8 = new javafx.scene.layout.HBox();
object8.setAlignment(javafx.geometry.Pos.CENTER);
object8.setSpacing(10.0);
final var object9 = new javafx.scene.control.Button();
controller.playButton = object9;
object9.setMnemonicParsing(false);
object9.setOnAction(controller::playPressed);
final var object10 = new javafx.geometry.Insets(0, 20.0, 0, 0);
javafx.scene.layout.HBox.setMargin(object9, object10);
final var object11 = new javafx.scene.control.Label();
object11.setText(bundle.getString("media.volume.label"));
final var object12 = new javafx.scene.control.Slider();
controller.volumeSlider = object12;
object12.setValue(100);
final var object13 = new javafx.scene.control.Label();
controller.volumeValueLabel = object13;
object13.setText("Label");
final var map0 = new HashMap<>(resourceBundlesMap);
final var bundle0 = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
map0.put(com.github.gtache.fxml.compiler.parsing.listener.ControlsController, bundle0);
final var view0 = new com.github.gtache.fxml.compiler.parsing.listener.ControlsView(controllersMap, map0);
final var object14 = view0.load();
final var controller0 = view0.controller();
controller.controlsController = controller0;
object8.getChildren().addAll(object9, object11, object12, object13, object14);
final var object15 = new javafx.geometry.Insets(10.0, 10.0, 10.0, 10.0);
object8.setPadding(object15);
object1.getChildren().addAll(object2, object8);
object0.setBottom(object1);
final var object16 = new javafx.scene.layout.VBox();
controller.vbox = object16;
final var object17 = new javafx.scene.control.ToolBar();
controller.toolBar = object17;
final var object18 = new javafx.scene.control.TitledPane();
controller.titledPane = object18;
final var object19 = new javafx.scene.layout.TilePane();
controller.tilePane = object19;
final var object20 = new javafx.scene.text.TextFlow();
controller.textFlow = object20;
final var object21 = new javafx.scene.control.TabPane();
controller.tabPane = object21;
final var object22 = new javafx.scene.control.Tab();
controller.tab = object22;
final var object23 = new javafx.scene.layout.StackPane();
controller.stackPane = object23;
final var object24 = new javafx.scene.control.SplitPane();
controller.splitPane = object24;
final var object25 = new javafx.scene.control.ScrollPane();
controller.scrollPane = object25;
final var object26 = new javafx.scene.layout.Pane();
controller.pane = object26;
final var object27 = new javafx.scene.layout.HBox();
controller.hbox = object27;
final var object28 = new javafx.scene.Group();
controller.group = object28;
final var object29 = new javafx.scene.layout.GridPane();
controller.gridPane = object29;
final var object30 = new javafx.scene.layout.FlowPane();
controller.flowPane = object30;
final var object31 = new javafx.scene.control.DialogPane();
controller.dialogPane = object31;
final var object32 = new javafx.scene.control.ButtonBar();
controller.buttonBar = object32;
final var object33 = new javafx.scene.layout.AnchorPane();
controller.anchorPane = object33;
final var object34 = new javafx.scene.control.Label();
object34.setManaged(false);
object33.getChildren().addAll(object34);
object32.getButtons().addAll(object33);
object31.setContent(object32);
object30.getChildren().addAll(object31);
object29.getChildren().addAll(object30);
final var object35 = new javafx.scene.layout.ColumnConstraints();
controller.columnConstraints = object35;
object35.setHgrow(javafx.scene.layout.Priority.SOMETIMES);
object35.setMinWidth(10.0);
object29.getColumnConstraints().addAll(object35);
final var object36 = new javafx.scene.layout.RowConstraints();
object36.setMinHeight(10.0);
object36.setVgrow(javafx.scene.layout.Priority.SOMETIMES);
object29.getRowConstraints().addAll(object36);
object28.getChildren().addAll(object29);
object27.getChildren().addAll(object28);
object26.getChildren().addAll(object27);
object25.setContent(object26);
object24.getItems().addAll(object25);
object23.getChildren().addAll(object24);
object22.setContent(object23);
object21.getTabs().addAll(object22);
object20.getChildren().addAll(object21);
object19.getChildren().addAll(object20);
object18.setContent(object19);
object17.getItems().addAll(object18);
object16.getChildren().addAll(object17);
object0.setCenter(object16);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,186 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
/**
* Generated code, not thread-safe
*/
public final class IncludesController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller;
/**
* Instantiates a new IncludesController with no nested controllers and no resource bundle
* @param controller The controller
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of());
}
/**
* Instantiates a new IncludesController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, resourceBundle));
}
/**
* Instantiates a new IncludesController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public IncludesController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.IncludesController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
final var object0 = new javafx.scene.layout.BorderPane();
final var object1 = new javafx.scene.layout.VBox();
javafx.scene.layout.BorderPane.setAlignment(object1, javafx.geometry.Pos.CENTER);
final var object2 = new javafx.scene.layout.HBox();
object2.setAlignment(javafx.geometry.Pos.CENTER);
object2.setSpacing(10.0);
final var object3 = new javafx.scene.control.Slider();
controller.playSlider = object3;
javafx.scene.layout.HBox.setHgrow(object3, javafx.scene.layout.Priority.ALWAYS);
final var object4 = new javafx.geometry.Insets(0, 0, 0, 10.0);
object3.setPadding(object4);
final var object5 = new javafx.scene.control.Label();
controller.playLabel = object5;
object5.setText("Label");
final var object6 = new javafx.geometry.Insets(0, 10.0, 0, 0);
object5.setPadding(object6);
object2.getChildren().addAll(object3, object5);
final var object7 = new javafx.geometry.Insets(10.0, 0, 0, 0);
object2.setPadding(object7);
final var object8 = new javafx.scene.layout.HBox();
object8.setAlignment(javafx.geometry.Pos.CENTER);
object8.setSpacing(10.0);
final var object9 = new javafx.scene.control.Button();
controller.playButton = object9;
object9.setMnemonicParsing(false);
object9.setOnAction(controller::playPressed);
final var object10 = new javafx.geometry.Insets(0, 20.0, 0, 0);
javafx.scene.layout.HBox.setMargin(object9, object10);
final var object11 = new javafx.scene.control.Label();
object11.setText(controller.resources().getString("media.volume.label"));
final var object12 = new javafx.scene.control.Slider();
controller.volumeSlider = object12;
object12.setValue(100);
final var object13 = new javafx.scene.control.Label();
controller.volumeValueLabel = object13;
object13.setText("Label");
final var map0 = new HashMap<>(resourceBundlesMap);
final var bundle0 = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
map0.put(com.github.gtache.fxml.compiler.parsing.listener.ControlsController, bundle0);
final var view0 = new com.github.gtache.fxml.compiler.parsing.listener.ControlsView(controllersMap, map0);
final var object14 = view0.load();
final var controller0 = view0.controller();
controller.controlsController = controller0;
object8.getChildren().addAll(object9, object11, object12, object13, object14);
final var object15 = new javafx.geometry.Insets(10.0, 10.0, 10.0, 10.0);
object8.setPadding(object15);
object1.getChildren().addAll(object2, object8);
object0.setBottom(object1);
final var object16 = new javafx.scene.layout.VBox();
controller.vbox = object16;
final var object17 = new javafx.scene.control.ToolBar();
controller.toolBar = object17;
final var object18 = new javafx.scene.control.TitledPane();
controller.titledPane = object18;
final var object19 = new javafx.scene.layout.TilePane();
controller.tilePane = object19;
final var object20 = new javafx.scene.text.TextFlow();
controller.textFlow = object20;
final var object21 = new javafx.scene.control.TabPane();
controller.tabPane = object21;
final var object22 = new javafx.scene.control.Tab();
controller.tab = object22;
final var object23 = new javafx.scene.layout.StackPane();
controller.stackPane = object23;
final var object24 = new javafx.scene.control.SplitPane();
controller.splitPane = object24;
final var object25 = new javafx.scene.control.ScrollPane();
controller.scrollPane = object25;
final var object26 = new javafx.scene.layout.Pane();
controller.pane = object26;
final var object27 = new javafx.scene.layout.HBox();
controller.hbox = object27;
final var object28 = new javafx.scene.Group();
controller.group = object28;
final var object29 = new javafx.scene.layout.GridPane();
controller.gridPane = object29;
final var object30 = new javafx.scene.layout.FlowPane();
controller.flowPane = object30;
final var object31 = new javafx.scene.control.DialogPane();
controller.dialogPane = object31;
final var object32 = new javafx.scene.control.ButtonBar();
controller.buttonBar = object32;
final var object33 = new javafx.scene.layout.AnchorPane();
controller.anchorPane = object33;
final var object34 = new javafx.scene.control.Label();
object34.setManaged(false);
object33.getChildren().addAll(object34);
object32.getButtons().addAll(object33);
object31.setContent(object32);
object30.getChildren().addAll(object31);
object29.getChildren().addAll(object30);
final var object35 = new javafx.scene.layout.ColumnConstraints();
controller.columnConstraints = object35;
object35.setHgrow(javafx.scene.layout.Priority.SOMETIMES);
object35.setMinWidth(10.0);
object29.getColumnConstraints().addAll(object35);
final var object36 = new javafx.scene.layout.RowConstraints();
object36.setMinHeight(10.0);
object36.setVgrow(javafx.scene.layout.Priority.SOMETIMES);
object29.getRowConstraints().addAll(object36);
object28.getChildren().addAll(object29);
object27.getChildren().addAll(object28);
object26.getChildren().addAll(object27);
object25.setContent(object26);
object24.getItems().addAll(object25);
object23.getChildren().addAll(object24);
object22.setContent(object23);
object21.getTabs().addAll(object22);
object20.getChildren().addAll(object21);
object19.getChildren().addAll(object20);
object18.setContent(object19);
object17.getItems().addAll(object18);
object16.getChildren().addAll(object17);
object0.setCenter(object16);
controller.initialize();
loaded = true;
return object0;
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,231 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class IncludesController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller;
/**
* Instantiates a new IncludesController with no nested controllers and no resource bundle
* @param controller The controller
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of());
}
/**
* Instantiates a new IncludesController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, resourceBundle));
}
/**
* Instantiates a new IncludesController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public IncludesController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = resourceBundlesMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
controller = (com.github.gtache.fxml.compiler.parsing.listener.IncludesController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
final var object0 = new javafx.scene.layout.BorderPane();
final var object1 = new javafx.scene.layout.VBox();
javafx.scene.layout.BorderPane.setAlignment(object1, javafx.geometry.Pos.CENTER);
final var object2 = new javafx.scene.layout.HBox();
object2.setAlignment(javafx.geometry.Pos.CENTER);
object2.setSpacing(10.0);
final var object3 = new javafx.scene.control.Slider();
controller.playSlider = object3;
javafx.scene.layout.HBox.setHgrow(object3, javafx.scene.layout.Priority.ALWAYS);
final var object4 = new javafx.geometry.Insets(0, 0, 0, 10.0);
object3.setPadding(object4);
final var object5 = new javafx.scene.control.Label();
controller.playLabel = object5;
object5.setText("Label");
final var object6 = new javafx.geometry.Insets(0, 10.0, 0, 0);
object5.setPadding(object6);
object2.getChildren().addAll(object3, object5);
final var object7 = new javafx.geometry.Insets(10.0, 0, 0, 0);
object2.setPadding(object7);
final var object8 = new javafx.scene.layout.HBox();
object8.setAlignment(javafx.geometry.Pos.CENTER);
object8.setSpacing(10.0);
final var object9 = new javafx.scene.control.Button();
controller.playButton = object9;
object9.setMnemonicParsing(false);
object9.setOnAction(e -> callMethod("playPressed", e));
final var object10 = new javafx.geometry.Insets(0, 20.0, 0, 0);
javafx.scene.layout.HBox.setMargin(object9, object10);
final var object11 = new javafx.scene.control.Label();
object11.setText(bundle.getString("media.volume.label"));
final var object12 = new javafx.scene.control.Slider();
controller.volumeSlider = object12;
object12.setValue(100);
final var object13 = new javafx.scene.control.Label();
controller.volumeValueLabel = object13;
object13.setText("Label");
final var map0 = new HashMap<>(resourceBundlesMap);
final var bundle0 = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
map0.put(com.github.gtache.fxml.compiler.parsing.listener.ControlsController, bundle0);
final var view0 = new com.github.gtache.fxml.compiler.parsing.listener.ControlsView(controllersMap, map0);
final var object14 = view0.load();
final var controller0 = view0.controller();
controller.controlsController = controller0;
object8.getChildren().addAll(object9, object11, object12, object13, object14);
final var object15 = new javafx.geometry.Insets(10.0, 10.0, 10.0, 10.0);
object8.setPadding(object15);
object1.getChildren().addAll(object2, object8);
object0.setBottom(object1);
final var object16 = new javafx.scene.layout.VBox();
controller.vbox = object16;
final var object17 = new javafx.scene.control.ToolBar();
controller.toolBar = object17;
final var object18 = new javafx.scene.control.TitledPane();
controller.titledPane = object18;
final var object19 = new javafx.scene.layout.TilePane();
controller.tilePane = object19;
final var object20 = new javafx.scene.text.TextFlow();
controller.textFlow = object20;
final var object21 = new javafx.scene.control.TabPane();
controller.tabPane = object21;
final var object22 = new javafx.scene.control.Tab();
controller.tab = object22;
final var object23 = new javafx.scene.layout.StackPane();
controller.stackPane = object23;
final var object24 = new javafx.scene.control.SplitPane();
controller.splitPane = object24;
final var object25 = new javafx.scene.control.ScrollPane();
controller.scrollPane = object25;
final var object26 = new javafx.scene.layout.Pane();
controller.pane = object26;
final var object27 = new javafx.scene.layout.HBox();
controller.hbox = object27;
final var object28 = new javafx.scene.Group();
controller.group = object28;
final var object29 = new javafx.scene.layout.GridPane();
controller.gridPane = object29;
final var object30 = new javafx.scene.layout.FlowPane();
controller.flowPane = object30;
final var object31 = new javafx.scene.control.DialogPane();
controller.dialogPane = object31;
final var object32 = new javafx.scene.control.ButtonBar();
controller.buttonBar = object32;
final var object33 = new javafx.scene.layout.AnchorPane();
controller.anchorPane = object33;
final var object34 = new javafx.scene.control.Label();
object34.setManaged(false);
object33.getChildren().addAll(object34);
object32.getButtons().addAll(object33);
object31.setContent(object32);
object30.getChildren().addAll(object31);
object29.getChildren().addAll(object30);
final var object35 = new javafx.scene.layout.ColumnConstraints();
controller.columnConstraints = object35;
object35.setHgrow(javafx.scene.layout.Priority.SOMETIMES);
object35.setMinWidth(10.0);
object29.getColumnConstraints().addAll(object35);
final var object36 = new javafx.scene.layout.RowConstraints();
object36.setMinHeight(10.0);
object36.setVgrow(javafx.scene.layout.Priority.SOMETIMES);
object29.getRowConstraints().addAll(object36);
object28.getChildren().addAll(object29);
object27.getChildren().addAll(object28);
object26.getChildren().addAll(object27);
object25.setContent(object26);
object24.getItems().addAll(object25);
object23.getChildren().addAll(object24);
object22.setContent(object23);
object21.getTabs().addAll(object22);
object20.getChildren().addAll(object21);
object19.getChildren().addAll(object20);
object18.setContent(object19);
object17.getItems().addAll(object18);
object16.getChildren().addAll(object17);
object0.setCenter(object16);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,231 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class IncludesController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller;
/**
* Instantiates a new IncludesController with no nested controllers and no resource bundle
* @param controller The controller
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of());
}
/**
* Instantiates a new IncludesController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, resourceBundle));
}
/**
* Instantiates a new IncludesController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public IncludesController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
final var bundle = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.IncludesBundle");
controller = (com.github.gtache.fxml.compiler.parsing.listener.IncludesController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
final var object0 = new javafx.scene.layout.BorderPane();
final var object1 = new javafx.scene.layout.VBox();
javafx.scene.layout.BorderPane.setAlignment(object1, javafx.geometry.Pos.CENTER);
final var object2 = new javafx.scene.layout.HBox();
object2.setAlignment(javafx.geometry.Pos.CENTER);
object2.setSpacing(10.0);
final var object3 = new javafx.scene.control.Slider();
controller.playSlider = object3;
javafx.scene.layout.HBox.setHgrow(object3, javafx.scene.layout.Priority.ALWAYS);
final var object4 = new javafx.geometry.Insets(0, 0, 0, 10.0);
object3.setPadding(object4);
final var object5 = new javafx.scene.control.Label();
controller.playLabel = object5;
object5.setText("Label");
final var object6 = new javafx.geometry.Insets(0, 10.0, 0, 0);
object5.setPadding(object6);
object2.getChildren().addAll(object3, object5);
final var object7 = new javafx.geometry.Insets(10.0, 0, 0, 0);
object2.setPadding(object7);
final var object8 = new javafx.scene.layout.HBox();
object8.setAlignment(javafx.geometry.Pos.CENTER);
object8.setSpacing(10.0);
final var object9 = new javafx.scene.control.Button();
controller.playButton = object9;
object9.setMnemonicParsing(false);
object9.setOnAction(e -> callMethod("playPressed", e));
final var object10 = new javafx.geometry.Insets(0, 20.0, 0, 0);
javafx.scene.layout.HBox.setMargin(object9, object10);
final var object11 = new javafx.scene.control.Label();
object11.setText(bundle.getString("media.volume.label"));
final var object12 = new javafx.scene.control.Slider();
controller.volumeSlider = object12;
object12.setValue(100);
final var object13 = new javafx.scene.control.Label();
controller.volumeValueLabel = object13;
object13.setText("Label");
final var map0 = new HashMap<>(resourceBundlesMap);
final var bundle0 = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
map0.put(com.github.gtache.fxml.compiler.parsing.listener.ControlsController, bundle0);
final var view0 = new com.github.gtache.fxml.compiler.parsing.listener.ControlsView(controllersMap, map0);
final var object14 = view0.load();
final var controller0 = view0.controller();
controller.controlsController = controller0;
object8.getChildren().addAll(object9, object11, object12, object13, object14);
final var object15 = new javafx.geometry.Insets(10.0, 10.0, 10.0, 10.0);
object8.setPadding(object15);
object1.getChildren().addAll(object2, object8);
object0.setBottom(object1);
final var object16 = new javafx.scene.layout.VBox();
controller.vbox = object16;
final var object17 = new javafx.scene.control.ToolBar();
controller.toolBar = object17;
final var object18 = new javafx.scene.control.TitledPane();
controller.titledPane = object18;
final var object19 = new javafx.scene.layout.TilePane();
controller.tilePane = object19;
final var object20 = new javafx.scene.text.TextFlow();
controller.textFlow = object20;
final var object21 = new javafx.scene.control.TabPane();
controller.tabPane = object21;
final var object22 = new javafx.scene.control.Tab();
controller.tab = object22;
final var object23 = new javafx.scene.layout.StackPane();
controller.stackPane = object23;
final var object24 = new javafx.scene.control.SplitPane();
controller.splitPane = object24;
final var object25 = new javafx.scene.control.ScrollPane();
controller.scrollPane = object25;
final var object26 = new javafx.scene.layout.Pane();
controller.pane = object26;
final var object27 = new javafx.scene.layout.HBox();
controller.hbox = object27;
final var object28 = new javafx.scene.Group();
controller.group = object28;
final var object29 = new javafx.scene.layout.GridPane();
controller.gridPane = object29;
final var object30 = new javafx.scene.layout.FlowPane();
controller.flowPane = object30;
final var object31 = new javafx.scene.control.DialogPane();
controller.dialogPane = object31;
final var object32 = new javafx.scene.control.ButtonBar();
controller.buttonBar = object32;
final var object33 = new javafx.scene.layout.AnchorPane();
controller.anchorPane = object33;
final var object34 = new javafx.scene.control.Label();
object34.setManaged(false);
object33.getChildren().addAll(object34);
object32.getButtons().addAll(object33);
object31.setContent(object32);
object30.getChildren().addAll(object31);
object29.getChildren().addAll(object30);
final var object35 = new javafx.scene.layout.ColumnConstraints();
controller.columnConstraints = object35;
object35.setHgrow(javafx.scene.layout.Priority.SOMETIMES);
object35.setMinWidth(10.0);
object29.getColumnConstraints().addAll(object35);
final var object36 = new javafx.scene.layout.RowConstraints();
object36.setMinHeight(10.0);
object36.setVgrow(javafx.scene.layout.Priority.SOMETIMES);
object29.getRowConstraints().addAll(object36);
object28.getChildren().addAll(object29);
object27.getChildren().addAll(object28);
object26.getChildren().addAll(object27);
object25.setContent(object26);
object24.getItems().addAll(object25);
object23.getChildren().addAll(object24);
object22.setContent(object23);
object21.getTabs().addAll(object22);
object20.getChildren().addAll(object21);
object19.getChildren().addAll(object20);
object18.setContent(object19);
object17.getItems().addAll(object18);
object16.getChildren().addAll(object17);
object0.setCenter(object16);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

View File

@@ -1,230 +0,0 @@
package com.github.gtache.fxml.compiler.parsing.listener;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.HashMap;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import javafx.event.Event;
import java.lang.reflect.Method;
/**
* Generated code, not thread-safe
*/
public final class IncludesController {
private final Map<Class<?>, Object> controllersMap;
private final Map<Class<?>, ResourceBundle> resourceBundlesMap;
private boolean loaded;
private com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller;
/**
* Instantiates a new IncludesController with no nested controllers and no resource bundle
* @param controller The controller
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of());
}
/**
* Instantiates a new IncludesController with no nested controllers
* @param controller The controller
* @param resourceBundle The resource bundle
*/
public IncludesController(final com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller, final ResourceBundle resourceBundle) {
this(Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, controller), Map.of(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class, resourceBundle));
}
/**
* Instantiates a new IncludesController with nested controllers
* @param controllersMap The map of controller class to controller
* @param resourceBundlesMap The map of controller class to resource bundle
*/
public IncludesController(final Map<Class<?>, Object> controllersMap, final Map<Class<?>, ResourceBundle> resourceBundlesMap) {
this.controllersMap = Map.copyOf(controllersMap);
this.resourceBundlesMap = Map.copyOf(resourceBundlesMap);
}
/**
* Loads the view. Can only be called once.
*
* @return The view parent
*/
public <T> T load() {
if (loaded) {
throw new IllegalStateException("Already loaded");
}
controller = (com.github.gtache.fxml.compiler.parsing.listener.IncludesController) controllersMap.get(com.github.gtache.fxml.compiler.parsing.listener.IncludesController.class);
final var object0 = new javafx.scene.layout.BorderPane();
final var object1 = new javafx.scene.layout.VBox();
javafx.scene.layout.BorderPane.setAlignment(object1, javafx.geometry.Pos.CENTER);
final var object2 = new javafx.scene.layout.HBox();
object2.setAlignment(javafx.geometry.Pos.CENTER);
object2.setSpacing(10.0);
final var object3 = new javafx.scene.control.Slider();
controller.playSlider = object3;
javafx.scene.layout.HBox.setHgrow(object3, javafx.scene.layout.Priority.ALWAYS);
final var object4 = new javafx.geometry.Insets(0, 0, 0, 10.0);
object3.setPadding(object4);
final var object5 = new javafx.scene.control.Label();
controller.playLabel = object5;
object5.setText("Label");
final var object6 = new javafx.geometry.Insets(0, 10.0, 0, 0);
object5.setPadding(object6);
object2.getChildren().addAll(object3, object5);
final var object7 = new javafx.geometry.Insets(10.0, 0, 0, 0);
object2.setPadding(object7);
final var object8 = new javafx.scene.layout.HBox();
object8.setAlignment(javafx.geometry.Pos.CENTER);
object8.setSpacing(10.0);
final var object9 = new javafx.scene.control.Button();
controller.playButton = object9;
object9.setMnemonicParsing(false);
object9.setOnAction(e -> callMethod("playPressed", e));
final var object10 = new javafx.geometry.Insets(0, 20.0, 0, 0);
javafx.scene.layout.HBox.setMargin(object9, object10);
final var object11 = new javafx.scene.control.Label();
object11.setText(controller.resources().getString("media.volume.label"));
final var object12 = new javafx.scene.control.Slider();
controller.volumeSlider = object12;
object12.setValue(100);
final var object13 = new javafx.scene.control.Label();
controller.volumeValueLabel = object13;
object13.setText("Label");
final var map0 = new HashMap<>(resourceBundlesMap);
final var bundle0 = ResourceBundle.getBundle("com.github.gtache.fxml.compiler.parsing.listener.ControlsBundle");
map0.put(com.github.gtache.fxml.compiler.parsing.listener.ControlsController, bundle0);
final var view0 = new com.github.gtache.fxml.compiler.parsing.listener.ControlsView(controllersMap, map0);
final var object14 = view0.load();
final var controller0 = view0.controller();
controller.controlsController = controller0;
object8.getChildren().addAll(object9, object11, object12, object13, object14);
final var object15 = new javafx.geometry.Insets(10.0, 10.0, 10.0, 10.0);
object8.setPadding(object15);
object1.getChildren().addAll(object2, object8);
object0.setBottom(object1);
final var object16 = new javafx.scene.layout.VBox();
controller.vbox = object16;
final var object17 = new javafx.scene.control.ToolBar();
controller.toolBar = object17;
final var object18 = new javafx.scene.control.TitledPane();
controller.titledPane = object18;
final var object19 = new javafx.scene.layout.TilePane();
controller.tilePane = object19;
final var object20 = new javafx.scene.text.TextFlow();
controller.textFlow = object20;
final var object21 = new javafx.scene.control.TabPane();
controller.tabPane = object21;
final var object22 = new javafx.scene.control.Tab();
controller.tab = object22;
final var object23 = new javafx.scene.layout.StackPane();
controller.stackPane = object23;
final var object24 = new javafx.scene.control.SplitPane();
controller.splitPane = object24;
final var object25 = new javafx.scene.control.ScrollPane();
controller.scrollPane = object25;
final var object26 = new javafx.scene.layout.Pane();
controller.pane = object26;
final var object27 = new javafx.scene.layout.HBox();
controller.hbox = object27;
final var object28 = new javafx.scene.Group();
controller.group = object28;
final var object29 = new javafx.scene.layout.GridPane();
controller.gridPane = object29;
final var object30 = new javafx.scene.layout.FlowPane();
controller.flowPane = object30;
final var object31 = new javafx.scene.control.DialogPane();
controller.dialogPane = object31;
final var object32 = new javafx.scene.control.ButtonBar();
controller.buttonBar = object32;
final var object33 = new javafx.scene.layout.AnchorPane();
controller.anchorPane = object33;
final var object34 = new javafx.scene.control.Label();
object34.setManaged(false);
object33.getChildren().addAll(object34);
object32.getButtons().addAll(object33);
object31.setContent(object32);
object30.getChildren().addAll(object31);
object29.getChildren().addAll(object30);
final var object35 = new javafx.scene.layout.ColumnConstraints();
controller.columnConstraints = object35;
object35.setHgrow(javafx.scene.layout.Priority.SOMETIMES);
object35.setMinWidth(10.0);
object29.getColumnConstraints().addAll(object35);
final var object36 = new javafx.scene.layout.RowConstraints();
object36.setMinHeight(10.0);
object36.setVgrow(javafx.scene.layout.Priority.SOMETIMES);
object29.getRowConstraints().addAll(object36);
object28.getChildren().addAll(object29);
object27.getChildren().addAll(object28);
object26.getChildren().addAll(object27);
object25.setContent(object26);
object24.getItems().addAll(object25);
object23.getChildren().addAll(object24);
object22.setContent(object23);
object21.getTabs().addAll(object22);
object20.getChildren().addAll(object21);
object19.getChildren().addAll(object20);
object18.setContent(object19);
object17.getItems().addAll(object18);
object16.getChildren().addAll(object17);
object0.setCenter(object16);
try {
final var initialize = controller.getClass().getDeclaredMethod("initialize");
initialize.setAccessible(true);
initialize.invoke(controller);
} catch (final InvocationTargetException | IllegalAccessException e) {
throw new RuntimeException("Error using reflection", e);
} catch (final NoSuchMethodException ignored) {
}
loaded = true;
return object0;
}
private <T extends Event> void callMethod(final String methodName, final T event) {
try {
final Method method;
final var methods = Arrays.stream(controller.getClass().getDeclaredMethods())
.filter(m -> m.getName().equals(methodName)).toList();
if (methods.size() > 1) {
final var eventMethods = methods.stream().filter(m ->
m.getParameterCount() == 1 && Event.class.isAssignableFrom(m.getParameterTypes()[0])).toList();
if (eventMethods.size() == 1) {
method = eventMethods.getFirst();
} else {
final var emptyMethods = methods.stream().filter(m -> m.getParameterCount() == 0).toList();
if (emptyMethods.size() == 1) {
method = emptyMethods.getFirst();
} else {
throw new IllegalArgumentException("Multiple matching methods for " + methodName);
}
}
} else if (methods.size() == 1) {
method = methods.getFirst();
} else {
throw new IllegalArgumentException("No matching method for " + methodName);
}
method.setAccessible(true);
if (method.getParameterCount() == 0) {
method.invoke(controller);
} else {
method.invoke(controller, event);
}
} catch (final IllegalAccessException | InvocationTargetException ex) {
throw new RuntimeException("Error using reflection on " + methodName, ex);
}
}
/**
* @return The controller
*/
public com.github.gtache.fxml.compiler.parsing.listener.IncludesController controller() {
if (loaded) {
return controller;
} else {
throw new IllegalStateException("Not loaded");
}
}
}

Some files were not shown because too many files have changed in this diff Show More