Skip to content

Commit 758ace3

Browse files
Canvas: improve selection box painting.
1 parent b0382c9 commit 758ace3

File tree

2 files changed

+23
-30
lines changed

2 files changed

+23
-30
lines changed

source/phasereditor/phasereditor.canvas.ui/src/phasereditor/canvas/ui/editors/SelectionBoxNode.java

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,45 +21,32 @@
2121
// USE OR OTHER DEALINGS IN THE SOFTWARE.
2222
package phasereditor.canvas.ui.editors;
2323

24-
import java.util.Arrays;
25-
import java.util.List;
26-
24+
import javafx.geometry.Insets;
2725
import javafx.geometry.Point2D;
26+
import javafx.scene.effect.DropShadow;
27+
import javafx.scene.layout.Background;
28+
import javafx.scene.layout.BackgroundFill;
2829
import javafx.scene.layout.Border;
2930
import javafx.scene.layout.BorderStroke;
3031
import javafx.scene.layout.BorderStrokeStyle;
3132
import javafx.scene.layout.BorderWidths;
33+
import javafx.scene.layout.CornerRadii;
3234
import javafx.scene.layout.Pane;
3335
import javafx.scene.paint.Color;
34-
import javafx.scene.shape.StrokeLineCap;
35-
import javafx.scene.shape.StrokeLineJoin;
36-
import javafx.scene.shape.StrokeType;
3736

3837
/**
3938
* @author arian
4039
*
4140
*/
4241
public class SelectionBoxNode extends Pane {
4342

44-
private static Border _border;
45-
46-
static {
47-
BorderWidths bw = new BorderWidths(1);
48-
@SuppressWarnings("boxing")
49-
List<Double> dashed = Arrays.asList(5d, 2d);
50-
BorderStrokeStyle style1 = new BorderStrokeStyle(StrokeType.INSIDE, StrokeLineJoin.MITER, StrokeLineCap.BUTT,
51-
10, 10, dashed);
52-
BorderStrokeStyle style2 = new BorderStrokeStyle(StrokeType.INSIDE, StrokeLineJoin.MITER, StrokeLineCap.BUTT,
53-
10, 0, dashed);
54-
55-
BorderStroke s1 = new BorderStroke(Color.WHITE, style1, null, bw);
56-
BorderStroke s2 = new BorderStroke(Color.BLACK, style2, null, bw);
57-
58-
_border = new Border(s1, s2);
59-
}
60-
6143
public SelectionBoxNode() {
62-
setBorder(_border);
44+
// setBorder(_border);
45+
setEffect(new DropShadow());
46+
Color c = Color.GREENYELLOW;
47+
setBorder(new Border(new BorderStroke(c, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(2))));
48+
setBackground(new Background(new BackgroundFill(new Color(c.getRed(), c.getGreen(), c.getBlue(), 0.1),
49+
CornerRadii.EMPTY, Insets.EMPTY)));
6350
}
6451

6552
public void setBox(Point2D start, Point2D end) {

source/phasereditor/phasereditor.canvas.ui/src/phasereditor/canvas/ui/editors/SelectionNode.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import javafx.geometry.Bounds;
2525
import javafx.geometry.Point2D;
26+
import javafx.scene.control.Label;
2627
import javafx.scene.effect.DropShadow;
2728
import javafx.scene.layout.Border;
2829
import javafx.scene.layout.BorderStroke;
@@ -31,6 +32,7 @@
3132
import javafx.scene.layout.CornerRadii;
3233
import javafx.scene.layout.Pane;
3334
import javafx.scene.paint.Color;
35+
import phasereditor.canvas.core.GroupModel;
3436
import phasereditor.canvas.ui.shapes.IObjectNode;
3537

3638
/**
@@ -63,17 +65,25 @@ public class SelectionNode extends Pane {
6365
private IObjectNode _objectNode;
6466
protected Bounds _rect;
6567
private ObjectCanvas _canvas;
68+
private Label _label;
6669

6770
public SelectionNode(ObjectCanvas canvas, IObjectNode inode, Bounds rect) {
6871
_objectNode = inode;
6972
_rect = rect;
7073
_canvas = canvas;
74+
75+
_label = new Label(inode.getModel().getEditorName());
76+
_label.setTextFill(Color.WHITE);
77+
_label.setEffect(new DropShadow());
78+
_label.relocate(0, -20);
79+
80+
getChildren().add(_label);
7181

7282
updateFromZoomAndPanVariables();
7383

74-
//setBorder(inode.getModel() instanceof GroupModel ? _borderGroup : _borderSprite);
7584
setEffect(new DropShadow());
76-
setBorder(new Border(new BorderStroke(Color.GREENYELLOW, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(2))));
85+
Color color = inode.getModel() instanceof GroupModel ? Color.LIGHTGREEN: Color.GREENYELLOW;
86+
setBorder(new Border(new BorderStroke(color, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(2))));
7787
}
7888

7989
public static final int HANDLER_SIZE = 10;
@@ -82,10 +92,6 @@ public ObjectCanvas getCanvas() {
8292
return _canvas;
8393
}
8494

85-
public void setObjectNode(IObjectNode objectNode) {
86-
_objectNode = objectNode;
87-
}
88-
8995
public void updateBounds(Bounds rect) {
9096
_rect = rect;
9197
updateFromZoomAndPanVariables();

0 commit comments

Comments
 (0)