Search in sources :

Example 1 with StackLayout

use of org.whole.lang.ui.layout.StackLayout in project whole by wholeplatform.

the class RootFragmentPart method createFigure.

protected IFigure createFigure() {
    // Figure f = new FreeformLayer() {
    IEntityFigure f = new EntityFigure() {

        {
            setOpaque(false);
        }

        @Override
        public void paint(Graphics graphics) {
            graphics.setAdvanced(true);
            graphics.setAntialias(SWT.ON);
            super.paint(graphics);
        }

        protected void paintFigure(Graphics graphics) {
            super.paintFigure(graphics);
            Rectangle r2 = ((IFigure) getChildren().get(0)).getBounds();
            translateToParent(r2 = r2.getCopy());
            Rectangle clipArea = graphics.getClip(new Rectangle()).expand(1, 1);
            graphics.fillRectangle(clipArea);
            graphics.setBackgroundColor(FigureConstants.hostLanguageColor);
            graphics.fillRectangle(clipArea.intersect(r2));
            graphics.setLineWidth(1);
            graphics.setLineStyle(Graphics.LINE_SOLID);
            graphics.setXORMode(false);
            IEntity rootEntity = ((RootFragment) getModelEntity()).getRootEntity().wGetAdaptee(false);
            if (rootEntity.wGetParent() instanceof RootFragment) {
                clipArea = graphics.getClip(new Rectangle()).expand(1, 1);
                int oldAlpha = graphics.getAlpha();
                graphics.setAlpha(60);
                graphics.setForegroundColor(ColorConstants.darkGray);
                graphics.setLineWidth(1);
                graphics.drawRectangle(r2.getTranslated(-1, -1).resize(1, 1));
                graphics.setForegroundColor(ColorConstants.lightGray);
                graphics.setLineWidth(5);
                graphics.drawRoundRectangle(r2.getTranslated(-4, -4).resize(7, 7), 10, 10);
                graphics.setAlpha(oldAlpha);
            } else {
                graphics.setForegroundColor(ColorConstants.lightGray);
                graphics.drawRectangle(r2.x - 1, r2.y - 1, r2.width + 1, r2.height + 1);
            }
        }

        public void validate() {
            super.validate();
            repaint();
        }
    };
    f.setLayoutManager(new StackLayout().withMargin(5).withMinorAlignment(Alignment.CENTER));
    f.setBackgroundColor(FigureUtilities.lighter(ColorConstants.gray));
    f.setOpaque(false);
    f.addLayoutListener(LayoutAnimator.getDefault());
    return f;
}
Also used : Graphics(org.eclipse.draw2d.Graphics) IEntityFigure(org.whole.lang.ui.figures.IEntityFigure) EntityFigure(org.whole.lang.ui.figures.EntityFigure) IEntityFigure(org.whole.lang.ui.figures.IEntityFigure) IEntity(org.whole.lang.model.IEntity) Rectangle(org.eclipse.draw2d.geometry.Rectangle) StackLayout(org.whole.lang.ui.layout.StackLayout) RootFragment(org.whole.lang.commons.model.RootFragment) IFigure(org.eclipse.draw2d.IFigure)

Example 2 with StackLayout

use of org.whole.lang.ui.layout.StackLayout in project whole by wholeplatform.

the class ContentPaneFigure method addWithPlaceHolder.

public <F extends IEntityFigure> F addWithPlaceHolder(F child) {
    IEntityFigure stackedFigure = new EntityFigure(new StackLayout());
    stackedFigure.add(LabelFactory.createEmptyLabel());
    stackedFigure.add(child);
    add(stackedFigure);
    return child;
}
Also used : StackLayout(org.whole.lang.ui.layout.StackLayout)

Aggregations

StackLayout (org.whole.lang.ui.layout.StackLayout)2 Graphics (org.eclipse.draw2d.Graphics)1 IFigure (org.eclipse.draw2d.IFigure)1 Rectangle (org.eclipse.draw2d.geometry.Rectangle)1 RootFragment (org.whole.lang.commons.model.RootFragment)1 IEntity (org.whole.lang.model.IEntity)1 EntityFigure (org.whole.lang.ui.figures.EntityFigure)1 IEntityFigure (org.whole.lang.ui.figures.IEntityFigure)1