/** @param context */ public void calculateRow(TableInfoContext context) { this._rowIndex = context.getCurrentRow(); List children = getFigure().getChildren(); for (int i = 0, size = children.size(); i < size; i++) { IFigure childfigure = (IFigure) children.get(i); if (childfigure instanceof ICSSFigure) { ICSSStyle childstyle = ((ICSSFigure) childfigure).getCSSStyle(); if (childstyle != null) { String display = childstyle.getDisplay(); if ("table-cell".equalsIgnoreCase(display)) { // $NON-NLS-1$ TableCellInfo cellInfo = new TableCellInfo((ICSSFigure) childfigure); cellInfo.calculateCellInfo(context); _cells.add(cellInfo); } else { // skip } } } else { // skip } } // ok, we have finished a row context.finishRow(); }
public ICSSFont createFont(ICSSStyle style) { String fontfamily = (String) style.getStyleProperty(ICSSPropertyID.ATTR_FONT_FAMILY); Object fontsizeobj = style.getStyleProperty(ICSSPropertyID.ATTR_FONT_SIZE); int fontsize; fontsize = getFontSize(style, fontsizeobj); int fontstyle = getFontStyle(style); int fontweight = ((Integer) style.getStyleProperty(ICSSPropertyID.ATTR_FONT_WEIGHT)).intValue(); return new CSSFont(fontfamily, fontsize, fontstyle, fontweight, resolveFontStyleString(style)); }
/** * @param node * @return true if is list item */ public static boolean isListItem(Node node) { if (node instanceof INodeNotifier) { Object adapter = ((INodeNotifier) node).getAdapterFor(ICSSStyle.class); if (adapter != null) { ICSSStyle style = (ICSSStyle) adapter; String display = style.getDisplay(); return (display.equalsIgnoreCase(ICSSPropertyID.VAL_LIST_ITEM)); } } return false; }
/** * @param node * @return true if is table cell */ static boolean isTableCell(Node node) { if (node instanceof INodeNotifier) { Object adapter = ((INodeNotifier) node).getAdapterFor(ICSSStyle.class); if (adapter != null) { ICSSStyle style = (ICSSStyle) adapter; String display = style.getDisplay(); return display.equalsIgnoreCase(ICSSPropertyID.VAL_TABLE_CELL); } } return false; }
private int getFontSize(ICSSStyle style, Object fontsizeobj) { int fontsize; if (fontsizeobj instanceof Length) { fontsize = ((Length) fontsizeobj).getValue(); } else { fontsize = style.getParentStyle().getCSSFont().getFontSize(); } return fontsize; }
private String resolveFontStyleString(ICSSStyle style) { StringBuffer sb = new StringBuffer(); sb.append(ICSSPropertyID.ATTR_FONT_FAMILY).append(":"); // $NON-NLS-1$ sb.append("'") .append( //$NON-NLS-1$ (String) style.getStyleProperty(ICSSPropertyID.ATTR_FONT_FAMILY)) .append("'"); // $NON-NLS-1$ sb.append(";"); // $NON-NLS-1$ sb.append(ICSSPropertyID.ATTR_FONT_STYLE).append(":"); // $NON-NLS-1$ sb.append((String) style.getStyleProperty(ICSSPropertyID.ATTR_FONT_STYLE)) .append(";"); // $NON-NLS-1$ sb.append(ICSSPropertyID.ATTR_FONT_WEIGHT).append(":"); // $NON-NLS-1$ sb.append(((Integer) style.getStyleProperty(ICSSPropertyID.ATTR_FONT_WEIGHT)).toString()) .append(";"); // $NON-NLS-1$ sb.append(ICSSPropertyID.ATTR_FONT_SIZE).append(":"); // $NON-NLS-1$ int fontSize = getFontSize(style, style.getStyleProperty(ICSSPropertyID.ATTR_FONT_SIZE)); sb.append(Integer.toString(fontSize)); return sb.toString(); }
/** @param style */ private int getFontStyle(ICSSStyle style) { int fontstyle; String fontstylestr = (String) style.getStyleProperty(ICSSPropertyID.ATTR_FONT_STYLE); if (ICSSPropertyID.VAL_ITALIC.equals(fontstylestr) || ICSSPropertyID.VAL_OBLIQUE.equals(fontstylestr)) { fontstyle = SWT.ITALIC; } else { fontstyle = SWT.NORMAL; } return fontstyle; }
/** * To see if a node's display type is inline. * * @param refNode * @return true if is inline */ public static boolean isInline(Node refNode) { Node node = refNode; EditPart part = Target.resolvePart(node); if (part instanceof ElementEditPart) { node = ((ElementEditPart) part).getTagConvert().getResultElement(); } if (isText(node)) { return true; } else if (node instanceof INodeNotifier) { Object adapter = ((INodeNotifier) node).getAdapterFor(ICSSStyle.class); if (adapter != null) { ICSSStyle style = (ICSSStyle) adapter; String display = style.getDisplay(); return (display.equalsIgnoreCase(ICSSPropertyID.VAL_INLINE) || // display.equalsIgnoreCase(ICSSPropertyID.VAL_INLINE_TABLE) || // display.equalsIgnoreCase(ICSSPropertyID.VAL_COMPACT) || // display.equalsIgnoreCase(ICSSPropertyID.VAL_RUN_IN)); } } return false; }
/** * @param info * @param tableHeight */ public void calculateHeight(TableInfo info, int tableHeight) { ICSSStyle style = this.getFigure().getCSSStyle(); if (style == null) { this._rowHeight = -1; } else { Object height = style.getStyleProperty(ICSSPropertyID.ATTR_HEIGHT); Length recommendedHeight = (height instanceof Length) ? (Length) height : null; int rh = 0; if (recommendedHeight == null || recommendedHeight.getValue() <= 0) { rh = 0; } else { if (recommendedHeight.isPercentage()) { // not supported. } else { rh = recommendedHeight.getValue(); } if (rh > 0 && !style.isSizeIncludeBorderPadding()) { rh += style.getBorderInsets().getHeight() + style.getPaddingInsets().getHeight(); } } this._rowHeight = rh; } }