use of org.whole.lang.ui.layout.TableLayout in project whole by wholeplatform.
the class CompositeEntityStyledTreePart method createFigure.
protected IFigure createFigure() {
if (entityStyling.getLayoutStyle().equals(LayoutStyle.COMPOSITE_TABLE)) {
return new CompositeTableFigure(entityStyling) {
protected int getChildrenPaneIndex() {
return 0;
}
protected IEntityFigure createTypeLabelFigure() {
IEntityFigure typeFigure = new EntityFigure(new MonoLayout().withMargin(2, 4, 2, 8).withAutoresizeWeight(1.0f)).withViewportTracking(ViewportTracking.HORIZONTAL);
typeFigure.add(LabelFactory.createDeclaration(entityStyling.getTypeLabel()));
return typeFigure;
}
protected IEntityFigure createChildrenFigure() {
TableFigure tableFigure = new TableFigure(Math.max(1, featuresStyling.length)) {
protected void paintFigure(Graphics g) {
super.paintFigure(g);
g.setBackgroundColor(ColorConstants.lightGray);
g.setForegroundColor(ColorConstants.lightGray);
if (getLayoutManager().hasHeaderRow()) {
drawHeadersRowBackground(g);
drawHeadersRowSeparator(g);
}
drawColumnSeparators(g);
int oldAlpha = g.getAlpha();
g.setAlpha(80);
drawRowSeparators(g);
drawTableColumnsBorder(g);
drawTableRowsBorder(g);
g.setAlpha(oldAlpha);
}
};
if (featuresStyling.length > 0) {
TableRowFigure tableHeaderFigure = new TableRowFigure();
TableLayout tableLayout = tableFigure.getLayoutManager();
int i = 0;
for (IFeatureStyling fs : featuresStyling) {
tableHeaderFigure.addLabel(fs.getName());
tableLayout.withColumnAlignment(i++, fs.getAlignment());
}
tableFigure.add(tableHeaderFigure, TableLayout.Placement.HEADER);
}
return createContentPane(getChildrenPaneIndex(), tableFigure);
}
};
} else
return new NodeWithCompositeBranchFigure(entityStyling) {
@Override
protected int getChildrenPaneIndex() {
return 0;
}
@Override
protected IEntityFigure createTypeLabelFigure() {
String name = entityStyling.getTypeLabel();
return LabelFactory.createDeclaration(name);
}
@Override
protected IEntityFigure createChildrenFigure() {
CompositeFigure compositeFigure = new CompositeFigure(false);
compositeFigure.setBorder(CompositePlaceHolderBorder.OPTIONAL_VERTICAL);
compositeFigure.getLayoutManager().withSpacing(4).withMarginLeft(0).withMarginRight(10).withMinorAlignment(Alignment.LEADING);
return createContentPane(getChildrenPaneIndex(), compositeFigure);
}
};
}
use of org.whole.lang.ui.layout.TableLayout in project whole by wholeplatform.
the class EntityOutlineLeftFigure method paintConnections.
@SuppressWarnings("unchecked")
protected void paintConnections(Graphics graphics) {
graphics.setForegroundColor(FigureConstants.contentLighterColor);
Point rootPoint = getFoldingToggle(0).getBounds().getBottom();
Object childrenFigure = getContentPane(1).getChildren().get(0);
Point[] childrenPoints = null;
if (childrenFigure instanceof TableFigure) {
TableFigure tableFigure = (TableFigure) childrenFigure;
TableLayout layoutManager = tableFigure.getLayoutManager();
int childrenSize = layoutManager.rows();
childrenPoints = new Point[childrenSize];
if (childrenSize == 0)
return;
for (int i = 0; i < childrenSize; i++) {
IFigure row = layoutManager.getRow(i);
List<IFigure> rowChildren = row.getChildren();
childrenPoints[i] = row.getBounds().getRight().translate(+8, 0);
if (row instanceof TableRowFigure && !rowChildren.isEmpty())
childrenPoints[i].y = ((TableRowLayout) row.getLayoutManager()).getBaseline(1);
}
} else {
List<IFigure> children = ((IFigure) childrenFigure).getChildren();
int childrenSize = children.size();
if (childrenSize == 0)
return;
childrenPoints = new Point[childrenSize];
for (int i = 0; i < childrenSize; i++) {
IFigure childFigure = children.get(i);
if (childFigure instanceof IEntityFigure)
childrenPoints[i] = childFigure.getBounds().getTopRight().translate(+6, ((IEntityFigure) childFigure).getAscent());
else
childrenPoints[i] = childFigure.getBounds().getRight().translate(+6, 0);
}
}
graphics.setForegroundColor(ColorConstants.lightGray);
graphics.setLineStyle(SWT.LINE_CUSTOM);
graphics.setLineDash(new int[] { 1, 1 });
DrawUtils.drawOutline(graphics, rootPoint, childrenPoints);
graphics.setLineStyle(SWT.LINE_SOLID);
graphics.setLineDash((int[]) null);
}
Aggregations