示例#1
0
  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);
  }
示例#2
0
 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());
   }
 }
示例#3
0
  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());
  }