/*
* Copyright 2015 JBoss, by Red Hat, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.uberfire.ext.wires.core.trees.client.shapes;
import com.ait.lienzo.client.core.shape.Circle;
import com.ait.lienzo.client.core.shape.Text;
import com.ait.lienzo.shared.core.types.ColorName;
import com.ait.lienzo.shared.core.types.TextAlign;
import com.ait.lienzo.shared.core.types.TextBaseLine;
/**
* Example Node that can have all other types of node added as children
*/
public class WiresExampleTreeNode1 extends WiresBaseTreeNode {
private static final int BOUNDARY_SIZE = 10;
private final Circle circle;
private final Circle bounding;
private final Text plus = new Text("+",
"normal",
50);
public WiresExampleTreeNode1(final Circle shape) {
circle = shape;
bounding = new Circle(circle.getRadius() + (BOUNDARY_SIZE / 2));
bounding.setStrokeWidth(BOUNDARY_SIZE);
bounding.setAlpha(0.1);
plus.setTextAlign(TextAlign.CENTER);
plus.setTextBaseLine(TextBaseLine.MIDDLE);
plus.setFillColor(ColorName.CORNFLOWERBLUE);
plus.setStrokeColor(ColorName.BLUE);
add(circle);
}
@Override
public void setSelected(final boolean isSelected) {
if (isSelected) {
add(bounding);
} else {
remove(bounding);
}
}
@Override
public void onCollapseStart() {
add(plus);
plus.setAlpha(0.0);
}
@Override
public void onCollapseProgress(final double pct) {
plus.setAlpha(pct);
}
@Override
public void onExpandProgress(double pct) {
plus.setAlpha(1.0 - pct);
}
@Override
public void onExpandEnd() {
remove(plus);
}
@Override
public double getWidth() {
return circle.getRadius() * 2;
}
@Override
public double getHeight() {
return circle.getRadius() * 2;
}
}