private DimensionFloat getExpectedElementDimensionsOnDefaultZoom(NewGridElement element) { // add all ypos changes to simulate the real ypos for xlimit calculation etc. PropertiesConfig tmpPropCfg = new PropertiesConfig(element.getSettings(), element.getRealSize()); tmpPropCfg.addToYPos( calcTopDisplacementToFitLine(calcStartPointFromVAlign(tmpPropCfg), tmpPropCfg)); handleWordWrapAndIterate(elementSettings, tmpPropCfg, drawer.getPseudoDrawHandler()); float textHeight = tmpPropCfg.getyPos() - drawer .textHeight(); // subtract last ypos step (because the print-text pos is always on // the bottom) return new DimensionFloat(tmpPropCfg.getMaxTextWidth(), textHeight); }
private void handleAutoresize(NewGridElement element) { if (getElementStyle() == ElementStyleEnum.AUTORESIZE) { DimensionFloat dim = getExpectedElementDimensionsOnDefaultZoom(element); float hSpaceLeftAndRight = drawer.getDistanceBetweenTexts() * 2; float width = dim.getWidth() + hSpaceLeftAndRight; float height = dim.getHeight() + drawer.textHeight() / 2; float diffw = width - element.getRealSize().width; float diffh = height - element.getRealSize().height; float diffwInCurrentZoom = diffw * element.getHandler().getZoomFactor(); float diffhInCurrentZoom = diffh * element.getHandler().getZoomFactor(); int diffwRealigned = element.getHandler().realignToGrid(false, diffwInCurrentZoom, true); int diffhRealigned = element.getHandler().realignToGrid(false, diffhInCurrentZoom, true); // use resize command to move sticked relations correctly with the element new Resize(element, 0, 0, diffwRealigned, diffhRealigned).execute(element.getHandler()); } }
public void initSettingsFromText(NewGridElement element) { propertiesTextToDraw = new ArrayList<String>(); this.elementSettings = element.getSettings(); this.propCfg = new PropertiesConfig(element.getSettings()); for (String line : getPanelAttributesAsList()) { boolean drawText = true; for (Facet gf : elementSettings.getGlobalFacets()) { if (gf.checkStart(line)) { gf.handleLine(line, drawer, propCfg); if (gf.replacesText(line)) drawText = false; } } if (drawText && !line.startsWith("//")) propertiesTextToDraw.add(line); } handleAutoresize(element); this.propCfg.setGridElementSize(element.getRealSize()); }