~sgaflv/workcraft/trunk-refmodels

« back to all changes in this revision

Viewing changes to WorkcraftCore/src/org/workcraft/dom/visual/VisualGroup.java

  • Committer: Danil Sokolov
  • Date: 2014-09-08 20:55:35 UTC
  • mfrom: (544.1.1 trunk-bug)
  • Revision ID: danilovesky@gmail.com-20140908205535-jwjj6lxz736a4ilz
Merge proposal for bug #1364023 approved.

Show diffs side-by-side

added added

removed removed

Lines of Context:
116
116
        public void draw(DrawRequest r) {
117
117
                
118
118
                Decoration dec = r.getDecoration();
119
 
                if (dec instanceof ContainerDecoration)
 
119
                if (dec instanceof ContainerDecoration) {
120
120
                        setIsExcited(((ContainerDecoration)dec).isContainerExcited());
121
 
                
 
121
                }
122
122
                
123
123
                // This is to update the rendered text for names (and labels) of group children, 
124
124
                // which is necessary to calculate the bounding box before children have been drawn
127
127
                }
128
128
                
129
129
                Rectangle2D bb = getBoundingBoxInLocalSpace();
 
130
                System.out.println(bb);
130
131
                
131
132
                if (bb != null && getParent() != null) {
132
 
                        
133
 
                        
134
133
                        if (getIsCollapsed()&&!isCurrentLevelInside()) {
135
134
                                bb.setRect(bb.getX(), bb.getY(), bb.getWidth(), bb.getHeight());
136
135
                                Graphics2D g = r.getGraphics();
137
 
                                
138
 
                                
 
136
        
139
137
                                g.setColor(Coloriser.colorise(Color.BLACK, r.getDecoration().getColorisation()));
140
138
                                float[] pattern = {0.2f, 0.2f};
141
139
                                g.setStroke(new BasicStroke(0.05f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 1.0f, pattern, 0.0f));
142
140
                                g.draw(bb);
143
 
                                
144
141
                        } else {
145
 
                                
146
142
                                bb.setRect(bb.getX() - 0.1, bb.getY() - 0.1, bb.getWidth() + 0.2, bb.getHeight() + 0.2);
147
143
                                Graphics2D g = r.getGraphics();
148
144
 
150
146
                                float[] pattern = {0.2f, 0.2f};
151
147
                                g.setStroke(new BasicStroke(0.02f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 1.0f, pattern, 0.0f));
152
148
                                g.draw(bb);
153
 
                                
154
149
                        }
155
 
                        
156
 
//                      // draw the collapse button
157
 
//                      Rectangle2D sb = new Rectangle2D.Double();
158
 
//                      sb.setRect(bb.getMaxX()-0.5, bb.getMinY(), 0.5, 0.5);
159
 
//                      g.setStroke(new BasicStroke(0.02f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 1.0f, null, 0.0f));
160
 
//                      g.draw(sb);
161
150
                }
162
151
        }
163
152
        
164
153
        @Override
165
154
        public Rectangle2D getBoundingBoxInLocalSpace() {
166
 
                if (getIsCollapsed()&&!isCurrentLevelInside()) {
 
155
                if (getIsCollapsed() && !isCurrentLevelInside()) {
167
156
                        Rectangle2D sb = new Rectangle2D.Double();
168
157
                        sb.setRect(-0.5, -0.5, 1, 1);
169
158
                        return sb;
170
 
                } else
171
 
                        return BoundingBoxHelper.mergeBoundingBoxes(Hierarchy.getChildrenOfType(this, Touchable.class));
 
159
                } else {
 
160
                        Collection<Touchable> children = Hierarchy.getChildrenOfType(this, Touchable.class);
 
161
                        for (Touchable child: children) {
 
162
                                System.out.println("  " + child + ": " + child.getBoundingBox());
 
163
                        }
 
164
                        return BoundingBoxHelper.mergeBoundingBoxes(children);
 
165
                }
172
166
        }
173
167
 
174
168
        public final Collection<VisualComponent> getComponents() {
186
180
 
187
181
                groupImpl.reparent(nodesToReparent, newParent);
188
182
 
189
 
                for (Node node : nodesToReparent)
 
183
                for (Node node : nodesToReparent) {
190
184
                        TransformHelper.applyTransform(node, localToParentTransform);
191
 
                
 
185
                }
192
186
                return nodesToReparent;
193
187
        }
194
188