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;
}
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();
}
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);
}
}
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));
}
}
}
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);
}
Aggregations