Search in sources :

Example 16 with Part

use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.

the class JSForm method getOrCreatePart.

protected JSPart getOrCreatePart(int partType, int height) {
    checkModification();
    JSPart part;
    boolean partCreated = false;
    if (partType == Part.LEADING_SUBSUMMARY || partType == Part.TRAILING_SUBSUMMARY) {
        part = getPartInternal(partType, height);
    } else {
        part = getPartInternal(partType);
    }
    if (part == null) {
        if (testExtendFormForPart(partType, height)) {
            // $NON-NLS-1$
            throw new RuntimeException("Super form already has this part");
        }
        try {
            part = JSPart.createPart(this, getForm().createNewPart(partType, height), false);
            partCreated = true;
            int testHeight = 0;
            Iterator<Part> parts = getForm().getParts();
            while (parts.hasNext()) {
                Part p = parts.next();
                int test = p.getHeight();
                if (test < testHeight) {
                    throw new RuntimeException(// $NON-NLS-1$//$NON-NLS-2$
                    "Illegal lowerbound " + height + " for the part " + Part.getDisplayName(partType) + " it must be greater than the previous part lowerbound " + // $NON-NLS-1$
                    testHeight);
                }
                testHeight = test;
            }
        } catch (RepositoryException e) {
            throw new RuntimeException(e);
        }
    } else {
        part.setHeight(height);
    }
    if (partCreated)
        useFormCache = false;
    return part;
}
Also used : Part(com.servoy.j2db.persistence.Part) RepositoryException(com.servoy.j2db.persistence.RepositoryException) Point(java.awt.Point)

Example 17 with Part

use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.

the class TabSequenceHelper method fromAbstractToNamed.

public void fromAbstractToNamed() {
    T tableViewToInsert = null;
    int largestIndexBeforeBody = -1;
    T lastComponentBeforeBody = null;
    LinkedHashMap<T, String> componentGroupsByTabIndex = new LinkedHashMap<T, String>();
    FormController fc = runtimeContainer.getController();
    Form f = fc.getForm();
    Iterator<Part> parts = f.getParts();
    while (parts.hasNext()) {
        Part p = parts.next();
        IDataRenderer dataRenderer = fc.getDataRenderers()[p.getPartType()];
        if (dataRenderer != null) {
            // Later we will insert it in the tab sequence.
            if ((fc.getViewComponent() instanceof IProvideTabSequence) && (p.getPartType() == Part.BODY)) {
                tableViewToInsert = (T) dataRenderer;
            } else {
                SortedMap<ISupportTabSeq, T> dataRendererComponents = abstractTabSequence.get(dataRenderer);
                if (dataRendererComponents != null) {
                    for (ISupportTabSeq supportTabSeq : dataRendererComponents.keySet()) {
                        if (supportTabSeq.getTabSeq() >= 0) {
                            T next = dataRendererComponents.get(supportTabSeq);
                            String name = null;
                            if (supportTabSeq instanceof ISupportName)
                                name = ((ISupportName) supportTabSeq).getName();
                            componentGroupsByTabIndex.put(next, name);
                            if ((p.getPartType() == Part.HEADER) || (p.getPartType() == Part.TITLE_HEADER) || (p.getPartType() == Part.LEADING_GRAND_SUMMARY)) {
                                if (supportTabSeq.getTabSeq() >= largestIndexBeforeBody) {
                                    lastComponentBeforeBody = next;
                                    largestIndexBeforeBody = supportTabSeq.getTabSeq();
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    componentsToNames.clear();
    if ((lastComponentBeforeBody == null) && (tableViewToInsert != null))
        componentsToNames.put(tableViewToInsert, null);
    for (T o : componentGroupsByTabIndex.keySet()) {
        componentsToNames.put(o, componentGroupsByTabIndex.get(o));
        if ((tableViewToInsert != null) && (lastComponentBeforeBody != null) && (o.equals(lastComponentBeforeBody)))
            componentsToNames.put(tableViewToInsert, null);
    }
    revertComponentsToNames();
    fromNamedToRuntime();
}
Also used : FormController(com.servoy.j2db.FormController) Form(com.servoy.j2db.persistence.Form) ISupportName(com.servoy.j2db.persistence.ISupportName) ISupportTabSeq(com.servoy.j2db.persistence.ISupportTabSeq) LinkedHashMap(java.util.LinkedHashMap) IDataRenderer(com.servoy.j2db.ui.IDataRenderer) IProvideTabSequence(com.servoy.j2db.IProvideTabSequence) Part(com.servoy.j2db.persistence.Part)

Example 18 with Part

use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.

the class FormPreviewPanel method createPartPanels.

private Map<Part, DataRenderer> createPartPanels() throws RepositoryException {
    try {
        // $NON-NLS-1$
        application.getRuntimeProperties().put("isPrinting", Boolean.TRUE);
        part_panels = new LinkedHashMap<Part, DataRenderer>();
        Iterator<Part> it = controllerBeingPreviewed.getForm().getParts();
        while (it.hasNext()) {
            Part part = it.next();
            // printing is always swing
            DataRenderer partpane = (DataRenderer) application.getDataRenderFactory().getEmptyDataRenderer(ComponentFactory.getWebID(controllerBeingPreviewed.getForm(), part), part.toString(), application, false);
            part_panels.put(part, partpane);
        }
        return part_panels;
    } finally {
        // $NON-NLS-1$
        application.getRuntimeProperties().put("isPrinting", null);
    }
}
Also used : DataRenderer(com.servoy.j2db.smart.dataui.DataRenderer) Part(com.servoy.j2db.persistence.Part)

Example 19 with Part

use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.

the class PageList method doOccurrenceBreak.

private void doOccurrenceBreak(DataRendererDefinition rendererDef) {
    // do page break occurence
    int pbo = rendererDef.getPageBreakAfterOccurrence();
    if (pbo > 0) {
        Part part = rendererDef.getPart();
        if (part != null) {
            Integer count = (Integer) occurrenceBreak.get(part);
            // already one is added
            if (count == null)
                count = new Integer(1);
            if (count.intValue() == pbo) {
                createNewPageDefinition();
                count = new Integer(0);
            }
            occurrenceBreak.put(part, new Integer(count.intValue() + 1));
        }
    }
}
Also used : Part(com.servoy.j2db.persistence.Part)

Example 20 with Part

use of com.servoy.j2db.persistence.Part in project servoy-client by Servoy.

the class DataRendererFactory method completeRenderers.

/**
 * Fills all the panels provided in emptyDataRenderers with the components from the form
 *
 * @param form the form to work with
 * @param emptyDataRenderers the orderedHashmap with the Part -> DataRenderer
 * @param insets for any border
 * @param with of all parts
 * @return usesSliding
 */
public Map completeRenderers(IApplication app, Form form, IScriptExecuter listner, Map emptyDataRenderers, int width, boolean printing, ControllerUndoManager undoManager, TabSequenceHelper<Component> tabSequence) throws Exception {
    int partHeight = 0;
    boolean formHasBgImage = false;
    Pair<IStyleSheet, IStyleRule> formStyle = ComponentFactory.getCSSPairStyleForForm(app, form);
    if (formStyle != null && formStyle.getRight() != null && formStyle.getRight().hasAttribute(CSS.Attribute.BACKGROUND_IMAGE.toString())) {
        formHasBgImage = true;
    }
    Iterator e2 = form.getParts();
    while (e2.hasNext()) {
        Part part = (Part) e2.next();
        Color bg = ComponentFactory.getPartBackground(app, part, form);
        if (bg == null && printing)
            bg = Color.white;
        DataRenderer panel = (DataRenderer) emptyDataRenderers.get(part);
        if (panel != null) {
            panel.setDoubleBuffered(!printing);
            int total = Math.abs(part.getHeight() - partHeight);
            setBasicSettings(panel, bg, new Dimension(width, total), new Point(0, partHeight), printing);
        }
        partHeight = part.getHeight();
        // revert css3 features
        Pair<IStyleSheet, IStyleRule> pair = ComponentFactory.getStyleForBasicComponent(app, part, form);
        if (panel != null) {
            // panel.setBgColor(part.getBackground());
            if (pair != null && pair.getRight() != null && pair.getLeft() != null) {
                // panel.setCssRule(pair.getRight());
                Border border = pair.getLeft().getBorder(pair.getRight());
                if (border != null) {
                    panel.setBorder(border);
                }
            }
        // boolean partHasBgColor = (part.getBackground() != null) ||
        // (pair != null && pair.getRight() != null && pair.getRight().hasAttribute(CSS.Attribute.BACKGROUND_COLOR.toString()));
        // if (!form.getTransparent() && (formHasBgImage || (partHasBgColor && bg.getAlpha() < 255)))
        // {
        // panel.setPaintBackgroundOnTopOfFormImage(true);
        // }
        }
    }
    // place all the elements
    Iterator<IFormElement> e1 = form.getFormElementsSortedByFormIndex();
    return placeElements(e1, app, form, listner, emptyDataRenderers, width, 0, 0, printing, false, undoManager, false, tabSequence);
}
Also used : IStyleSheet(com.servoy.j2db.util.IStyleSheet) IDataRenderer(com.servoy.j2db.ui.IDataRenderer) Color(java.awt.Color) Dimension(java.awt.Dimension) Point(java.awt.Point) Point(java.awt.Point) IFormElement(com.servoy.j2db.persistence.IFormElement) Part(com.servoy.j2db.persistence.Part) Iterator(java.util.Iterator) IStyleRule(com.servoy.j2db.util.IStyleRule) Border(javax.swing.border.Border)

Aggregations

Part (com.servoy.j2db.persistence.Part)36 Point (java.awt.Point)17 Form (com.servoy.j2db.persistence.Form)14 IPersist (com.servoy.j2db.persistence.IPersist)9 IFormElement (com.servoy.j2db.persistence.IFormElement)8 Dimension (java.awt.Dimension)8 ArrayList (java.util.ArrayList)8 BaseComponent (com.servoy.j2db.persistence.BaseComponent)7 GraphicalComponent (com.servoy.j2db.persistence.GraphicalComponent)6 IDataRenderer (com.servoy.j2db.ui.IDataRenderer)6 IStyleRule (com.servoy.j2db.util.IStyleRule)5 IStyleSheet (com.servoy.j2db.util.IStyleSheet)5 FormController (com.servoy.j2db.FormController)4 IForm (com.servoy.j2db.IForm)4 Color (java.awt.Color)4 Portal (com.servoy.j2db.persistence.Portal)3 IComponent (com.servoy.j2db.ui.IComponent)3 HashMap (java.util.HashMap)3 Iterator (java.util.Iterator)3 Map (java.util.Map)3