This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 113456
Collapse All | Expand All

(-)visual.examples/src/org/netbeans/modules/visual/examples/RunDialog.java (+1 lines)
Lines 136-141 Link Here
136
        "test.widget.ConnectionWidgetOrderTest",
136
        "test.widget.ConnectionWidgetOrderTest",
137
        "test.widget.IconNodeHeaderTest",
137
        "test.widget.IconNodeHeaderTest",
138
        "test.widget.RelativeDecorationTest",
138
        "test.widget.RelativeDecorationTest",
139
        "test.widget.RotatingWidgetTest",
139
        "test.zoom.FitToViewTest",
140
        "test.zoom.FitToViewTest",
140
    };
141
    };
141
142
(-)visual.examples/src/test/widget/MyLabelWidget.java (+90 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package test.widget;
43
44
import java.awt.Color;
45
import java.awt.Graphics2D;
46
import java.awt.LinearGradientPaint;
47
import java.awt.geom.Point2D;
48
import org.netbeans.api.visual.widget.Scene;
49
import org.netbeans.api.visual.widget.Widget;
50
51
/**
52
 *
53
 * @author benoit
54
 */
55
public class MyLabelWidget extends Widget {
56
57
    public MyLabelWidget(Scene scene, String label) {
58
        super(scene);
59
    }
60
61
    public MyLabelWidget(Scene scene) {
62
        super(scene);
63
    }
64
65
    @Override
66
    protected void paintWidget() {
67
        Graphics2D gr = getGraphics();
68
        Point2D start = new Point2D.Float(0, 10);
69
        Point2D end = new Point2D.Float(100, 240);
70
        float[] dist = {0.0f, 0.4f, 1.0f};
71
        Color[] colors = {Color.RED, Color.YELLOW, Color.GREEN};
72
        LinearGradientPaint p =
73
                new LinearGradientPaint(start, end, dist, colors);
74
75
        gr.setPaint(p);
76
        gr.fillRect(getBounds().x + getBorder().getInsets().left,
77
                getBounds().y + getBorder().getInsets().right,
78
                (int) getBounds().width - getBorder().getInsets().right - getBorder().getInsets().left,
79
                (int) getBounds().height - getBorder().getInsets().bottom - getBorder().getInsets().top);
80
        gr.setPaint(Color.BLACK);
81
        gr.drawLine(getBounds().x + getBorder().getInsets().left,
82
                getBounds().y + getBorder().getInsets().right,
83
                (int) getBounds().width - getBorder().getInsets().right,
84
                (int) getBounds().height - getBorder().getInsets().bottom);
85
        gr.drawRect(getBounds().x + getBorder().getInsets().left,
86
                getBounds().y + getBorder().getInsets().right,
87
                (int) getBounds().width - getBorder().getInsets().right - getBorder().getInsets().left,
88
                (int) getBounds().height - getBorder().getInsets().bottom - getBorder().getInsets().top);
89
    }
90
}
(-)visual.examples/src/test/widget/RectangleWidget.java (+62 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package test.widget;
43
44
import org.netbeans.api.visual.widget.Scene;
45
import org.netbeans.api.visual.widget.Widget;
46
47
/**
48
 *
49
 * @author benoit
50
 */
51
public class RectangleWidget extends Widget {
52
53
    public RectangleWidget(Scene scene) {
54
        super(scene);
55
    }
56
57
    @Override
58
    protected void paintWidget() {
59
        getGraphics().setColor(getForeground());
60
        getGraphics().fillRect(getBounds().x, getBounds().y, getBounds().width, getBounds().height);
61
    }
62
}
(-)visual.examples/src/test/widget/RotatingWidgetTest.java (+124 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
5
 *
6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
7
 * Other names may be trademarks of their respective owners.
8
 *
9
 * The contents of this file are subject to the terms of either the GNU
10
 * General Public License Version 2 only ("GPL") or the Common
11
 * Development and Distribution License("CDDL") (collectively, the
12
 * "License"). You may not use this file except in compliance with the
13
 * License. You can obtain a copy of the License at
14
 * http://www.netbeans.org/cddl-gplv2.html
15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
16
 * specific language governing permissions and limitations under the
17
 * License.  When distributing the software, include this License Header
18
 * Notice in each file and include the License file at
19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
20
 * particular file as subject to the "Classpath" exception as provided
21
 * by Oracle in the GPL Version 2 section of the License file that
22
 * accompanied this code. If applicable, add the following below the
23
 * License Header, with the fields enclosed by brackets [] replaced by
24
 * your own identifying information:
25
 * "Portions Copyrighted [year] [name of copyright owner]"
26
 *
27
 * If you wish your version of this file to be governed by only the CDDL
28
 * or only the GPL Version 2, indicate your decision by adding
29
 * "[Contributor] elects to include this software in this distribution
30
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
31
 * single choice of license, a recipient has the option to distribute
32
 * your version of this file under either the CDDL, the GPL Version 2 or
33
 * to extend the choice of license to its licensees as provided above.
34
 * However, if you add GPL Version 2 code and therefore, elected the GPL
35
 * Version 2 license, then the option applies only if the new code is
36
 * made subject to such option by the copyright holder.
37
 *
38
 * Contributor(s):
39
 *
40
 * Portions Copyrighted 2012 Sun Microsystems, Inc.
41
 */
42
package test.widget;
43
44
import java.awt.Color;
45
import java.awt.Dimension;
46
import java.awt.LinearGradientPaint;
47
import java.awt.Point;
48
import java.awt.Rectangle;
49
import java.awt.geom.Point2D;
50
import org.netbeans.api.visual.action.ActionFactory;
51
import org.netbeans.api.visual.action.EditProvider;
52
import org.netbeans.api.visual.border.BorderFactory;
53
import org.netbeans.api.visual.widget.LayerWidget;
54
import org.netbeans.api.visual.widget.Scene;
55
import org.netbeans.api.visual.widget.Widget;
56
import test.SceneSupport;
57
58
/**
59
 *
60
 * @author benoit
61
 */
62
public class RotatingWidgetTest {
63
64
    public static void main(String[] args) {
65
        final Scene scene = new Scene();
66
        LayerWidget layer = new LayerWidget(scene);
67
        scene.addChild(layer);
68
        layer.addChild(createRectWidget(scene, Color.RED, 100));
69
70
        final Widget header = new MyLabelWidget(scene,
71
                "Visibility of this label should not affect the " //NOI18N
72
                + "position of the top-left corner of the image " //NOI18N
73
                + "in the scene."); //NOI18N
74
        Point2D start = new Point2D.Float(0, 10);
75
        Point2D end = new Point2D.Float(25, 10);
76
        float[] dist = {0.0f, 0.4f, 1.0f};
77
        Color[] colors = {Color.RED, Color.YELLOW, Color.GREEN};
78
        LinearGradientPaint p =
79
                new LinearGradientPaint(start, end, dist, colors);
80
        header.setBackground(p);
81
82
        header.setOpaque(true);
83
        // the location of the header relatively to the reference point
84
        header.setPreferredLocation(new Point(100, 100));
85
        header.setPreferredBounds(new Rectangle(0, 0, 100, 200));
86
        layer.addChild(header);
87
        header.setBorder(BorderFactory.createLineBorder(5, Color.RED));
88
        header.getActions().addAction(ActionFactory.createEditAction(
89
                new RotateEditProvider()));
90
        header.getActions().addAction(ActionFactory.createMoveAction());
91
        Widget center = new RectangleWidget(scene);
92
        center.setBackground(Color.BLUE);
93
        center.setForeground(Color.BLUE);
94
        center.setPreferredBounds(new Rectangle(0, 0, 10, 10));
95
        center.setPreferredLocation(new Point(45, 95));
96
        header.addChild(center);
97
        layer.addChild(createRectWidget(scene, Color.GREEN, 150));
98
        layer.addChild(createRectWidget(scene, Color.BLUE, 200));
99
        SceneSupport.show(scene);
100
    }
101
102
    private static Widget createRectWidget(Scene scene, Color c, int size) {
103
        Widget w = new RectangleWidget(scene);
104
        w.getActions().addAction(ActionFactory.createMoveAction());
105
        w.getActions().addAction(ActionFactory.createEditAction(
106
                new RotateEditProvider()));
107
        w.setForeground(c);
108
        w.setPreferredSize(new Dimension(size, size));
109
        w.setPreferredLocation(new Point((int) Math.random() * 300,
110
                (int) Math.random() * 300));
111
        w.setBorder(BorderFactory.createLineBorder());
112
        return w;
113
    }
114
115
    private static class RotateEditProvider implements EditProvider {
116
117
        public void edit(Widget widget) {
118
            widget.getTransform().rotate(-Math.PI / 6,
119
                    widget.getBounds().getCenterX(),
120
                    widget.getBounds().getCenterY());
121
            widget.revalidate();
122
        }
123
    }
124
}

Return to bug 113456