protected Polygon getPaintedShape() { double[] xCoords; double[] yCoords; if(getShapeConfiguration().isUniform()){ xCoords = new double[]{0, 1/4f, 3/4f , 1, 3/4f, 1/4f}; yCoords = new double[]{1/2f, 0, 0, 1/2f, 1, 1}; } else { final double zoomedHorizontalInset = (1 - 1 / getHorizontalMarginFactor() ) / 2; xCoords = new double[]{0, zoomedHorizontalInset, 1-zoomedHorizontalInset, 1, 1-zoomedHorizontalInset, zoomedHorizontalInset}; yCoords = new double[]{1/2f, 0, 0, 1/2f, 1, 1}; } return polygonOf(xCoords, yCoords); }
protected Polygon getPaintedShape() { double[] xCoords; double[] yCoords; if(getShapeConfiguration().isUniform()){ xCoords = new double[]{1/2f, 0, 0, 1/2f, 1, 1}; yCoords = new double[]{0, 1/4f, 3/4f , 1, 3/4f, 1/4f}; } else { final double zoomedVerticalInset = (1 - 1 / getVerticalMarginFactor() ) / 2; xCoords = new double[]{0, 1/2f, 1, 1, 1/2f, 0}; yCoords = new double[]{zoomedVerticalInset, 0, zoomedVerticalInset, 1-zoomedVerticalInset, 1, 1-zoomedVerticalInset}; } return polygonOf(xCoords, yCoords); }
@Override public Dimension getPreferredSize() { final Dimension preferredSize = super.getPreferredSize(); if (isPreferredSizeSet()) { return preferredSize; } preferredSize.width = limitWidth(preferredSize.width); if(getShapeConfiguration().isUniform()) { if(preferredSize.width < preferredSize.height) preferredSize.width = preferredSize.height; else preferredSize.height = preferredSize.width; } return preferredSize; }
@Override public Point getConnectorPoint(Point p) { return getShapeConfiguration().isUniform() || !USE_COMMON_OUT_POINT_FOR_ROOT_NODE && getNodeView().isRoot() ? getConnectorPointAtTheOvalBorder(p) : super.getConnectorPoint(p); }
@Override public Dimension getPreferredSize() { if (isPreferredSizeSet()) { return super.getPreferredSize(); } if(getShapeConfiguration().isUniform()){ final Dimension prefSize = getPreferredRectangleSizeWithoutMargin(getMaximumWidth()); double w = prefSize.width + getMinimumHorizontalInset(); double h = prefSize.height + getMinimumVerticalInset(); int diameter = (int)(Math.ceil(Math.sqrt(w * w + h * h))); prefSize.width = prefSize.height = limitWidth(diameter); return prefSize; } else return super.getPreferredSize(); }
@Override public Dimension getPreferredSize() { if (isPreferredSizeSet()) { return super.getPreferredSize(); } if(getShapeConfiguration().isUniform()) { final Dimension prefSize = getPreferredRectangleSizeWithoutMargin(getMaximumWidth()); double w = prefSize.width + getMinimumHorizontalInset(); double h = prefSize.height + getMinimumVerticalInset(); double diameter = Math.sqrt(w * w + h * h); double width = limitWidth (diameter/ UNIFORM_HEIGHT_TO_WIDTH_RELATION); prefSize.width = (int) Math.ceil(width); prefSize.height = (int) (width * UNIFORM_HEIGHT_TO_WIDTH_RELATION); return prefSize; } else return super.getPreferredSize(); }
@Override public Dimension getPreferredSize() { if (isPreferredSizeSet()) { return super.getPreferredSize(); } if(getShapeConfiguration().isUniform()){ final Dimension prefSize = getPreferredRectangleSizeWithoutMargin(getMaximumWidth()); double width = Math.ceil(prefSize.width + getMinimumHorizontalInset()); width = limitWidth(width); prefSize.width = (int) width; prefSize.height = (int) (width * UNIFORM_HEIGHT_TO_WIDTH_RELATION); return prefSize; } else return super.getPreferredSize(); }
@Override void setStyleOnExternalChange(NodeModel node) { final NodeStyleController styleController = NodeStyleController.getController(); final NodeStyleModel.Shape shape = NodeStyleModel.getShape(node); ShapeConfigurationModel viewShape = styleController.getShapeConfiguration(node); final boolean enabled = shape != null; mSetNodeShape.setValue(enabled); mNodeShape.setValue(viewShape.getShape().toString()); enableShapeConfigurationProperties(enabled, shape); mShapeHorizontalMargin.setQuantifiedValue(viewShape.getHorizontalMargin()); mShapeVerticalMargin.setQuantifiedValue(viewShape.getVerticalMargin()); mUniformShape.setValue(viewShape.isUniform()); } }
BackwardCompatibleQuantityWriter.forWriter(writer).writeQuantity("SHAPE_VERTICAL_MARGIN", shapeVerticalMargin); final boolean uniformShape = shapeConfiguration.isUniform(); if (uniformShape) { writer.addAttribute("UNIFORM_SHAPE", "true");