use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.
the class WebDataRendererFactory method completeRenderers.
/*
* (non-Javadoc)
*
* @see com.servoy.j2db.IDataRendererFactory#completeRenderers(com.servoy.j2db.IApplication, com.servoy.j2db.persistence.Form,
* com.servoy.j2db.IScriptExecuter, java.util.Map, int, boolean, com.servoy.j2db.ControllerUndoManager)
*/
public Map completeRenderers(IApplication application, Form form, IScriptExecuter scriptExecuter, Map emptyDataRenderers, int width, boolean printing, ControllerUndoManager undoManager, TabSequenceHelper<Component> tabSequence) throws Exception {
int partHeight = 0;
Iterator e2 = form.getParts();
while (e2.hasNext()) {
Part part = (Part) e2.next();
Color bg = ComponentFactory.getPartBackground(application, part, form);
if (bg != null) {
Pair<IStyleSheet, IStyleRule> formStyle = ComponentFactory.getCSSPairStyleForForm(application, form);
if (formStyle != null && formStyle.getRight() != null && formStyle.getRight().hasAttribute(CSSName.BACKGROUND_IMAGE.toString())) {
bg = null;
}
}
if (bg == null && printing)
bg = Color.white;
IDataRenderer panel = (IDataRenderer) emptyDataRenderers.get(part);
if (panel != null) {
int total = Math.abs(part.getHeight() - partHeight);
setBasicSettings(panel, bg, new Dimension(width, total), new Point(0, partHeight), printing);
}
partHeight = part.getHeight();
}
// place all the elements
return placeElements(application, form, scriptExecuter, emptyDataRenderers, printing, undoManager, tabSequence);
}
use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.
the class FormLayoutGenerator method generateRecordViewForm.
public static void generateRecordViewForm(PrintWriter writer, Form form, String realFormName, IServoyDataConverterContext context, boolean design) {
generateFormStartTag(writer, form, realFormName, false, design);
Iterator<Part> it = form.getParts();
if (design) {
while (it.hasNext()) {
Part part = it.next();
if (!Part.rendersOnlyInPrint(part.getPartType())) {
writer.print("<div ng-style=\"");
writer.print(PartWrapper.getName(part));
writer.print("Style\"");
String partClass = "svy-" + PartWrapper.getName(part);
if (part.getStyleClass() != null) {
partClass += " " + part.getStyleClass();
}
writer.print(" class=\"");
writer.print(partClass);
writer.print("\">");
generateEndDiv(writer);
}
}
}
Map<IPersist, FormElement> cachedElementsMap = new HashMap<IPersist, FormElement>();
if (context != null && context.getApplication() != null) {
IFormController controller = ((BasicFormManager) context.getApplication().getFormManager()).getCachedFormController(realFormName);
if (controller != null && controller.getFormUI() instanceof WebFormUI) {
List<FormElement> cachedFormElements = ((WebFormUI) controller.getFormUI()).getFormElements();
for (FormElement fe : cachedFormElements) {
if (fe.getPersistIfAvailable() != null) {
cachedElementsMap.put(fe.getPersistIfAvailable(), fe);
}
}
}
}
it = form.getParts();
while (it.hasNext()) {
Part part = it.next();
if (!Part.rendersOnlyInPrint(part.getPartType())) {
if (!design) {
writer.print("<div svy-ng-style=\"");
writer.print(PartWrapper.getName(part));
writer.print("Style\"");
String partClass = "svy-" + PartWrapper.getName(part);
if (part.getStyleClass() != null) {
partClass += " " + part.getStyleClass();
}
writer.print(" class=\"");
writer.print(partClass);
writer.print("\">");
}
for (IFormElement bc : PartWrapper.getBaseComponents(part, form, context, design, false)) {
FormElement fe = null;
if (cachedElementsMap.containsKey(bc)) {
fe = cachedElementsMap.get(bc);
}
if (fe == null) {
fe = FormElementHelper.INSTANCE.getFormElement(bc, context.getSolution(), null, design);
}
generateFormElementWrapper(writer, fe, form, form.isResponsiveLayout());
generateFormElement(writer, fe, form);
generateEndDiv(writer);
}
if (!design)
generateEndDiv(writer);
}
}
generateFormEndTag(writer, design);
}
use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.
the class FormTemplateObjectWrapper method wrap.
@Override
public TemplateModel wrap(Object obj) throws TemplateModelException {
TemplateModel model = wrapperCache.get(obj);
if (model != null)
return model;
Object wrapped;
if (obj instanceof Form) {
wrapped = getFormWrapper((Form) obj);
} else if (obj instanceof Object[]) {
this.flattenedForm = context.getSolution().getFlattenedForm((Form) ((Object[]) obj)[0]);
wrapped = new FormWrapper(flattenedForm, (String) ((Object[]) obj)[1], useControllerProvider, context, design, runtimeProperties != null ? runtimeProperties.getJSONObject("") : null);
} else if (obj == DefaultNavigator.INSTANCE) {
wrapped = new FormElement(DefaultNavigator.INSTANCE, context.getSolution(), new PropertyPath(), design);
JSONObject object = runtimeProperties != null ? runtimeProperties.optJSONObject(((FormElement) wrapped).getName()) : null;
if (object != null) {
wrapped = new FormElementContext((FormElement) wrapped, context, object);
}
} else if (obj instanceof Part) {
wrapped = new PartWrapper((Part) obj, flattenedForm, context, design);
} else if (obj instanceof IFormElement) {
FormElement fe = null;
if (formUI != null) {
List<FormElement> cachedFormElements = formUI.getFormElements();
for (FormElement cachedFE : cachedFormElements) {
if (Utils.equalObjects(cachedFE.getPersistIfAvailable(), obj)) {
fe = cachedFE;
break;
}
}
if (fe == null) {
Form parentForm = (Form) ((IFormElement) obj).getAncestor(IRepository.FORMS);
if (parentForm != null && parentForm.isFormComponent()) {
for (WebComponent webComponent : formUI.getAllComponents()) {
if (webComponent instanceof WebFormComponent) {
FormElement cachedFE = ((WebFormComponent) webComponent).getFormElement();
if (Utils.equalObjects(cachedFE.getPersistIfAvailable(), obj)) {
fe = cachedFE;
break;
}
}
}
}
}
}
FormElement formElement = fe != null ? fe : FormElementHelper.INSTANCE.getFormElement((IFormElement) obj, context.getSolution(), null, false);
JSONObject object = runtimeProperties != null ? runtimeProperties.optJSONObject(formElement.getName()) : null;
wrapped = new FormElementContext(formElement, context, object);
} else {
wrapped = obj;
}
TemplateModel wrap = super.wrap(wrapped);
wrapperCache.put(obj, wrap);
return wrap;
}
use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.
the class FormWrapper method getParts.
public Collection<Part> getParts() {
List<Part> parts = new ArrayList<>();
Iterator<Part> it = form.getParts();
while (it.hasNext()) {
Part part = it.next();
if (!Part.rendersOnlyInPrint(part.getPartType())) {
parts.add(part);
}
}
return parts;
}
use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.
the class FormWrapper method getBodyComponents.
public Collection<BaseComponent> getBodyComponents() {
Part part = getBodyPart();
List<BaseComponent> baseComponents = new ArrayList<>();
if (part == null)
return baseComponents;
int startPos = form.getPartStartYPos(part.getID());
int endPos = part.getHeight();
List<IFormElement> persists = form.getFlattenedObjects(PositionComparator.XY_PERSIST_COMPARATOR);
for (IFormElement persist : persists) {
if (persist instanceof GraphicalComponent && isTableView && ((GraphicalComponent) persist).getLabelFor() != null)
continue;
Point location = CSSPositionUtils.getLocation(persist);
if (startPos <= location.y && endPos > location.y) {
if (isSecurityVisible(persist))
baseComponents.add((BaseComponent) persist);
}
}
return baseComponents;
}
Aggregations