All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.minimalj.frontend.impl.json.JsonFormContent Maven / Gradle / Ivy

Go to download

A java framework aiming for a minimal programming style. Includes GUI and persistence layer.

There is a newer version: 2.5.0.0
Show newest version
package org.minimalj.frontend.impl.json;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.minimalj.frontend.Frontend.FormContent;
import org.minimalj.frontend.Frontend.IComponent;

public class JsonFormContent extends JsonComponent implements FormContent {

	public static final String CAPTION = "caption";
	public static final String VALIDATION_MESSAGE = "validationMessage";
	public static final String SPAN = "span";

	private final List>> rows = new ArrayList<>();
	private final int columns;
	
	private List> actualRow = new ArrayList<>();
	private int actualColumn;
	
	public JsonFormContent(int columns, int columnWidth) {
		super("Form");
		if (columns < 1) throw new IllegalArgumentException(JsonFormContent.class.getSimpleName() + " can only work with at least 1 column");
		this.columns = columns;

		put("columns", columns);
		put("columnWidth", columnWidth);
		
		put("rows", rows);
		
		createNewRow();
	}

	private void createNewRow() {
		actualRow = new ArrayList<>();
		rows.add(actualRow);
		actualColumn = 0;
	}
	
	@Override
	public void add(IComponent component) {
		JsonComponent jsonComponent = (JsonComponent) component;
		if (actualColumn > 0) {
			createNewRow();
		}
		if (columns > 1) {
			jsonComponent.put(SPAN, columns);
		}
		actualRow.add(jsonComponent);
		actualColumn = columns;
	}

	@Override
	public void add(String caption, IComponent component, int span) {
		JsonComponent jsonComponent = (JsonComponent) component;
		jsonComponent.put(CAPTION, caption);
		if (actualColumn >= columns) {
			createNewRow();
		}
		if (span > 1) {
			jsonComponent.put(SPAN, span);
		}
		actualRow.add(jsonComponent);
		actualColumn += span;
	}

	@Override
	public void setValidationMessages(IComponent component, List validationMessages) {
		JsonComponent jsonComponent = (JsonComponent) component;
		if (validationMessages.size() == 1) {
			jsonComponent.put(VALIDATION_MESSAGE, validationMessages.get(0));
		} else if (!validationMessages.isEmpty()) {
			StringBuilder s = new StringBuilder();
			for (int i = 0; i");
			}
			s.append(validationMessages.get(validationMessages.size()-1));
		} else {
			jsonComponent.put(VALIDATION_MESSAGE, "");
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy